Course Assignments
CS 294-4 - Intelligent RAM (IRAM)

Assignment Overview

These assignments are to be done in two weeks by 1 or 2 people. It is fine if the assignment is done by more than one group or person, but given the wealth of important topics, we probably don't want three or groups working on the same assignment.

The results should be placed on the WWW. My idea is that those who have taken an assignment will give me a dummy URL at time of the sign-up, and then the results will be updated over the 2 weeks so that people can see what is being learned as it happens. The initial report would just say that this page is under construction. Needless to say, the purpose of this class is to explore a potentially exciting new frontier, thus it makes no sense to hold back. Each group will present their results at a class meeting.

My general idea is to have assignments in three areas:

and have three types of assignments: My hope is that each of you will pick an assignment according to your skills: e.g., if you are good at programming/UNIX and interested in architecture, you will do a programming assignment in architecture, such as determining how well a cache with very large blocks would work on some of the SPEC95 programs. On the other hand, if your skills were were more in circuits, you might try to find all papers regarding logic in a DRAM process, coming up with a bibliography and summarizing the results in a table, both on the WWW.

The model is that the first two assignments would either be literature search or programming, depending on your area and skills, and everyone does a short design project as the final assignment.

Although its fun to program, it usually saves time to use programs that others have created. Two useful sets of resources are:

First Assignments

Assignments done in February

Second Assignments

Assignments done in March

Third Assignments

Assignments done in April

Ideas for Assignments

Here are examples of assignments. I am very interested in suggestions, from anyone, on what would be good things to work on.