SWE 622 Course Syllabus
Distributed Software Engineering
Fall 2014
Professor: |
Paul Ammann |
Office: |
Nguyen Engineering Building 4428, 993-1660 |
Email: |
pammann@gmu.edu |
URL: |
http://cs.gmu.edu/~pammann/622.html
|
Class Hours: |
Tuesday 4:30 to 7:10, Art and Design Building L008 |
Prerequisite: |
SWE Foundation Courses or equivalent; Strong Java programming skills |
Office Hours: |
Mondays and Thursdays 2-3PM;
anytime electronically;
after class;
by appointment
|
GTA: |
Unfortunately, there is no GTA available for this course. |
Overview
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
distributed systems.
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,
socket programming,
remote method invocation,
software architecture of distributed systems,
middleware systems, service discovery, quality of service,
adaptive systems, mobility, security, and fault tolerance.
Course Materials
-
Distributed Systems: Principles and Paradigms (2nd edition), Andrew S. Tanenbaum, Maarten Van Steen, 2007, ISBN 0-13-239227-5
Required.
Unfortunately, this text is not available electronically through Mason's Safari service.
-
Various papers; links available on the schedule page.
Piazza
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:
https://piazza.com/gmu/fall2014/swe622
Participation
Students are required to participate in class.
For grading purposes,
participation is defined as joining and contributing to the Piazza discussion
forum.
In class participation is also expected,
but is not formally graded.
Assignments
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:
-
Reading assignments.
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.
Exams
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.
Honor System:
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
page.
Grading
Grades are computed as:
Participation (5%),
Five (5) Reading Assignments (20%),
Two (2) Programming Assignments (25%),
Midterm Exam (25%),
Final Exam (25%).
The scale for transforming numeric scores to letter
grades is:
- 90-100: A, A-
- 80-89: B+, B, B-
- 70-79: C
- Below 70: F
Updates
As the semester progresses, I post notices about changes
to the course
updates page.
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:
- First violation: warning
- Second violation: final grade decrement (eg B+ to B)
- Subsequent violations: additional grade decrement;
possibly asked to leave the classroom.
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.
Academic accomodations
I am happy to participate in academic accomodations,
but they must be formally arranged through
Disability Services.
It is the student's responsibility to bring
the need for accomodations to my attention.