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.

Using WordPress as our base content management system has been extremely helpful. The fact that it is open-source and fully hackable has helped in many ways, since you can fully debug things at any level you choose, and see how the internals are put together to learn from them. I’ve mostly found that when we want to add something new there is a built-in hook for it, and even if not we often can exploit the fact that JavaScript is transparent to permit new code to fix old code in arbitrary ways (for example, to fix a spacing bug in the Visual and Text editors).

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.


No Responses Yet to “CS Circles is Open-Source!”

  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: