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.
*If you are looking for Professor Lyn Turbak's CS111-03 (aka CS111A), you can find his course here.
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, incremental development, tracing & debugging, iteration, recursion
Computational Models: Ways to understand how programs are executed
Interdependence: Computational technology should be in service of human flourishing