next up previous

MASSACHVSETTS INSTITVTE OF TECHNOLOGY
Department of Electrical Engineering and Computer Science
6.001--Structure and Interpretation of Computer Programs
Spring Semester, 1998

General Information

Issued: Tuesday, February 3, 1998

Lectures: Tuesday and Thursday, 10-11, Room 10-250

Lecturers:

Course secretary:

Recitation changes contact:

Scheduled exams: (mark these on your calendar now)

Welcome to 6.001!

We are distributing this organizational memo in printed form on the first day of class. In general, however, all information about 6.001 will be placed on the 6.001 Web Page located at

http://mit.edu/6.001

You should check this page regularly for announcements, answers to problem sets, and more detailed information about 6.001.

In addition to registering for 6.001 with the Registrar, be sure to fill out and hand in the attached Registration information form. You should turn in the form at the first lecture on Tuesday. If for some reason that is not possible, you must turn it in BEFORE 5 PM on Tuesday, February 3 in Room NE43-711.

To balance recitation sections, we must generally reschedule students from times assigned by the Registrar. Section lists will be posted outside the 6.001 laboratory (5th floor of Building 34) by 9:00 AM on Wednesday, February 4.gif Please attend the section indicated on the posted list, not the section for which you have been scheduled by the Registrar. If you need to change your section assignment, please see Jill Fekete. She will try to accommodate you, but because of the need to keep sections reasonably balanced in size, she may not always be able to do so.

We will also use the information on the form to schedule you for a regular weekly tutorial. A group of two or three 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 at the first lecture stapled together--no more than three to a group, please.

Subject meetings

6.001 is a large subject, but we have tried to design it so that you can receive a lot of personal attention. In addition to the large lectures that meet twice weekly, there are recitations and tutorials. You are expected to participate actively in recitations and tutorials, and the quality of your participation will be a major factor in your grade.

Lectures:

The entire class meets twice weekly at 10AM on Tuesday and Thursday in 10-250. The lectures are the primary vehicle for introducing and motivating new material.

Recitations:

The class is divided into sections of about 25 students. Each section meets twice each week (on Wednesday and Friday). Recitations expand upon the material currently being introduced, and they give you a chance to practice working with the material in an interactive setting.

Tutorials:

Tutorials will be scheduled in your recitation section during the first week of classes.

Tutorials are one-hour small group meetings held once each week. They provide you an opportunity to obtain individual help, to review homework assignments, and to have your progress in the subject checked. Attendance at tutorials is mandatory. Homework assignments include parts that you are to prepare for presentation in tutorial. If you are unable to attend a tutorial, you must contact your tutor in advance to make alternate arrangements for that week. If you miss a tutorial without prior arrangement with your TA, you will receive no credit for the weekly homework assignment associated with that tutorial, which will result in a drop in your grade for the semester.

Course Materials

The textbook for the course is Structure and Interpretation of Computer Programs, Second Edition by Abelson, Sussman, and Sussman. This book can be obtained from the Coop or from the MIT Press bookstore.

Also distributed at the first lecture is: ``Don't Panic: An Introductory Guide to the 6.001 Computer System.'' This manual describes the 6.001 system, Scheme (the programming language used in 6.001), and Edwin (an Emacs-like editor used in 6.001).

Your major source for subject materials is the 6.001 Web page. On it you will find general announcements, a detailed syllabus and lecture schedule, downloadable implementations of Scheme for use on personal computers, documentation, copies of the weekly problem sets, guidelines for preparing homework, specific information associated with each recitation section, and the 6.001 discussion forum.

Assignments

Problem sets are distributed weekly, at the Tuesday lecture. These problem sets include reading assignments, exercises, and programming work.

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 programming work that uses the 6.001 computing facility or a personal computer. The programming assignments have been planned on the assumption that you will do the required reading and other preparation before you start programming. It is generally much more efficient to test, debug, and run a program you have planned before coming into lab than to try to do the planning online. Students who have taken the subject in previous terms report that failing to prepare ahead for programming assignments generally ensures that the assignments will take much longer than necessary.

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. If you use the 6.001 lab, you'll find that there is often intense demand for the laboratory facilities just before assignments are due. You must plan ahead to get access to a computer because time is reserved 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

