Fall 2011
SWE 619 Object Oriented Software Specification and Construction
Sections 002 and DL1

  

  

  

  

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.

Prerequisites:

SWE Foundation Courses or equivalent


Instructor:

Adjunct Professor James Baldo Jr.
Computer Science Department

E-mail:    jbaldo@gmu.edu
Office Hours:   available by appointment

Teaching Assistant:

TBD
Email:    
Office Hours:  
Location:   

Class Hours:

Sec 002: Tuesday 7:20 pm - 10 pm;   ENGR 4705
Sec DL1: Tuesday 7:20 pm - 10 pm;   NET

This course is delivered to the Internet section online using Moodle learning management system with MIST/C, which has replaced the Network EducationWare (NEW) delivery system. Students in all sections will have accounts on Moodle and download the slide files from the Moodle course page. Only students in online sections will be able to connect to class sessions and to download recordings of the lectures. Login information will be sent to all enrolled students by
email, before the first scheduled class.


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:

Attendance is mandatory. Class is scheduled during the semester every Tuesday during the Fall 2011 Semester from 7:20 PM to 10:00 PM. Online students have the option of attending class either online or at the Fairfax Campus.


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 not be given for the final examination.

Students in the NET section are expected to come to GMU to take the final examination on the date/time stated in the detailed Timetable.

Assignments:         30%

Quizzes:                 30%

Final Exam:           40 %

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

http://cs.gmu.edu/wiki/pmwiki.php/HonorCode/HomePage.

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; http://ods.gmu.edu/) to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs.


Important Dates:

Last day to add:  September 6, 2011
Last day to drop: September 6, 2011 (no tuition penalty)
Last day to drop: September 30, 2011

Columbus Day Recess: October 10 2011  - No Class
Last day of classes: December 6, 2011

Final Examination: December 13, 2011, 7:30 pm - 10:15 pm


Tentative List of Topics:

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

All lectures are recorded and available for download/replay on the Moodle SWE619 Course Page.

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

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

All quiz descriptions will be made available on the Moodle SWE619 Course Page.

All quizzes are performed on the Moodle SWE619 Course Page.

Meeting

Date

Topic

Reading

Assignment

Quizzes

1

30 Aug

Course Overview || Procedural Abstraction

619 Review Slides Liskov 1 Liskov 2-3

 

 

2

6 Sep

Exceptions

Liskov 4 Bloch 9 

Assignment 1

Quiz 1

3

13 Sep

Data Abstraction

Liskov 5.1-5.4

Assignment 2

Quiz 2

4

20 Sep

Reasoning About Data Abstraction  || JUnit

Liskov 5.5-5.10 JUnit

Assignment 3

Quiz 3

5

27 Sep

Iteration Abstraction || Method Guidelines

Liskov 6 Bloch 7

Assignment 4

Quiz 4

6

4 Oct

Type Abstraction || Polymorphic Abstraction

Liskov 7 Liskov 8

Assignment 5

Quiz 5

11 Oct

No Class

7

18 Oct

Generics

Bloch 5

Assignment 6

Quiz 6

8

25 Oct

Concurrency

General Concurrency Bloch 10

Assignment 7

Quiz 7

9

1 Nov

Specification Checking || Temporal Logic

Slides from Kansas State University  Foundations Temporal Logic Patterns

Assignment 8

Quiz 8

10

8 Nov

Common Java Contracts

Bloch 3

Assignment 9

Quiz 9

11

15 Nov

General Programming || Java Doc

Bloch 8 Java Doc

Assignment 10

Quiz 10

12

22 Nov

Classes and Interfaces || Testing

Bloch 4 Model Driven Test Design

Assignment 11

Quiz 11

13

29 Nov

Design Patterns

Liskov

Assignment 12

Quiz 12

14

6 Dec

Specifications, Security, and Course Wrap Up

15Liskov 9 Gary McGraw’s Security Taxonomy 619 Review Slides

13 Dec

Final Exam


Updated: 18 Aug 2011
J. Baldo