Syllabus SWE619

Instructor: Gregory Kulczycki

Class Hours: Tuesdays from 7:20 PM - 10:00 PM

Class Location: Innovation Hall, Room 208

Prerequisite: SWE Foundation Courses or equivalent

Office Hours: By appointment

Course Objectives

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. This section of 619 uses Java.

Course Materials

Program Development in Java by Barbara Liskov with John Guttag. Addison Wesley, 2001

Effective Java (2nd ed) by Joshua Bloch. Addison Wesley, 2008

Both texts are required, and both are available through Safari Books Online. Other material will be provided as needed.

Grading

(tentative)

Assignments and Quizzes: 40%
Midterm: 20%
Final: 30%
Discussion Board: 10%

Schedule

Date Topic
January 21 Decomposition and Abstraction
January 28 Understanding Objects; Procedural Abstraction; Exceptions
February 4 Data Abstraction
February 11 Data Abstraction – using abstractions
February 18 Data Abstraction – implementing abstractions
February 25 Iteration Abstraction
March 4 Type Hierarchy; Polymorphic Abstraction
March 11 Spring Break – No class this week
March 18 Common Java Contracts / Unit Testing
March 25 Symbolic Reasoning
April 1 Design Patterns
April 8 Software Development
April 15 Concurrency / Temporal Logic
April 22 Security
April 29 Review