[Note: this webpage last modified Thursday, 25-Apr-2013 09:58:42 EDT]

Table of Contents

General Information
Purpose and Focus of Course
Grading, Assignments, and Expectations
Academic Integrity
Special Needs

General Information

Lecture: TR 9:30-10:45, in A-015 Root Hall
Final Exam: Tuesday April 30, 10am-noon
Office hours: I am generally in my office and available most MWF's from about 8:30am-4pm. My official office hours are Wednesdays 9:30-11:30am. My office is A-156 Root Hall
Instructor: Jeff Kinne
Website: (or search for Jeff Kinne on google, bing, yahoo, etc. and find a link to the course website from my personal webpage)

Required text: We will use readings from online sources. Those will be posted here once available.

Mathematical Review: This course assumes "mathematical maturity" - that you are familiar with proofs, basic mathematical reasoning, run-time analysis of algorithms, etc. You can review much of this material by looking at the following MIT opencourseware page: 6.042J / 18.062J Mathematics for Computer Science, Fall 2005. That course has exercises that you can attempt to solve and then check the solutions. For most who take CS 670, it would be highly beneficial to spend time before the course starts and/or early in the semester reviewing that type of material, in particular focusing on proofs (including induction), logic, asymptotic running time, and basic counting/probability.


If you have not taken CS 458/558 and CS 559 at ISU, you need the instructor's permission to register for the course. If you have any questions about this, send an email or set up a time to see me.

Course Announcements

Announcements regarding the course will be made both during class and via email to your email address. You should regularly check this email account or have it forwarded to an account that you check regularly.

Purpose and Focus of Course

CS 670 is a required course in the CS master's program. It is one of the more applied courses in the degree that will be heavy in programming. In the course, we explore many different paradigms of parallel programming: making use of multiple cores with threads or multiple processors, using a distributed cluster, and using graphics GPUs for computation. We will study algorithmic and concurrency issues (e.g., avoiding deadlock and race conditions, load balancing) that arise due to parallel programming. We look at these topics from a theoretical perspective when necessary, but the focus is on implementing as many "cool programs" as possible. The programming will be primarily in C and C++. If time permits, we will look at other programming languages and software packages that take advantage of parellel programming. In particular, I hope to have time to look at Hadoop and R.

See the schedule for a more detailed list of topics.

Grading, Assignments, and Expectations

The students of this course have the following responsibilities: read assigned pages of the book before lecture, attend lecture, take exams, complete homework assignments, and complete an end of semester project. The final grade consists of:

The class attendance grade serves the purpose of giving you credit for coming to class. You benefit from coming to class by seeing me present the new material, getting to ask questions, interacting with your classmates, keeping up on what is going on in the course, etc.

The exams serve as benchmarks of your ability to solve problems relatively quickly and without any help. This helps me assign a grade, and also gives you motivation to pay attention and keep up with the assignments.

The homework assignments are designed to solidify your knowledge and give you practice in writing and programming. Some homework assignments will be problem solving/analysis assignments where you will turn in a document for your solution. Others will be programming assignments where you turn in a program. Other times I may ask that you meet with me outside of class to explain your solutions, and I will grade you based on correctness and clarity of presentation.

The final project will be discussed further after the first few weeks of the semester. You will choose a topic that we have not discussed in class, learn the material, prepare a written document and a program, and present the material to the class.

Expectations. My expectation is that an average student will spend 6-12 hours OUTSIDE of class each week WORKING PRODUCTIVELY/EFFICIENTLY (not just starring at the computer) to complete their coursework for this class. Some students may spend less time than this, and some students may spend more. This is a challenging course, but the rewards are great as well. This is truly fascinating material.

Classroom conduct. You may not use cell phones, iPods/music players, etc. during class. You should be civil and respectful to both the instructor and your classmates, and you should arrive to class a few minutes before the scheduled lecture so you are ready for lecture to begin on time. All laptops MUST BE CLOSED and all computer screens of the computers in the classroom MUST BE TURNED OFF. The reason is to prevent distractions to other students, and to prevent the temptation to check email/facebook/etc. If you still feel taking notes on the computer helps you the most, you may ask for an exemption to this policy.

Important Note. If you wait until the last minute to begin your homework assignments, you likely will not succeed in this course. It takes "time on the calendar" in addition to "time on the clock" to solve the homework problems. I suggest you look at the problems as soon as possible after they are handed out and work on them for a while. After you have exhausted your efforts, you can set them aside and come back to them in another day or so. Then repeat this process. If you come to office hours and have not worked on the homework problems at all, I can be of little assistance to you. If you come with meaningful questions and have thought about the problems, I will be better able to help you. I will not be available the day before a homework assignment is due. If you wait until the last minute to start the homework, you will be on your own. Working on the homework problems will be much less stressful if you start early!

I STRONGLY encourage you to get off to a good start to the course. It can be difficult to begin the course with a poor grade and end the course with a good grade.

Grade cutoffs

I make no promise ahead of time what the exact cutoff will be in terms of the number of points to achieve an A+, A, A-, etc. These will depend on how the course goes. I will use the guidelines below in assigning letter grades. After the first few weeks, I will include a "letter grade if the semester ended today" in your grades. You can keep track of how you are doing in the course with the grades on the blackboard site for this course.

The following is roughly what I would expect by the end of the semester to earn a particular grade.


The course has a blackboard site. Click here to go to blackboard. You should see CS 670 listed under your courses for the current term. The blackboard site is used only for giving you your grades. All course content, schedule, etc. is kept on the instructor's webpage (which you are currently viewing).

Academic Integrity

Please follow these guidelines to avoid problems with academic misconduct in this course:

If cheating is observed, you will at the least receive a 0 for the assignment, and I will file a Notification of Academic Integrity Violation Report with Student Judicial Programs, as required by the university's policy on Academic Integrity. A student who is caught cheating twice (whether in a single course or in different courses) is likely to be brought before the All-University Court hearing panel, which can impose sanctions up to and including suspension/expulsion. See the Student Code of Conduct and Academic Integrity Resources for more information.

Please ask the instructor if you have doubts about what is considered cheating in this course.

Special Needs

If you have special needs for the classroom environment, homeworks, or quizzes, please inform the instructor during the first week of classes. If you have any such needs, you should go to the Student Academic Services Center to coordinate this. See Student Academic Services Center - Disabled Student Services for more information.