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 Spring 2021
In an effort to make this course accessible to all students while adhering to Tufts University's COVID-19 guidelines, we will be online this semester. This section outlines the major components of the course and how we expect you to engage with them.
Instructions for participating in synchronous lectures, labs, and office hours are covered in our tutorial on remote access.
Lectures: Will be synchronous, at the SIS scheduled times. Both lectures we take place via Zoom: use this link. You must be logged in via your Tufts account (your Tufts email address). We would like all students to come to lecture. You can ask questions live and get answers. If you are in a time zone that precludes your participation in lectures, they will be recorded and linked from the course calendar.
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 put you in a Zoom breakout room with some other students. Discuss the lab with the other students (though you will do and submit your own lab). 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. 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. TA office hour times and Zoom links will be available in a pinned post on Piazza. Instructions on how to how to participate are in our tutorial on remote access. You may also attend instructor office hours for any of these reasons, to discuss any issues you're having with the course, or just to say “hi!” Use the instructor Zoom links on the remote tutorial and the course administration page. 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.