Course Summary

COMP 40 will give you two important experiences:
  1. You will turn the corner from introductory programming to programming as a professional
  2. You will study in detail the structure of modern computers, and that in turn will add greatly to your understanding of how computer hardware, operating systems, compilers, language runtimes and other tools work together to influence the performance of your programs
These two goals are very closely related: all good computer professionals know how to apply deep knowledge of computing systems to their programming projects and to their research in computer science. Whether you are a newly confirmed CS major, someone who is considering a CS major but is unsure, or a student from another field who is interested in a deep look at some of the most important technologies of our time, COMP 40 should give you an intense, realistic and (we hope!) exciting look at how modern computers work.

New COMP40 Students

Many students are eager to get a head start on the COMP40 material so that they can arrive as prepared as possible to the first day of class. Here is what you can do to prepare:
  1. When COMP40 begins, you will be making an immediate transition from C++ to C. Be ready for this. Our resources page provides some great tutorials on this transition.
  2. Read our admin page. This page is a comprehensive review of our course policies. You will expected to not violate these policies, so a good start is to know what they are. Pay particular attention to our course coding standands and our pair programming conduct guidelines.
  3. Use this signup link to join our Piazza forum.
  4. Create an account on Halligan Helper
  5. Make sure that you have access to our course textbooks, which are listed below.


The following two textbooks are required:

Textbook: C Interfaces and Implementations by David R. Hanson
ISBN: 9780201498417
Online access: via Tufts Library
There is also a PDF Quick Reference

Textbook: Computer Systems: A Programmer's Perspective, 3rd edition by Bryant and O'Hallaron
ISBN: 9780134092669

Additional books that you may fine useful are listed on our resources page.


Lectures: Tuesdays / Thursdays 12:00 – 1:15 PM
Location: Barnum 008

Labs: Friday 10:30 – 11:45 AM and 1:30 – 2:45 PM
Location: Halligan 116, 118, and 120

Final Exam: Thursday, December 12th from 12:00-2:00pm


Instructor: Megan Monroe
Office: Halligan 238
Office Hours: Wednesday 2-4pm

Instructor: Richard Townsend
Office: Halligan 230
Office Hours: Thursday 9:30-11:30am

Our graduate teaching assistants are Kapil Devkota, Matt Werenski, Shishir Paramathma Rao, and Gabriel Appleby. Our teaching fellows are Sam Swoap, Ella Bisbee, Jess Wang, and Josh Simani. We also have an army of undergraduate teaching assistants who will hold office hours in the Halligan computing labs. Schedules for the undergraduate assistants will be posted and updated on Piazza.

Please refer to our admin page for guidelines on how to contact our course staff with questions and feedback.