COMP 40 — Spring 2019

Machine Structure and Assembly Language Programming

Required steps before start of class

All incoming COMP 40 students should immediately read the information page for new students.

Course Overview

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.

For more information about the course see the about COMP 40 page, which includes a section on prerequisites.

Schedule

Lectures: Mondays / Wednesdays 4:30 – 5:45 PM in Robinson Wing SEC 253.
Labs: Friday 10:30 – 11:45 AM and 1:30 – 2:45 PM (Halligan 116, 118 and 120)

Attendance at lectures and labs is mandatory. You are responsible for anything that is said in class or lab, including changes to homework assignments, in-class exercises, and useful information not documented elsewhere.

Staff

The instructors for the course are Professors Megan Monroe and Mark Sheldon. Contact information, office hours, etc. are available from Mark's home page and Megan's home page

Our graduate teaching assistants are Patrick Kinsella, Jeanne-Marie Musca, Kapil Devkota, and Shishir Rao . We also have numerous undergraduate teaching assistants who will hold office hours in the Halligan computing labs. Schedules for the undergraduate assistants will be posted and updated in Piazza.

Getting Help

COMP 40 covers a wide range of complex material. Even top students typically will need help regularly to learn the material and complete assignments. Details on various resources available to you are described on the course administration page.

Work in the labs in Halligan. We have TAs assigned to cover the labs most days and most evenings (schedules are posted in advance on Piazza). The TAs can help you with difficult problems with your code, but they are also available to help you learn about material discussed in the lectures, etc. Furthermore, although you may not discuss solutions to assigned problems with other students, we encourage everyone to help each other learn the concepts we study in the course. You will often find your fellow students in the labs.

For other technical questions please use Piazza! The professor and TAs monitor Piazza continually, and will attempt to answer your question promptly. Other students will benefit from seeing both your question and the answer and indeed in many cases, other students will answer your question before we do. For individual questions about grades, etc. the e-mail address comp40-staff@cs.tufts.edu will reach your instructor and all graduate teaching assistants. See the instructions for using Piazza on the course administration page.

Policies and procedures all students are required to know

All students are expected to understand and obey all of the rules and policies outlined on the course policies and administration page. These include especially the principles of academic integrity and the course policy on collaboration.

The same page also provides important information about course grading policies, homework, etc. Use the Piazza forum. You may also use other on-line sources, but when you do, you must observe the principles of academic integrity and the course policy on collaboration.

Feedback

Your candid comments on any aspect of the course are always welcome. For ideas you want to share with the rest of the COMP 40 community, please post in Piazza. Thanks to Chloe Lopez, you can also send an anonymous comment directly to your instructor. Click on the link which will get you a form on which you can submit your comment.

COMP 40 in its current form was originally created and taught by Prof. Norman Ramsey. Since then the course has been taught and adapted by Noah Daniels, Mark Sheldon, and Noah Mendelsohn. Much of the written course material and almost all of the programming assignments have been carried over or adapted from earlier work. Credit for the best of it goes to them; responsibility for any problems lies with the current instructor(s).

Mark A. Sheldon (msheldon@cs.tufts.edu)
Last Modified 15 Jan 2019