||This article has been nominated to be checked for its neutrality. (December 2014)|
SPOJ (Sphere Online Judge) is an online judge system with over 200,000 registered users and over 20000 problems. The solution to problems can be submitted in over 40 languages. SPOJ has a rapidly growing problem set/tasks available for practice 24 hours/day, including many original tasks prepared by the community of expert problem setters associated with the project. SPOJ allows advanced users to organize contests under their own rules and problems. It also includes a forum where programmers can discuss how they can solve a particular problem.
This system was originally created to apply an online judge in the teaching of students. It basically focused on the students and lecturers of universities and members of a wider programming community, interested in algorithms and programming contests.
It aimed at different users for different purposes such as: 
- For young people and beginner programmers to take a shine to algorithms.
- The students of universities are given a chance to do their homework, honestly, thoroughly and without cheating.
- ACM contest pros can solve tasks without being cramped by the restraints of too few programming languages or an inconvenient user interface.
- Enthusiasts of functional or object oriented programming can solve contest problems in their favorite language.
- Any persons willing to share an interesting task with the rest of the SPOJ community can do so nearly automatically (one mail to the admins requesting problem-setter's privileges is enough),
- Any person, wishing to organize a programming contest, with nearly any rules they may decide upon, may do so at any time they choose, without the help of system admins.
The archived problems in spoj are divided in 5 categories: 
- Classical: These are binary scored problems. Either Accepted or Wrong answer.
- Challenge: These allow users to submit worse or better solutions. There is not definite answers to a particular problem.
- Partial: These are like challenge problems but for educational purpose.
- Tutorial: These are like classical problems but easier or with generally known algorithm and for educational purpose
- Riddle: These are problems which contains puzzles.
- Pyramid (Intel Pentium III 733 MHz): It consists of old solid Pentium III machines that are serving SPOJ since its very beginning in 2004. These machines are slow compared to other judge. On this cluster memory limit for submissions is 256 MB.
- Cube (Intel Pentium G860 3 GHz): This new cluster consists of modern and fast Intel Pentium G860 CPUs. On Cube your submissions will run from 30 to 50 times faster than on Pyramid so you can expect that if you test your solution at home then it will have similar execution time on SPOJ. On this cluster memory limit for submissions is 1536 MB.
The scores are given based on the category in which problems are divided. 
- Classical: The score for one problem is points.
- Challenge: The score has two criteria as follows:
- for a top score in any challenge: 3 points,
- for any lower score in a challenge: (user's score relative to the top score) points.
- Partial: 0 points
- Tutorial: 0 points
- Riddle: 0 points
The formulae used for calculating the scores are currently evolving
SPOJ supports about 40 languages in which the users can submit their solutions. They are:
- Google Code Jam
- ACM International Collegiate Programming Contest (ICPC)
- UVa Online Judge
- Project Euler