Skip to main content

Ascent · Competition syllabus

Know the language. Understand the machine.

Round 1 tests C++ proficiency, puzzles and debugging. Later rounds move from individual language fluency to team implementation and real toolchain work.

Syllabus · Round 1 · Proficiency, puzzles & debugging

The language.

Language core

  • variables, objects & initialization · designated initializers · the most vexing parse
  • keywords & identifiers
  • literals & expressions
  • datatypes, operators & control flow
  • pointers, references & const
  • the auto keyword
  • enum / enum class
  • C-style arrays & std::array internals

Objects & lifetime

  • the stack & the heap
  • storage durations & object lifetimes
  • OOP: class/struct · member functions · access specifiers · special member functions
  • function & operator overloading · overriding
  • inheritance · dynamic polymorphism · the diamond problem · virtual
  • static_cast · dynamic_cast · bit_cast
  • move semantics · value categories · perfect forwarding · the rule of five
  • unique_ptr & shared_ptr internals

Behavior & correctness

  • UB · unspecified · implementation-defined · erroneous behavior
  • error handling: std::exception · std::optional · std::expected
  • floating-point pitfalls — why never ==
  • debugging fundamentals

Generics & compile time

  • generic types · type & non-type template params · variadic packs
  • project: implement a custom Matrix
  • constexpr vs consteval
  • lambdas

ascent · round 1 · language

Syllabus · Round 1 · Continued

The library & the machine.

Containers & internals

  • iterator categories
  • hashing & hash functions · map / unordered_map · set / unordered_set
  • std::string internals & SSO
  • std::vector internals · vector::reserve

Memory & the machine

  • struct layout · alignment · padding · alignof / alignas
  • cache lines & false sharing *
  • atomics *
  • branch misprediction

Question formats · Round 1

01

Chained execution

You write code, run it, and read the output. That output feeds the next stage. Four hops in, we ask for one thing: the final printed value.

tests: reasoning about your own program's state

02

Live graph match

A target curve is on screen. You code the equation; the plot re-renders as you type. Submit when it matches.

tests: translating shape into expression

ascent · round 1 · library & machine

Syllabus · Rounds 2 & 3 · Outline

Beyond the language.

The later-round scope is intentionally directional. Detailed topic lists will be published only when the competition design is locked.

Round 2 · Group

The build.

Implementation-heavy and group-based. Core CS fundamentals, executed as a team under a clock rather than recalled.

  • · format: teams
  • · axis: implementation depth
  • · scope: core CS fundamentals

topic list pending — not for publication

Round 3 · Onsite

The toolchain.

Mastery of the language and everything around it. Judged on how you work, not only on what you submit.

  • · language mastery
  • · build systems
  • · profiling
  • · debugging

topic list pending — not for publication