Course Description

This course serves as an introduction to computer science via the programming language C++. Students will learn how to devise precise procedures for solving a given problem, and how to specify these procedures using the C++ syntax. This course does not assume any prior programming experience. Even if you have never programmed before, this course is for you! We'll teach you what you need to know.

Course Policies: All students are expected to know and adhere to our course policies. Please take the time to read both the last section of this page and our admin page in full.

Prerequisites: None, however freshmen and sophomores have registration priority.

Textbook (Optional): Problem Solving with C++ by Walter Savitch. ISBN: 0133591743 (7th Edition or higher). This text is extremely helpful as a supplementary reference.

Class Location: Online (Tuesday Zoom link; Thursday Zoom link) If you aren't formally enrolled or on the SIS waitlist yet, email for the password(s) before the first class session.
Section 1 Time: (Tues/Thurs) 1:30pm - 2:45pm EDT
Section 2 Time: (Tues/Thurs) 3:00pm - 4:15pm EDT

Midterm Exam: Released on Thursday, October 29
Final Exam: Released on Thursday, December 17

Course Staff

Instructor: Dave Lillethun
Zoom Link:
Office Hours: Friday 1:00-3:00pm EDT
Instructor: Richard Townsend
Zoom Link:
Office Hours: Wednesday 2:30-4:30pm EDT
Our teaching fellows are Rachel Ginsberg, Hayden Wolff, Keisha Mukasa, and Sook-Hee Evans. We also have an army of undergraduate teaching assistants who will hold remote office hours. Schedules for the undergraduate assistants are posted and will be regularly updated on our office hours page.

Piazza: The preferred means of contacting the course staff is via Piazza, an online forum where students can ask and answer questions. General questions about the homework, course policies, C++, or Linux should be posted publicly so that your classmates can benefit from the answers and any resulting discussion (before posting a question, please check to see whether your question has already been asked!). Questions that are personal in nature, or that pertain to specific pieces of code that you have written can be posted privately to the course staff.

Expectations and Structure of This Course (Fall 2020)

In an effort to make this course accessible to all students while adhering to Tufts University's COVID-19 guidelines, COMP 11 will operate as an online course for the Fall 2020 semester. This section outlines the major components of the course and how we expect you to engage with them.

Instructions for participating in synchronous sessions, labs, and office hours can be found here: remote-tutorial.pdf

Lecture Videos and Class Sessions: Pre-recorded lecture videos will be released on the Schedule page on Mondays and Wednesdays; to access them, you will need to use the username and password provided in a pinned piazza post. You will watch these videos and attempt the check-your-comprehension problems posed in them before your next scheduled class session. During that session, you will join a live Zoom meeting where you will have the opportunity to ask an instructor about the most recent lecture videos, work with other students on practice problems and puzzles, and reinforce your learning. For these sessions to be effective, you must take charge of your own learning and pace yourself so you have time to watch the videos and attempt the practice problems before the live session. These sessions will also be recorded posted to the Schedule page of this site, so you can watch those if you're in a time zone that precludes you from joining the live sessions.

Labs: During your assigned lab time, you will join a Zoom meeting hosted by that lab's Head TA; see this pinned piazza post to find the Zoom link for your lab section. The TA will introduce the lab, answer any general questions you may have, and then pair you up with another student in a Zoom breakout room to work on the lab together. If you are in a time zone that prevents you from participating in your assigned lab section, please contact an instructor to discuss accommodations. More info on labs can be found here.

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. All other info 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 our TA remote office hours sessions (here are links to the TAs' office hours schedule and instructions on how to participate). You can also attend an instructor's office hours (see the Course Staff section of this page for the schedule) for any of these reasons, to discuss any issues you're having with the course, or just to say "hi!" To make your office hours experience as pleasant and helpful as possible, we have a TA Office Hours Policy that you are required to read and understand before asking for help.