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.

 

pythonlogo

 

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

 

espbook

 

Comments




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.

 

Banner


CSS Ecosystem In the Spotlight
06/11/2024

The 2024 edition of the State of CSS has been posted, revealing that the latest features of the language not only do away with extra tooling, but even start taking on tasks that previously requir [ ... ]



OpenAI Library For .NET Exits Beta
19/11/2024

A few months ago the OpenAI .NET library was released as a beta. It has now reached version 2.0.0 and the time has come to leave beta and, with a few amendments enter production readiness.


More News

Last Updated ( Tuesday, 02 October 2012 )