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, meetinthemiddle, 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: Indianapolis and W Lafayette 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 wellknown 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 bigO 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. Restrictions: Must be enrolled in one of the following Majors: Computer Science Computer Science Honors Data Science Data Science First Year Data Science Prerequisites: Undergraduate level CS 25100 Minimum Grade of C or Undergraduate level CS 25300 Minimum Grade of C Short Title: Competitive Programming I Course Configurations:
