Saturday, December 06, 2008

I had a number of responses to people from my programming project post: I thought I'd post the responses here, rather than in comment fields.

* On rolling your own: I'm intrigued by the many suggestions to use Sphere Online. I've heard of topcoder and Project Euler before, and decided not to use topcoder for ease of pedagogy (I wanted problems where the key algorithmic idea was "preidentified", so I could give a DP problem in the homework on dynamic programming). I was also not convinced that topcoder focused on the algorithmic aspects of the problem as opposed to raw speed: the fact that it was set up as a time limited competition by default was also a pain in the neck.

* On copying: this is an unsolvable problem IMO. Since I was choosing problems from the pre-canned list at the ACM server, I was at the mercy of the online solution providers. Judging by the results, my students are either very honest, or don't know how to find these sites :). I've spied on the related forums, and they tend to be somewhat militaristic about not letting people post code directly, although hints are always supplied. As an aside, for theory problems this is a royal pain: I've had to mask things in various ways to prevent a google search, and I have my own way of creating problems that I'm happy to reveal to someone who asks me directly :).

* on what to do for geometry: the problem is not the lack of a good code base. In fact it's the reverse problem. CGAL for example has many quality solutions already pre-coded, so I can't even ask students to use CGAL as a base framework. Given the limited time I have before semester starts, its debatable how much coding and test generation I can do on my own, so stay tuned...


  1. Oh, if you don't care about copying, then TopCoder is actually a *better* solution. The problems do focus on the algorithmic aspect, and while their "live" contests are set up to be time-limited, all problems they ever used are available to try at any time. They even have the key algorithmic ideas preidentified in the problem archive: see e.g. here to see only Geometry problems.

    The good thing, from the students' perspective, is that if your solution is wrong, the system will show you a test case for which it fails, and also there are good solutions by other coders which you can compare your solution with.

    The down side is that it makes it very easy to just take someone else's code and not do any work at all, and that one has to register on TopCoder first...

  2. If you do come up with nice problems you might want to consider submitting them here:


Disqus for The Geomblog