SWE 619 Course Syllabus

Schedule Home page

   OO Software Specification and Construction
   Spring 2020

Professor:  Paul Ammann 
Office:  Nguyen Engineering Building 4428, 993-1660 
Email:  pammann@gmu.edu
URL:  http://cs.gmu.edu/~pammann/619.html
Class Hours:  Monday 4:30 to 7:10, Lecture Hall 2
Prerequisite:  SWE Foundation Courses or equivalent 
Office Hours:  Monday, Tuesday 1-2PM; anytime electronically; after class; by appointment
GTARoberto PM
GTA Office hours: Monday 3:00-4:30 (ENGR 5321)

Changes: March 2020

Rather than sprinkle small changes throughout the syllabus, I'm simply going to list changes here.

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

Course Materials

Note on the course materials: We'll start with Liskov. Don't worry about the publication date; Liskov is basically a math book, and hence ages remarkably well. We're interested in contracts, mutability, data abstraction, and type abstraction. Bloch is concerned about the same things, but explores them in more detail and in more up-to-date Java. Bloch also corrects some important points that weren't well understood when Liskov's text came out.


Students are expected to read the relevant material (text, various sources on the web, etc.) before class. The lectures will not cover everything in the readings, and significant class time will be spent on exercises that rely on the readings.



Weekly quizzes replace midterms. Quizzes take place during the first 10 to 15 minutes of class. Best not to be late.

I hand out printed quizzes (on paper) with adequate space to respond. All you need, besides an understanding of the material, is a something to write with.

Make-up Policy:


SWE 619 will use the Piazza software for a discussion board and for posting updates. Participation on the discussion board counts towards your grade. Here's the deal: A constructive, relevant, non-redundant post earns a Piazza point. Here are some examples: You can earn one Piazza point, but no more, in any given week. (A "week" is defined as the way Piazza tracks weeks.) You're done earning points after you hit the magic number 5, but you are, of course, still welcome to continue posting. Participation must occur during the semester, not after final exams start. Note: starting early is good strategy.

I find anonymous discussions unhelpful in this class; here learning is predicated on interactions. Plus, part of your education is to learn to stand behind your questions and ideas. That's how employees function in the working world. Piazza allows partial, but not complete, control of anonymous posts. Should someone post anonymously, I will ask the poster to change the visibility and ask the class not to respond to the anonymous version.

Homework Assignments

There are weekly homework assighments. I post homework assignments on the class web site. Generally, you should submit assignments via Blackboard, but if there is no "code" aspect to the homework, you are welcome to hand in a paper submission in class.

Because of the way in which this class is taught, it is important to stay on pace. Homeworks are due before class. Handing in an assignment after the start of class or changing an assignment after the due date will result in the assignment being considered "late". Substantial penalties apply to late assignment submissions: 20% if turned in up to one week late; zero credit thereafter. If you will miss class on the day something is due, submit your solution prior to class electronically.

Collaboration on homework exercises

You may work homework problems individually if you wish. But I discourage it.
Since collaboration is a valuable learning technique, you are encouraged to collaborate using one of the following two models:

Final Exam

The final exam is closed book/closed notes/closed web. The only exception is a single sheet of 8 1/2 x 11 paper (double sided) with hand-written notes created by the person taking the exam. The final is in-class and comprehensive.

Class Attendance

I place great emphasis on in-class learning. Here's why.

In-Class Exercises

I plan an in-class exercise for every class. Students will work in small groups. Sometimes, I will let you choose your group; sometimes, I'll choose the groups. Some of these exercises need a Java development environment. Very often, the in-class exercises will be closely related to an upcoming homework assignment. These exercises will be used to monitor attendance.

ShowMe Videos

The course schedule page links to a number of short videos created with the ShowMe service. Some students find these helpful for grasping key points from various lectures. Several items of note:
  1. Each ShowMe captures an interaction a student has with me. Such interactions can help students master the material more effectively than having me drone on solo.
  2. I am interested in creating more ShowMe videos for other topics in the course. Contact me if you would like to help me do this. These interactions count towards class participation.
  3. I am open to redoing existing topics if there is something you think could be done better.

In-class computers and communication

Phone calls, text messages, instant messages, email, and general web surfing are highly disruptive to other students and hence not allowed during class time. Technology devices may only be used for the class purposes (eg following slides or working on in-class assignments.)


Please note that questions of general interest should not be emailed to me. Post on Piazza instead.

Virginia Privacy Laws

The state of Virginia now has laws that require the University (including me) not to disclose student email addresses, phone numbers, and addresses. This will impact communications in this class as follows:

Honor Code

As with all GMU courses, SWE 619 is governed by the GMU Honor Code. In this course, all quizzes and the final exam carry with them an implicit statement that it is the sole work of the author. See the collaboration discussion above for rules on homework assignments. Any deviation from this is considered an Honor Code violation, with ultimate sanction determined by the Honor Code committee.

Learning Disabilities

Students with learning disabilities (or other conditions documented with GMU Office of Disability Services) who need academic accommodations should see me and contact the Disability Resource Center (DRC) at (703)993-2474. I am more than happy to assist you, but all academic accommodations must be arranged through the DRC.