|Use this page to maintain syllabus information, learning objectives, required materials, and technical requirements for the course.|
|CS 31100 - Competitive Programming II|
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.
|Return to Previous||New Search|