A no-nonsense introduction to software design using the Python programming language. The focus is on the programming process with special emphasis on debugging. The book includes a wide range of exercises from short examples to substantial projects so that students have ample opportunity to practise each new concept.