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.
"Everybody in this country should learn how to program a computer...
because it teaches you how to think." -Steve Jobs
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