Boston University - Spring 2025
CAS CS 392 - Competitive Programming I


Course Staff

Name Office Hours
Prof. Tiago Januario Fridays, 1:00 p.m. - 3:00 p.m. at TBD
Teaching assistant: Champ Laksanawisit TBD

Course description

This course covers essential algorithms for competing in the ACM International Collegiate Programming Contest (ICPC) and similar contests. Active involvement in weekly contests is a mandatory component of the course. Topics covered include standard library classes and data structures, competitive programming contest strategies, string manipulation, divide and conquer, dynamic programming, graph algorithms, number theory, computational geometry, and combinatorics.

Student Learning Outcomes

A competitive programming course enhances participants' algorithmic problem-solving and data structure skills. It emphasizes efficient code writing, improving proficiency in a specific language, and developing a competitive mindset with effective time management.

Course Objectives

The course emphasizes debugging techniques, mathematical and logical thinking, and fosters a competitive mindset. Additionally, it covers problem-solving patterns, and encourages consistent practice to excel in coding competitions and real-world software development scenarios.

Communication

  • We will use Piazza for online discussions.
  • Do not send e-mails to the course staff.
  • Feel free to ask or answer questions on Piazza.
  • For sensitive, specific questions and solutions, use private posts.

Prerequisites

  • CS131 - Combinatoric Structures, or equivalent.
  • CS111 - Introduction to Programming I, or equivalent.

Grading Rubric

  • Your grade will be based on the EMRN rubric.
  • The rubric was created by Rodney Stutzman and Kim Race, where it originated as the "EMRF" rubric in a 2004 article in Mathematics Teacher magazine.
  • The EMRN rubric is a four-level rubric for evaluating student work. It uses a simple flowchart to categorize student work into one of four bins:

Prerequisites

  • CS131 - Combinatoric Structures, or equivalent.
  • CS111 - Introduction to Programming I, or equivalent.

Grading Rubric

  • Your grade will be based on the EMRN rubric.
  • The rubric was created by Rodney Stutzman and Kim Race, where it originated as the "EMRF" rubric in a 2004 article in Mathematics Teacher magazine.
  • The EMRN rubric is a four-level rubric for evaluating student work. It uses a simple flowchart to categorize student work into one of four bins:
We will evaluate each assignment to see whether it meets the specifications. Here's the EMRN scale:
  • TBA
The two sections of the course, A and B, will be treated as one class. The content of the two lectures is identical, assignments will be shared, students can mix-and-match A and B lecture.

Syllabus

TBA

Schedule

This schedule is subject, and likely, to change as we progress through the semester.
Under construction...