Slides of the course:
Exercises:
Checkout url:
svn checkout --username=$USERNAME https://escher.fuw.edu.pl/svn/python-winterschool/public winterschool
Solution to the exercises:
Cheat sheets that summarize the agile development work cycles, and the main features and syntax of Python tools
Two comprehensive software carpentry courses:
Tiziano's course at the Bernstein center in Berlin
The classic book about software carpentry: The pragmatic programmer
Refactoring home page, maintained by the author of the main refactoring book, //Refactoring: Improving the Design of Existing Code//, Martin Fowler
rope, recommended refactoring tool
bicycle repair man, old and defunct, but worth a mention.
pdb, the standard python debugger
winpdb, a graphical interface for pdb
. It's platform-independent despite its name.
DDD (DataDisplayDebugger), graphical general-purpose debugger.
Python IDEs often have a built-in debugger.
cProfile, the batteries included Python profiler
timeit, built-in Python module to measure the execution time of small code parts
RunSnakeRun, a wxPython-based visualization of profiling results – very intuitive!
unittest, the standard Python test framework
py.test, an alternative framework that simplifies writing tests and allows for extension and customization of test experience
nose, another popular alternative
doctest, write tests inside of docstrings
SVN book; particularly important is the basic work cycle
A useful and complete one-page cheat sheet for SVN
subclipse, SVN plug-in for Eclipse
TortoiseSVN, SVN integration for the Windows Explorer
slides | exercise sheet | example solution
A nice example for KIS: Peter Norvig's spelling corrector in 21 lines of Python.
The state pattern example that I talked about: State Pattern Example
Here are a few interesting links about advanced Python OO stuff:
To learn more about software design and design patterns you can read some old-school books: