Skip to main content

Introduction

The CCC topic is currently being organized by Joe and is purely online at the moment. Related content will be posted here, on the website.

Planned Content

note

The topics below have no specific time associated with them, but generally it can be expected that at least one topic will be covered per week.

danger

A basic understanding of programming is expected for readers (i.e. you should know what if statements are, how to use functions, how to write loops, ...)

  • What is the CCC, and why should you be interested?
    • What language are supported, and which one should you use?
  • Simple implementation questions: reading input and making decisions
    • Fast I/O methods
  • Algorithmic analysis: Big-O notation
    • Why is it useful?
  • Arrays/dynamic arrays
    • Sorting and searching
    • Binary search and variants
    • Two pointers
    • Prefix sums
  • Stacks, queues, and deques
    • When are they useful?
    • Monotonic queue (maybe)
    • Minimum stack (maybe)
  • Recursion
  • Graphs
    • Representations
    • When to use breadth-first search over depth-first-search and vice versa?
    • Breadth-first search
      • Keeping track of depth
      • Dijkstra's (maybe)
    • Depth-first search
    • Meet-in-the-middle (maybe)
    • Modelling problems using graphs
  • Dynamic programming (maybe)
    • Top-down and bottom-up
    • Classic problems
  • CCC-specific topics
    • Getting partial points on problems
    • Brute forcing problems