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 finally 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 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 InformationarXiv:1209.2166 [cs.CY], CS Circles: An In-Browser Python Course for Beginners Related ArticlesSee Python Run - Free Visualization ToolMOOCs Fail Students With Dark Age Methods
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, Facebook, Google+ or Linkedin, or sign up for our weekly newsletter.
|
Last Updated ( Tuesday, 02 October 2012 ) |