share
Stack OverflowWhere can you find fun/educational programming challenges?
[+133] [17] tslocum
[2008-08-23 23:08:04]
[ acm-icpc ]
[ http://stackoverflow.com/questions/24692/where-can-you-find-fun-educational-programming-challenges ] [DELETED]

I've searched around for different challenge sites, and most of them seem to be geared towards difficulty in problem solving logically, rather than trying to use your language of choice to do something you haven't used it for. Their center is around mathematics rather than function design.

Some kind of point system for correctly solving challenges, or solving them the most efficient/smallest would be neat as well.

Listed sites

(8) Perhaps should now be community wiki? - Justin L.
the link to UVa Online Judge has changed to: uva.onlinejudge.org - Cornelius
I'd add coderbyte.com and fightcodegame.com to the list - Griffin
[+26] [2008-08-23 23:13:26] Bjorn Reppen [ACCEPTED]
1
[+17] [2010-03-17 17:00:17] Ryan Emerle

Here's my list:

[1] http://programmingpraxis.com/
[2] http://codekata.pragprog.com/2007/01/code_kata_backg.html#more
[3] http://www.topcoder.com/
[4] http://projecteuler.net/
[5] http://www.facebook.com/careers/puzzles.php
[6] http://www.codechef.com/
[7] http://www.spoj.pl/problems/classical/
[8] http://codegolf.com/
[9] http://uva.onlinejudge.org/
[10] http://acm.timus.ru/
[11] http://code.google.com/codejam/contest
[12] http://www.azspcs.net/
[13] http://codingbat.com/java
[14] http://codingbat.com/python
[15] http://www.pythonchallenge.com/
[16] http://rubyquiz.com/
[17] http://www.gowrikumar.com/c/index.html
[18] https://prof.ti.bfh.ch/hew1/informatik3/prolog/p-99/

2
[+11] [2008-08-24 01:16:40] Patrick Loz

Wow! UVa Online Judge has really changed their site... I may have to get back into their problems - their last site design didn't really make for a fun experience.

Sphere Online Judge [1] is another one.

USACO is for high school students but they have some fun problems with some surprising complexities, their main page is here [2], with the gateway to the problems here [3].

TopCoder, already mentioned is really good and can seriously have positive effects for your future employment.

Found another, but I've never used it: ACM-ICPC [4]

[1] http://www.spoj.pl/problems/classical/
[2] http://www.uwp.edu/sws/usaco/
[3] http://train.usaco.org/usacogate
[4] http://acmicpc-live-archive.uva.es/nuevoportal/

(1) I really like the Sphere site. The best part is that there is a forum where you can get a little help with a problem if you need it. - unclerojelio
3
[+6] [2008-08-23 23:11:30] Jonathan Rauch

Project Euler [1], from the site: "Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve."

[1] http://projecteuler.net/

4
[+6] [2008-09-19 11:57:20] Abhishek Mishra

My personal favorite is SPOJ, its very addicting, sometimes you can end up spending hours n hours solving problems, you never know when the alarm starts ringing to tell you that its good morning! Apart from that topcoder is the best if you wish to take programming as a sport!

Don't forget to checkout http://codegolf.com/

"Based on the original perl golf, Code Golf allows you to show off your code-fu by trying to solve coding problems using the least number of keystrokes.

You're not just limited to Perl either - PHP, Python and Ruby are all available too.

Challenges are always open, and your entries are automatically scored so you can start playing right away!"


5
[+5] [2008-08-23 23:14:50] popopome

Try these sites:


6
[+5] [2008-09-21 01:42:35] muthry

I belive you can have fun with "High School Programming League" at http://hs.spoj.pl/ it just has started.


7
[+5] [2009-08-08 05:46:45] aviraldg
8
[+3] [2008-08-23 23:14:34] Kamikaze Mercenary

Personally I find the UVa Online Judge to be quite fun. There is a huge list of "test" problems that you can attempt to solve in a variety of languages (Java, ANSI C, C++, PASCAL) and then submit your solution. There was a programming club at my university that practiced with these problems and ended up placing above the team from MIT in a university programming competition. Your submitted code is automatically executed and judged on a variety of things like execution time, correctness of output, etc. Here is the site for you to check it out: http://icpcres.ecs.baylor.edu/onlinejudge/index.php

I recommend starting with Volume 1, Problem 100 - The 3n + 1 Problem


The online judge doesn't like my solution to the "3n+1" problem. Back to bug hunting. - unclerojelio
9
[+3] [2008-08-24 01:31:50] jtyost2

I would also go through the history of problems for ACM's Programing Contest [1].

[1] http://cm2prod.baylor.edu/login.jsf

10
[+3] [2009-11-22 05:09:34] jack

RoseCode [1]

[1] http://javaist.com/rosecode

11
[+2] [2008-08-23 23:23:29] Henrik Gustafsson

I would like to recommend http://refactormycode.com/ as it is fun, educational and helps other people at the same time. Just grab some code and polish it until it shines :)


12
[+1] [2008-08-23 23:09:46] Remou
13
[+1] [2008-08-23 23:23:08] Matt Rogish

http://www.rubyquiz.com/ is no longer active, but if you're into ruby trying the 150 or so quizzes will certainly keep you occupied (and it's still going on, just on rubytalk).

Even if you're not a rubist, the solutions are very interesting; I always find it instructional by seeing how smart people solved nontrivial problems.


14
[+1] [2009-02-24 14:52:57] James Brooks

Not exactly what you asked for but I have used PLEAC [1]. Look at one of the tasks in one language and write it in another. It covers quite wide range of tasks but really could do with much better explanations.

[1] http://pleac.sourceforge.net/

15
[+1] [2010-02-24 16:22:22] middus

The Daily WTF's Bring Your Own Code [1] puzzles.

[1] http://thedailywtf.com/Series/Bring_Your_Own_Code.aspx

16
[+1] [2011-12-06 22:21:22] Annan

4clojure [1] is a very good list of challenges for people learning clojure.

[1] http://4clojure.com/

Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference. - NullUserException
17