CS/ECE 560 and CS 560 DL will be taught as one course in Spring 2012.

CS 560 introduces students to the concept of representing computations mathematically in order to automatically parallelize and otherwise transform such computations to improve performance. In the current computing climate with the increased complexity of memory hierarchy and levels of parallelism, the development of techniques to automate the generation of code that can effectively use such architecture features is critical.

In CS/ECE 560 students hand parallelize and performance optimize important scientific computing kernels such as an n-body simulation, dense linear algebra computations, protein string matching, and stencil computations such as those that appear in earth science simulations. Students then learn about frameworks such as the polyhedral framework for automating such parallelization and performance optimization. This is all done through homeworks (one due each week), a full term project, online quizzes, online discussion questions and answers, and a midterm.

Michelle Mills Strout
Office: 342 CS Building
Office Hours in 342: Wed 2-3pm or by appointment
Manaf Gharaibe
Lecture Time and Place:
2:00-3:15, Tues and Thur, CompSci Room 325
Homeworks due: Wednesdays by 11:59pm mountain time


CS 453 compilers or CS 475 parallel programming or equivalent courses at another institution are prerequisites for this course. In order to understand the material in this course, you will need to have a good working knowledge of C/C++ and OpenMP parallel programming. Additionally, you should have a decent math background in discrete math and linear algebra.


There is no required textbook for this course. All of the required reading material will be provided online.


Here are the formally graded elements of the course and associated weighting:

Activity Weight
Homework Assignments 35 %
Quizzes and Online Discussions 5 %
Midterm 25 %
Project 35 %

Semester grades are determined by the weighted sum of points earned in each of these areas. A compression curve is used for the midterm ONLY. All other grades in the course are NOT curved. The grading scale is as follows: >= 90 is an A, >= 88 is an A-, >=86 is a B+, >=80 is a B, >=78 is a B-, >=76 is a C+, >=70 is a C, >=60 is a D, and <60 is an F.

To pass this course, you must maintain at least a 50% average each of the following parts of the course: homework assignments, project, and the test grade (quizzes + midterm). For example, a 100% in the homework and project grades combined with a 49% midterm will NOT result in a passing grade.

There will be 11 homeworks and the lowest homework score will be dropped.

There will be approximately 5 online quizzes on the reading assignments. Additionally there will be some online discussions in which all students should participate.

The midterm, homework assignments, quizzes, and projects will be done individually and grades assigned on an individual basis.

Late and Makeup Policy

Midterm: The midterm is a take home test that must be done individually. The midterm will be provided online the seventh week of class at 3:30pm mountain time on Tuesday February 28 and will be DUE through electronic submission on Thursday March 1st by 1:55pm mountain time. If the midterm is late, 10% will be deducted. The midterm is more than 12 hours late it will receive a zero. If you have a family or medical emergency, let me know as soon as possible and be able to provide documentation to reschedule the midterm.

Homework assignments and the Project: Unless otherwise specified, homework assignments are to be submitted electronically using RamCT. Specifics will be included in each assignment. Always check the assignment page for due dates. Late assignments submitted within 48 hours of the time required will receive a 10% late penalty. Electronic submission is closed 48 hours after assignments are due; students not having submitted homeworks receive an automatic zero on the assignment.

Important Dates

Project proposal Friday, February 17th, noon mountain time
Take home midtermTuesday February 28th 3:30pm to Thursday March 1 1:55pm
Project intermediate report Wednesday, March 28th, 11:59pm mountain time
Project final paper Wednesday, May 2nd, 11:59pm mountain time
Poster session (distance students will present posters over skype) Thursday, May 10th, 2-4pm

Class Participation

All students taking this course are expected to participate actively. This includes asking and responding to questions either in person and/or on the discussion board.

Students are also expected to read the announcements/news on the main course web page, postings to the discussion board, and the progress page every day for any updates.

Professional Conduct

All students are expected to conduct themselves professionally. We (the instructors and GTAs) assume you are familiar with the policies in the student information sheet for the department. The course will adhere to the Academic Integrity Policy of the Colorado State University General Catalog and the Student Conduct Code, which states that "As a student at Colorado State University, I recognize my active role in building a Campus of Character. This includes my commitment to honesty, integrity, and responsibility within the campus community. As such, I will refrain from acts of academic misconduct." In CS/ECE 560, you can talk with other students about the homeworks, but you cannot copy answers from each other. One good rule of thumb is to not take notes while talking with other students in the class. Just discuss the issues and then go work on your own homework.

Additionally, we consider you to be computing professionals. You should be familiar with the code of conduct for the primary professional society, ACM. You can read the ACM Code of Conduct. There is also a code of conduct for the Computer Science Department.