6.005 | Fall 2008 | Undergraduate

Elements of Software Construction

Labs and Projects

This course makes use of Athena, MIT’s UNIX-based computing environment. OCW does not provide access to this environment.

Stand-Alone Labs

To use the supporting files in Eclipse, choose the folder containing the unzipped files, using File » Import » Existing Project into Workspace.

LABS SUPPORTING FILES
Lab 0.1: Introductory Java (PDF)

procedural_java (ZIP) (This ZIP file contains 3 .java files and 2 files with no file extension.)

Lab 0.2: Object-oriented Java, and more tools (PDF)

oop_java (ZIP) (This ZIP file contains 12 .java files and 2 files with no file extension.)

collab_svn (ZIP) (This ZIP file contains 3 .java files and 2 files with no file extension.) (Main.java courtesy of Max Goldman, and used with permission.)

Projects

You’ll complete three small software development projects, each of which goes all the way from specification and design to coding and testing. All projects will be done in teams of three students. Projects 1 and 2 have a deliverable after one week (usually involving exploring the problem and working on design issues), and a second, final deliverable after the second week. Project 3 is a three-week project, with three deliverables.

Each project will be preceded by a lab assignment to help you get up to speed with the project’s technology. Lab assignments will be done individually.

PROJECTS SUPPORTING FILES

Project 1: Multipart data transfer

Lab (PDF)

Project (PDF)

multipart (ZIP) (This ZIP file contains 1 .jar file, 5 .java files and 2 files with no file extension.)

Project 2: An abc music player

Lab (PDF)

Project (PDF)

Background reading: an abc subset for 6.005 (PDF)

Grammar in an EBNF (TXT) (Courtesy of Eunsuk Kang, and used with permission.)

abcPlayer (ZIP) (This ZIP file contains 2 .java files and 2 files with no file extension.)

traversal_java (ZIP) (This ZIP file contains 8 .java files and 2 files with no file extension.)

Project 3: Instant messaging

Team building lab (PDF)

Networking lab (PDF)

Optional lab: graphical user interfaces in Swing (PDF)

Project (PDF)

guichat (ZIP) (This ZIP file contains 2 .jar files, 2 .java files and 2 files with no file extension.)

friendly (ZIP) (This ZIP file contains 6 .java files and 2 files with no file extension.)

guiwords (ZIP) (This ZIP file contains 2 .jar files, 2 .java files and 3 files with no file extension.)

Course Info

Learning Resource Types
Problem Sets
Lecture Notes
Projects
Programming Assignments with Examples