This course provides a strong foundation for modern digital system design using hardware description languages. We start with basics of digital electronics and learn how digital gates are used to build large digital systems. We will practice modern digital system design by using state of the art software tools and implementation of the digital systems on a programmable hardware platform. At the end of the course, students will be familiar with modern approach for designing digital systems, using hardware description languages along with an appropriate methodology.
This course provides an introduction hardware/software co-design. It focuses on designing systems partially implemented in software and partially in hardware, with the hardware components designed to accelerate overall application computations. We study how hardware and software interact, how the computer system’s architecture impacts this interaction, and how to utilize hardware designs to partition and accelerate software-based systems.
From servers to smartphones, our world has been revolutionized by the modern computer. The Internet of Things (IoT) promises to again revolutionize how we interact with computing, this time embedding compute deep within our urban environments, in homes, in ourselves, and many other places. These devices must be reliable, networked, and self-powered, enabling them to go unmaintained for decades, allowing for computation that seamlessly fades into the background of everyday life.
This class will be a mix of topical discussions and hands-on programming. Rather than giving a wide-ranging overview of IoT, we will instead focus on a single project within the IoT domain. Thus, a large portion of this class will focus on designing and implimenting software solutions for a specific IoT problem, acoustic (audio) event detection. Due to time constraints, we will be using standardized hardware.
CSCI-P536 Advanced Operating Systems Indiana University, Fall, 2017
EECS 280: Programming and Introductory Data Structures University of Michigan, Fall 2016
EECS 281: Data Structures and Algorithms University of Michigan, Winter 2017
EECS 370: Introduction to Computer Organization University of Michigan, Winter 2015