Using FPGA systems across the computer science curriculum (abstract only)

The field of computer science is continuously growing, requiring curriculum developers to make numerous tradeoffs between depth and breadth with every advance. Faculty must look for new ways to communicate more concepts within a fixed number of contact hours as well as employ techniques that underscore interrelated concepts over multiple courses. With this poster, we present the use of field-programmable gate arrays (FPGAs) as a flexible hardware system that may be modified to suit the needs of a wide variety of classes. While FPGA devices are a natural fit for teaching hardware concepts in organization and architecture classes, we feel that they can also be used in a variety of roles within a number of other courses. We describe our work integrating FPGA curriculum modules into several courses in the CS curriculum: organization and architecture, compiler construction, robotics, operating systems, security, and image processing. We believe that by using these devices in several courses, students gain greater familiarity with a hands-on, reconfigurable hardware platform and can leverage this experience throughout their coursework. This approach is consonant with recent trends that emphasize the importance of students being able to reason about the end-to-end operation of an entire system and helps strengthen the relationships between different subfields within computer science. We describe both the changes made to our curriculum and the effectiveness of our approach.