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 be expected to adhere to 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. Make sure that you have access to our course textbooks, which are listed below. In particular, the Hanson book describes the Swiss army knife of tools that will be provided to you for use throughout the semester.
  5. Familiarize yourself with our Halligan Helper system. This is how students can request help from TAs during office hours.


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
Important: Make sure you avoid the "International" or "Global" version of this textbook. While substantially cheaper, many of the chapter practice problems have been rewritten by the publisher and contain many errors and inconsistencies.

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


Lectures: Tuesdays / Thursdays 1:30 - 2:45 PM EST
Location: Cabot Intercultural Center, ASEAN
Labs: Friday 10:30 – 11:45 AM, 12:00 – 1:15 PM, and 1:30 – 2:45 PM EST
Location: Joyce Cummings Center 235 and 240
Midterm Exam: Thursday, March 17th
Final Exam: Tuesday, May 10th, 3:30-5:30pm in Cabot ASEAN


Instructor: Megan Monroe
Zoom ID: meganmonroe
Hours: Wednesday 2:00 - 4:00 PM EST, JCC 440D

Our teaching fellows are Dylan Oesch-Emmel, Alex Zsikla, Mary-Joy Sidhom, and Ann Marie Burke. We also have an army of undergraduate teaching assistants who will hold office hours. 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.