Course Code  COMP4128 
Course Title  Programming Challenges 
Convenor  Raveen de Silva (r.desilva@unsw.edu.au) 
Admin  Raveen de Silva (r.desilva@unsw.edu.au) 
Classes 
Lectures
: Tuesday 46pm, Friday 24pm
Timetable for all classes 
Consultations  Friday 45pm 
Units of Credit  6 
Course Website  http://cse.unsw.edu.au/~cs4128/ 
Handbook Entry  http://www.handbook.unsw.edu.au/undergraduate/courses/current/COMP4128.html 
This is a course designed to introduce advanced problem solving techniques to those who have already mastered the fundamentals of programming.
A particular emphasis will be made on modifying existing algorithms to solve new problems in a novel way.
Students will not only develop theoretical approaches to challenging problems, but also implement them.
The prerequisite for this course is COMP3821/9801 (or COMP3121/9101 and 75 WAM). Familiarity with the algorithms and data structures presented in either Algorithms course will aid students in this course, although much of the material is reintroduced.
All code in COMP4128 is in C++. Expert knowledge of C++ from an objectoriented perspective is not required. However, students must be able to write, test and debug relatively short programs in C, and familiarity with the C++ Standard Template Library will be developed early in the term.
Upon completing this course, students will be able to:
This course extends COMP3121/3821/9101/9801 to include applications of problemsolving techniques, in order to code solutions to problems, particularly in the style of programming contests.
As such, the course trains students to solve problems in this field across a variety of topics, including under time constraints.
Week  Tue Lecture  Tut/Lab  Fri Lecture  Problem Set  Contest  Notes 
1  Introduction  Getting Started  Getting Started  Set 1 released  Contest 1   
2 
Paradigms

Paradigms

Data Structures I  Set 2 released     
3 
Data Structures I

Data Structures I  Dynamic Programming  Set 3 released     
4  Dynamic Programming  Dynamic Programming 
Graphs

Set 4 released  Contest 2   
5  Graphs  Graphs  Shortest Paths  Set 5 released     
6  TBA   
TBA

    Flexibility Week 
7  TBA  Shortest Paths  Data Structures II  Set 6 released     
8  Data Structures II  Data Structures II  Network Flow  Set 7 released     
9  Network Flow  Network Flow  Mathematics  Set 8 released  Contest 3   
10  Mathematics  Mathematics  Exam Revision       
Of the three TBA lectures, at least one will be a revision lecture.
Item  Topics  Due  Weight 
Problem Sets  All topics  Weeks 310+  40% 
Problem Diary  All topics  Weeks 310+  8% 
Contest 1  Introduction  Week 1  6% 
Contest 2  Introduction, Data Structures I, Dynamic Programming  Week 4  6% 
Contest 3  Graphs, Data Structures II, Shortest Paths, Network Flow  Week 9 (TBC)  6% 
Final Exam  All topics  Exam period  34% 
2 bonus marks will be provided for participation in the South Pacific Divisional contest on October 15th. You can sign up here .
The course website will contain all relevant resources, and there are no textbooks required for the course.
The following textbooks are suitable for reference:
Students may find the following online resources helpful:
Further practice problems can be found in many places, e.g:
Students are encouraged to ask course staff for further resources.
This course is evaluated each session using the myExperience system.
In the previous offering of this course, students reported that threehour lectures were too long and made it difficult to focus.
Based on their comments, we will run two twohour lectures each week instead
Resource created Monday 05 September 2022, 10:54:58 PM, last modified Tuesday 06 September 2022, 11:48:08 PM.