COMS W4995

Fall 2026 · Updated September 14

Course Syllabus

Competitive Programming
Columbia University · COMS W4995-007

01 · Overview

Course overview

A practical course in algorithmic problem solving: begin with patterns common in technical interviews, build toward regional ICPC contests, and finish with a bridge to the North America Championship.

Meeting
Mondays, 7:00–9:30 PM · September 14–December 14
Location
451 Computer Science Building
Credits
3 points · undergraduate · in person
Office hours
By appointment · email Christian
Course site
CourseWorks for materials, submissions, and announcements

02 · Course format

How the class works

Each class, with the exception of the first lecture, has two complementary halves. The first half focuses on instruction, including a lecture, guided examples, and discussion of problem-solving techniques. The second half focuses on active practice through a live contest or timed problem-solving session, followed by student solution presentations and discussion.

A typical 150-minute class consists of approximately 75 minutes of instruction, 50 minutes of timed problem solving, and 25 minutes of student presentations. The exact schedule may vary for designated contests, guest lectures, or special activities.

  • The first two meetings form a foundations ramp: contest workflow, input and output, complexity, debugging, sorting, maps, prefix sums, and binary search. Timed work uses only material already taught; graph traversal is introduced before it becomes contest material.
  • Weekly homework is tiered into two foundation problems, two core problems, and one optional challenge problem. Foundation and core homework, together with scheduled course activities, is sufficient for an A.
  • Selected practice may be completed in rotating pairs, followed by an individual explanation of the solution.
  • Every live contest has an asynchronous virtual-contest alternative. Credit is based on participation, reflection, and upsolving rather than rating or live solve count.
  • Each contest is followed by structured upsolving of at least one previously missed problem.
  • Each student gives at least one in-class presentation. Weeks without scheduled presentations use the final 25 minutes for contest debriefing or instructor-led solution discussion.
  • There is no midterm or final exam.

03 · Assessment

Point-based assessment

The course offers exactly 100 core points, all available through course-controlled work, plus optional enrichment credit. A student can earn an A without an external contest, a high contest rating, a discretionary bonus, or a particular live solve.

40D · passing
60B−
75A−
80A
Core componentAvailableOne beginner-friendly path to 80
Foundation and core homework5244
In-class practice and reflection1210
Solution presentation87
Interview practice99
Guided contests and upsolving1910
Total10080

The example above is a planning aid, not a required mix. Students may combine the core components differently, and optional enrichment points may replace missed core points.

Core points

Foundation and core homework52 points

Across the semester, each weekly set contains two foundation and two core problems worth one point each. Substantial, explainable progress may earn partial credit. The optional challenge problem is enrichment.

In-class practice and reflection12 points

One point is available in each class after the first for active practice and a brief reflection. An asynchronous alternative is available for an excused absence.

Solution presentation8 points

Scored with the published rubric below. Every student gives at least one presentation; additional presentations may earn enrichment credit when space permits.

Interview practice9 points

Three designated mock interviews or interview sets are worth three points each for a complete attempt, explanation, complexity analysis, and tests.

Guided contests and upsolving19 points

Points come from scheduled timed sessions, reflections, and a final upsolve portfolio. Performance and rating do not determine credit, and every live session has a virtual alternative.

Presentation rubric

CriterionPointsEvidence
Correctness2The algorithm is correct and its assumptions are stated.
Reasoning2The explanation connects the key observation to the algorithm.
Complexity1Time and space complexity are analyzed accurately.
Examples and testing1Examples, edge cases, and implementation risks are addressed.
Communication and questions2The presentation is clear, organized, and responsive to questions.

Letter-grade thresholds

GradeTotal pointsGradeTotal points
A+90 or moreA80–89
A−75–79B+70–74
B65–69B−60–64
C+55–59C50–54
C−45–49D40–44
FBelow 40

Optional enrichment

Challenge homeworkUp to 13 points

One optional challenge problem may be offered with each weekly set.

Rated contest5 points each

Complete a designated Codeforces or AtCoder contest plus a short upsolve or reflection. A particular rating or live solve is not required.

ICPC team contest10 points + 1 per solve

CULC, the GNY Regional, and announced equivalents reward participation plus solved problems.

Independent practiceUp to 10 points

Approved Codeforces, Kattis, LeetCode, and similar problems earn 0.1 point each.

Review or problemsettingBy published rubric

Approved topic reviews and problem-writing work may earn credit under criteria posted before the work begins.

CourseWorks contains the submission instructions, rubrics, calendar of point opportunities, and current progress record.

04 · Expectations

Preparation and participation

  • Arrive able to write small programs using arrays or lists, maps or dictionaries, stacks, queues, sorting, functions, loops, and simple recursion.
  • Understand basic Big-O notation. COMS W3134 or W3136 and discrete mathematics are recommended preparation.
  • Prior competitive-programming experience and a contest rating are not required.
  • C++, Java, and Python are supported with tested starter templates and short course references. C++ is recommended, but not required, for students who intend to compete in ICPC.
  • Come prepared to reason aloud, test ideas, debug carefully, 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, exact 100-point core, and course requirements are available from the start of the semester.
  • Several paths to creditHomework-centered, contest-centered, and communication or problemsetting paths are supported. No rating, solve-count gate, external event, or single assessment determines the course grade.
  • Problems from scratchLectures include guided examples, false starts, and failed approaches that polished editorials often omit.
  • A deliberate progressionThe course begins with a foundations ramp and moves from interview patterns to regional contest material and an NAC bridge without making advanced enrichment a prerequisite for an A.

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 instructor before submitting.

Accessibility and course changes

Documented accommodations and excused circumstances supersede default timing or attendance expectations. The schedule and announced 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. Students requesting enrollment permission should include a concise summary of programming background and algorithms coursework; prior contest experience is optional.

Email Christian ↗