Return to the main course page:

Resources labeled with (*) might be somewhat advanced and are not recommended starting points for those for whom this course will be their first programming experience.

Books

A Byte of Python by Swaroop C H

Automate the Boring Stuff with Python by Al Sweigart

Python for Everybody by Charles Severance

Video Courses

Python for Everybody by Charles Severance

Joy of Computing with Python by Sudarshan Iyengar on NPTEL

Interactive Programming with Python on Coursera

Programming, Data Structures and Algorithms in Python by Madhavan Mukund on NPTEL*

Introduction to Computer Science and Programming in Python on MIT OCW*

Practice Problems

HackerRank (See Language Proficiency → Python.)

CodeChef (For general problem-solving practice.)

Google Code Jam (For general problem-solving practice.)

Reddit Daily Programmer (For general problem-solving practice.)

Using Python

All computers in the lab have Python v3.5 installed along with VS Code (the choice of text editor for this course).

To practice on your own machines, you can either install Python via Anaconda or simply fire up an online REPL such as REPL.it. I strongly recommend learning to use a good text editor, any of the following will do: VS Code, Sublime Text, Atom, Vim, Emacs, PyCharm.