OO Software Specification and Construction
(SWE 619 Course Syllabus - Spring 2024)

Table of Contents

1. General Information

2. Schedule and Assignments

3. Syllabus

3.1. Course Description

To give the students a solid understanding of modern software construction. To encourage the construction of software systems of high quality. In-depth study of software construction in a modern language including program specifications and OO designs. 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.

Prerequisite: SWE Foundation Courses or equivalent

3.2. Course Materials

  1. Barbara Liskov with John Guttag. Program Development in Java: Abstraction, Specification, and Object-Oriented Design. Addison Wesley, 2001, ISBN 0-201-65768-6. Required. O’Reilly Link
  2. Joshua Bloch. Effective Java. Third Edition. Addison-Wesley Professional, 2017, ISBN 978-0-13-468599-1. Required. O’Reilly Link

Note: We’ll start with Liskov. Don’t worry about the publication date; Liskov is basically a math book, and hence ages 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.

3.3. Weekly Schedule

This class is a group-based, in-person offering. You need to be present in class at class time. You will also need to schedule regular meetings with your group.

Each week will cover a topic, which is a small number of related technical issues (see course schedule). Each topic will follow roughly the same sequence of preparation, in-class learning activities, homework completion and (possibly) presentation, and knowledge assessment. Many of these activities will be group based. The sequence is:

  • Preparation: Complete assigned readings and watch relevant videos, if any. No formal submission for this activity.
  • Class Meeting:
    • Combined session on the day’s topic, followed by in-class exercises (group breakouts)
    • Break
    • Combined session on the day’s topic, may followed by in-class exercises (group breakouts)
  • Homework (group-based)
  • Assessments via quiz: takes place at the end of class the same day as the homework is due.

3.4. Grading

Assignenmts Percentage
Group Functioning (group-based) 10%
Homework assignments (group-based) 20%
Weekly Quizzes (individual) 40%
Final exam (individual) 30%

3.4.1. Scale

A+ >= 97% A >= 93% A- >= 90%
B+ >= 87% B >= 83% B- >= 80%
C >= 70% D >= 60% F < 60%

3.4.2. Group Functioning

Every student needs to be part of a group. I would prefer that groups stay stable throughout the semester, but if there is a good rationale to reconfigure a group or two, we’ll do that.

Group size: 2 to 4 students.

Group creation mechanism: You will have a chance to form your own group. If you can’t find one, we can help. If your group dwindles to just yourself, you’ll need to join another group.

At the end of the semester, each individual will provide an assessment of the rest of their group. This assessment will determine the “Group Functioning” part of the grade.

3.4.3. Homework Assignments

There are weekly group homework assighments. I post homework assignments on the class schedule web site. Your group will submit assignments via BB.

Because of the way in which this class is taught, it is important to stay on pace. Homeworks are due before class. Late submissions are not accepted except in truly exceptional circumstances.

Important:

  • Each group should be prepared to present their homework solution in class.
  • Statement of who did what. Homeworks are group exercises. Each submission must contain a specific statement of who did what.
  • There are no make-ups.
  • Other than the first assignment (where we might not have formed all groups), only one submission per group. Everyone in the group gets the same credit.

3.4.4. Weekly Quizzes

  • Each quiz happens during the last 15-20 minutes of class.

Make-up Policy

  • All quizzes count towards the final grade. Each quiz is scored on a 10 point scale. Missed quizzes score 0/10. Students who miss a quiz or perform badly on a quiz may choose to take the “make-up”.
  • The maximum possible score on the make-up is 8/10. (Example: your quiz grade is 5/10. You take the make-up and correctly answer 9 of 10 equally weighted questions. Your final score improves from 5/10 to 8/10.)
  • If you attempt the make-up, that score counts, no matter what your score was on the quiz. (Example: your quiz grade is 7/10. You take the make-up and correctly answer 5 of 10 equally weighted questions. Your final score declines from 7/10 to 5/10.)
  • Scheduling: the GTA will offer the make-up during TA office hours. The make-up can be different than the quiz given in class, but focuses on the same topics.
  • The make-up must be taken promptly and within a window of two class meetings from the quiz. (Example: Quiz 1 takes place on Wednesday, September 1. The make-up must be taken on or before Wednesday, September 15. Another Example: Quiz 11 takes place on Wednesday, November 11. Because we don’t meet the week of Thanksgiving, the make-up must be taken on or before Wednesday, December 1.)
  • Each quiz only has one make-up, and you can only attempt that make-up once. However, you are free to use the make-up mechanism on as many different quizzes as you wish.
  • Quizzes are generally returned one week after the quiz is taken. Make-ups are returned after the window has closed.

3.4.5. Final Exam

There will be an final exam at the time specified by the university’s final exam schedule.


3.5. Class Attendance

I place great emphasis on peer learning and interactive engagement. The class is structured to leverage group interactions to the largest extent possible for the purpose of maximizing learning gain through out the semester.

Bottome line: It’s important to be in class.

3.6. In-Class Exercises

I plan an in-class exercise for every class. Students will work in their designated group. Very often, the in-class exercises will be closely related to an upcoming homework assignment.

3.7. Record Keeping

We’ll use Blackboard to maintain RAW scores and attendance data. Grades are computed according to this syllabus.

It’s the student’s responsibility to ensure that Blackboard records are correct. (I’m happy to correct errors.)


3.8. Honor Code

As with all GMU courses, this class is governed by the GMU Honor Code. In this course, quizzes and the final exam carry with them an implicit statement that it is the sole work of the author.

3.9. 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.


3.10. Acknowledgement

This class is heavily modeled after Paul Ammann’s SWE419 course.

Author: ThanhVu (Vu) Nguyen

Created: 2024-01-31 Wed 16:31