Course Project
Each student will undertake a course project
of his or her own devising.
The project may fall anywhere in the field of computer systems,
broadly interpreted.
It may be experimental, theoretical, comparative, or demonstrative.
Students may employ any language, system, or platform suitable for the task.
A list of suggested projects will be distributed early in the semester.
Projects may be done singly or in pairs.
The course project must be highly literate. A significant amount of time
will be spent on developing and revising the ideas to be explored.
The final paper will be a highly polished result within "striking distance"
of submission to a conference. To encourage a process of continuous
refinement, the course will include a series of milestones:
an annotated bibliography, a project proposal, a progress report, a
draft paper, peer reviews, a final talk, and the final paper.
Details of each milestone will be forthcoming.
The class will conclude with a mini-conference in which each
student presents their results.
Caution: The most important results of the project will
be the ideas and results presented in the final paper.
Students will not receive credit simply for creating a
software or hardware artifact, no matter how sophisticated.
Any artifacts created must serve to flesh out the ideas
in the final paper. The project milestones will help to maintain
focus on the writing process.
Facilities
The following facilities are available for carrying our your project.
- College of Engineering Cluster. The regular Engineering student machines may be used for this course. You may harness several machines at once remotely using ssh, but beware of two restrictions: 1) The machines will only allow communication within the cluster on ports 30000-31000; 2) Remote users may be automatically logged off in favor of a user sitting at the console.
- High Performance Computing Center. (HPCC) The HPCC has several clusters of varying architectures and operating systems. These machines require that you submit your programs as batch jobs, specifying the type and number of machines you wish to use. You jobs might run right away, or they might wait in a queue behind other users. However, you will have sole use of the machines while your jobs run. The HPCC may be a good resource to use for performance testing after building and testing your code elsewhere. If you think that you may use the HPCC, then apply for an account early in the semester.
- Wombat Cluster. A small cluster of eight Linux machines will be available for use by students in this course. These machines are less powerful than what you likely have on your desktop, but are identical and have no other obligations. Contact the instructor if you would like to use these.