Saturday, January 15, 2011

One Problem A Day


After making you familiar with online judges (spoj, topcoder and uva), it is a blog's turn. It is the first blog I  introduce. (To be honest, it is my inspiration for this blog.)

Site name is really meaningful but let me go over the blog.
It is a blog created by Sabbir Yousuf Sanny. He solves one problem a day, describes his solution and shares the solution code.  He started with some general problems taken from Uva, TopCoder and SPOJ. He continued with TopCoder SRMs and SWERC - Southwestern European Regional Programming Contest 2010 problems. Although he can not share problems on daily basis anymore, it will be very helpful to follow.

Especially after trying to solve the problem, you will enjoy having a look at his solution. He writes everything about the problem including alternative solutions, difficulty level, the detailed algorithm, his first approach etc.

At first look, I decided to be a follower of this blog. What about you?

One Problem A Day
http://one-problem-a-day.blogspot.com/

Friday, January 14, 2011

Uva Online Judge


Another Online Judge.

Why are they important?
I think, experience and practice is really important in this area of science as it is in all the rest.
Vasyl Biletsky, gold prize winner, ACM World Finals 2009, thinks so. When I asked him about the most important part of his education, he replied immediately: "Practice, Start with easy questions and continue with harder ones."

Universidad de Valladolid is the owner. Uva Online Judge is different from the other judges because it provides problem sets in groups:

Problem Set Volumes 
Random problems. Total submissions, succesful submissions, total users, successful users statistics for each problem can be seen.

Contest Volumes 
Problems from different contests. Same statistical information is shown. Best place to prepare for the contest that you want to join.

Prominent Problemsetters
Problems set by 23 diferent problemsetters. If you are a fan of one of them, you'll love it.

ACM-ICPC World Finals
1990-2000 ACM ICPC World Finals Problems.

Programming Challenges (Skiena&Revilla)
Challenges. 14 Chapters.

AOAPC I: Beginning Algorithms Contests(Rujia Lui) 
If you are a newbie, then here is for you. Volumes are:
Volume 0. Getting Started
Volume 1. Elementary Problem Solving
Volume 2. Data Structures
Volume 3. Brute Force
Volume 4. Algorithm Design
Volume 5. Dynamic Programming
Volume 6. Mathematical Concepts and Methods
 Volume 7. Graph Algorithms and Implementation Techniques

Competitive Programming: Increasing the Lower Bound of Programming Contests (Steven & Felix Halim) 
Chapter 1. Introduction
Chapter 2. Data Structures and Libraries
Chapter 3. Problem Solving Paradigms
Chapter 4. Graph
Chapter 5. Mathematics
Chapter 6. String Processing
Chapter 7. (Computational) Geometry

In their own words:

"Here you will find hundreds of problems. They are like the ones used during programming contests, and are available in HTML and PDF formats. You can submit your sources in a variety of languages, trying to solve any of the problems available in our database."

Uva Online Judge
http://uva.onlinejudge.org/

Wednesday, January 12, 2011

TC - TopCoder


TopCoder is another nice and really fascinating website founded by Jack Hughes (founder of Topcoder, Inc.). TopCoder.com is a contest site. You can compete in several different competetions such as Algorithms, Design, Development and two other called "marathon matches" and "studio" competitions. In these competitions, you can earn money. You can even make a living from this site.
Topcoder is famous for their SRMs. Single Round Matches are held every week. You are given 75 minutes to solve 3 questions according to your level. After solving, you can have a look at other solutions submitted. If you wish, you provide some test cases, If the code fails for your test case, you gain extra points. Finally, system tests the solutions. According to the points you collect from SRMs, you are classified as a Red, Green, Yellow, .. member.
Topcoder also have partners that desire to hire talented people from this site. (Facebook, Paypal, Alcatel, Nasa etc.). They care about SRMs the most. If you do well, you can get hired by facebook!
According to rankings change, you can be selected as the Coder of The Month. It is an honor to be selected.

One final note: There are useful algorithm tutorials submitted by members. They help a lot!

To learn, have fun and practice:
Topcoder
http://www.topcoder.com

Tuesday, January 11, 2011

SPOJ - Sphere Online Judge



First of all, an Online Judge is a system that tests your programs with different inputs and checks whether the outputs of your program are true. Online Judges generally used for programming contests, however you can use some of them for practice.
SPOJ is a popular Online Judge System. It has ~90000 registered users, ~8000 problems and you can use ~40 programming languages. You can discuss the algorithms below the problem-texts and in the forum with other members.
I am sure if you are interested in algorithmic problem solving, then you will enjoy it!

Supported Languages:

C++ C++ (g++ 4.0.0-8)
C C (gcc 4.3.2)
PAS Pascal (fpc 2.2.4)
C++ C++ (g++ 4.3.2)
JAVA Java (JavaSE 6)
PYTH Python (python 2.5)
C99 C99 strict (gcc 4.3.2)
PERL Perl (perl 5.12.1)
C# C# (gmcs 2.0.1)
RUBY Ruby (ruby 1.9.0)
HASK Haskell (ghc 6.10.4)
BF Brainf**k (bff 1.0.3.1)
PYTH Python 3 (python 3.1.2)
PAS Pascal (gpc 20070904)
PHP PHP (php 5.2.6)
CAML Ocaml (ocamlopt 3.10.2)
ADA ADA 95 (gnat 4.3.2)
BASH Bash (bash-4.0.37)
LISP Common Lisp (clisp 2.44.1)
LISP Common Lisp (sbcl 1.0.18)
D D (gdc 4.1.3)
LUA Lua (luac 5.1.3)
ASM Assembler (nasm 2.03.01)
SCM Scheme (guile 1.8.5)
JAR JAR (JavaSE 6)
FORT Fortran 95 (gfortran 4.3.2)
GO Go (gc 2010-07-14)
PIKE Pike (pike 7.6.112)
ERL Erlang (erl 5.6.3)
SCAL Scala (scala 2.8.0)
PRLG Prolog (swipl 5.6.58)
WSPC Whitespace (wspace 0.3)
ICON Icon (iconc 9.4.3)
TCL Tcl (tclsh 8.5.3)
F# F# (fsharp 2.0.0)
NICE Nice (nicec 0.9.6)
NEM Nemerle (ncc 0.9.3)
SCM Scheme (stalin 0.11)
ICK Intercal (ick 0.28-4)
ST Smalltalk (gst 3.0.3)
JS JavaScript (rhino 1.7R1-2)
CLOJ Clojure (clojure 1.1.0)
CLPS Clips (clips 6.24)
PERL

44 programming languages.

BTW, you can not use some languages for some problems.

SPOJ - Sphere Online Judge
http://www.spoj.pl/

About This Blog

In this blog, I want to share websites and blogs about computer science -especially algorithms- that will help you learn and practice. I hope, you enjoy.