Skip to content

Latest commit

 

History

History
52 lines (40 loc) · 1.69 KB

File metadata and controls

52 lines (40 loc) · 1.69 KB

Course Objectives

The aim of this course is to familiarize students with programming skills used in programming competitions such as the International Collegiate Programming Contest (ICPC). It is assumed that students are familiar with one programming language such as Python or C.

Course Outline

  • Introduction to Programming Competitions (1 session)

    • What is Competitive Programming?
    • History and Major Programming Contests
    • Benefits of Competitive Programming
    • Familiarization with Types of Programming Contest Problems
    • Where to Start and How to Practice?
  • Introduction to Data Structures (1 session)

    • Introduction to Data Structures
    • Linked List
    • Stack
    • Practical Use Cases of Data Structures for Problem Solving
  • String Processing (2 sessions)

    • Input Reading Techniques
    • Text Parsing
  • Fast Searching (2 sessions)

    • Binary Search
    • Interval Trees
  • Basic Graph Algorithms (2 sessions)

    • Graph Implementation
    • Depth-First Search (DFS) and its Applications
    • Breadth-First Search (BFS) and its Applications
    • Topological Sorting
  • Bit Manipulation (1 session)

    • Bitwise Operations
    • Using Bits for Subset Operations
    • Sample Problems and Common Mistakes
  • Simulation (1 session)

    • Discrete Linear Event Simulation
    • Discrete Periodic Event Simulation
  • Code Optimization (2 sessions)

    • Debugging Techniques
    • Code Optimization

Evaluation

  • Weekly Programming Exercises

References

  • A. Laaksonen. Guide to Competitive Programming: Learning and Improving Algorithms Through Contests. Springer, 2020.
  • S. Halim, F. Halim, and S. Effendy. Competitive Programming 4. The new lower bound of programming contests in the 2020s. Lulu, 2020.