An introduction to computer science: Primarily, a course on how to think precisely. Clear thinking; clearly expressed. If you have never programmed before, this course is for you — we'll teach you what you need to know!
Specifically, we'll see how to understand and solve problems and reduce our solutions to precise, human readable, computer executable programs. We will employ four Big Ideas: abstraction, modularity, divide-conquer-glue, and modeling for problem solving, and we'll use the C++ programming language for our programs. You'll learn details about how mondern computers work, and you'll also be introduced to the Linux operating system.
Course policies: All students are expected to know and adhere to our course policies. Please take the time to read the rest of this page and the administration page fully.
Textbook (optional): Problem Solving with C++ by Walter Savitch. We will refer to sections and page numbers from the 10th edition, but you can use the 7th edition and higher.
Prerequisites: None, all are welcome!
Expectations and structure of the course for Fall 2021
CS 11 lectures and labs will be in person again! Students are expected to attend lectures and labs. See the course Administration page for attendance policies.
Assignments: Weekly homeworks are completed at your own pace (as long as they're submitted on time), but we encourage you to space out the work over the week. Starting early is the key to tackling programming assignments. Other information on homework assignments can be found here.
Office hours: This course is challenging, but we want to help you succeed! If you need help understanding a concept, tackling an assignment, or dealing with a pernicious bug, you can participate in office hours. See the course Administration page for more information on professor and TA office hours. To make your office hours experience as pleasant and helpful as possible, we have a office hours policies that you are required to read and understand before asking for help.