dtutor.org: a call to action

Ivan Kazmenko gassa at mail.ru
Sun May 5 18:57:31 PDT 2013


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.


More information about the Digitalmars-d mailing list