Spring 2016
SWE 619 Object Oriented Software Specification and Construction
Section 001/P01





Course Description:

To give the students a solid understanding of modern software construction. To prepare students to construct sequential and concurrent programs. To encourage the construction of software systems of high quality. In-depth study of software construction in a modern language including control structuring and packaging. Concepts such as information hiding, data abstraction, and object-based and object-oriented software construction are discussed and illustrated. This course is part of the core of the SWE program and utilizes the Java Programming Language.


SWE Foundation Courses or equivalent



Adjunct Professor James Baldo Jr.
Computer Science Department

Office Hours:   available by appointment

Teaching Assistant:

Jinging Gu
Office Hours:  available by appointment
Location:   TBD

Class Hours:

Sec 001: Tuesday 7:20 pm - 10 pm;   Innovation Hall 206

Course materials, quizzes, assignments, and announcements will be available on Blackboard.


Required Textbooks and Materials:

Barbara Liskov with John Guttag. Program Development in Java . Addison Wesley, 2001, ISBN 0-201-65768-6. Required.
Direct Safari Link
General Safari Link (off campus)


Joshua Bloch. Effective Java. Second Edition. Addison Wesley, 2008, ISBN 0-321-35668-3. Required.
Note that this is the SECOND edition.
Direct Safari Link
General Safari Link (off campus)


· Some assignments may require programming techniques not covered in the two required texts. I will provide pointers to online material at the appropriate time. Required.

· Online Java documentation is available from Oracle. Recommended.





Attendance is mandatory. Class is scheduled during the semester every Tuesday during the Spring 2016 Semester from 7:20 PM to 10:00 PM.


Course Requirements & Grading:

The course grade is based on one 3 hour comprehensive final examination. All required coursework must be completed by the stated due dates and times. Late assignments will not be accepted, no make-up for missed quizzes, and no make-up test will be given for the final examination.

Assignments & Quizzes:         55%

Final Exam:                             45%

All required coursework for this class is to be performed independently. Please read the information about GMU and CS Department Academic Integrity and Honor Code Policies at

These policies will be strictly enforced.

If you have a documented learning disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with the Office of Disability Services (SUB I, Rm. 4205; 993-2474; to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs.


Important Dates:

Last Day to Drop Class without Tuition Penalty: January 26, 2016
Drop with Tuition Penalty (33%) Date: February 2, 2016

Drop with Tuition Penalty (67%) Date: February 19, 2016

Spring Break: Monday March 7, 2016 to Sunday March 13, 2016  - No Class
Last day of classes: May 2, 2016

Final Examination: May 10, 2016, 7:30 pm - 10:15 pm


Tentative List of Topics:

All lecture slides are available for download on the Blackboard SWE619 Course Page.

All assignments descriptions will be made available on the Blackboard SWE619 Course Page.

All assignments are submitted on via the Blackboard SWE619 Course Page.

All quizzes are available and submitted via the Blackboard SWE619 Course Page.










19 Jan

Course Overview || Procedural Abstraction

619 Review, Liskov 1, Liskov 2-3




02 Feb


Liskov 4, Bloch 9 

Assignment 1 (due on 26 Jan)

Quiz 1 (due on 26 Jan)


09 Feb

Data Abstraction  || JUnit

Liskov 5.1-5.4, JUnit

Assignment 2

Quiz 2


16 Feb

Reasoning About Data Abstraction

Liskov 5.5-5.10

Assignment 3

Quiz 3


23 Feb

Iteration Abstraction || Method Guidelines

Liskov 6, Bloch 7

Assignment 4

Quiz 4


01 Mar

Type Abstraction || Enums and Annotations

Liskov 7, Bloch 6

Assignment 5

Quiz 5

08 Mar

Spring Break – No Class


15 Mar

Polymorphic Abstraction || Generics

Liskov 8, Bloch 5

Assignment 6

Quiz 6


22 Mar


General Concurrency, Bloch 10

Assignment 7

Quiz 7


29 Mar

Specification Checking || Temporal Logic

Slides from Kansas State University  Foundations Temporal Logic Patterns

Assignment 8

Quiz 8


05 Apr

Common Java Contracts, Classes and Interfaces, Java Doc

Bloch 3, Bloch 4, Java Doc

Assignment 9

Quiz 9


12 Apr

Object Initialization || General Programming || Testing

Bloch 2, Bloch 8, Model Drive Test Design, Test Driven Development

Assignment 10

Quiz 10


19 Apr

Design Patterns

Liskov 15

Assignment 11

Quiz 11


26 Apr

Specifications, Security

Liskov 9 || Java Secure Coding

Assignment 12

Quiz 12


03 May

Course Wrap Up

619 Review Slides

Assignment 13

Quiz 13

10 May

Final Exam


Updated: 12 Jan 2016
J. Baldo