SWE 619 Course Syllabus



Schedule Home page

   OO Software Specification and Construction
   Fall 2023

Professor:  Paul Ammann 
Office:  Nguyen Engineering Building 4428
Email:  pammann@gmu.edu
URL:  http://cs.gmu.edu/~pammann/619.html
Class Meeting:  Wednesdays 4:30 to 7:10, Horizon Hall Room 2009
Format:  This class meets in person, face-to-face. This is NOT an online class.
Prerequisite:  SWE Foundation Courses or equivalent 
Office Hours:  Wednesdays 2:00-3:00; IN PERSON; also available online by request
Office Hours Zoom:  My Personal Room. Waiting room enabled. (Passcode: 1uL2qf)
GTA Sultan Khassenov skhassen@gmu.edu
GTA Office hours: Wednesdays 2:00-3:00, Location: Buchanon 215, Desk 2

PLEASE READ THE SYLLABUS

Students often ignore syllabi. But this class differs in many ways from typical classes. You are responsible for the content of this syllabus whether you choose to read it or not.

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.

Weekly schedule

This class is a group-based, in-person offering. That means you need to be present in class at class time. You will also need to meet with your group outside of class. Although your group is free to meet in person, most groups will probably find it more convenient to meet online.

Note: If the in-person, group-based thing isn't for you, there is an asynchronous online section of this class available. See Patriot Web for details.

Each week will cover a small number of related technical issues (see course schedule). Let's call this small number of technical issues a "topic". 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. (See a later section in the syllabus on my view of the importance of interactive learning.) The sequence is:

Grading

"Group-based" activities are collaborative and intended to leverage peer-learning. They are not (primarily) assessment instruments. This means that you are required to collaborate with your group and that you are also free to collaborate with others outside of your group.
"Individual" activities (i.e. weekly quizzes, final) are assessment instruments. This means that collaboration on these activities is an honor code violation.
Each of these grade components is discussed below.

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: 3 or 4 students. We may end up with some groups of size 2.

Group creation mechanism: As a default, we'll drop students into groups at random. If you are happy with your random group, great! If you prefer a different group, during the first week you will have the option to re-group. If your group dwindles to just yourself, you'll need to join another group.

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

Groups can communicate internally through any mechanism they choose: zoom, discord, google docs, whatever.

Reading Reflections

Each week, each group must complete a "reading reflection" the day before class. (That means midnight Tuesday, in the case of this class, since class meetings are Wednesday afternoon.) I will review these assessments before class, compile the overall responses, and use them to tune the in-class activities. Reading reflections are linked from the course schedule and must be turned in on Blackboard. These reflections are part of the learning process rather than the assessment process. That is, they don't assess whether you have achieved mastery of the new material, rather they check whether you have done the necessary preparation.

Important: There are no make-ups for reading reflections.

Important: Only one submission per group. Please! Everyone in the group gets the same credit.

Important: Every reading reflection submission must include a statement of who contributed to the reflection. Submissions that do not include such a statement will not be graded.

Homework Assignments

There are weekly group homework assighments. I post homework assignments on the class web site. Generally, your group should submit assignments via Blackboard.

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.

Important: Only one submission per group. Please! Everyone in the group gets the same credit.

Important: Every homework submission must include a statement of who did what. Homeworks that do not include such a statement will not be graded.

Weekly Quizzes

Quiz Make-up Policy:

Final Exam

There will be an in-person final exam at the time specified by the university's final exam schedule. I may also offer an oral option for interested students.

Class Attendance

I place great emphasis on peer learning and interactive engagement. Here's why. I have structured the class 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, and it's important to work with your group.

In-Class Exercises

I plan in-class exercises for every class. These are group activities. If possible, you should complete these exercises with your designated group. Some of these exercises need a Java development environment. Very often, the in-class exercises will be closely related to an upcoming homework assignment.

In-class exercises are not collected or graded. If you have questions about the in-class exercises, post your questions to Piazza.

ShowMe Videos/Other 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.
  3. I am open to redoing existing topics if there is something you think could be done better.
  4. Other videos are just me.

Record Keeping

We'll use Blackboard to maintain RAW scores and attendance data. Grades are computed according to this syllabus. There is a column in BB labeled "TOTAL": Ignore it; it's meaningless for this class. (BB, in typical BB arrogance, does not give me the option of disabling or hiding this column.)

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

Every semester, I get email from students wondering why there grade doesn't correspond to the TOTAL column in BB. Please don't be the student who sends me this message.

Email

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

Virginia Privacy Laws

Virginia state law requires the University (including me) not to disclose student email addresses, phone numbers, and addresses. This will impact communications in this class as follows:

Piazza

We'll use Piazza for discussions. I will add students who are enrolled on Patriot Web to the Piazza page for this class. (Self sign-up is disabled; we've had problems with that in the past.)

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.

I mostly expect students to provide responses to questions from other students. I've asked the GTA to not jump in with prompt answers; I won't either. We will, however, endorse (or correct) such answers.

Honor Code

As with all GMU courses, SWE 619 is governed by the GMU Honor Code.

In this course, every quiz carries with it an implicit statement that it is the sole work of the author. The final exam carries with it an explicit statement that it is the sole work of the author.

Further, all group submissions require a statement of participation from each member of the group. "Guest" listing on a reading reflection or a homework submission is an honor violation for the entire group. If a student doesn't contribute to a submission from his or her group, the statement of contribution must say that. The student takes the zero and hopefully gets back on board on the next submission.

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.

Contact note:

You should avoid using BB to contact me; I stay off BB as much as possible. Prefer Piazza or (if necessary) email. If you want to schedule an appointment, contact me by Piazza or email. I do not use the Microsoft calendar, and I do not respond to "Teams" requests.

Pandemic

Details of Mason's pandemic policies are available on Mason's Safe Return to Campus page. These may change from time to time. I expect everyone in the classroom to follow these guidelines, whatever they may be. If you wish to be more conservative than the guidelines, for whatever reason (please DON'T share; it's not my business), you are welcome to do so.

Whatever the guidelines say, if you are sick, please STAY HOME!

If the pandemic protocols force you to miss class for an extended period, contact me. In particular, we will work out a schedule for you to take oral assessments as an alternative to the weekly quizzes. Note that other class deliverables can be completed remotely.

If you have pandemic-related accommodations or concerns that I need to know about, please share those with me promptly.