Saturday, May 28, 2011

Progress Graphs

Progress Graphs is a new CodingBat feature using HTML5 to draw a little time series graph of the struggles and failures and eventual success that make up the work on each problem. Here's some random makeBricks() graphs. Since it made me laugh during development, you can also see random "epic" graphs which are basically problems that took a long time: random epic graph.

Individuals can see the graphs of their own work as they go, and the graphs appear on the done page. My hope is that the graphs are just kind of fun to look at, giving a sense of iteration and gradual progress. Of course the progress is basically made of quite a lot of failure, punctuated with occasional success.

See About Progress Graphs for more info.

The graphs can also suggest to teachers which students might be cheating, since the graph of just pasting in the solution doesn't look anything like someone actually doing the work. Of course the students can get around that with effort, but the graphs do raise the cost of doing the wrong thing. At Stanford, I make code-writing exams that look very similar to the homeworks, and an F on the exam gets an F in the class automatically, so there's a clear incentive to make an honest effort on the homeworks, using them to learn the material.


  1. Hello, it's fun, but can be even more fun if I could see the time I spend in the problem.

    I want to look my time in each problem and say "oh! sh*t, I'm so slow?!" xD

    (Sorry about my english) D:

  2. Hey, I have a question. I have been having tons of fun going through the python problems, but there is an issue. In "Python > String-2 > xyz_there", I get all passing except in the "other tests" category. How am I supposed to debug code for unknown test cases? :D maybe I am missing something that should be apparent, or maybe there is a bug of some sort.