Engr 664: Concurrent Programming
Spring Semester 2005
Syllabus


Locations

The spring semester 2005 class meets in 235 Weir Hall at 11:00 a.m. on Mondays, Wednesdays and Fridays.

The class is taught by Prof. Conrad Cunningham, whose office is in 203 Weir Hall. The official office hours for this class are 1:30 p.m. until 3:00 p.m. on Tuesdays and Thursdays and by appointment at other times.

Prof. Cunningham's voice telephone number is (662) 915-5358 and fax number is (662) 915-5623. His WWW home page is http://www.cs.olemiss.edu/~hcc/ and his email address is cunningham@cs.olemiss.edu (send?).

The WWW home page for this class is http://www.cs.olemiss.edu/~hcc/engr664/ and the anonymous FTP site is ftp://ftp.cs.olemiss.edu/pub/cunningham/engr664/.

The final examination for this class is scheduled for 12:00 noon on Wednesday, 11 May 2005.


Student Disabilities Services Statement

"It is the responsibility of any student with a disability who requests a reasonable accommodation to contact the Office of Disability Services (915-7128). Contact will then be made by that office through the student to the instructor of this class. The instructor will then be happy to work with the student so that a reasonable accommodation of any disability can be made."


Course Goals

The goals of this course are to (1) present systematically the concepts and issues in concurrent programming, (2) introduce rigorous techniques for the specification and analysis of concurrent program behaviors, and (3) give students experience in implementation of concurrent programs.


Course Description from Catalog

Topics in the theory of concurrent programming. Models of concurrency. Programming logics. Emphasis on the formal specification and verification of concurrent programs.


Prerequisites

The prerequisite given in the catalog is CSCI 550, Program Semantics and Derivation. Since 550 has not been taught since spring 1998, this prerequisite will not be enforced.

This class is intended for students admitted in full standing to the graduate program of the Department of Computer and Information Science. Students are expected to have a background in automata theory, operating systems, algorithms, data structures, and programming languages similar to the undergraduate courses CSCI 311, 423, 433, and 450. Use of the Java programming language will be required in programming exercises.

Graduate students in other fields should not be enrolled in this class without the explicit permission of their department. Any students in this category are expected to provide the instructor with a note from their advisor or department chair indicating such permission.


Source Materials

Textbook:
Jeff Magee and Jeff Kramer. Concurrency: State Models and Java Programs, Wiley, 1999. ISBN: 0-471-98710-7.

Software:
Labelled Transition System Analysis (LTSA) toolset from the CDROM bundled with the textbook.
There is an update to the Java class library on the authors' web pages.
Java 2 Standard Edition 1.42 available free from java.sun.com.

Readings:
Various journal and conference articles, research reports, and other materials as appropriate.


Course Topics

  1. Concurrency Concepts
  2. Processes and threads
  3. Concurrent execution
  4. Shared objects and mutual exclusion
  5. Monitors and condition synchronization
  6. Deadlock
  7. Safety and liveness properties
  8. Model-based design
  9. Dynamic systems
  10. Message passing
  11. Concurrent architectures
  12. Timed systems
  13. Component-based programming -- guest presentation by Yi Liu
  14. Software architecture modeling


Professional Conduct

As a student in Engr 664, you are expected to conduct yourself in a professional manner according to the Honor Code of the School of Engineering, the Information Technology Appropriate Use Policy, the M Book, and any other relevant policies.

Limited Collaboration Policy. Unless otherwise indicated, any homework assignment or programming exercise given in this class will be an individual assignment. The work you submit is to reflect the knowledge, understanding, and skill that you have attained as an individual. However, the instructor does want to encourage the development of a community of scholars who are actively engaged in discussion of the ideas related to this course. With this in mind, you are allowed to discuss solutions of the homework and programming problems with other students if done so according to the following guidelines:


Grading

60 percent of the semester grade will come from the exam average and 40 percent from the homework assignment average.

My grading scale is A [90..100], B [80..90), C [70..80), D [60..70), and F [0..60).


Assignments


Examinations


[ Engr 664 Home ]
[ Cunningham's Home | Teaching | Current Courses ]
[ Department's Home | Courses | Undergraduate Courses | Graduate Courses ]


Send any comments or suggestions to Prof. Conrad Cunningham, cunningham@cs.olemiss.edu.
Copyright © 2005, H. Conrad Cunningham
Last modified: Tue 18 Jan 2005