The lead instructors at Berkeley provided all of the instructional materials used in the course. This included videos of all lectures, quizzes relating to each of the lectures, and several programming assignments. The recorded videos allowed each of the participating institutions to work through the course on their own academic schedule. The lectures can either be watched independently by the students or jointly in the classroom. Class time can then be used to discuss the lecture material and/or augment it with related discussions.
The quizzes are provided online as a way to gauge whether the remote students are keeping up with the class and to assess their comprehension of the lecture materials. The quiz grades can be used as part of the final grading system at each participating institution.
The computer exercises focus on several different strategies for optimizing parallel computing code, using a range of programming options and algorithms. An autograder was created for each exercise. The autograders run the student's codes and provide a score based on the best possible optimization of each program. Students can use that score to gauge the efficiency of their own code and instructors can use it as one way of gauging the mastery of the programming topics as part of the grading system. The teaching assistant at Berkeley and the project coordinator track course and coding questions by the students and faculty through discussion forums on the course management system. Instructors are also given access to the optimized code so that they can better advise their own students about programming strategies.
The lecture and assignment outline for the most recent offering of the course can be found here. An earlier version of the lectures and quizzes are available through the XSEDE training website. The first written assignment is to describe an existing parallel application (Homework 0). All programming assignments are completed on XSEDE resources based on a classroom allocation that serves all course participants. The first computer exercise is an optimization of a matrix multiplication on a single processor. The second assignment is to optimize a particle simulation. Part 1 is done using multiple processors and part 2 using GPU's. The third assignment uses the UPC language to optimize a graph algorithm to solve a de Novo genome assembly problem. Students also complete an independent individual or group final project under the direction of their local instructors. Examples of past projects are provided by Berkeley.