This is an archived course. A more recent version may be available at ocw.mit.edu.

 

Syllabus

Flash and JavaScript are required for this feature.

Course Introduction by Profs. Judson Harward and Steven Lerman.

Course Meeting Times

Lectures: 3 sessions / week, 1.5 hours / session

Lab Assistants

In addition to the regular 1.00 TAs, two LAs will be available during the regular office hours.

Lectures / Active Learning Sessions

There are three sessions every week for 1.5 hours each. Many of the sessions will be Active Learning sessions (see calendar for details). Attendance is mandatory at Active Learning sessions. Please bring your laptop and wireless ethernet card to Active Learning sessions. We recommend that you bring your laptop to regular lectures as well.

Text

Amazon logo The textbook for the course is: Horstmann, Cay S. Big Java®. 2nd ed. New York, NY: John Wiley & Sons, 2005. ISBN: 0471697036. It is recommended, not required.

Tutorials

Each student will be assigned to a tutorial section which will be held each week on either Monday or Tuesday. Sections will have 10-12 students and will last for one hour. Attendance is mandatory. Please bring your laptop and wireless card to your tutorial. You should sign up for a tutorial section. Details on signing up for the tutorial section will be provided in class.

Problem Sets

There will be ten problem sets throughout the course and you are required to submit problem sets online.

Extension Policy for Problem Sets

Extensions on problem sets will not be granted, except under exceptional, unexpected circumstances. Only instructors approve extension requests, not TAs. Please do not ask your TA for a problem set extension.

Laptops

We will use laptops to teach 1.00. For details, please come to the first day of class.

Goals of Course

  1. To learn how to use computation efficiently in solving some types of scientific, engineering and management problems.
  2. To learn to program in an interactive, object-oriented environment, namely Java®.
  3. To understand the basic concepts of software engineering:
    • Design
    • Documentation
    • Debugging
    • Teamwork in the implementation of software
  4. To be introduced to the concepts and use of object-oriented software design.
  5. To learn how to build computer programs that make effective use of the Java® class libraries.
  6. To learn how to build interactive graphical user interfaces.
  7. To learn to use algorithms, including:
    • What is an algorithm?
    • How do you describe an algorithm?
    • How do you implement an algorithm from a description?
    • How do you compare and choose an algorithm for a particular application?
  8. To learn to use data structures:
    • What is a data structure?
    • How do you implement one?
    • How do you combine algorithms and data structures?
    • How do you use generic data structures and the Java® collection classes?
  9. To learn to recognize, implement, and combine software patterns.

Course Requirements

Activities Percentages
Ten Problem Sets 48%
Two In-class Quizzes (10% each) 20%
Final Exam (during Finals Period) 22%
Weekly Tutorials (based on Attendance and Participation) 5%
Active Learning (based on Attendance) 5%

 

Quizzes and final exam are open book, open notes.

Registration

If you are a graduate student, please register for 1.001 instead of 1.00 to get graduate credit for this course.