====== Online Resources ====== Practical hints about Python installations etc. are to be found in [[courses:be5b33prg:tutorials:start|]] ===== Interactive exercises ===== The fastest way to get hands-on python is through interactive exercises. They offer a fast learning curve, making them an ideal resource in the beginning of your programming journey. * [[https://www.codecademy.com/learn/learn-python-3|Codeacademy: Learn Python 3]] * [[https://www.learnpython.org/|Learnpython.org]] ===== Literature ===== [[http://openbookproject.net/thinkcs/python/english3e/| Wentworth 2012]] is the main book we follow. For Python, there are many freely available [[http://docs.python.org/3.2/|online documents]] and books. Use them, google them, find your own. We expect that experienced programmers will find their way. For beginners we have few recommendations: *//Python for Software Design//, How to think like a computer scientist {[a4b99rph:Downey2009]}. Non-traditional and interesting book, easy to read. Helpful especially for someone with no or very little previous programming experience. Updated (to Python3) version is {[a4b99rph:Wentworth2012]}. * //Dive Into Python//, {[a4b99rph:Pilgrim2009]} is rather for advanced programmers. * [[http://python.org/dev/peps/pep-0008/|Python Style Guide]]. How to name modules, variables, classes and functions, how to write comments and so on. * [[http://pythonconquerstheuniverse.wordpress.com/2009/09/10/debugging-in-python/|Python Debugger]] is nice introduction into Python debugging for beginners. * [[http://www.pythonware.com/library/tkinter/introduction/|An Introduction to Tkinter]] overview of the Tkinter - library for GUI and graphical output. We will not use it but you may want to play. ===== Watching and listening ===== * Online courses (including videolectures) of fundaments of programming can be found e.g. at Coursera.org. Although the courses may not be currently taught, it should be possible to watch the videolectures in the course archives. We can suggest the following courses: * [[https://www.coursera.org/course/programming1|Learn to program: The fundamentals]] - covers basics * [[https://www.coursera.org/course/programming2|Learn to program: Crafting quality code]] - covers more advanced, but still basic topics * [[http://code.google.com/edu/languages/google-python-class/|Google's Python Class]]