Laboratory in Software Engineering
Lecture Notes
SES # |
TOPICS |
LECTURE NOTES |
Week 1 |
||
L1 |
Introduction |
(PDF) |
L2 |
Object semantics |
(PDF) |
Week 2 |
||
L3 |
Subclassing |
(PDF) |
L4 |
Specifications |
(PDF) |
L5 |
Testing |
(PDF) |
Week 3 |
||
L6 |
Object model notations Code summary |
(PDF) (PDF) |
L7 |
Introduction to ADTs |
(PDF) |
Week 4 |
||
L8 |
Representation invariants |
(PDF) |
L9 |
Abstraction functions |
(PDF) |
L10 |
Dependencies and decoupling |
(PDF) |
Week 5 |
||
L11 |
Exceptions |
(PDF) |
L12 |
Equality |
(PDF) |
L13 |
Polymorphism: guest lecture by Gilad Bracha |
|
Week 6 |
||
L14 |
Subtypes and subclasses |
(PDF) |
Week 7 |
||
L15 |
Classes and interfaces |
(PDF) |
L16 |
Usability 1 |
(PDF) (Courtesy of Prof. Robert Miller. Used with permission.) |
L17 |
Usability 2 |
(PDF) (Courtesy of Prof. Robert Miller. Used with permission.) |
Week 8 |
||
L18 |
Design patterns |
(PDF) |
L19 |
Design project experiences 1 |
(PDF) |
L20 |
Design project experiences 2 |
(PDF) |
Week 10 |
||
L21 |
Managing a small software team |
(PDF) (Courtesy of Corey McCaffrey. Used with permission.) |
Week 11 |
||
L22 |
Guest lecture by Joshua Bloch and Neal Gafter |
|
Recitations
SES # |
TOPICS |
RECITATION NOTES |
R1 |
Specification and testing |
(PDF) |
R2 |
ADT, rep exposure, and object model diagrams |
(PDF) |
R3 |
Abstraction functions and representation invariants |
(PDF) |
R4 |
Equality and hashing |
(PDF) |
R5 |
True subtyping and the substitution principle |
(PDF) |
R6 |
Design patterns |
(PDF) |
Assignments
The assignments in this section refer to Athena, which is MIT's UNIX-based computing environment. Assignments are due in the lecture (L), recitation (R), quiz (Q), and project (P) sessions noted in the table. We recommend that you read the entire problem set before you begin work. Important background material on problem set procedures and hints is provided below the table.
ASSN # |
TOPICS |
PROBLEM SETS |
SUPPORTING FILES |
0 |
Introduction to 6.170 tools and infrastructure |
(ZIP) (The ZIP file contains: 20 .java files.) |
|
1 |
Java and coding to specification |
(PDF) |
(ZIP) (The ZIP file contains: 10 .java files.) |
2 |
BasicList |
(PDF) |
(ZIP) (The ZIP file contains: 2 .java files.) |
3 |
Object model extractor |
(ZIP) (The ZIP file contains: 2 .java files.) |
|
4 |
Design an Abstract Data Type |
(PDF) |
(ZIP) (The ZIP file contains: 7 .java files.) |
5 |
Stata Center navigation and analysis |
(PDF) |
(ZIP) (The ZIP file contains: 1 .java file.) |
6 |
Boggle |
(PDF) |
(ZIP) (The ZIP file contains: 20 .java files.) |
Background Material
Problem set procedure (PDF)
Hints on succeeding on 6.170 problem sets (PDF)
The following two reference files, which should be used jointly with the problem set procedure, provide additional details on how to complete the problem sets for 6.170.
Emacs and command line reference (PDF)
Eclipse reference (PDF)
Projects
A major component of 6.170 is the final project, counting for 35% of the student's total grade. Students work in teams, and all team members receive the same project grade. Although full collaboration on all aspects of the final project is permitted, every member of the team is expected to contribute a roughly equal share to the design and implementation. Each team may enter its final project implementation into a class contest for an award.
Gizmoball
Gizmoball is a customizable pinball game.
Gizmoball (PDF)
Amendment and errata (PDF)
Supporting files (ZIP) (The ZIP file contains: 1 .jar file, 3 .java files, and 3 .xml files.)
RSS Reader
An RSS reader is an application that aggregates feeds syndicated in the RSS format.
RSS Reader (PDF)
Amendment and errata (PDF)
Related Resources
The documents in this section refer to Athena, which is MIT's UNIX-based computing environment.
Additional 6.170 Resources
Working at home (PDF)
6.170 diagrams (PDF)