CSCI3270 Advanced Programming Laboratory — Fall 2018

Siu On CHAN Office hours Tuesday 2:30-4:30pm SHB 911

Teaching assistant



Thu 2:30-4:15pm SHB 123
Having solved 100 problems in programming contests or online judges
Online judges
Please sign up on Piazza
30% homeworks, 40% presentations, 30% finals (mini-competition)


This course is seminar-based. Lectures consist of students’ 45-min presentations on the following topics that frequently appear in programming contests. Students’ grades are based in part on their presentations. Presenters are also expected to suggest 1-2 related problems on online judges that will serve as exercises or homework problems.

Grading rubrics for presentations (when normalized to 100%):


Tentative schedule
Date Topic
1 Sep 6 Introduction & entrance exam (courtesy of Alex Tung)
2 Sep 13 Pengguang Chen: Dynamic programming
3 Sep 20 Ke Bi: Number theory
4 Sep 27 Cyrus Yiu: Data structures I
5 Oct 4 Percy Wong: Data structures II
6 Oct 11 Jeremy Chow: String algorithms
7 Oct 18 Ian Wong: Trees
8 Oct 25 Charlie Li: Square-root decomposition
9 Nov 1 Jason Yik: Fixed-parameter algorithms and searching
10 Nov 8 Alex Tung: Random walks
Anson Ho: Fast Fourier Transform (Part I)
Nov 15 Congregation for conferment of degrees
11 Nov 22 Janice Chen: Combinatorial game theory
Zuoyang Wang: Numerical algorithms
12 Nov 29 Qingyuan Liu: Computational geometry
Anson Ho: Fast Fourier Transform (Part II)
Dec 19 Final exam (mini competition; 6pm-10pm, venue: 924B)


There will be 8-10 homeworks. Solve assigned problems at the online judges above and submit your programs (together with your ID/handle on the corresponding online judge) to the TA by the deadline. Homeworks are typically released on Thursday and will be due at 23:59 the next Wednesday.