Sample menu:


Storage systems are among the most fascinating and the most important parts of computer systems. They often dominate the performance of a system, and their components' inner workings require amazing feats of engineering. At the same time, storage systems hold the crown jewels of most organizations: their information (from source code to Microsoft's software to the sales databases of every e-commerce site). Within the field of computer systems and computer engineering, there is no area whose demand for bright people and better solutions is more robust.

This course will cover the design, implementation, and use of storage systems, from the characteristics and operation of individual storage devices to the OS, database, and networking approaches involved in tying them together and making them useful. Along the way, we will examine several case studies of real systems, demands placed on storage systems by important applications, and impacts of trends and emerging technologies on future storage systems.

For those familiar with 18-316 (Intro. to Data Storage Systems Technology) and 18-517 (Data Storage Systems Design Project): one should consider these courses as distinct and complementary, with neither being a pre-requisite to the other. 18-316 and 18-517 focus on the low-level technologies (magnetics, materials, applied physics, etc.) whereas 746 focuses on storage's incorporation and role in computer systems.




Topics covered

746 will cover a wide spectrum of system-level topics in the design, implementation, and use of storage systems. Topics covered will include:


Books and readings

There will be no assigned book for the Spring 2012 offering. Instead, the instructors will hand out readings from books and the research literature to complement the lectures. See the Lectures & Readings page for an overview of the latest plan.


Mobile devices and other distractions

Research on learning shows that unexpected noises and movement automatically divert and capture people's attention, which means you are affecting everyone's learning experience if your cell phone, pager, laptop, etc. makes noise or is visually distracting during class. For this reason, we allow you to take notes on your laptop, but insist that you turn the sound off so that you do not disrupt other students' learning. If you are doing anything other than taking notes on your laptop, please sit in the back row so that other students are not distracted by your screen.


No recording of class meetings

No student may record or tape any classroom activity without the express written consent of all instructor(s). If a student believes that he/she is disabled and needs to record or tape classroom activities, he/she should contact the Office of Equal Opportunity Services, Disability Resources to request an appropriate accommodation.



Each exam and lab assignment must be the sole work of the student turning it in. Like the University as a whole and the ECE department, we take cheating very seriously. See ECE's statement on student integrity for more information, including a link to the University's policy.

The usual penalty for cheating is to be removed from the course with a failing grade. The University also places a record of the incident in the student's permanent record.

No collaboration on exams is allowed. Unless otherwise notified, the following guidelines dictate what non-exam collaboration is authorized and what is not:

What is Cheating?

What is NOT Cheating?

Be sure to store your work in protected directories, and log off when you leave an open cluster, to prevent others from copying your work without your explicit assistance.


Re-grading policy for exams and assignments

We will make the utmost effort to be fair and consistent in our grading. But, we are human. If you believe that you did not receive appropriate credit for an exam or assignment, you may request a re-grade as follows:


Late policy for homeworks and labs

No late homeworks or labs will be accepted. If extenuating circumstances make it impossible for you to submit your assignment on time, e-mail one of the course instructors.



This course will require solid understanding of computer organization, basic operating systems, and basic communication. Therefore, the minimum pre-requisite is 15-213. Exceptions are only by permission of the instructor. Students who have not had systems experience (inside or outside the classroom) are likely to struggle.


Final note

* Everything here is subject to change.