a Summer School by the G-Node and the Physik-Institut, University of Zurich
Lecturer: Pietro Berkes, <pietro.berkes_AT_ googlemail _DOT_ com>
Download the cheat sheets with a summary of the tools and methods discussed in the class!
Video: Recorded Lecture
Slides: class slides
Exercises:
The Live Demo TDD code, implementing the k-means algorithm: k_means.zip
Outline of the lecture (2h):
Many live demos, music and dances!
Two comprehensive software carpentry courses:
Tiziano's course at the Bernstein center in Berlin
The classic book about software carpentry: The pragmatic programmer
PEP8, the official Python style guide
pylint , tool to check coding standards
pyflakes, passive code checker (only errors, not style)
pep8, script to check PEP8 coding standard
unittest, the standard Python test framework
nose, an alternative framework that simplifies writing tests and allows for extension and customization of test experience. There is a useful option for running a test coverage analysis: nosetests –with-coverage
py.test, a less common alternative
doctest, write tests inside of docstrings
mock, the most popular tool for creating mock objects for testing.
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
Tools to visualize profiling results:
RunSnakeRun, a wxPython-based visualization of profiling results – very intuitive!