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
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.
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.
(tentative)
Assignments and Quizzes: 40%
Midterm: 20%
Final: 30%
Discussion Board: 10%
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 |