Lessons From Teaching Python Online
Written by Sue Gee   
Tuesday, 02 October 2012

What does it take to design a successful online programming course? Some insights are provided by the team behind CS Circles, which offers a Python course for beginners.

The current explosion in the availability of online Computer Science content is gratifying to anyone who feels that programming is as important a skill as reading and writing. The success in teaching programming depends,however, not only on content but also on providing a framework that motivates and monitors progress. In a recent archiv paper David Pritchard and Troy Vasiga discuss the philosophy and design of Computer Science Circles, a free, web-based, introductory programming course.



The course teaches Python to complete beginners and consists of around 30 lessons that are highly interactive and ensure the learner starts to code from the outset with explanation and exercises combined in responsive framework.

Explaining their approach, Pritchard and Vasiga state:

We eschew the traditional separation into lesson/lecture content" and problem sets." Our position is that such a framework puts the student at risk of losing interest during the lesson, and also splits their attention between review, reading exercises, and writing solutions when they fi nally start working hands-on. We think it is pedagogically superior for the exercises to be embedded in the lessons themselves: this reduces monotony and keeps the student on a focused progression. Removing page reloads and handling the student/auto-grader communication with asynchronous JavaScript (a.k.a. ajax) helps keep this experience smooth.

The course begins with a Hello world exercise which serves to introduce students to the interface as well as to Python. It then ramps up through variables, function calls, comments, quotes, and the fundamentals needed in order to write or understand an elementary program, reaching recursion, object vs. value identity, and efficiency by the end. Along the way there are lessons that cover practical matters like errors, design, and debugging and several lessons have exercises based on material already presented to consolidate learning.



The auto-grader is a key component in this Python course which students can do at their own pace with or without the help of a "guru" - a teacher or knowledgeable friend who can monitor progress and be asked questions via the Help button, which can also be used to send the CS Circles team questions directly. The autograder stores a history of exercise submissions that can be accessed both by students and their gurus.

As the course progresses other tools are introduced. One is a simple console where code can be tried out would the grader. The other debugging tool is the open-source Python visualizer (the same one as used by the Online Python Tutor) which stores and replays the steps of a program's execution along with a visual representation of all the
variables/call stack. For later lessons an editor, provided by the CodeMirror project that highlights syntax, enumerates the lines of code, matches parentheses as the user types, and performs smart indentation is introduced.

The site was launched less than a year ago and so far has had over 4,000 registered users who have completed 90,000 exercises. It is estimated that the website handles 1000 visits and 7500 code submissions each day with around 50% of the traffic from users who are not logged in. The advantage of being logged in is that the site records your progress but there is no certificate for completing the entire course.




CS Circles may not be a MOOC in the same league as the classes from Coursera, Udacity and EdX but its accessibility and interactivity make it an attractive option for students who want a fast and flexible way to learn Python.

More Information

arXiv:1209.2166 [cs.CY], CS Circles: An In-Browser Python Course for Beginners

Related Articles

See Python Run - Free Visualization Tool
MOOCs Fail Students With Dark Age Methods


raspberry pi books



or email your comment to: comments@i-programmer.info


To be informed about new articles on I Programmer, install the I Programmer Toolbar, subscribe to the RSS feed, follow us on, Twitter, FacebookGoogle+ or Linkedin,  or sign up for our weekly newsletter.



The Appeal of Google Summer of Code

With the list of participating organizations now published, it is time for would-be contributors to select among them and apply for Google Summer of Code (GSoC). Rust has joined in the program fo [ ... ]

Avi Wigderson Gains Turing Award

Israeli mathematician and computer scientist, Avi Wigderson, is the recipient of the 2023 ACM A.M Turing Award which carries a $1 million prize with financial support from Google.

More News

Last Updated ( Tuesday, 02 October 2012 )