My teaching philosophy centers on bridging the gap between theoretical computer architecture
concepts and practical system implementation. I believe in hands-on learning experiences
that prepare students for both industry challenges and advanced research opportunities.
Current Courses
EECS 470
Computer Architecture
Fall 2024 • University of Michigan
Advanced undergraduate course covering modern processor design, memory hierarchies,
and parallel architectures. Emphasizes both theoretical foundations and practical
implementation through RTL design projects, culminating in a group project
in which students design an out-of-order microprocessor in SystemVerilog.
- Pipelined processor design and hazard handling
- Cache hierarchies and memory system optimization
- Superscalar and out-of-order execution
- Multicore architectures and coherence protocols
- Hardware acceleration and specialized computing
EECS 573
Microarchitecture
Winter 2025 • University of Michigan
A graduate-level introduction to the foundations of efficient
microprocessor design. We will be studying research from the computer
architecture literature. The course focuses on discussing paper readings,
with presentations and discussions lead by students. Students also
conduct a group research project, culminating with the writing of
an architecture paper and delivery of a conference-style presentation.
- Computer architecture research methodologies
- Reading, conducting, writing, and presenting computer architecture research
- Distributed memory systems and consistency models
- Emerging technologies: neuromorphic, quantum, photonic computing