CS Circles is Open-Source!
Computer Science Circles is now fully open-source! Over the summer, we put the backend code up on GitHub and provided links to the lesson and exercise definitions on the website. A SIGCSE Special Projects grant made this work possible, for which we’re very grateful.
One thing we learned as a result is that open-sourcing has surprising applications. We found that there is an educational service running in a correctional facility that wanted to run CS Circles but could not provide internet access to their users. It is now up and running!
Over the summer we also integrated the work of George Okeowo to provide more meaningful hints for the most common error messages, we upgraded the awesome CodeMirror and OnlinePythonTutor libraries, and we integrated better management tools for teachers and administrators.
WordPress also “just works” for a good fraction of what we need it to do, for example it was able to export and import page content without any hassles (except it had a problem with backslashes! but happily a patch for this is making its way through the bug trac system).
Where is WordPress flaky? It doesn’t allow square brackets in the shortcodes that it uses to extend HTML functionality, so we had to write sweetcodes to make up for it. It is sort of a pain to write admin pages since the API seems to have changed several times and all of the versions are mangled together in the documentation. And it uses PHP, the fractal of bad design.
It is worth the flakiness though, to get things like the awesome polylang plugin that seamlessly let us work with translators to publish the site in French and German. I would not have wanted to write translation code by myself!
If you are interested in seeing how CS Circles works, writing content, or running your own version, visit
Now that this is launched, I will be getting back into Java-mode as I start to coordinate, teach, and develop software for the introductory programming course here at Princeton. The Java visualizer is still up and running but my next goal is to create online fill-in-the blank exercises that mirror paper handouts currently in use.
Filed under: CS Circles, programming | Leave a Comment