Course Syllabus
Course Number |
Course Title |
CSCI 234 |
Design of Internet Protocols |
Fall Semester |
Spring Semester |
Summer Semester |
Year |
X |
|
|
2008 |
Name of Instructor |
George Blankenship |
Meeting Day, Time, and Room Number |
Saturday, 9:30 am – 12:00 pm, RESRC1 222 |
Office Hours |
(Saturdays after
class, and by appointment) |
This course presents protocol specifications and form description methods. The course presents finite-state description notation, a specification and description language (SDL), and an implementation of a protocol specification. Student should be comfortable with C programming or Java; CSCI 210, and CSCI 211 would help the student understand background concepts.
The course introduces and explores a variety of formal process description and analysis techniques used in the design of modern communication and software systems. It also illustrates the practical issues when using a number of such formalisms and software tools, particularly within the context of developing communications protocols and other telecommunications applications. This course presents an overview of computer protocol design and analysis. The student will be introduced to the major concepts of protocol evaluation and analysis. The class will also examine the wireless networking protocols for areas where a number of the fundamental algorithms are used.
Upon successful completion of the course students will:
a) Understand the issues in protocol design, implementation and analysis
b) Know how to use an automated software tool (SPIN) and a language (PROMELA) for specification and analysis
c) Understand the various concepts of concurrency, communication and control in systems and their associated modeling issues
d) Know how to graphically express protocols (state machines, message sequence charts)
e) Understand event-based and state-based formalisms
f) Design and analyze a system or a communications protocol using appropriate design techniques and automated analysis tools
g) Understand the features and limitations of languages used to model protocols
The class will consist of lectures, formal and informal discussions, homework assignments, programming assignments, and two exams. All notes will be posted on the class web page.
Course grades will be computed according to the following percentages:
Homework |
20% |
Research
Project |
25% |
Mid-term
exam |
25% |
Final
exam |
25% |
Class Participation |
5% |
Homework is due two weeks following the assignment. It can be delivered by email to BlankenG@GWU.edu, on a floppy, or in printed form; email is the preferred method of delivery. Each page of the homework must have the student's name and id, date, and assignment number. Each page should be numbered "page x of y". If an assignment is submitted in hardcopy (paper) form, it should be stapled. It is too easy to loose or misplace homework. Each student is expected to keep a copy of all homework and projects submitted. Homework will be assigned in most classes. Late homework risks a grade of zero. It is better to turn in an incomplete homework assignment for a partial grade, than to accept a zero. Generally each homework assignment will include extra credit problems; late homework will not be eligible to receive extra credit points. All of the homework assignments will be averaged for an overall homework grade. The homework and research assignments represent 45 points of the final grade. There will be 6 homework assignments and 1 research assignment.
There will be a mid-term exam and a final exam on the lecture material. Each will be worth 25 points of the final grade.
Active participation is encouraged in the class. Questions and discussions are a significant portion of the learning experience. Class participation will be worth 5 points of the final grade. Repeated absence, or tardiness, can generate a negative value for class participation.
The following table gives the topics covered in each class. September 30, 2008 is a holiday since the weekend includes Labor Day. November 29, 2008 is a holiday since the weekend follows Thanksgiving.
Date |
Material to be covered (or other task) |
8/23/08 |
Introduction
to protocol and protocol inspection |
8/30/08 |
(Labor Day
holiday) |
9/6/08 |
Error and
flow control |
9/13/08 |
Finite
state machines |
9/20/08 |
Concurrency |
9/27/08 |
Concurrency
(continued) |
10/4/08 |
Database operation |
11/8/08 |
Midterm
(covering lectures 1 – 5) |
10/11/08 |
Protocol testing |
10/18/08 |
PROMELA and
SPIN |
10/25/08 |
PROMELA and
SPIN (continued) |
11/1/08 |
(protocol
validation examples) |
11/8/08 |
Midterm |
11/15/08 |
(project
preparation) |
11/22/08 |
HL7
Protocol Validation example |
11/29/08 |
(Thanksgiving
holiday) |
12/06/08 |
Research presentations |
12/13/08 |
Research
presentations |
Holzmann, Gerard J.,
Design and Validation of
Computer Protocols,
(Please review the class web page: http://gwu.gblankenship.us)
A learning experience is a combination of independent study and co-operative investigation with both the instructor and classmates. The results of the learning experience are measured by the achievement of the individual. Co-operative study is encouraged; however, all work submitted must be the result of the individual submitting the work and all other sources must be acknowledged.
This class, along with all classes at GWU, follow the "The George Washington University Code of Academic Integrity".