CS3233 Competitive Programming

Course Information

Instructor: Andrew Lim (S16 #08-05, 874-6891, alim)

Lab Assistants:
Fu Zhao Hui (fuzhaohu)
Andy Kurnia (andykurn)

Course Web: www.comp.nus.edu.sg/~cs3233

When and Where (Tentative)
Lecture: Saturday 0900 - 1100 hrs in S16 2-02 (Tutorial Room 2)
Labs/Tutorial: Saturday 1100 - 1300 hrs
Exam: There will be no exam.

Below are some recommendations:

Introduction to Algorithms.
Thomas H. Cormen, Charles E. Leiserson, and Ronald L.Rivest.
The MIT Press / McGraw-Hill, 1990.

The Practice of Programming
Brian W. Kernighan, Rob Pike. Addison-Wesley, 1999.

The Algorithm Design Manual.
Steven S. Skiena. Springer-Verlag, 1998.

Robert Sedgewick. Addison-Wesley. Many versions.


Target Students:

Pre-requisites: CS1102 or experience in NOI/IOI related activities

How does CS3233 differ from CS3230 or CS6204?

How does CS3233 differ from the rest of the courses in SoC?

Grading (Tentative)*

Programming Tests [PT]
Weekly Short Programming Tests (1-2 hrs) and 2 Long Programming Contests (3-5 hrs)
50 points
Graded Homework [GH]
(Written and Programming Assignments)
50 points
Score = PT*GH 2500 points



  • Data Structures and Sorting
  • Greedy Method
  • Divide and Conquer
  • Dynamic Programming
  • Backtracking
  • Branch and Bound
  • Graph Algorithms
  • Heuristic Methods
  • NP-Completeness - Recognizing that a problem is NP-Complete
  • Number Theoretic Problems
  • Combinatorial Problems
  • Graph Problems
  • Geometry Problems
  • Set and String problems


A subset of this course is taken by our International Olympiad in Informatics XI representatives. See here for details.