skip to main content
US FlagAn official website of the United States government
dot gov icon
Official websites use .gov
A .gov website belongs to an official government organization in the United States.
https lock icon
Secure .gov websites use HTTPS
A lock ( lock ) or https:// means you've safely connected to the .gov website. Share sensitive information only on official, secure websites.


Title: Vertically Integrated Computing Labs Using Open-Source Hardware Generators and Cloud-Hosted FPGAs
The design of computing systems has changed dramatically over the past decade, but most courses in advanced computer architecture remain unchanged. Computer architecture education lies at the intersection between computer science and electrical engineering, with practical exercises in classes based on appropriate levels of abstraction in the computing system design stack. Hardware-centric lab exercises often require broad infrastructure resources and tend to navigate around tedious practical implementation concepts, while software-centric exercises leave a gap between modeling and system implementation implications that students later need to overcome in professional settings. Vertical integration trends in domain-specific compute systems, as well as software-hardware co-design, are often covered in classroom lectures, but are not reflected in laboratory exercises due to complex tooling and simulation infrastructure. We describe our experiences with a joint hardware-software approach to exploring computer architecture concepts in class exercises, by using opensource processor hardware implementations, generator-based hardware design methodologies, and cloud-hosted FPGAs. This approach further enables scaling course enrollment, remote learning and a cross-class collaborative lab ecosystem, creating a connecting thread between computer science and electrical engineering experience-based curricula.  more » « less
Award ID(s):
2016662
PAR ID:
10290039
Author(s) / Creator(s):
; ; ; ;
Date Published:
Journal Name:
2021 IEEE International Symposium on Circuits and Systems (ISCAS)
Page Range / eLocation ID:
1 to 5
Format(s):
Medium: X
Sponsoring Org:
National Science Foundation
More Like this
  1. One of the key knowledge areas in Computer Science (CS) is Digital Logic and Computer Architecture where the learning outcome is an understanding of Boolean algebra, logic gates, registers, or arithmetic logic units, etc. and explaining how software and hardware are related to a computing system. Experimental Centric based Instructional Pedagogy (ECP) with portable laboratory instrumentation might provide real hands-on experience to obtain a practical understanding of those concepts at a lower cost compared with virtual hands-on laboratories that lack direct interaction with real apparatus or no integration of labs in the course. This work presents the initial adaptation of ECP to introduce the fundamentals of digital logic concepts in a Computer Architecture course in Spring 2022 for the first time in a CS department at a university teaching such courses without a lab and serving predominantly minority students. To establish a conducive and dynamic classroom environment by discovering course content through exploration, students majoring in CS were introduced to several logic gate types, worked with breadboards to connect circuits, and carried out operations to produce the necessary output using the commercial ADALM 1K Active Learning Module. To evaluate the impact of the ECP on students; performance in the class, three different evaluation methods were used, such as classroom observation, a signature assignment, and a Motivated Strategies for Learning Questionnaire (MSLQ) survey. The Classroom Observation Protocol for Undergraduate STEM (COPUS) findings indicated greater student engagement when ECP is used; the Signature assignment results indicated improved learning outcomes for students; and the MLSQ survey, which measures students; motivation, critical thinking, curiosity, collaboration, and metacognition, determined a positive impact of the ECP on the CS participants. 
    more » « less
  2. Ensuring software security is a critical task for a deliverable software system in today’s world, and its proper implementation guarantees the quality and security of the information ingested, stored, and processed by the system. It is imperative to introduce computer science and computer engineering students (CS/CE) with the secure software design practices early in their curriculum. This approach will help them understand fundamentals of secure programming, vulnerabilities in software systems, and secure software development before joining the industry workforce. In this paper, we propose an educational framework that integrates software security concepts in a software engineering design course. We envision that the framework will engage CS/CE students applying security principles and practices in different phases of the software development life cycle (SDLC) process. Our work focuses on review of common security requirements, policies, and mechanisms related to specific use cases as well as how those requirements are defined during the software design. 
    more » « less
  3. Engineering design thinking has become an important part of the educational discussion for both researchers and practitioners. Colleges and universities seek to graduate engineering students who can engage in the complex nature of combining both technical performance with design thinking skills. Prior research has shown that design thinking can be a solution for solving complicated technical and social issues in a holistic, adaptive way. However, little is known about how students make sense of their design thinking experiences and reconcile that into their perceptions of what it means to be a successful engineer. As part of a five-year National Science Foundation REvolutionizing Engineering and Computer Science Departments (NSF-RED) grant, this study highlights the experiences of students engaged in a course which has been redesigned to enhance student development through design thinking pedagogy. This case study sought to understand how electrical, computer, and software engineering students engage with design thinking and how that engagement shapes their perceptions of what success looks like. The case study was informed through observations of lecture and lab classroom contexts, interviews with students, and a review of relevant course documents. Participants met the following criteria: (a) were over the age of 18, (b) majoring in CES engineering, and (c) were currently enrolled in one of two courses currently undergoing redesign: a second-year electrical engineering course called Circuits or a second-year computer engineering course called Embedded Systems. Preliminary findings reveal that students engaged in the design thinking course described a disconnect between design thinking elements of the course and their perceptions of what it meant to be a successful electrical, computer, or software engineer. Although design thinking concepts focused on empathy-building and customer needs, it was often difficult for engineering students to see beyond the technical content of their course and conceptualize elements of design thinking as essential to their successful performance as engineers. This study bears significance to practitioners and researchers interested in (re)designing curriculum to meet the growing needs of innovation for today’s customer’s. Implications for policy and practice will be discussed to enhance the way that engineering programs, curricula, and workforce training are created. 
    more » « less
  4. The experiment-centric pedagogy (ECP) teaching approach is a less cumbersome way of introducing core and fundamental topics in STEM through relevant practical and hands-on sessions that are carefully incorporated into lectures. The philosophy of ECP is that students learn better by doing. Hence, it promotes the practical implementation of fundamental theories in STEM fields by using inexpensive basic elements to develop portable but extremely effective units for use by these students. The portability of these units enables these students to conduct these experiments in the comfort of their homes, while their low cost makes it highly affordable. With carefully curated experiments across different departments such as Electrical, Civil, Physics, and Computer Science, ECP has been able to develop informative experiments to calculate impedance and transient current in RLC circuits buttressing the concept of ohm’s law in electrical engineering and physics, combinational and sequential circuits such as adders, multiplexer, subtractors, decoders, counters, and shift-registers in computer Science. ECP also implemented data acquisition systems alongside experiments to demonstrate Hooke’s law with respect to stress/strain on a flat metal bar and measurement of the pressure of a thin-walled cylindrical vessel in civil engineering. These experiments help students develop a good understanding of these concepts, which are the building blocks of their respective fields. Early results of ECP have shown that there has been a significant improvement in students' interest in these STEM courses. 
    more » « less
  5. The memory wall challenge -- the growing disparity between CPU speed and memory speed -- has been one of the most critical and long-standing challenges in computing. For high performance computing, programming to achieve efficient execution of parallel applications often requires more tuning and optimization efforts to improve data and memory access than for managing parallelism. The situation is further complicated by the recent expansion of the memory hierarchy, which is becoming deeper and more diversified with the adoption of new memory technologies and architectures such as 3D-stacked memory, non-volatile random-access memory (NVRAM), and hybrid software and hardware caches. The authors believe it is important to elevate the notion of memory-centric programming, with relevance to the compute-centric or data-centric programming paradigms, to utilize the unprecedented and ever-elevating modern memory systems. Memory-centric programming refers to the notion and techniques of exposing hardware memory system and its hierarchy, which could include DRAM and NUMA regions, shared and private caches, scratch pad, 3-D stacked memory, non-volatile memory, and remote memory, to the programmer via portable programming abstractions and APIs. These interfaces seek to improve the dialogue between programmers and system software, and to enable compiler optimizations, runtime adaptation, and hardware reconfiguration with regard to data movement, beyond what can be achieved using existing parallel programming APIs. In this paper, we provide an overview of memory-centric programming concepts and principles for high performance computing. 
    more » « less