The purpose of this website is to teach the basics of Python programming in a semi-interactive fashion. It contains a series of instructions, mixed with exercises that you can use to test your progress. Anyone can use this website for free. You can register by creating a free account, if you want to save your progress. You don't need to install anything on your computer to use this website.
Below we have instructions for teachers using this site with students.
The exercises and writing are aimed at people who have no prior experience programming. If you have some experience programming in other languages, then going through all of the lessons should be a bit easier. Both adults and students can go through all of the lessons at their own speed.
If you would like a more gradual, video-based presentation to Python, you may want to examine Python from Scratch, offered by the University of Waterloo. There is also a video series on Language Independent Programming Lessons which can be a useful supplement.
There are automatically-graded exercises to build up your skills. There are several types of exercises, including programming, short answer, multiple choice, and code scramble. In most cases there is more than one way to get a correct answer.
Some of our exercises ask you to predict what Python will do on some example code. You could solve this instantly by running Python on the test, but avoid this! Rather, think about it and try to figure it out by yourself first.
This website is not a replacement for working with a real teacher. We test only certain concepts; we don't check whether you are copying your code from somewhere else; and, the auto-grader cannot make subjective judgements, like whether are you writing your programs in a clear and simple way. You can register a teacher or knowledgeable friend as a "guru" on your profile page after creating an account; they can monitor your progress and you can ask them questions using the "Help" buttons on each exercise. The "Help" button also allows you to send the CS Circles team questions directly.
We provide a console and visualizer which you can use to execute any programs that you like. However, these tools have security and complexity limits (such as a maximum run-time of 1 second). We have a page about running Python on your own computer if you want to lift these limits.
Thanks for using our site! Have fun, and contact us if you have questions, bugs, or feedback!
Click here to go to the first lesson.
For teachers
- The teacher should create an account;
- then each student should create an account, go to "Edit My Profile" in the user menu at top right, and set the guru to be the teacher's account name.
The teacher can receive Help questions from the students (see the Mail Page) and view their progress (see the My Progress page) within the CS Circles site. If a teacher uses the course over several semesters, they can remove or hide non-current students using the Manage Students administrative tab.