ECEn 330 - Introduction to Embedded Systems
In this class you will learn to write low-level software for embedded systems. This will be done through several challenging lab exercises where you will design driver software that communicates with hardware devices, as well as several real-time applications, including games like unbeatable tic-tac-toe, simon and whack-a-mole. Along the way you will learn the ins and outs of the C programming language.
ECEn 427: Embedded Linux Systems
This course covers the “full stack” of embedded systems, including developing software applications, user space and kernel drivers, and custom digital hardware. All of these pieces are integrated together in a semester-long project to implement the original Space Invaders game.
ECEn 625: Compilation Strategies for High-Performance Systems
In this class you will first learn the behind-the-scenes algorithms that make it possible to create hardware from software, and then you will gain some experience using commercial HLS tools. Along the way you will learn about software compilers and various optimizations that allow us to create high-performance hardware designs.