The Computer Organization (CompOrg) course is fundamental for students to learn how different computer components work as a whole. Different institutions may cover different topics, but they usually share similar scopes, which include C programming, binary representation, assembly, stack/heap, overflow, virtual memory, memory management, digital logic, and pipelining. On the other hand, storage devices are vital to computer systems. The storage device topic is designated a mandatory CompOrg topic in the latest Computer Science Curricula 2023, published in early 2024; still, it is usually overlooked by CompOrg courses, according to our survey of existing course offerings spanning 29 reputable US universities.
To fill in the missing piece in CompOrg, we designed a new programming assignment, SSDLab, for our CompOrg course. SSDLab provides students with the opportunity to implement Flash Translation Layer (FTL), a key component of the Solid State Drive (SSD) firmware. Furthermore, we also provide written assignments, named StorageWrit, for students to learn how storage latencies are calculated given a set of storage devices and file characteristics, including storage type, latency, file size, etc. The goal is for students to learn the concept of modern storage organization and write better code for higher I/O throughput in the era of big data by understanding and identifying possible I/O bottlenecks in storage devices. We evaluated student performance by creating exam questions corresponding to the assignments and finding the correlation between assignments and exam questions. We then ask for student feedback on their experiences and what they have learned with SSDLab. Our results show that the students learned the new topic with similar effectiveness as those traditional topics in our course with our programming and written assignments. Students who finished SSDLab showed 32% higher grades in the corresponding exam question, and students enjoyed the hands-on experiences brought by SSDLab despite its relative difficulty. We will open-source the assignments after acceptance.
The full paper will be available to logged in and registered conference attendees once the conference starts on June 22, 2025, and to all visitors after the conference ends on June 25, 2025