SWE 622 Course Syllabus
Distributed Software Engineering
||Nguyen Engineering Building 4428, 993-1660
||Tuesday 4:30 to 7:10, Art and Design Building L008
||SWE Foundation Courses or equivalent; Strong Java programming skills
|| Mondays and Thursdays 2-3PM;
||Unfortunately, there is no GTA available for this course.
This course conveys key concepts for designing and building distributed software systems.
The course is geared towards software engineers that work mostly at the application-level,
but need to understand the features and limitations of existing middleware for
Additionally, the course covers some research topics related to currently open problems.
Specifically, some of the topic that will be covered are as follows:
definition and scope of distribution,
principles of communication and computation,
remote method invocation,
software architecture of distributed systems,
middleware systems, service discovery, quality of service,
adaptive systems, mobility, security, and fault tolerance.
Distributed Systems: Principles and Paradigms (2nd edition), Andrew S. Tanenbaum, Maarten Van Steen, 2007, ISBN 0-13-239227-5
Unfortunately, this text is not available electronically through Mason's Safari service.
Various papers; links available on the schedule page.
We will use Piazza for class discussion.
Piazza is highly catered to getting you help fast
and efficiently from classmates, the TA, and myself.
Rather than emailing questions to the teaching staff,
I encourage you to post your questions on Piazza.
Join Piazza on our class page at:
Students are required to participate in class.
For grading purposes,
participation is defined as joining and contributing to the Piazza discussion
In class participation is also expected,
but is not formally graded.
All assignments are due at the start of class on the due date.
In other words, late assignments are not accepted.
There are no exceptions.
There are two types of assignments in this class:
A reading assignment is a "pencil and paper" exercise.
Reading assignments may be done individually or in groups of up to four (4) students.
For group submission,
turn in one copy only, with a clear statement of contribution
on the part of each student.
Note: It is a violation of the honor code
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 reported to the university honor committtee.
Please bring reading assignments directly to class.
If you are unable to attend class, you can submit an electronic version via Blackboard.
Programming assignments: Working code.
Programming assignments are due on the Volgenau's Unix cluster.
Submission details are provided with the assignment.
Program assignments must be done individually.
That is, collaboration is not allowed:
You must write your own code.
A midterm exam is held approximately halfway through the semester
during regular class time. See schedule page for exact date.
A final exam is held during the University-scheduled exam period.
The honor system governs all work turned in for credit.
Collaboration is allowed on reading assignments within each group.
Programming assignments must be completed individually,
with the exception that you are allowed to seek assistance from the professor or the GTA.
Exams must be completed individually without any outside assistance.
I refer violators to the GMU Honor Committee according
to the procedures given in the GMU Course Catalog.
Further details available at the
CS Department's Honor Code
Grades are computed as:
Five (5) Reading Assignments (20%),
Two (2) Programming Assignments (25%),
Midterm Exam (25%),
Final Exam (25%).
The scale for transforming numeric scores to letter
- 90-100: A, A-
- 80-89: B+, B, B-
- 70-79: C
- Below 70: F
As the semester progresses, I post notices about changes
to the course
Electronic Device Policy
From an educational perspective, electronic devices are
a classic "dual-use" technology.
Students are allowed (perhaps even encouraged)
to use electronic devices (laptops, cellphones, etc.)
for class-related activities such as taking notes, viewing slides, etc.
However, general surfing is explicitly disallowed.
General surfing is defined by example as
emailing, checking stock quotes, texting, tweeting, skyping,
facebooking, buying stuff on Amazon etc.
Because "second-hand" surfing is a documented educational hazard for
other students, non-class related use of electronic devices
is grounds for sanction
according to the following schedule:
If you have to take that call, text, or email (and I do understand it can happen),
please put your phone on vibrate
and quietly step outside the classroom.
- First violation: warning
- Second violation: final grade decrement (eg B+ to B)
- Subsequent violations: additional grade decrement;
possibly asked to leave the classroom.
I am happy to participate in academic accomodations,
but they must be formally arranged through
It is the student's responsibility to bring
the need for accomodations to my attention.