7/30/2019 programminh
1/17
Nurturing Future Programmers
Steven & Felix HalimSchool of Computing,
National University of Singapore
7/30/2019 programminh
2/17
Training ACM ICPC Teams
in your University
Extracurricular Activity
?
Seniors train juniors
Or students learn on their own
Minimal faculty involvement
Variable results
No incentive other than self glory
Seniors attract few juniors only
Perhaps lack of continuity
Formalized as Module
?
Taught by faculty member(s)
Plus qualified teaching assistants
(e.g. ex-world finalist)
All students know lower bound
knowledge to do well in contests
Clear curriculum
Students get University grades
Attract bigger pool of students
Continuity of programming teams
Top & still eligible studentsusually do not share (all)
secrets to their juniors
I hope most of
us here are inthis category
7/30/2019 programminh
3/17
7/30/2019 programminh
4/17
CS3233 Format
CS3233
Competitive Programming
Special Class @ National University of Singapore (NUS)
For students with interest in problem solving Small group of ~
7/30/2019 programminh
5/17
GREEDY
DYNAMIC PROGRAMMING
COMPLETE SEARCH DIVIDE & CONQUER
PLANE SWEEP
GRAPH
MATHEMATICS
BIOINFORMATICS
COMP. GEOMETRY
DATA STRUCTURES LIBRARIES
Suffix Tree/Array
DFS BFS TopoSort Kruskal Bellman Ford Dijkstra Floyd Warshall
Network Flow++ Graph Theory
Backtracking Binary Search
Top-Down/Bottom-Up
Number Theory Big Integer Modulo Arithmetic
String Alignment String Matching
Predicate Tests Convex Hull Closest Pair
Array/Vector/Stack/Queue Map/Set/Priority_Queue
Graph Data Structures Union-Find Disjoint Sets Segment Tree
Space Saving On Tree Speed UpStates Formulation
Hungarian Edmonds etc
Bisection Method
etc
Customize-able for IOI training
by omitting non IOI materials
etc
etc
etc
etc
Tarjans
7/30/2019 programminh
6/17
CS3233 Competition
Teaching methodology:
Lectures + COMPETITION! Many local contests throughout the 13 weeks in semester
7/30/2019 programminh
7/17
CS3233 Benefits (1)
Benefits for Students:
Gain more knowledge
At least the lower bound problem solving knowledge
Get sparring partners Training alone is usually not fun
Get an official grade
Not just an Extracurricular Activity
More well prepared for ICPCs (and IOIs) Better ranking
7/30/2019 programminh
8/17
CS3233 Benefits (2)
Benefits for University:
Can spot/attract juniors with talents
Thus creating wider pool of potential students
Who knows and well versed in contest materials tested in ICPC Coach has good headache
More than just 3 students can compete to be in the 1st team
Higher ranked teams
Better reputation
7/30/2019 programminh
9/17
CS3233 Challenges
1. Manpower
Instructor?
Teaching assistants?
2. Students
How to attract top students? Unbalanced class?
3. Assessment
How to prepare original + high qualityprogramming contest problems for assessment?
4. Course Materials
Are available ds/algo text books sufficient?
How about programming contest specific books?
7/30/2019 programminh
10/17
CS3233 Our Way (1)
1. Finding Appropriate Manpower
We (NUS) are simply lucky
We have few ex-world finalists coming to NUS in 2008
But still, regeneration is very important!
Invite guest lecturer for topics that we are not good at
2. Attracting Students
Advertise the module University-wide each AY
Offer them chance to join ICPC
Unbalanced Class
Set contest problems of varying difficulties
7/30/2019 programminh
11/17
CS3233 Our Way (2)
3. Issues of creating new/original
problems for contests
Create some by yourselves
Rephrase some existing problems Hire appropriate TAs (ex-world finalists)
Set this homework: Be a problem setter
7/30/2019 programminh
12/17
CS3233 Our Way (3)
4. Course materials issue
There are not many programming
contest textbooks out there
Textbook has difficulty in keeping pacewith novelties and difficulties of
recent ICPC problem sets
Thus, we also train using Internet tools
The next few slides show some examples
In Chinese
2003,2008,2009
2006, mostly from my
old website, outdated
If you know any other books,please let me know
2003
Updated soon?
7/30/2019 programminh
13/17
Information & Communications Technology (ICT) Tools
UVa Online Judge
ACM ICPC Live Archive
Felixs Hunting UVa Problems Plus Many Other Scripts
Stevens Methods to Solve
Other peoples tools: Marks UVaToolkit
Joses Mooshak (U Porto)
TopCoder,
and many others
7/30/2019 programminh
14/17
We are writing a book!
Having Said That
We (me & my brother Felix Halim)
are currently writing a book!!
Tentative Title:
Competitive Programming:
Increasing the lower bound knowledge in programming contests
Target audience:
Grey/Green/Blue
coders borrowingthe TopCoder
rating style
7/30/2019 programminh
15/17
Our Books Vision
Range of ACM ICPC
regional contestants
Range of ACM ICPC
world final contestants
2010
2012 and beyond?
Our (and)
other books
published
7/30/2019 programminh
16/17
CS3233 Results
Before August 2008 (no CS3233):
Hon Mention ICPC WF @ 2005
Did not qualify for WF 2006
Also did not qualify for WF 2007
Still did not qualify for WF 2008
After August 2008 (CS3233 Re-Started):
Hon Mention @ Stockholm, Sweden ICPC WF 2009
3rd place @ Kanpur Regional 2008
Singapore team for IOI09 @ Plovdiv Bulgaria: 2 silvers and 2 bronzes ? in ICPC World Final @ Harbin, China, 2010 (This Week)
2nd place @ Phuket Regional 2009
Future: ?
7/30/2019 programminh
17/17