CptS 580 Concurrent Programming 
Fall 2003
(this document is on-line at http://www.eecs.wsu.edu/~hauser/CS580/Syllabus.html)

Course Objectives

Concepts and implementation of concurrent programs using shared memory and message passing. Implementation of concurrency mechanisms.

This course has a significant hands-on programming component. The programming projects are designed to both develop your skill in concurrent programming and to stretch your understanding of issues in concurrent programming. 

Course Mechanics

Instructor: Carl Hauser, EME 53, 5-6470, mailto:hauser@eecs.wsu.edu
Office Hours: Monday and Wednesday 4-5PM or make an appointment by e-mail

Class Meeting Time and Location:
TTh 10:35-11:50, Location TBA

Required Text Book
: Gregory R. Andrews, Foundations of Multithreaded, Parallel, and Distributed Programming. The second printing (not second edition) is preferable if you can get it.
Additional Required Reading:
Professor Sheldon prepared a tutorial (http://www.eecs.wsu.edu/~sheldon/ds/index.html) on logic and set theory and placed it on the web. It is material that should be familiar to you. However, you may not have recent practice in using it and it will be quite important early in this class. Review the material before the second class meeting.
Prerequisite: CptS 360 and permission of instructor. Good knowledge of programming in C, C++ or Java. 

Class Web Page: http://www.eecs.wsu.edu/~hauser/teaching/CS580
Class Mailing List: cs580@eecs.wsu.edu. Clarifications about projects and homework and other announcements may be sent to the list between class sessions. Initially, I will use a private mailing list for sending out announcements, etc., but within a few weeks I intend to have the cs580@eecs.wsu.edu mailing list available for open class discussions.

Lab space:
  Computers in the NIF Lab, ETRL 301 are available for your use in programming assignments and projects. Your EECS computer account is required for access to these computers. If you don't have an EECS account you will need to get one. (Information about EECS accounts). You will also need to visit the on-line EECS Help Desk https://helpdesk.eecs.wsu.edu to obtain your door code for the lab.

Lecture notes: I will post my lecture notes to the course web site following each lecture. Past experience shows that students do best who take their own notes, using mine to fill in the holes. If notes are not posted by 5PM on the day of the lecture feel free to send me email to remind me.

Requirements

You are responsible for all material presented in the lectures and for being prepared for the problem discussions. Repeated absence from lectures or lack of preparation may lead to dismissal from class. Your active participation in this class is vital to its success. I expect you to own your degree of success in this class. And, I expect you to contribute to the success of others. Examples:

  1. If a lecture point is unclear, ask a question, either in class, during office hours or by e-mail. You are probably not alone in your confusion. I enjoy engaging in technical conversations with students with the goal of helping them create an accurate understanding of course material. Participating in such conversations is very favorable for your class participation grade. I hate talking about grades and how you can get a better one. 
  2. If another student is confused, help him or her out.
  3. If I am systematically doing something that inhibits your learning, tell me.

Exams, Quizzes, Projects and Grading

The following is tentative and may be fine-tuned during the semester. 

Work Calendar

There will be frequent homework assignments which we will discuss during class. I will ask random class members to lead the discussions. Your preparation for these discussions is a crucial part of learning the material in this class, and of your grade.

Tentative dates. Each assignment will specify its official due date.

Assignment

Assigned

Due

Project 1

9/16

10/14

Test 1

10/16

--

Project 2

10/21

11/18

Project 3

11/20

12/9

Final Exam

Mon. 12/15 10:10-12:10

 

Subject Calendar

Topic

Approximate Time Period

Shared Memory Concurrency

6 weeks

Communicating Sequential Processes

4 weeks

Concurrency patterns

3 weeks

Parallel programming

2 weeks

Policies and Expectations

  1. I expect you to demonstrate critical thinking across the spectrum of course work. Adaptations of the WSU Critical Thinking Rubric will be used in grading some of the projects and homework.
  2. I expect you to cooperate with other students and to pull your share in class discussions. Respect that different people in your group may have different ways of learning and different strengths. Seek ways of taking advantage of those differences.
  3. I expect you to engage in active learning: speak up when you don't understand, question assumptions, relate course material to your experience outside class, seek out additional experience and reading related to the class. You must construct your understanding of the material. 
  4. I expect you to promptly review feedback you receive from me or other students; to actively clarify the feedback if the material is still unclear; and to incorporate the feedback in your future work.
  5. I expect you to spend adequate time on the course. Adequate time includes getting enough rest so that time you spend on course tasks is well-spent time. Adequate time includes proofreading and reviewing your assignments before you hand them in.
  6. I expect you to have high expectations of yourself: set goals for yourself and try to do your very best. Consciously think about the balance between what you do to earn a grade and what you do to learn. (If I'm doing something that puts these in opposition to each other please let me know.)
  7. You are expected to know and observe the WSU Academic Integrity Standards and the EECS Academic Integrity Policy. Copying of other students' work, plagiarism of published sources and other forms of academic dishonesty will result in zero credit on the assignment for all students involved and a lower grade in the class. Even a first offense may result in loss of assistantships for graduate students. A second offense (across the University) will result in an automatic F in the course and exposes the violator to University sanctions up to and including expulsion. All offenses will be reported to Student Affairs.
  8. Keep your coursework. Please make sure that you collect all your for this class. Bring it with you to class or to any appointments you have with me. I may ask you to turn in your collection from time to time for my review and I will expect you to use it to check the final grade sheet just prior to the end of the term.
  9. Reasonable accommodations are available for students who have a documented disability. Please notify me during the first week of class of any accommodations needed for the course. Late notification may cause the requested accommodations to be unavailable. All accommodations must be approved through the Disability Resource Center (DRC) in Administration Annex room 206, 335-3417.

Advice

  1. Don't wait until the last minute to do homework or projects. The lab gets busy, computers break down, people get sick. These are not sufficient excuses for an extension.
  2. Save early; save often!
  3. Come see me if you are confused. Don't wait for office hours -- send email.
  4. Come see me anyway. I’d like to know more about you.
  5. If you have trouble with spelling and grammar, get and use and word processor that has spelling and grammar flagging.