Although 6.001 has subject-wide exams, your grade in 6.001 will be based primarily upon the recommendation of your recitation instructor and tutor. Recommendations will be based on:

Changes for Spring 98

We are making several significant changes in 6.001 this semester:

6.001 Policy on Collaborative Work

Many people learn more effectively when they study in small groups and cooperate in various other ways on homework. This can be particularly true in programming assignments, where working with a partner often helps to avoid careless errors. We are very much in favor of this kind of cooperation, so long as all participants actively involve themselves in all aspects of the work--not just split up the assignment and each do only a fraction. When you hand in a paper with your name on it, we assume that you are certifying that this is your work and that you were involved in all aspects of it.

If you work with other students, be sure to do at least part of every assignment by yourself, alone. You will need the practice for the exams. If you program with a partner, both of you should be at the computer trying out your programs; and you should take turns typing--not just have one person always type and the other person always watch. On your homework paper, you should write the names of any other students you cooperated with in doing the assignment.

Even if you do homework cooperatively, you are expected to write up your papers on your own, based on your own level of progress with the material. You may be asked to elaborate on your written work in tutorial. Please remember that copying another person's work and representing it as one's own work is a serious academic offense and will be treated as such.

The 6.001 Programming Lab

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.

Although the 6.001 machines are connected to the MIT network, they are not part of the Athena system. Users of 6.001 machines can use the network to reach other machines. On the other hand, people outside the Lab cannot use the network to access the 6.001 machines.

Using your own computer

You'll find it convenient to work in the 6.001 lab because the Lab Assistants are available to help you, and you can share the warmth and camaraderie of your classmates while you work on problem sets. If you want to use your own computer, the 6.001 staff supports implementations of Scheme for Linux, Windows NT 4, and Windows 95 (sorry, no Macs). See the course web page for software and installation instructions.

The problem sets are designed so that they run on all these implementations, and you can move your work between them if you find this useful. For example, you might start a problem set at home, then spend some time debugging it in the lab where the Lab Assistants can help you, and then finish things up at home.

6.001 is not supported on Athena. The implementation of Scheme on Athena is not compatible with the 6.001 implementations, and we do not guarantee that it can run all the problem sets (and we do guarantee that it cannot run some of the problem sets, e.g., PS2).

One way you can use Athena is as a repository for your own working files, and for transferring the files between the 6.001 lab and your personal machine. See the course web page for information on how to do this. (Don't use FTP from the 6.001 lab! See the 6.001 web page for information.)

The 6.001 staff is also experimenting with ways for you to get help on problem sets without having to come to the lab. Again, see the web page for information.

In order to run MIT Scheme on your personal computer, your system must have:

During the semester, we will place copies of the 6.001 problem set code on the web page, so this can be downloaded by people doing 6.001 on PCs.

Workload

6.001 is time-consuming--but the assignments are not intended to require excessive amounts of time. 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, please speak to your recitation instructor. It is also possible to spend an excessive amount of time programming. This is often the result of failing to prepare properly, i.e., reading the assigned text and exercises, understanding the distributed code, developing plans to solve the questions asked, etc.

Getting Help

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.

Video tapes

A previous offering of 6.001 was videotaped, and you may find the tapes useful for reviewing course material. Tapes are available for viewing in Barker Library. To find the viewing facility at Barker, enter the domed section of Barker and walk straight across to the opposite door.

6.001 Bibles

Collections of past 6.001 homework assignments and solutions are available in various living groups. Although this material can be of some assistance in learning the subject, it is not advisable to use these old solutions mindlessly. Doing so is both intellectually dishonest and also likely to hinder your learning the material. Remember that you will be expected to demonstrate mastery of the homework problems in tutorial and on exams.

The entire database of 6.001 problem sets and solutions is available on the 6.001 Web page and in the 6.001 locker on Athena. Please use this material wisely. It is far better to spend your time working the assignments for this semester rather than hunting through old problem sets.

About this document ...

This document was generated using the LaTeX2HTML translator Version 96.1-h (September 30, 1996) Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.

The command line arguments were:
latex2html red-tape.tex.

The translation was initiated by Hal Abelson on Wed Jan 28 19:27:19 EST 1998

...4.
In order to respect student privacy, section lists posted on the web will list students by MIT ID numbers rather than names.
 

next up previous

Hal Abelson
Wed Jan 28 19:27:19 EST 1998