Download as pdf or txt
Download as pdf or txt
You are on page 1of 1

menu

6.005 | Fall 2008 | Undergraduate

Elements Of Software Construction

Menu More Info

Lecture Notes
Review Handouts
State machine syntax and semantics (PDF)

Graphical object model notation (PDF)

Topics by Session
Notes for lecture 21 are not available.

Abbreviations
JSP = Jackson Structured Programming

DPLL = Davis-Putnam-Logemann-Loveland (algorithm)

SQL = Structured Query Language

SES # TOPICS LECTURE NOTES

Introduction
1 Basic Java syntax and semantics; overview of objectives and structure of the course (PDF)

Classes
2 More Java: exceptions, input/output, classes, access control, static (PDF)

Subclassing and interfaces

3 Subclassing, inheritance, overriding, interfaces, packages; distinction between declared type and actual type; (PDF)
downcasting; anonymous classes

Designing state machines


4 State machine design; graphical and textual notation; state machine semantics; parallel combinations of machines (PDF)

Implementing state machines


5 State machine implementation patterns; concurrency and queues; modularity and interfaces (PDF)

State machine invariants

6 Safety and liveness properties; state properties and invariants; inductive reasoning; computing the product machine of a (PDF)
parallel combination; state explosion; fault tolerance; interlocks and the idea of a trusted base

Designing stream processors

7 Stream processing programs; grammars vs. machines; JSP method of program derivation; regular grammars and (PDF)
expressions

Decoupling and interfaces


Feedback

8 Modularity, decoupling, information hiding; module dependence diagrams; using interfaces for decoupling (PDF)

Testing and coverage

9 Why software testing is hard; input space partitioning, boundary testing, state machine coverage, code coverage; test-first (PDF)
development and regression testing

Designing a SAT solver, part 1

10 The SAT problem and SAT solvers; a new paradigm of functions over immutable types; use datatype productions to (PDF)
model structured values; patterns for implementing datatypes (Variant as Class, Interpreter)

Designing a SAT solver, part 2

11 Review of basic datatype patterns; a naive solver with backtracking search; design improvements with Facade, Option (PDF)
types, and a 3-valued logic

You might also like