Steven Halim · comp.nus.edu.sg

Past classes more than one week ago are hidden so that we can focus on the current and future classes, but you can restore them by clicking 'Show Past' button above -06/-05/
-04/-03/
-02/-01 As many pages from CP4 Book 1+2; at least from preface up to the end of Chapter 4 (the entire Book 1 basically); Note: For the actual semester, you must have a(n electronic) copy of CP4 (both book 1+2) to go through this course successfully; if you don't already have both books, go to lulu.com to get a (legit) copy. Lots of preparatory work especially for those who do not have competitive programming background yet

Optional Kattis set #00 starts on Monday, 06 Jan 2025, 21:00 SGT

No contest yet; But if you are not a multi-lingual programmer yet, pick up both C++17 (main), Python3 (secondary), and Java17 (tertiary) by yourself during holiday time At home: Set up a (free) Codeforces account, then use Dec25+early Jan26 holiday (~3-4 weeks) to get ≥1400 rating in CodeForces by Wed, 31 Dec 25, 23:59 (or MUCH earlier) to ensure course acceptance.

Optional 1: Set up a (free) Kattis (open) account to get ≥ 200.0 points (~100 AC of ~2 pointer problems, see first ~2 pages sorted based on Kattis difficulty ratings :O or Prof Halim's Kattis classification)

Optional 2: Set up a (free) LeetCode account to get ≥ 100 accepted (Easy/Medium) problems (see Prof Halim's LeetCode classification)

Optional 3: Familiarize yourself with Ubuntu 22 LTS with GNOME desktop

01
12 Jan Preface to Chapter 1 (all pages) plus simple Ad Hoc problems in Chapter 2+3+9

Optional Kattis set #00 due

The official Kattis set #01 starts

Mock
Ad Hoc
(after first lecture)
Let's Talk CP

Introduction; Brief Course Admins; Focus on delivering some "Wow Moments"; A Bit of C++17, Python3, Java17, Mock/Preview Contest (not graded, but has high standard)

02
19 Jan Chapter 2; Focus on Section 2.2 and 2.4.3
Read the rest of Chapter 2 by yourself
Solve Mock 01 B/C
HW01 due
Kattis set #01 due

and Kattis set #02 starts (we repeat this pattern until Set #12)

Mini 01
O(n1.5) Algorithms
Money Contest
funded by
Presto Labs

Be A Librarian

Mastery of Libraries (C++ STL, Python Standard Library, & Java API); Focus on Bit Manipulation and Binary Indexed (Fenwick) vs Segment Tree
VisuAlgo: bitmask, ufds, fenwicktree (optional), and segmenttree

Decision to Drop CS3233/R without penalty by Fri, 26 Jan 26 (this time you can self-drop, but do inform Prof Halim first; hopefully we have 'no-one-drop-by-week-02' whenever possible)

03
26 Jan Chapter 3, 4, 8, and 9;
Focus on Section 3.1-2, 4.2.3, 4.4.2-3, 8.1-8.2, 8.6 (some NP-hard/complete problems with complete search solution), 9.20, and 9.21;
Read Section 3.3 (DnC) too, especially about BSTA
Solve Mini 01 B/C
HW02 due
Kattis set #02 due
Mini 02
Libraries
Money Contest
funded by
NUS ICPC
endowment

(Binary) Searching for Answers

Iterative Techniques (the fancier ones); Recursive Backtracking (bitmask-based, reverse thinking, data compression, etc); State-Space Search (harder form of SSSP, Graph modeling + BFS/Dijkstra's) with Meet in the Middle (Bidirectional Search); and finally, what if we can 'guess' the answer in Binary Search fashion?

VisuAlgo: bitmask, recursion
04
02 Feb Chapter 3, 4, 5, 6, 8, and 9;
Focus on Section 3.5, 4.6.1, 5.4, 5.5, 5.8, 6.3, 8.3, 8.5, 8.6 (some NP-hard/complete problems with DP solution), 9.3, 9.7, and 9.29
Read Section 3.4 (Greedy) too
HW03 due
Solve Mini 02 B/C
Kattis set #03 due
Mini 03
Complete/Binary Search
Money Contest
donated by
HRT

The Art of Stenography (or Being Greedy)

Dynamic Programming; "Instant" review of CS3230/CS4234 DP Materials; Focus on relationship between DP and DAG; Discussion of a few non-classic DP examples; Formulating non trivial DP states + transitions; DP vs greedy algorithm comparisons on some problems

VisuAlgo: bitmask, recursion

HRT class visit
Mon, 02 Feb 2026, dinner provided from 4.15-5.25pm
Assemble at COM1-Basement by 4.15pm (FCFS)

05
09 Feb Chapter 8 and 9; Focus on Section 8.4, 9.24, and 9.25; Optional: Read the Max-Flow material of CS4234 HW04 due
Solve Mini 03 B/C
Kattis set #04 due
Mini 04
DP or Greedy
Money Contest
Jane Street

How to Prevent Flood?

Quick overview of Network Flow; Quick review of Ford-Fulkerson Max Flow algorithm variants: Edmonds-Karp and especially Dinic's (short comparison with Push-Relabel);

Focus on Flow Graph Modeling skill and applications
VisuAlgo: maxflow

Jane Street class visit (different schedule for 2026)
Mon, 09 Feb 2026, mini contest at 5.05-6.20pm + very short debrief
Dinner and talk by Jane Street representatives: 6.30-7.30pm (until ends)
We will extend the class a bit to 9.15pm tonight
Prof Halim disappeared due to his bereavement leave
Recording link will be posted in class Discord by Fri, 20 Feb
06
16 Feb
No class HW05 due (free 1.5%)
Solve Mini 04 B/C
Kattis set #05 due
Clear all before CNY 26
No class VisuAlgo (for self-review of CS2040/C/S material): heap, hashtable, bst, graphds, dfsbfs, sssp, ufds, mst

This AY 2025/26, CNY affect CS3233
CNY Eve (Reunion Dinner): 16 Feb 2026 PM (Mon) - so, NO CS3233 CLASS
Day 1: 17 Feb 2026 (Tue)
Day 2: 18 Feb 2026 (Wed)

NOI 2026 Competition is this Sat, 21 Feb 2026
(online qualification contest, onsite for potential EGOI26 participants)

Recess
23 Feb No class
Kattis set #06,
(two weeks KS)
No class
Although we are not supposed to have any face to face activity this week, nobody prevents you to keep solving Kattis problems (KS06 or more) 'by yourself' (or as a team of three) :). Again, peruse Prof Halim's classification here, this time probably aiming for the 3-4+ pointer problems...

Decision to Drop CS3233/R with 'W' grade by Sun, 01 Mar 26

Discover Citadel & Citadel Securities (Singapore)
Fri, 27 Feb 2026 (by invitation only — all vacancies are filled (Mon, 23 Feb 2026))

07
02 Mar Chapter 4 and 8; Focus on Section 4.6 (Bipartite Graph) and 8.5;
Then read Section 9.26, 9.27, 9.28, 9.29;
We postpone Graph Matching in special cases of NP-hard problems (8.6) to Week 09

Prof Halim will attend the 2026 ICPC Asia Pacific Championship, Taoyuan, Taiwan from Thu, 05 Mar morning to Mon, 09 Mar early morning (skipping excursion). HW06 due
Kattis set #06 due
Mini 05
Graph1: Network Flow
Money Contest
donated by
Citadel | Citadel Securities

(PS: We had done midterm team contest formation outside class time via class Discord)

Career Development Network, see Hall of Fame

Quick overview of Graph Matching; Unweighted MCBM; Greedy Bipartite Matching, Focus on (Bipartite) Graph Modeling skill and applications; Quick Discussion on Weighted MCBM (Kuhn-Munkres/Hungarian algorithm); Review of DP bitmask for Graph Matching (any variant, but on small graph) -- (Edmonds' Matching algorithm shelved)
VisuAlgo: maxflow, matching

08
09 Mar Prof Halim returns
from the 2026 ICPC Asia Pacific Championship, Taoyuan, Taiwan on early morning of 09 Mar after witnessing another historical moment: NUS team 'Strong Zero' is the 2026 ICPC Asia Pacific Champion.

Re-read Week 01-06 reading materials and CS1020/2040/C/S stuffs;
Re-read "standard" CS2040/C/S graph topics by yourself (Section 4.1-4.6)
No written HW
Solve Mini 05 B/C
Kattis set #07 due
Week01-06 + CS2040/C/S
5.05-9.35pm (4.5h)
Money Contest
funded by
NUS ICPC endowment

No lecture, we do Midterm Team Contest

Midterm Team Contest (recent 3 AYs only):

Midterm Team Contest (27 Feb 23)
Midterm Team Contest (04 Mar 24)
Midterm Team Contest (03 Mar 25)

Our Midterm Team Contest (09 Mar 26) is on Kattis
Starts at 5.05pm SGT, ends at 9.35pm SGT (4.5 hours)

NOI 2026 Competition is this Sat, 14 Mar 2026
(onsite final contest; one week earlier than usual
as Sat, 21 Mar 2026 is Hari Raya Puasa PH)

09
16 Mar Chapter 8; Focus on the Section 8.6; Optional: Read the first 1/3 of CS4234 material
HW07 due
Kattis set #08 due

(upsolve some non AC Midterm Contest problems by yourself, optional)

Mini 06
Graph2: Matching
Money Contest
donated by
NUS ICPC endowment

Coping with (NP-)hard Problems

Summary of 2/3 of CS4234 - Optimisation Algorithms (except local search) in CS3233 style.

VisuAlgo: mvc, steinertree, tsp

Sat 21 Mar 2026 is
Hari Raya Puasa Public Holiday

10
23 Mar Chapter 5 and 9; Focus on Section 5.3-5.6;
Read the rest of Chapter 5 by yourself;
Plus Section 9.12, 9.13, and 9.14
HW08 due
Solve Mini 06 B/C
Kattis set #09 due
Mini 07
(NP-)hard Problems
Money Contest
donated by
Virtu Financial

NUMB3RS

Mathematics overview with a movie; Focus on Python/Java Big Integer, Combinatorics, Number Theory (Extended Euclid, Modular Inverse, Fermat's little theorem, Chinese Remainder Theorem), and a bit of Probability
VisuAlgo: cyclefinding

Virtu Financial class visit
Mon, 23 Mar 2026, mini contest at 5.05-6.20pm + very short debrief
Dinner and talk by Virtu Financial representatives: 6.30-7.30pm
[short 15m break]
Normal lecture on Mathematics: 7.45-9.15pm

Also, NUS Online Teaching Feedback opens this Fri
You can already start declaring your vote about this course

11
30 Mar Chapter 6; Focus on Section 6.4, 6.5, and 6.6;
Read the rest of Chapter 6 by yourself
HW09 due
Solve Mini 07 B/C
Kattis set #10 due
Mini 08
Mathematics
Money Contest
donated by
Jump Trading

(we will take a class photo #1)

A Glance at Bioinformatics

String Processing; Focus on Suffix Trie, Suffix Tree, and Suffix Array; a bit of String Hashing
VisuAlgo: suffixtree, suffixarray

Jump Trading class visit (different schedule for 2026)
Mon, 30 Mar 2026, mini contest at 5.05-6.20pm + very short debrief
Dinner and talk by Jump Trading representatives: 6.30-7.30pm
[short 15m break]
Normal lecture on String Processing: 7.45-9.15pm

Thu, 02 Apr 2026 is chosen as
NUS well-being day S2 AY 2025/25
This is to link with Good Friday and Easter Sunday long weekend

12
06 Apr Chapter 7; Focus on Section 7.2, 7.3, 9.5;
Also Section 8.7 (problem decomposition)
Read the rest of Chapter 7 by yourself
HW10 due
Solve Mini 08 B/C
Kattis set #11 due
Mini 09
String
Money Contest
donated by
Optiver

(final team contest formation are finalised via class Discord discussion)
(we will then do a no-longer-optional CS3233 Final Online Quiz)

Inside Video Games

(Computational) Geometry; Focus on Algorithms on Points, Lines, a bit of 3D Geometry, and Polygon, Art Gallery Problem
VisuAlgo: polygon, convexhull

(we will run a short last lecture to close the course and will extend beyond 9pm)
The Last Lecture


Optiver class visit
Mon, 06 Apr 2026, dinner provided from 4.30-5.25pm
Last Mini Contest 09 + Debrief 5.30-7.00pm
Talk by Optiver representatives: 7.00-7.30pm
[short 15m break]
Last lecture on Computational Geometry + Finale: 7.45-9.15pm
13
13 Apr The entire CP4 book 1+2 and beyond

Do not forget to give your official
NUS Online Teaching Feedback
after final team contest is over

Optional "Be a problem author" HW
Solve Mini 09 B/C
Kattis set #12 due
Week01-12 stuffs
5.00-10.00pm (5h)
Money Contest
funded by
NUS ICPC endowment

Join NUS ICPC team selection
(~Late August 2026?; contact Dr Adi Yoga)

No lecture, we do Final Team Contest
VisuAlgo (for self-review): maxflow, matching, mvc, steinertree, tsp, cyclefinding, suffixtree, suffixarray, polygon, convexhull

Final Team Contest (recent 3 AYs only):

Final Team Contest (10 Apr 23)
Final Team Contest (15 Apr 24)
Final Team Contest (14 Apr 25)

Our Final Team Contest (13 Apr 26) is on Kattis
Starts at 5.00pm SGT, ends at 10.00pm SGT (5 hours)

No final assessment, go and save your other courses after tonight

Read the original on comp.nus.edu.sg ↗