March 12, 2020: Please see piazza for important course updates
March 28, 2020: Online teaching information posted in piazza
CS111 is an introduction to problem solving through computer programming. Using the Python programming language, students learn how to read, design, debug and test algorithms that solve problems.
How to knowledge
Computer science is the study of imperative ("how to") knowledge, which is at the heart of problem solving. Imperative knowledge is expressed via algorithms, which are descriptions of computational processes that can be encoded as programs written in a programming language. Programs communicate imperative knowledge between people; they can also be executed by computers.
- Abstraction: Capturing common patterns, hiding information, making specifications (contracts)
- Modularity: Expressing programs as the composition of mix-and-match parts
- Problem solving strategies: Divide-conquer-glue, recursion, iteration
- Models: Ways to understand how programs are executed