Advanced Data Structures, Graphs and Dynamic Programming

National Olympiad for Informatics (NOI)

AGES 13 - 18
Course Overview:
The material taught in this section is designed to bolster students' arsenal of techniques and knowledge in programming with C++, making with them more competitive in the National Olympiad of Informatics (NOI). We equip students with all the advanced skills and programming techniques they need to conceptualise optimal and creative solutions to difficult computer science problems.
Students will take their skills in discrete mathematics and computer science further by exploring the ideas of graph theory, which is a used to create complex data structures that power many facets of everyday computing. They will also learn how to implement the Dynamic Programming (DP) technique in their code to solve problems that are otherwise unsolvable using conventional programming patterns. With the knowledge of these tools and techniques, students will then be exposed to a wider variety of famous algorithms such as Dijkstra's Algorithm to find the shortest path between two points in a network (If you are interested in how this is applied in everyday use, refer to this paper ). Finally, students will go through more intensive and rigorous training drills to prepare themselves better for the NOI.
  1. Graph Data Structures
    • Introduction to Graphs
    • Graph Representations: Adjacency Matrices, Adjacency Lists
    • Binary Trees and Traversal
  2. Dynamic Programming
    • Memoisation
    • Tabulation
  3. Advanced Algorithms
  4. Problem Solving Practice