15-minute talk on January 7, 2012
AMS-MAA Joint Math Meetings
MAA Session on Trends in Teaching Mathematics Online
Speaker: David Pritchard
We give an introduction to the goals, content, and mechanics behind a new project for teaching Python.
In the middle of the talk, there is a demonstration of lessons number 4, 3, and 2 from the website. This is not in the slides but you can check it out yourself at the website (registration is free):
http://www.cemc.math.uwaterloo.ca/resources/cscircles
1. CS Circles: Learning
Python in a Browser
Graeme Kemkes and
David Pritchard
Center for Education in Mathematics
& Computing (CEMC),
University of Waterloo
2. Computer Science Circles
Overview
• Website for learning programming
• Mixed text, examples, exercises
– Auto-grading of exercises
– Feedback in-place (ajax)
– Procedural generation
• Math is a source of problems
– In a good way
– Geometry, arithmetic, primes
3. Goals
Everyone can program
/ think algorithmically
Aid enrichment in high schools
Robust self-learning for university students/adults
Experience should be:
• fun, hassle-free
• Engaging/interactive
• Effective
4. An Empty Niche
Great existing services:
• TopCoder & contests, for strong programmers
• Khan Academy: videos, math exercises
Need better services for beginners, ideally with
• no software installation => happy admins
• no back-and-forth between textbook and IDE
• interactive engagement, exercises for mastery
5. Demo
• 25 lessons, each w/ text and exercises
– Examples, hints, diagrams
• auto-grading (in a sandbox on our server)
– 1 second time limit (not focusing on speed)
• saves progress
• “code scrambles:” drag lines to the right order
• multiple choice, short answer
• procedural generation of test cases
6. Under The Hood
WordPress
Lessons,
Exercises
in Markup
Python Sandbox
Wordpress Plugins
(php, C) (javaScript, jQuery)
7. CS Circles: Do and Don’t
CS Circles becomes much more powerful used in
conjunction with an expert mentor/teacher
• saves time grading, but can’t look at code and
tell student when their code is badly written
• we don’t try to check for plagiarism
– in fact some exercises can be answered if the
student carefully reads the .html source
• person-on-person help is better for debugging
8. Future Directions
• “I’m stuck!” button
– sends an email to their teacher
– includes the current code
• Open-sourcing
– smooth out the markup language
• Teach JavaScript
• Easier, harder versions; additional exercises