Course Summary
Welcome to CS 40 - Machine Structure and Assembly Language Programming! CS 40 will give you two important experiences:
- You will turn the corner from introductory programming to programming as a professional.
- 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.
New CS 40 Students
Many students are eager to get a head start on the CS 40
material so that they can arrive as prepared as possible to
the first day of class. Here is what you can do to prepare:
- When CS 40 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.
- 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.
- Visit the course Piazza forum. (Your instructor will add you to the Piazza roster at the start of the term.)
- 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.
- Familiarize yourself with our Halligan Helper system. This is how students can request help from TAs during office hours.
Textbooks
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, which is in paperback or the Amazon ebook. 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.
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, which is in paperback or the Amazon ebook. 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.
Schedule
Lectures: Tuesdays / Thursdays 1:30 - 2:45 PM EST
Location: SEC Robinson 253
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: See the course calendar
Final Exam: Tuesday, December 17th, 12-2pm
Location: SEC Robinson 253
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: See the course calendar
Final Exam: Tuesday, December 17th, 12-2pm
Staff
Instructor: Megan Monroe
Email:
Office hours: Wednesday 1:30-3:30pm, JCC 440D
Our teaching fellows are Dan Bergen, Valerie Zhang, Sarah Svahn, and Julia Zelevinski. 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.
Email:
megan.monroe@tufts.edu
Office hours: Wednesday 1:30-3:30pm, JCC 440D
Our teaching fellows are Dan Bergen, Valerie Zhang, Sarah Svahn, and Julia Zelevinski. 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.