Go to Main Content

Purdue Self-Service



Detailed Course Information


Fall 2023
May 24, 2024
Transparent Image
Information Select the desired Level or Schedule Type to find available classes for the course.

CS 21100 - Competitive Programming I
Credit Hours: 2.00.  CP1 teaches applied algorithmic ideas and problem solving techniques to solve programming interview and competitive programming questions including usage of basic data structures such as [array, set, map, stack, queue, deque, priority queue], the four main algorithm paradigms: [complete search, greedy, divide and conquer, dynamic programming], other algorithmic ideas including [binary search the answer/bisection, meet-in-the-middle, prefix sum and difference arrays, two pointers, sliding window], and basic graph algorithms covering [strongly/connected components, floodfill, topological sort, shortest paths].
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:
Lower Division

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

Learning Outcomes: 1.  Differentiate between categories of problems in computer science including complete search, greedy, divide and conquer, dynamic programming, and various types of graph problems, as well as subcategories in each of these categories. 2.  Implement well-known solutions (as discussed in class) to all major categories of problems in computer science (listed in LO1). 3.  Use new/novel algorithms to solve problems. 4.  Recognize key characteristics of certain problem types listed in LO1. 5.  Classify a problem by those key characteristics. 6.  Deconstruct a problem into subproblems that can be solved individually. 7.  Assemble those subproblems into a complete solution. 8.  Determine runtime and space usage of a potential solution using big-O notation to judge if the potential solution will work. 9.  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. 10.  Reflect on how one came up with a solution to a problem to better recognize patterns in problem types. 11.  Debug programs by generating custom test cases based on problem constraints.

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

Undergraduate level CS 25100 Minimum Grade of C

Short Title: Competitive Programming I

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