On Monday, 6 May 2013 at 00:47:22 UTC, Tyro[17] wrote:
You mean algorithmic contests like ACM ICPC, right? There are a few online judges supporting the D programming language which already have all other necessary infrastructure (problem archive, online judge and
server itself, etc).

Yes. So is your suggestion that I leave this sort of thing to already established sites that caters specifically to these sort of contests? I would actually love to do that but my experience is sites (shootouts etc...) tend to drop coverage of D on a whim.

From this perspective, yes: if you do build an online judge, supporting D as a contest language will likely be your least concern.

First, there's Codeforces (http://codeforces.com). There are already hundreds of algorithmic problems in the problem archive which can be solved individually or by participating in "virtual" past contests. New contests (5 problems, 2 hour duration) are held, like, weekly. The online judge supports a number of programming languages. They recently upgraded the D compiler to the current DMD 2.062 (Windows version).

Then there's Sphere Online Judge (http://spoj.pl). They support 48 programming languages, their D version is listed as GDC 4.1.3 which as I
understand is pretty old (D1?).

Or is outdated and becomes useless to our community.

Well, contacting the staff sometimes helps (at least with the former example of Codeforces).

And then there is a number of mathematical and/or algorithmic online contest sites where one runs the code locally on given inputs and
submits only the result.  Examples of these are Project Euler
(http://projecteuler.net) and Rosalind (http://rosalind.info). After you successfully solve a problem, you usually get access to a forum where people post and discuss their approaches in different programming
languages, trying to show the strengths of their tools.

ProjectEuler is very interesting but I haven't tried Rosalind so cannot comment there. The object of these sites however is not to teach programming (though programming is one method that can be used) but rather to uncover the solution to a given problem by whatever means necessary. I've seen solutions reached by simply loading data into Excel and performing some sorts and or inserting a couple of formulas. Not what I'm after.

Right, but that is the point which may be changed. For example, Rosalind is a platform for studying bioinformatics through problem solving. Each problem contains a motivational or educational part describing how the problem relates to this field of study. You are free to use any language, but some of the current problems favor Python 2. The reason is that there are mature libraries in that language, useful in bioinformatics. The consequence is that there are tutorial versions of some problems describing how to do the stuff with a particular library instead of re-inventing the wheel.

Likewise, one can establish an online judge with problems covering the most basic algorithms or programming techniques. If the goal is to teach and promote D in the process, each problem statement could contain a hint for a D construct one could use to solve it efficiently. Allowing other languages to be used (e.g. requiring only the answer but not the program as ProjectEuler does) could serve for the promotion part. This way, one could solve all the problems in some other language and still not learn D. However, the problem statements will introduce its basic concepts, and the problem solutions discussion (accessible right after you solve the problem) will allow to compare that other language to D, promoting the latter when it's worth it.

So, on second thought, an online judge dedicated to D could be a feasible goal.

Regarding programming contests, there's another flavor of them: instead of solving small math/algo problems in a limited time frame, the competitors can design or develop a small-ish software component and submit them for a formal review. The judging criteria should however be precise enough (i.e. carefully prepared by someone having a clear general picture). This could even turn into a successful business
model, the presentation at
http://bsr.london.edu/files/1357/who-needs-employees.pdf‎ seems to describe it in more detail. It may happen that a similar model could be adopted to some parts of D development, provided that some of the current developers will like the idea and be really willing to try it.

Now there is an idea I'm willing to support. This is the sort of contests I would actually like to promote on the site for professional programmers. But timed math/algo type contests are also necessary for those in academia to hone their skills. The hope is that college students will be able to demonstrate there D programming acumen in national/international contest sponsored by yours truly

Sure, TopCoder (the company which utilizes that business model) also runs algorithm contests alongside these design and development contests, and the number of participants in algorithm branch is much larger: the entry barrier is lower, the short time frame is comfortable, and it is generally more fun.

Still, this type of contests (component) would require a considerable effort to start.

-----

Ivan Kazmenko.

Reply via email to