The course will focus on compile- and run-time techniques applied to parallel and distributed computing problems. Topics will be chosen from among:
You can find the class web page at: http://www.cs.uga.edu/~dkl/8730/Spring99/syllabus.html
Generally speaking, we will hold class only on Tuesdays and Thursdays; however, I reserve the right to hold class on Wednesdays as necessary. For example, I will be on professional business the weeks of April 12 and May 1, as well as out of town January 12; we will be holding class on Wednesdays to make up those days.
Office: GSRC 219D, 542-9269
The purpose of this course is threefold: (1) to introduce students to current research in the field of compilers and run-time systems for parallel computing, (2) to teach students to read, write, and think critically, and (3) for each student to carry out an independent research project related to the material covered in the course.
Papers will generally be drawn from this list.
I am a faculty member in the Computer Science Department at the University of Georgia. My main area of research is compiler- and run-time system support for parallel computing.
Office hours are for you. Please do not hesitate to come to my office. Office hours will usually be very busy right before an assignment is due; if you start the assignments early and come to my office well before they are due, you have a better chance of avoiding the rush. Due to my busy schedule, I cannot accept drop-ins outside of office hours.
I will also be available by appointment; please send me email to set one up. Please note that I will not be able to accept all requests for appointments, especially around program due dates. If you do wish to see me outside of office hours, you need to make an appointment. I am more likely to accept appointments on Tuesdays and Thursdays --- Mondays and Fridays are my research days.
Finally, please keep in mind that office hours are not a substitute for missed lectures.
If you have not had all these classes, please see me. If you have had two of these three courses, for example, it is probably ok for you to take the course.
Class will be structured as an open discussion. There will be lectures as well as class discussions in which everyone is expected to participate. In fact, participation is part of the grade.
The beginning of the class will be primarily lecture based, as I will get everyone up to speed on parallel computing. So, don't worry if you don't know anything about parallel computing more than what you learned about threads in operating systems. Later, students will present some of the material.
There is no text for this class; reading will be drawn from the literature. All students will be expected to read all papers. Each student will be responsible for presenting at least one paper to the class. There will be frequent unannounced quizzes covering the papers, so you must read them. If your cumulative grade on the written assignments/quizzes is not passing, you will not pass the class.
There will be between 0 and 2 exams in the class. If everyone is reading the papers and doing well on the quizzes, it is possible that we will not have any exams. However, if I feel you are not keeping up, we will certainly have a (hard) midterm and possibly a final.
Attendance at lectures is required. Please clear any absence with the instructor first. Class participation comprises part of the course grade, and attendance is part of that.
There will be at least two programming assignments. These will consist of implementations of parallel algorithms. For each, you will also perform experimental studies and submit a report. The report is expected to be of high quality and prepared by a text formatter.
A writing guide is available to assist you.
For ease of experimentation, it is useful to simulate dynamically sized arrays in C. A brief dynamically sized array guide may be useful to you.
The most significant part of this course will be the project. You will have approximately eight weeks to complete it. Projects will be related to the course theme and must be a significant undertaking. No project may be done without prior consent of the instructor.
Grades will be assigned on the usual A-F basis. Grading will be absolute; there will be no "curve". Achieving a 90% will guarantee an "A", 80% a "B", and so on. However, when the final grades are given, it could be the case, for example, that an 85% gets an "A". Do not confuse this with a curve, however. If everyone does A work (as I hope), everyone will get an A. If everyone does C work, everyone will get a C. So that you know your grade at all times, four fictitious students will be given grades for each assignment and exam. These students will be named "Min A", "Min B", etc., indicating the minimum score for each grade.
The course grade will be determined as follows:
Please note that these are tentative. Relative weights of assignments can change upon the whim of the instructor. An exam, if given, will be worth at least 15% and will force a rebalancing of weights.
Furthermore, this class is designed around student participitation. If you have more than 3 unexcused absences, you will fail the class unless you withdraw prior to the midpoint of the semester.
Please note: this course will require a lot of work. If you are not willing to work hard, this might not be the right course for you. Please see the instructor for any questions regarding this.
All assignments are due at the start of class. Late work will not be tolerated and receive zero credit unless previously cleared by the instructor.
If you are sick and have appropriate documentation, always let me know as soon as you get sick. It will be to your disadvantage to tell me after the fact that you were sick; you may not be excused from the regular due date.
Note that scheduled downtimes are not an excuse for late work.
Cheating will not be tolerated in this class. You are allowed, and in fact encouraged, to discuss the papers in detail with other students. All writeups, if required, must be done individually. Further, all programs must be done individually; you may have very general discussions with other students. If you have any doubts about what you are doing, ask me. If you are caught cheating you will be penalized appropriately according to University guidelines, regardless if you are the person that gave assistance or the person that received assistance. You will be referred to the Office of Academic Honesty; the minimum penalty is an F in the course and a transcript notation. So, simply put, don't do it.
Please note that unfamiliarity with the rules and regulations of the academic honesty environment at the University of Georgia will not be grounds for leniency. In other words, if you come from a background where collaborative work is the norm, you must realize immediately that it is not allowed in this class, unless cleared by me first.
You may drop the class during the first three days without an annotation ending up on your transcript. Thereafter until the drop day, you may drop the class with an annotation. An incomplete will only be considered in a case where there is a documented medical evidence and you are making satisfactory progress in the course. If you have a medical emergency and are not making satisfactory progress after the drop date, you may be offered a late withdrawal; this is up to the instructor.
First, you are responsible for reading and understanding this entire syllabus. I will hold you to the rules set forth within this document. Second, any computer science programming course involves a significant amount of work. This class will have more work than most computer science courses. If you do not feel you have the time to spend, you may want to think about taking a different course. Ask previous students about the workload in this class. I expect you to treat this class professionally.
I will be using the Web as much as possible for this course. Handouts will be rare. In addition, I will create a mail alias for the course, which will allow me to "post" information in a place where everyone will surely see it.
Class announcements, such as due date and assignment changes, will be made by email notification .You are therefore responsible for checking your email. If you make an error because you did not read your email, I will hold you fully responsible.
You must sign the statement below and return this document to me. Failure to return this document by the end of the second week of classes will result in your forced withdrawal from the class.
By signing at the bottom of this document I state that I have read the entire syllabus and agree to abide by its terms.
Signed: