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.
Sec 001: Tuesday 7:20 pm - 10 pm;
Enterprise Hall 274
Students will have accounts
on Moodle and will be able to download lecture slide files from the Moodle
course page. Login information will be sent to all enrolled students by
email, before the first scheduled class.
Required
Textbooks and Materials:
· 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
Spring 2012 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:
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:
Registration Dates:
November 01, 2011 to January 31, 2012
Drop without Tuition Penalty Dates: November 01 2011 to January 31, 2012
Drop with Tuition Penalty (and final drop deadline) Dates: February 01, 2012
to February 24, 2012
Spring Break: Monday March 12, 2012 to Sunday
March 18, 2012 - No Class
Last day of classes: May 5, 2012
Final Examination: May 15, 2015, 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
|
24 Jan
|
Course Overview || Procedural Abstraction
|
619 Review, Liskov 1, Liskov 2-3
|
|
|
2
|
31 Jan
|
Exceptions
|
Liskov 4, Bloch 9
|
Assignment 1
|
Quiz 1
|
3
|
07 Feb
|
Data Abstraction || JUnit
|
Liskov 5.1-5.4, JUnit
|
Assignment 2
|
Quiz 2
|
4
|
14 Feb
|
Reasoning About Data
Abstraction
|
Liskov 5.5-5.10
|
Assignment 3
|
Quiz 3
|
5
|
21 Feb
|
Iteration Abstraction || Method Guidelines
|
Liskov 6, Bloch 7
|
Assignment 4
|
Quiz 4
|
6
|
28 Feb
|
Type Abstraction || Enums and Annotations
|
Liskov 7, Bloch 6
|
Assignment 5
|
Quiz 5
|
7
|
06 Mar
|
Polymorphic Abstraction || Generics
|
Liskov 8, Bloch 5
|
Assignment 6
|
Quiz 6
|
|
13 Mar
|
Spring Break – No Class
|
|
|
|
8
|
20 Mar
|
Concurrency
|
General Concurrency, Bloch 10
|
Assignment 7
|
Quiz 7
|
9
|
27 Mar
|
Specification Checking || Temporal Logic
|
Slides from Kansas
State University Foundations
Temporal
Logic Patterns
|
Assignment 8
|
Quiz 8
|
10
|
03 Apr
|
Common Java Contracts, Classes and Interfaces,
Java Doc
|
Bloch 3, Bloch 4, Java Doc
|
Assignment 9
|
Quiz 9
|
11
|
10 Apr
|
Object Initialization || General Programming ||
Testing
|
Bloch 2, Bloch 8, Model Drive Test Design, Test
Driven Development
|
Assignment 10
|
Quiz 10
|
12
|
17 Apr
|
Design Patterns
|
Liskov 15
|
Assignment 11
|
Quiz 11
|
13
|
24 Apr
|
Specifications, Security
|
Liskov 9 || Java Secure Coding
|
Assignment 12
|
Quiz 12
|
14
|
01 May
|
Course Wrap Up
|
619 Review Slides
|
Assignment 13
|
Quiz 13
|
|
15 May
|
Final Exam
|
|
|
|
Updated: 10 Jan 2012
J. Baldo