Learning OutcomesΒΆ
The main goal of the course is to expose students to the breadth of fundamental techniques for algorithm design and analysis, and to help them implement some of these techniques in Python. Students will learn:
basic skills for analyzing efficient data structures and algorithms
programming tools and libraries for developing literate (i.e., self-documented, reproducible) programs and algorithms in Python
algorithmic problem-solving including the use of specific techniques for algorithm design like divide-and-conquer, greedy strategies and dynamic programming
Students completing this course successfully can expect to develop a solid foundation in the following:
using programming constructs in Python such as built-in data types; function specifications and implementation; iterative computation (loops); conditional evaluation of code; data input and output with files; and structured code with modules and functional abstraction.
fluency with program development; debugging and testing code; and using basic version control with command line tools.