MASSACHVSETTS INSTITVTE OF TECHNOLOGY
Department of Electrical Engineering and Computer Science
6.001--Structure and Interpretation of Computer Programs
Fall Semester, 1997
General Information
Issued: Thursday, September 4, 1997
This memo describes the organization and policies of 6.001. For your convenience, this memo and all other course handouts and information are being made available on the 6.001 homepage:
http://www-swiss.ai.mit.edu/ u6001
Lecturers:
Course secretary:
Meetings:
Examinations:
In addition to registering for 6.001 with the Registrar, please complete the Registration Information Form attached to the back of this package. You should turn in the form at the end of lecture on Thursday, September 4, 1997. If for some reason this is not possible, you must turn it in to the course secretary by 4PM on Thursday, September 4th.
We will use the information you provide on this form to assign you to a recitation section. Assignments will be posted outside the 6.001 lab (34-501) and outside the 6.001 tutorial area (36-113) by 5PM on Thursday, September 4. Ignore the recitation to which the registrar assigned you. You must attend the recitation to which we assign you. If you must subsequently change your section assignment, you must contact the course secretary, Jill Fekete, (jill@ai.mit.edu) who will try to accommodate you. Because of the need to keep sections balanced in size, this may not be possible.
The information you provide on the registration form will also be used to schedule regular weekly tutorials. (See ``Subject Meetings'' below.) Groups of two to four people who would like to study together can request to be assigned to the same recitation and tutorial. People who want to create such a group must turn in their information forms stapled together - no more than four to a group, please.
Subject meetings consist of lectures, recitations, and tutorials.
Tutorials are one-hour small group meetings run by Teaching Assistants and held once each week. Homework assignments usually include questions that you are to prepare to discuss in tutorial. Tutorials also provide an opportunity to obtain individual help, to review homework assignments, and for you and your tutor to judge how well you understand the material - in particular whether you are properly benefiting from working with other students -- which you are encouraged to do (see below).
Attendance at tutorials is MANDATORY: an unexcused absence from tutorial will lower your course grade a bit. You should not expect to get a passing grade in 6.001 if you have several unexcused absences.
Tutorials will be scheduled in your recitation section during the first week of classes.
The textbook for the course is Structure and Interpretation of Computer Programs, Second Edition by Abelson and Sussman. This book can be obtained from the Coop.
Other materials, which will be handed out (and can be found on the 6.001 homepage):
Each week (generally on Tuesdays) a problem set is distributed in lecture. These problem sets include reading assignments, exercises, and programming tasks. Assigned work is due in recitation about one week later, but may be sent to your tutor by e-mail prior to recitation. Extra copies of problem sets and other handouts will be available in the 6.001 Tutorial Area, room 36-113.
Assignments include parts to prepare for oral presentation in tutorial, as well as written parts to be turned in at recitation. Your work on the assignment will be reviewed by your tutor, who will discuss it with you in tutorial. A substantial part of each problem set consists of exercises that require access to a system running a Scheme intepreter; Scheme is the programming language used in the course. See Problem Set 0 for an explanation of how to find a Scheme system.
A good strategy is to work the homework assignment bit by bit over course of the week, rather than leaving it to the night before it is due. This will give you a chance to mull things over and to get help. Not only is it more efficient to begin work on each problem set soon after it is distributed, but it is advantageous to complete your computer work early. There is often intense demand for the services of the 6.001 Laboratory Assistants and facilities just before assignments are due. If you do your programming in the Lab, you must plan ahead because, when the lab is crowded, appointments to use the Lab machines are made in advance via sign-up sheets in the lab.
Late homework will not be accepted.In case of illness or absence from MIT, make arrangements to complete assignments with your recitation instructor.
Grades are based upon your quiz scores and the recommendation of your recitation instructor and tutor based on your performace in recitation, tutorial, and problem sets.
For each assigned problem set, you must submit written solutions, and you must prepare for an oral discussion of your work in tutorial. Based on past experience, working through the homework assignments has proved to be the most reliable way to master the material. You are expected to submit solutions to all Problem Sets. Because 6.001 has a formal laboratory component, failure to complete more than a few of these assignments may result in a failing grade, regardless of performance in exams, tutorials, and recitations.
You may collaborate with others on problem sets. The problem sets are intended to be learning experiences, not tests. As long as you can demonstrate the level of understanding of a person who worked out every part of your assignment you will get full credit, even if portions of your code and answers are shared with collaborators. (Of course, handing in writeups or code that is identical to your collaborators may serve as a warning sign to your tutor to verify the the thoroughness of your understanding of the material.) See the section about cooperative work below for more details.
You are expected to attend and participate actively in recitation. Attendance is not taken in recitation, but the quality of your participation is the main influence on your recitation instructor's grade recommendation.
Recitations often begin with a five minute presentation of a preassigned problem, or with a lecture summary, by a previously chosen student speaker. You should expect to make a short oral presentation on an assigned topic in recitation at least once during the semester.
Homework assignments include parts to prepare for oral presentation in tutorial. In addition, you may be asked to explain or to expand upon your written homework solutions in order to demonstrate your mastery of the material. Students who must miss a tutorial should make prior arrangements with their tutor.
We encourage you to work in partnership with one or two 6.001 classmates. Many people learn more effectively when they study in small groups and cooperate in various other ways on homework. This can be particularly true for programming assignments, where working with a partner often helps to avoid careless errors. Moreover, working in teams reflects the professional environment in which sophisticated modern software is typically developed.
Of course, working in teams does present some pedagogical and ethical problems. Difficulties can generally be avoided by
We suggest that when you work with other students, you be sure to do at least part of every assignment by yourself, alone. You will need the practice for the exams. We also suggest that all teammates be at the computer together and you take turns typing--not just have one person always type and the other person always watch.
Problem sets and solutions from some prior terms are available via the course homepage, and a more complete archive is available on Athena from the 6.001 course locker. We do not recommend that you make significant use of them. It is far better to spend your time working the assignments for this semester rather than hunting through old problem sets. Although looking at archival problem solutions can be of some assistance in learning the subject, you run the risk of missing the learning experience of working out problem solutions yourself. Remember that you will be expected to demonstrate mastery of the homework problems in tutorial and on exams.
6.001 problem sets take time, but they should not require excessive amounts of it. In past subject evaluation surveys, students have typically reported that they spend very close to the expected 15 hours per week on the subject. Spending enormous amounts of time in 6.001 is often the result of simply not asking for help when you need it. If you find yourself spending more time on 6.001 than you think you should, despite help from LA's and your tutor, please speak to your recitation instructor.
The 6.001 staff is always willing to help you. If you feel that you are getting lost, cannot understand the statement of a problem, have a gripe about the way things are being done, or have any other problem that we might be able to help with, please come see us. We hope that you will develop a good relationship with your tutor and recitation instructor as the term progresses. Do not hesitate to call for help. Screams should be brought to the attention of the lecturers. Problems of an administrative nature should be brought to the attention of the course secretary.
For additional tutoring resources, we recommend that you contact MIT Tutorial Services at 3-8406. There is a 6.001 workstation in the Tutorial Services Room (12-124), and tutorial services can put you in touch with tutors who are experienced in giving help with 6.001. There is also a link to information about the Course 6 tutoring program on the 6.001 home page.
The laboratory facility for 6.001 is located on the fifth floor of Building 34. The room contains 48 Hewlett-Packard series 700 workstations, laser printers, and network servers. These workstations were donated to MIT by Hewlett-Packard in 1992, as part of a long-term collaboration between HP and the 6.001 staff.
There are sign-up sheets in the lab that you can use to reserve workstations.
The room is staffed by lab assistants who are there to help with the assignments and answer questions about the system. Lab hours will be posted. Please do not attempt to cajole lab assistants into staying beyond these hours--they work long hours as it is, and they need occasional sleep. You can also contact laboratory assistants using email (6001-help@mit.edu), or using zephyr, a chat system on Athena. See the 6.001 web page for more details on getting help from the laboratory assistants.
Problem sets can also be done on some Athena machines, or at home, on your own Windows machine. This will be discussed in more detail on problem set 0.
This document was generated using the LaTeX2HTML translator Version 96.1-f (May 31, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
The command line arguments were:
latex2html -split 0 red-tape.
The translation was initiated by Jeremy Daniel on Tue Sep 2 17:48:56 EDT 1997