6.170 / Spring 2001 / General Information

Handout A1

Contents:


Course web site

The course web site is http://web.mit.edu/6.170/www/.


Registration Form

All students must fill out the online registration form by midnight on Tuesday, February 6, or they will not be able to take the class.

For the final group project your team must consist of people from the same recitation as yourself. Since you will not be permitted to change recitations after they are assigned take care when listing the people you would like to be in a recitation with. The list of people you wish to work with should be consistent amongst yourselves.


Staff


Lecturers Michael Ernst NE43-524 253-0945 mernst-at-no.lcs.mit.edu
  John Guttag 38-401 253-6022 guttag-at-no.eecs.mit.edu
Course Secretary Kincade Dunn NE43-529 258-5707 kdunn-at-no.lcs.mit.edu
Head TA Jeremy Nimmer NE43-413   mistere at MIT
TAs Sameer Ajmani NE43-525 253-3058 ajmani at MIT
Matt Deeds NE43-618 253-6284 mdeeds at MIT
Andreas Hofmann NE43-006 253-2475 x110 hofma-at-no.ai.mit.edu
John Holmes 24-313   jsholmes at MIT
Felix Klock NE43-630 253-7710/876-4448 pnkfelix at MIT
Kenneth Lu 24-315   kenlu at MIT
David Maze 24-313   dmaze at MIT
Delphine Nain 24-313   delfin-at-no.ai.mit.edu
Jeffrey Sheldon 24-313   jeffshel at MIT
Allison Waingold NE43-531 253-4507 allison-at-no.lcs.mit.edu
LAs Robert Lee     rhlee at MIT
Chris Leger     clleger at MIT
Gary Mishuris     bheartg at MIT
Shantonu Sen     ssen at MIT
Carl Steinbach     cws at MIT

Mail sent to 6.170-staff@mit.edu will reach the lecturers, TAs, and LAs.
Mail sent to 6.170-lecturers@mit.edu will reach the lecturers.
Mail sent to 6.170-tas@mit.edu will reach the teaching assistants.
Mail sent to 6.170-las@mit.edu will reach the laboratory assistants.

Staff Hours

TAs will schedule office hours and locations by the end of the first week of class. Please visit your TA (or another TA, if necessary) during their office hours if you have anything you'd like to discuss about the course or course materials. Office hours will be posted on the web at http://web.mit.edu/6.170/www/office-hours.html

LAs will schedule LA hours held in designated clusters. Please feel free to work in the cluster so you can talk to them in person when you have questions about Java or other technical details. Time permitting, they also monitor the 6.170 zephyr instance while on duty, but they give priority to students who visit them in person (which is a better way to interact with the LAs anyway). Please see the LA Lab hours for an up-to-date list of hours.

The lecturers are available by appointment but do not have fixed office hours.

Who to Ask

When solving your assignments, the laboratory assistants should be your first resource for problems with your Java code or the Athena environment. For other questions, the LAs may be able to help you with advice or information, but the answer of a TA or lecturer is authoritative. Your TA can answer most questions about the course. The LAs or TAs may choose to escalate your questions to the head TA or the lecturers; you may also do so yourself if you do not receive an answer.

Here are some examples of questions appropriate for various staff members. Naturally, you shouldn't ask a question unless you have first tried to find the answer yourself. When asking a question, be sure to say what you have already tried to do to solve the problem; that way the staff won't waste its time and yours repeating something you already know.


Texts

Required Text

Barbara Liskov. Program Development in Java: Abstraction, Specification, and Object-Oriented Design. Addison Wesley, 2001.
Available at Quantum Books (specially reserved), or from amazon.com. Extra copies of the book have been specially reserved at Quantum which not only sells the book at a discounted price, but will save you the cost of shipping, and, since it is for a class, sales tax.

Recommended Java Texts

This course is not about Java, but you will be required to learn Java during the first few weeks. You must obtain a book on Java and read it in time to be able to complete the problem sets. Here are some suggestions for a Java text:

Other References


Where and When

Lecture/recitation

6.170 meets Monday, Tuesday, Wednesday, and Thursday from 10-11 in the morning.
Monday, Tuesday, and Wednesday are lectures in 34-101, and Thursday is recitation.

Recitation Section Locations (Thursdays at 10am):
You will be assigned to a recitation based on the sign-up form you submit; the section assignment made by the registrar is ignored.
SectionInstructorLocation SectionInstructorLocation
1Felix36-153 7Jeremy36-372
2Allison36-144 8John26-328
3Matt66-168 9Kenneth66-144
4Sameer26-322 10David66-156
5Jeffrey24-407 11Delphine38-136
6Andreas31-161

Recitation section information will be distributed by email on the evening of Wednesday, February 7, and will also be available on the web.

Labs

While 6.170 is a lab class, lab work will be performed on your own time either on Athena or using your own personal machine. Since both lectures and recitations in 6.170 tend to focus on conceptual material pertaining to software engineering rather than particulars of how to use the Java language, this term for the first time we are offering optional tutoring sessions in lab. These sessions are optional and ungraded.

Lab sessions will involve a one-hour exercise that introduces you to some tool (such as editing environments, compilers, debuggers, and profilers) or to some aspect of the Java language (such as inheritance and the Swing library). TAs and LAs will be on hand to help you with any problems. Students will work in pairs to help you learn from each other: your styles, little tricks about programming, using the environment, etc. You can also get to know other students; we encourage you to work with a different partner each week (but we do not require it). Lab sessions are not to be used for working on problem sets, which are individual work.

