COMS E6998

Fall 2026 · Updated September 7

Course Syllabus

Advanced Topics in Competitive Programming
Columbia University · COMS E6998-002

01 · Overview

Course overview

An advanced sequel to COMS W4995 covering techniques that appear in the harder half of ICPC contests and Codeforces Division 1. The emphasis is on algorithm design, proof, speed, and reliable implementation.

Meeting
Wednesdays, 8:10–10:00 PM · September 9–December 9
Location
451 Computer Science Building
Credits
3 points · graduate · in person
Office hours
By appointment · email Josh and Christian
Course site
CourseWorks for materials, submissions, and announcements

02 · Course format

How the class works

Each Wednesday has two connected parts. The first is a lecture on an advanced technique, built around representative problems and the reasoning that leads to a correct solution. The second is timed group practice and student presentations.

  • Roughly five homework problems are assigned each week.
  • Students track accepted submissions and live-contest participation through CourseWorks.
  • Each student must give at least two in-class presentations during the semester and may give more.
  • Textbook chapter reviews may be submitted only after the corresponding lecture has been given.
  • There is no midterm or final exam.

03 · Assessment

Point-based assessment

The course rewards sustained problem solving, contest participation, and clear communication. Your grade is determined by the points you earn during the semester.

50Pass target
100A target
A+Above 100 · discretionary
In-class presentation5 points + up to 5 bonus

Each presentation earns five points. A great presentation may earn up to five additional bonus points. Every student must give at least two presentations; students may give more.

Rated Codeforces contest5 points

Earned when you solve at least one problem in the rated contest.

Rated AtCoder contest5 points

Earned when you solve at least one problem in the rated contest.

ICPC: CULC10 points + 1 per solve

Ten points for participation, plus one point for each problem solved.

ICPC: GNY Regional10 points + 1 per solve

Ten points for participation, plus one point for each problem solved.

Other live contestsAs announced

Additional qualifying live contests may be added during the semester.

Homework questions1 point each

There will be roughly five assigned problems each week.

Other practice questions0.1 point each

Generic Codeforces, Kattis, and similar questions, up to a maximum of 10 points over the semester.

Textbook chapter review2 points + up to 8 bonus

Each chapter review earns two points and may receive up to eight bonus points for exceptional insight. Reviews may be submitted only after the relevant lecture has been given.

ProblemsettingTBA

Credit for problemsetting work—including testing and related contributions—will be announced.

AttendanceExpected

Students are expected to attend most lectures.

CourseWorks contains submission instructions and the current progress record.

04 · Expectations

Preparation and participation

  • Arrive comfortable with dynamic programming, graphs, standard data structures, and basic number theory and combinatorics.
  • COMS W4995 or equivalent experience is strongly recommended. COMS W3134 or W3136, W3203, and CSOR W4231 are useful preparation.
  • C++ proficiency is strongly recommended; Java or Python may be used when appropriate.
  • Come prepared to reason aloud, test ideas, and learn from approaches that do not work.
  • Attend most lectures and complete only work that you can explain.

05 · Course commitments

What students can expect

  • Published rulesThe grading rubric and course requirements are available from the start of the semester.
  • Timely recordsProgress and grades will be updated on CourseWorks within one week.
  • Problems from scratchLectures will include the false starts and failed approaches that polished editorials often omit.
  • Rigor with supportThe material will remain demanding, and being stuck will be treated as a normal part of learning it.

06 · Policies

Policies

Academic honesty

Students must follow Columbia’s Standards and Discipline policy. Submit only work that represents your own understanding; do not copy or share solution code, falsely claim a solve, or present another person’s work as your own. Clearly acknowledge collaborators and cite editorials, code, AI tools, and other outside sources whenever they are permitted. You must be able to explain every solution, review, and presentation for which you claim credit. Assignment-specific collaboration rules announced on CourseWorks also apply.

Suspected violations may be referred through Columbia’s academic-integrity process. If you are unsure whether a form of collaboration or outside help is permitted, ask the instructors before submitting.

Accessibility and course changes

Documented accommodations and excused circumstances supersede default timing or attendance expectations. The schedule and TBA point opportunities may change as the semester develops; CourseWorks is the operational source for enrolled students.

Office hours and instructor permission.

Office hours are by appointment. Email Josh and Christian to arrange a meeting. Students requesting enrollment permission should include a concise summary of algorithms coursework, programming background, and competitive-programming experience.

Email Josh and Christian ↗