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:
- 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.
- If another student is
confused, help him or her out.
- 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.
- One midterm, one final exam -
40%
- Three projects - 45%
- Homework and homework-related
class participation - 15%. Lack of preparation may result in dismissal from
class or a lower class grade than this percentage might suggest.
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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.)
- 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.
- 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.
- 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
- 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.
- Save early; save often!
- Come see me if you are
confused. Don't wait for office hours -- send email.
- Come see me anyway. I’d like
to know more about you.
- If you have trouble with
spelling and grammar, get and use and word processor that has spelling and
grammar flagging.