Using FPGAs as a reconfigurable teaching tool throughout CS systems curriculum

This paper describes the adaptation of several common computer science courses to include the use of FPGA-based systems for project and assignment work. One of the principal challenges in modern curriculum design is balancing between breadth and depth of course topics while simultaneously reinforcing the interconnections among topics in the field. To address these challenges, faculty are often forced to approximate real-world systems, sometimes at the expense of any hands-on experience. At Coastal Carolina, we have integrated FPGA systems first used in our hardware-based courses into several higher-level systems and applications courses. This allows us to leverage student familiarity with a hands-on, flexible hardware platform and also strengthens the relationships between different subfields within computer science. We discuss both the changes made to our curriculum and the effectiveness of our approach.

[1]  D. Brian Larkins,et al.  Targeting FPGA-based processors for an implementation-driven compiler construction course , 2011, ACM-SE '11.

[2]  Andrew W. Appel,et al.  Modern Compiler Implementation in Java , 1997 .

[3]  장훈,et al.  [서평]「Computer Organization and Design, The Hardware/Software Interface」 , 1997 .

[4]  David McCullough uCLinux for Linux programmers , 2004 .

[5]  Jason Hickey,et al.  Formal Compiler Construction in a Logical Framework , 2022 .

[6]  Chaitali Chakrabarti,et al.  A distributed Canny edge detector and its implementation on FPGA , 2011, 2011 Digital Signal Processing and Signal Processing Education Meeting (DSP/SPE).

[7]  William M. Waite,et al.  The compiler course in today's curriculum: three strategies , 2006, SIGCSE '06.

[8]  D. Brian Larkins,et al.  Integrating digital logic design and assembly programming using FPGAs in the classroom , 2011, ACM-SE '11.

[9]  Marc L. Corliss,et al.  VIREOS: an integrated, bottom-up, educational operating systems project with FPGA support , 2011, SIGCSE.

[10]  Amer Diwan,et al.  Design and implementation of a modern compiler course , 2006, ITICSE '06.

[11]  Rainer Herpers,et al.  FPGA based real-time object detection approach with validation of precision and performance , 2011, 2011 22nd IEEE International Symposium on Rapid System Prototyping.

[12]  David A. Patterson,et al.  Computer organization and design (2nd ed.): the hardware/software interface , 1997 .

[13]  Keshav Pingali,et al.  Compiler research: the next 50 years , 2009, CACM.

[14]  Tyson S. Hall,et al.  Engaging undergraduate students with robotic design projects , 2004, Proceedings. DELTA 2004. Second IEEE International Workshop on Electronic Design, Test and Applications.

[15]  Robin R. Murphy,et al.  Introduction to AI Robotics , 2000 .

[16]  Mark Guzdial,et al.  Computer Science Curriculum 2008: An Interim Revision of CS 2001 , 2008 .