Thursday, 4:30pm-7:10pm, 208 Innovation HallGrades Syllabus, Schedule, and Lecture Slides Announce, Assignments, Discussion
|Instructor: Prof. Thomas LaToza||Teaching Assistant: Niyati Shah|
|Office||4431 Engineering Building||4456 Engineering Building|
|Office hours||Anytime electronically, Wed 1:30-3:00, or by appointment||Thursday 2:00-4:00|
This course will provide a comprehensive introduction to software architecture and design, including methods, processes, and notations. This course explores design as the enumeration, evaluation, and selection of design alternatives, and will survey design methods to minimize risk, model the problem, support change, and support reuse.Learning Outcomes
If you have a general question about an assignment or course content, first check piazza to see if someone has already answered your question. If not, post your question in piazza, where your question may be answered by other students or the course staff. For questions about grades, contact one of the TAs by email.
Office hours are times that we commit to being in our office, door open, first come, first served. You do not need an appointment, and no appointments are accepted. If you cannot make the scheduled office hours, then we can try to set up an appointment. Please note that I am seldom available after 5:00 pm. We will inform you in class or on the discussion board if we have to miss office hours.
Weekly readings will be from the course textbook as well as from a number of classic software engineering papers. You should read the assigned readings before each class. Many of the readings are available online. For these readings, you will need to access the link from a device connected through a Mason IP address. If you are accessing the readings from off campus, you can use the Mason VPN.
The course website lists the sylabus, course schedule, and links to the lecture slides. Assignments and announcements as well as discussion will be posted on Piazza. Grades will be posted on Blackboard.
There will be a midterm exam and a comprehensive final exam. Both will be closed-book and in-class. Exams will cover material from the lectures as well as from the assigned readings.
Unless arrangements are worked out in advance, missed exams cannot be made up. As some of the HW assignments involve peer evaluations where groups give and receive feedback with other groups, late HW submissions impact not only the groups themselves but other students in the course. Thus, 10% will be deducted for late HW assignments and late HW assignments will only be accepted for 24 hours after the due date. HW assignments submitted more than 24 hours late will receive a zero. If you’re worried about being busy around the time of a HW submission, please plan ahead and get started early.
As software architecture and design require achieving a mastery of design skills, each class will include an extended in-class group activity. Each activity will result in a small deliverable, often in the form of diagrams, sketches, or lists. In-class activities will each be worth 10 points and will be graded for participation as follows:Satisfactory: put forth a good effort in accomplishing the activity's goals (10/10)
To accomodate planned or unplanned absences, the three lowest scores (including absences) will be dropped.
The assignments in the course will be in the form of a group project. You will select three competing open source applications that each offer an alternative architecture and design for the same underlying problem. Over the course of the semester, you will reverse engineer the architecture and design of each and compare and constrast the approaches taken.
You are allowed to work on the HWs collaboratively using one of two models:
Note: You are NOT ALLOWED to include “guest names.” Every person listed as a collaborator must contribute. If someone is listed as a collaborator but did not contribute, all will be given a zero on the assignment and reported to the university honor committee.
GMU is an Honor Code university; please see the Office for Academic Integrity for a full description of the code and the honor committee process, and the Computer Science Department’s Honor Code Policies regarding programming assignments. The principle of academic integrity is taken very seriously and violations are treated gravely. What does academic integrity mean in this course? Essentially this: when you are responsible for a task, you will perform that task. When you rely on someone else’s work in an aspect of the performance of that task, you will give full credit in the proper, accepted form. Another aspect of academic integrity is the free play of ideas. Vigorous discussion and debate are encouraged in this course, with the firm expectation that all aspects of the class will be conducted with civility and respect for differing ideas, perspectives, and traditions. When in doubt (of any kind) please ask for guidance and clarification.
If you have a documented learning disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with the Office for Disability Services to determine the accommodations you need; and 2) talk with me to discuss your accommodation needs.
Students must use their MasonLIVE email account to receive important University information, including messages related to this class. See MasonLive for more information.