ALGORITHMIC THINKING
Use of algorithmic techniques for solving concrete computational problems. Incorporates elements of discrete mathematics and intermediate data structures. Introduction to basic paradigms for designing efficient algorithms: divide and conquer, dynamic programming, greed. Program development from nontrivial real-world problem descriptions, over precise specifications and algorithmic solutions, to implementation.
Prerequisites & course information
Requisites: Declared in the Capstone Certificate in Computer Sciences Kickstart Program for Professionals Course Designation: L&S Credit - L&S Liberal Arts and Science Repeatable for Credit: No Learning Outcomes: 1. Formulate abstractions of computational problems. Audience: Undergraduate 2. Design and implement efficient algorithms based on the paradigms of divide and conquer, dynamic programming, and greed. Audience: Undergraduate 3. Analyze worst-case running times and memory requirements of algorithms using asymptotic notation. Audience: Undergraduate 4. Know, evaluate, and apply common algorithms and intermediate data structures dealing with numbers, strings, and graphs, understand their basic efficiency trade-offs and appropriate use cases. Audience: Undergraduate 5. Carry through the process of program development from nontrivial real-world problem descriptions, over precise specifications and algorithmic solutions, to implementations. Audience: Undergraduate Learning Outcomes: 1. Formulate abstractions of computational problems. Audience: Undergraduate 2. Design and implement efficient algorithms based on the paradigms of divide and conquer, dynamic programming, and greed. Audience: Undergraduate 3. Analyze worst-case running times and memory requirements of algorithms using asymptotic notation. Audience: Undergraduate 4. Know, evaluate, and apply common algorithms and intermediate data structures dealing with numbers, strings, and graphs, understand their basic efficiency trade-offs and appropriate use cases. Audience: Undergraduate 5. Carry through the process of program development from nontrivial real-world problem descriptions, over precise specifications and algorithmic solutions, to implementations. Audience: Undergraduate
Sources
- Course catalogue ↗2026-2027