Warning

# Python -- Literature and other resources

For Python, there are many freely available 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 [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 [Wentworth2012].
• *Dive Into Python, [Pilgrim2009] is rather for advanced programmers.
• Python Style Guide. How to name modules, variables, classes and functions, how to write comments and so on.
• Python Debugger is nice introduction into Python debugging for beginners.
• 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:

# Other walkthroughs

• MS Windows quick guide for setting up your IDE (DrPython or IDLE) under MS Windows.
• Work with files quick introduction to working with File Systems in Python.
• faq Problems which, according to our experience are quite common. We continuously update the list.

## Books on programming in general

• [CLRS] T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein: Introduction to Algorithms, 3rd ed., MIT Press, 2009, link

Standard worldwide used textbook, voluminous (1200+ pages) and detailed.

• [DPV] S. Dasgupta, C.H. Papadimitriou, and U.V. Vazirani: Algorithms, Mcgraw-Hill Higher Education, 2006, link

Excellent textbook contains many important exercises, easily readable and written with minimum “academical” formalism. In pdf: Link . 

• [AC] Robert Sedgewick: Algorithms in C, part 1-4, Addison-Wesley, 2001

Another worldwide used textbook concerned mainly with sorting and searching. Contains very detailed and simultaneously approachable analysis of all algorithms, many pictures and examples. Link.

• [ACG] Robert Sedgewick: Algorithms in C, Part 5: Graph Algorithms (3rd Edition), Addison-Wesley Professional, 2002

Continuation of [AC]. Graph representations, graph searching, shortest paths, minimum spanning trees, network flows, directed graphs. This book, similarly as [AC], stresses also important implementation issues. 528 pages. Link. 

• Both [AC] and [ACG] are available in equivalent C++ and Java mutations.

## Sites on programming in general

• Geeks For Geeks Excellent site with loads of examples and explanations ranging from very basic to really advanced.
• w3resource Hundreds of training problems with reference solutions.

## Programming Problems

• Codechef You can see and check the code of other successful members. Very useful.
• Project Euler. Top quality problems from the borders between programming and math, at least about first 100 problems can be recommended to anybody striving to become a good programmer.
• Code Abbey Less “maths-y” than Project Euler, better for beginners.