Use this page to maintain syllabus information, learning objectives, required materials, and technical requirements for the course. |

CS 21100 - Competitive Programming I |
---|

Associated Term:
Fall 2023
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. Required Materials: Technical Requirements: |

Return to Previous | New Search |