Lab sessions are held in 34-501 (the 6.001 lab). There are three one-hour lab sessions per week: Friday at 10, 11, and 2. You may attend whichever is most convenient for you.

Quizzes

There will be two one-hour quizes during class time, on March 7 and April 11.


Policies

Grading policy


Individual
Work
TA discretion
(including recitation participation)
5%
70%
Problem set 1 6%
Problem set 2 6%
Problem set 3 6%
Problem set 4 6%
Problem set 5 6%
Problem set 6 10%
Quiz 1 12.5%
Quiz 2 12.5%
Group Work Final Project 30%
30%
We will make every effort to standardize TA grading policies, but we reserve the right to normalize grades across recitation sections to account for remaining disparities.

Late/missing work

Collaborative work

The Departmental Guidelines Relating to Academic Honesty require that we inform you of our expectations regarding permissible academic conduct. You can feel free to talk about these issues with the course staff, whom you should also ask for clarification if you are confused about the wording of a problem. If this policy is not clear, ask a member of the course staff for clarification.


Procedures

Handouts

Handouts will be distributed on the class web site. Announcements will be posted as Messages of the Day on the class website. These announcements are also available by subscribing to the 6.170-motd mailing list. Very important announcements will be emailed to all students.

How to Submit Assignments

Problem set solutions are submitted in hardcopy and, whenever possible, also electronically. (For instance, all code is submitted in both formats; drawings maybe submitted in both formats if created online, or only in hardcopy if drawn freehand.) Problem set assignments will sometimes specify what should be handed in and what should be put online.
(Exception: your TA will decide whether PS1 is to be submitted both in hardcopy and electronically, or only electronically.)

Your documentation must clearly indicate any shortcomings of your program. If your code does not compile, or if certain functionality is missing, and your documentation does not clearly and prominently indicate as such, then you will lose points for the omissions (as well as for the defect itself).

Diagrams which you turn in must be readable. While we shan't be grading on artistic merit, if it is not easy to see what is happening, then you have not successfully conveyed the relevant information, and you will be graded accordingly.

Physical problem set solutions should be handed in to the course secretary (NE43-529) by 5:00 pm on the due date, with your name, user name, TA's name, and section number written on it. Please be prompt and don't harass the course secretary about the deadline as she would like to go home on Thursday nights.

Electronic problem set solutions should be submitted via the turnin6170 script. You should place your name near the top of all files you turnin. Along with your electronic submissions you must always include a README file which should provide a brief overview of your turnin. The README should include brief descriptions of any files you turn in. (You may wish to describe each by a single line, or describe groups of them together; do whatever is clearest.) Do not turn in extraneous files, as every file you turn in will be graded, and points will be taken off for files that are not used or are not mentioned in the README file.

All code you turn in must compile. It must also run when called in the manner specified by the problem set, or it will not receive credit for correctness. TAs will not adjust your output formats or otherwise debug your programs to try to get them to run. You will be given example input and output files, and often full test suites as well, in order to test your own programs before submitting them. Specifically, you should use the validate6170 script to check your code before you submit it.

For many of the problem sets we will provide you with a detailed specification for the behavior of the code that you will write. It is imperative that the program you write conform precisely to these specifications. This means that your program should not write anything to either standard out or standard error other than precisely what is specified. You should verify that the spelling, phrasing, or punctuation conforms to the specification as your program will be subjected to automated testing. The output of your program should furthermore be deterministic: it should not vary from run to run when presented with the same input.

In addition to providing specifications for the behavior of your program, we will often provide specifications for certain classes. For such classes you are free to add private fields, methods, and constructors, but unless otherwise specified you may not add public, protected, or default-access (package) fields, methods, or constructors.

The test suites which you include with your program should run in under a minute when testing your implementation.

Graded Assignments

We will to return graded assignments to you within one week from when they are due, or, in the case of late turnins, from when you submit the assignment. In some cases, your TA may get assignments back to you even faster, but that does not constitute a promise that the TA will be able to finish grading the next assignment just as quickly.

Re-Turning in Assignments

After any code you submit for problem sets 1-4 has been graded, you will submit a corrected version of the code (even if you received complete correctness credit for the original submission). The resubmitted programs are graded on correctness only, and there is no partial credit. You don't have to expand documentation, fix style problems, etc. (though doing so might simplify the task of correcting your program). The regrade is worth about a fourth of the total grade for the assignment, so failure to resubmit your program will mean you can't get more than 75/100, even if everything else was perfect.

For example, suppose that student Tortoise received 60/75 points on the first problem set submission, then later submitted a correct program, and further suppose that student Hare received 70/75 points on the first problem set, but did not bother to fix the problems in the submission. Then after adding the returnin points, Tortoise's final grade would be 85/100, while Hare's would be 70/100.

You can resubmit your assignment using returnin6170 which operates similarly to turnin6170.


Problem set hints

To complete assignments as efficiently as possible, and to derive the most benefit, we recommend that you:
Back to Administrative Info.
Back to the 6.170 home page.
For problems or questions regarding this page, contact: 6.170-webmaster@mit.edu.
$Id: generalinfo.html,v 1.59 2001/04/25 16:16:14 mernst Exp $