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 002: Tuesday 7:20 pm - 10 pm;
ENGR 4457
Sec 003: 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.
However, beginning in Spring 2011 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:
· 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 (except 15 March 2011 and 10 May 2011 [Reading Day]) 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: February
8, 2011
Last day to drop: February 8, 2011 (no tuition penalty)
Last day to drop: February 27, 2011
Spring Break: March 14 – 20 2011
Last day of classes: May 3, 2011
Final Examination: May 17, 2011, 7:20 pm - 10:00
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 Slides Liskov 1 Liskov 2-3
|
|
|
2
|
1 Feb
|
Exceptions
|
Liskov 4 Bloch 9
|
Assignment 1
|
Quiz 1
|
3
|
8 Feb
|
Data Abstraction
|
Liskov 5.1-5.4
|
Assignment 2
|
Quiz 2
|
4
|
15 Feb
|
Reasoning About Data
Abstraction || JUnit
|
Liskov 5.5-5.10 JUnit
|
Assignment 3
|
Quiz 3
|
5
|
22 Feb
|
Iteration Abstraction || Type Abstraction
|
Liskov 6 Liskov 7
|
Assignment 4
|
Quiz 4
|
6
|
1 Mar
|
Polymorphic Abstraction
|
Liskov 8
|
Assignment 5
|
Quiz 5
|
7
|
8 Mar
|
Generics
|
Bloch 5
|
Assignment 6
|
Quiz 6
|
|
15 Mar
|
Spring Break
|
|
|
|
8
|
22 Mar
|
Concurrency
|
General Concurrency Bloch 10
|
Assignment 7
|
Quiz 7
|
9
|
29 Mar
|
Specification Checking || Temporal Logic
|
Slides from Kansas
State University Foundations
Temporal
Logic Patterns
|
Assignment 8
|
Quiz 8
|
10
|
5 Apr
|
Common Java Contracts
|
Bloch 3
|
Assignment 9
|
Quiz 9
|
11
|
12 Apr
|
General Programming || Java Doc
|
Bloch 8 Java Doc
|
Assignment 10
|
Quiz 10
|
12
|
19 Apr
|
Classes and Interfaces || Testing
|
Bloch 4 Model Driven Test Design
|
Assignment 11
|
Quiz 11
|
13
|
26 Apr
|
Design Patterns
|
Liskov
|
Assignment 12
|
Quiz 12
|
14
|
3 May
|
Specifications, Security, and Course Wrap Up
|
15Liskov 9 Gary McGraw’s Security Taxonomy 619
Review Slides
|
|
|
|
10 May
|
Reading
Day
|
|
|
|
|
17 May
|
Final Exam
|
|
|
|
Updated: 23 Jan 2011
J. Baldo