Go to Main Content

Purdue Self-Service



Detailed Course Information


Spring 2024
Jul 20, 2024
Transparent Image
Information Select the desired Level or Schedule Type to find available classes for the course.

CS 31100 - Competitive Programming II
Credit Hours: 2.00.  CP2 teaches experienced programmers additional techniques to solve interview and competitive programming problems and builds on material learned in CP1. This includes specific algorithmic techniques such as [shortest paths, topological sort, MST, union find, range queries], advanced algorithms surrounding trees and DAGs, advanced problem types in [dynamic programming, backtracking/simulation, mathematics, string processing], and more. It can be viewed as a programming complement to CS 38100, with some overlap in content.
2.000 Credit hours

Syllabus Available
Levels: Undergraduate, Graduate, Professional
Schedule Types: Distance Learning, Lecture

Offered By: College of Science
Department: Computer Science

Course Attributes:
Provost Low Enroll Perm Waiver, Upper Division

May be offered at any of the following campuses:     
      West Lafayette

Learning Outcomes: 1.  Differentiate between advanced categories of problems in computer science including backtracking/simulation, advanced dynamic programming, advanced graphs (including trees and DAGs), mathematics, string processing, and range queries, as well as subcategories in each of these categories. 2.  Implement well-known solutions (as discussed in class) to advanced categories of problems in computer science (listed in LO1). 3.  Identify when a problem spans multiple categories of problems (as listed in LO1) 4.  Design algorithms to solve problems that span multiple categories of problems. 5.  Use new/novel algorithms to solve advanced problems. 6.  Recognize key characteristics of certain problem types listed in LO1. 7.  Classify an advanced problem by those key characteristics. 8.  Deconstruct an advanced problem into subproblems that can be solved individually. 9.  Determine runtime and space usage of a potential solution using big-O notation to judge if the potential solution will work. 10.  Create an efficient solution to a problem based on analysis of the problem type, the deconstructed problem parts, and the time and space constraints of the problem. 11.  Reflect on how one came up with a solution to a problem in order to better recognize patterns in problem types.

Must be enrolled in one of the following Majors:     
      Computer Science
      Computer Science Honors
      Data Science
      Data Science First Year

Undergraduate level CS 21100 Minimum Grade of C and Undergraduate level CS 25100 Minimum Grade of C

Short Title: Competitive Programming II

Course Configurations:

Configuration 1: 2.0 Credits
Schedule Type Weekly Contact Hours Instructional Credit Distribution
Lecture 2 2.0
Configuration 2: 2.0 Credits
Schedule Type Weekly Contact Hours Instructional Credit Distribution
Distance Learning 0 2.0

Transparent Image
Skip to top of page
Release: 8.7.2