Final Version
CSc 422 Parallel & Distributed Programming
Spring 2008, Tuesday-Thursday, 9:30-10:45 a.m.
Description: A concurrent program contains multiple processes that execute at the same time. The challenge is to get the processes to work correctly together. This course examines a variety of parallel and distributed programming problems, and shows how to solve them using shared variables and message passing. Homework will consist of problem sets and programming projects.
Instructor:
Patrick T. Homer
Email: patrick
Email domain: cs.arizona.edu
Office: Gould-Simpson 811, 621-7267
Home: see the printed syllabus. Please do not call after 9:30 p.m. This is a local call from Tucson.
Office Hours: See the class web page. Note: My office hours are subject to change during the semester. I will update the class web page and will email the listserv when changes are needed.
You are welcome to stop by my office, or call my office, outside my office hours. If I have time, I will answer questions. If not, I will make an appointment for a later meeting (in-person or on the phone).
TA: Ravi Sharma
Email: rsharma
Email domain: cs.arizona.edu
Office: GS 710-D, 621-4089
Office Hours: see the class web page. The class web page will be updated and email will be sent to the listserv.
Prerequisites: CSc 345 and CSc 352.
Required texts:
Foundations of Multithreaded, Parallel, and Distributed Programming
Gregory R. Andrews
Addison-Wesley, 2000
ISBN: 0-201-35752-6
get the errata for the textbook from the book’s web site: http://www.cs.arizona.edu/people/greg/mpdbook/. Note there are different errata for the different printings (and the web site explains how to determine which printing you have).
Email: Email questions should be sent to both of us (patrick, rsharma), not just one. That increases your chances of getting a quick response. Note that we will cc each other on responses to your email.
When sending email, always include a subject line. The subject line must have 422 at the start, and must be “reasonable”. Bad examples include “help”, “a question”, etc. Good examples include:
422 - Help on question 1
422 - Clarification on turnin time
csc422: Question about mpd
Email is a *very* useful tool in helping you understand the course material. This is true for other courses as well. Having a good subject line helps immensely in filtering the important email (that related to class work) from less important email.
Email should contain information that is relevant. Including previous email’s on a topic can be useful, but can also be a waste of time. Include information that is relevant; remove that which is not. Note that this means you should not automatically include previous email in the message.
Provide your name in the message. Do not rely on us knowing who you are based only on your email address. When asking about a program, include your cs login.
Use full sentences and write as clear a message as possible. Email that is poorly written simply results in us sending a reply that asks for more information. As an example, tell us specifically what your program is doing wrong, where (what line) it fails on, what output is wrong, which test case(s) do not work, etc. Tell us what you already know about the problem as this saves us troubleshooting time and prevents us from telling you something you already know.
Email summary:
subject line contains 422 and a short version of the contents
include your name and your cs login
provide as much information as possible
include previous email only when useful in understanding your message
Email that does not follow these guidelines will be returned unanswered.
Listserv: A listserv has been setup. I will add students to the listserv on January 18th based on the official class roster using your email.arizona.edu address. You can subscribe using a different address by sending an email message to listserv@listserv.arizona.edu with the body of the message containing the line:
subscribe parallel FirstName LastName
Note that all 4 parts have to be present. You will also have to (later) answer the email response from the listserv in order to complete the subscription.
You can remove an email address from the listserv by sending an unsubscribe message to remove an old email address. Help with an unsubscribe message or other listserv commands is available at: http://listserv.arizona.edu/. (And, we will answer questions about the listserv as well.)
The listserv is set up to always include 422 at the beginning of the subject line.
You can send email to the listserv using the address parallel@listserv.arizona.edu. Email that asks a question of general interest to the class is appropriate for the listserv. Questions that are specific to your solution to a homework or program should be sent to our individual email addresses and not to the parallel listserv.
Grading: Grades will be based on a set of (about) 4 homework assignments, two projects, and three exams. Homework assignments will consist of two parts: questions that require written answers (mainly from end-of-the-chapter questions) and small programs. The homework assignments will be individual efforts. The homework assignments are all of equal weight and will constitute 40% of the final grade. The programming projects will be longer programs. Each project can be done individually or in a team of two people. The two projects are of equal weight and will constitute 30% of the final grade. The three exams are of equal weight, will constitute 30% of the final grade, and will be given on: March 4th, April 10th, and May 13th (during the final exam slot for this class).
The final grade will be determined by:
40% from homework assignments
30% from the two projects
30% from the three exams.
The final grades may (or may not) be curved. A weighted total of 89.5% and above is guaranteed to be an ‘A’, 79.5% and above at least a ‘B’, 69.5% and above at least a ‘C’, and 59.5% and above at least a ‘D’.
I do not post grades. I will periodically email your current grades to your CS department login. This email will show up in your email.arizona.edu mail. If you do not read email at that address, you will need to set a .forward to forward such email to your preferred email address. You can set forwarding using the Filters option from the webmail interface at http://www.email.arizona.edu/.
Important Dates:
Wednesday, January 16: First day to file for grade replacement option (GRO).
Tuesday, February 12: Last day to drop resulting in deletion of course enrollment and last day to file for GRO.
Tuesday, March 4: Exam
Tuesday, March 11: Last day for dropping class or changing to audit.
Thursday, April 10: Exam
Tuesday, May 13: Final Exam 8:00 - 10:00 a.m.
Computer accounts: You will need CS department computer accounts for this course. You can obtain these through the web page: http://www.cs.arizona.edu/computing/services/. If you already have CS department accounts, you still need to do the apply process to update the department’s data base as to the courses you are taking. If you need physical access to the computer labs in Gould-Simpson, you can obtain a swipe card that will let you into the facilities; the CS computer labs are available 7/24.
Late work: Students are strongly encouraged to complete the programming and homework assignments on time. There are three reasons:
•You will not have time to work on an assignment after its due date is passed. It is more important that you proceed to the next assignment.
•Solutions to each assignment will be provided for your benefit after the due date.
•Late assignments are burdensome, and detract from time otherwise available to help students with the current assignment.
Do not feel that your program or assignment must be complete to be turned in. Fair partial credit will be given.
Machine down-time will be taken into account in extending the due dates for programs only if persistent and repeated outages occur over the life-span of the assignment. You should therefore endeavor to complete each program well before the deadline.
Cooperation & Cheating: I encourage you to talk with your friends about the course work; both giving and receiving advice will help you learn. However, students are responsible for understanding and following the University's Code of Academic Integrity. Briefly, you will not accept solutions from other persons, you will not give solutions to others, and you will not tamper with graded papers, code, or exams. It is OK to talk with other students about algorithms and general approaches, but each student must develop and write her/his own code, and each person must turn in her or his own work. I also consider misuse of your computer account a violation of academic integrity. The one exception to this is for test cases. You are allowed to share test cases and expected results of these test cases for the programming assignments. Students who violate the Code should expect at a minimum to fail the course and have charges recorded by the Dean of Students office. They may also be subject to other penalties. Refer to the “Code of Academic Integrity”
for further details on what constitutes cheating, the penalties that may result, and the procedures involved.
Re-grades: If grading seems incorrect, unfair, or inconsistent on a program, homework, or exam, you may appeal for a re-grade. You may talk with the TA or me about the re-grade. Re-grades on assignments and exams will only be accepted during the one week period following their return. The re-grade does not necessarily have to be fully resolved, but the initial request must be made during the one week period. Re-grades on the final exam and assignments/quizzes returned within one week of the final exam date will be accepted through Friday, September 26th — the end of the five-week period during which grade appeals can be initiated:
Do not question or challenge the decisions of the TA on grades and on re-grades! The TA can only assign grades, and change grades, according to instructions that I have given. If you do not agree with the TA, talk to me.
Exams: The dates/times for the exams are firm. Each student must be careful to present a self-contained effort during each exam, and to keep her/his exam paper from easy display. Violations will be dealt with severely, with penalties that may exceed the value of the exam.
Attendance: Attendance is not recorded. However, each student is fully responsible for all material covered by reading assignments, lectures, and handouts.
Variances: Exceptional circumstances do sometimes arise. If such occurs in your case, please get in touch with me (not the TA) as soon as practicable. This can be done in person, in writing, by phone, and/or by email.