Teaching

I have been teaching since 2019 at UIUC. My teaching activities over the past years include instructing the courses, developing educational resources for both regular courses and lab-based courses, advising undergraduate/graduate research, and publishing pedagogical papers. The following summarizes my teaching activities.


ECE 463 – IoT and Software-Defined Radio Lab

ECE 463 is a senior-level digital communication laboratory course. The course introduces students to various components of a digital transceiver and its application in modern digital communication. Students will learn through lab-driven experiments with software-defined radio (SDR). I instructed the course in Fall 2018, Spring/Summer/Fall 2019, and Fall 2022.

In Fall 2018, I renovated the entire lab materials to offer more hands-on experience on SDR and advanced digital communication applications such as orthogonal frequency-division multiplexing (OFDM) and Internet-of-things (IoT). The sample materials can be found below.

USRP (left) for the SDR device and LabView (right) for the programming tool


ECE 420 – Embedded DSP Laboratory

ECE 420 is a senior-level digital signal processing laboratory course. The course gives students hands-on experience with real-time embedded systems using Android tablets. Students will learn industrially-relevant skills such as rapid design prototyping in Python, and Android development of DSP applications in C++/Java. The course also provides entrepreneurial experiences including open-ended design, oral, and written communication, and team projects. I have instructed the course since Spring 2020.

In Spring 2022, I developed a new lab module that introduces basic machine-learning concepts such as regression and classification. Students will create a simple handwritten digit recognition system on the Android tablet. The lab projects and materials are open-source.

The pedagogical approach and lab development progress of this course were published at ASEE Annual Conference in 2021.

Audio spectrogram lab: Skeleton C++ code (left) and Android app (right)

Students’ choice final project examples: Musical sound synthesis project (upper left), Shape detector project (lower left), and foreground removal project (right)


ECE 220 – Computer Systems & Programming

ECE 220 is a sophomore-level multi-section introductory programming course. Students learn advanced use of LC-3 assembly language for I/O, C/C++ programming, basic programming concepts, functions, arrays, pointers, I/O, recursion, simple data structures, linked lists, dynamic memory management, and basic algorithms. I instructed the course in Spring/Fall 2019, Spring/Fall 2020, Fall 2021, and Spring 2022.

In 2020, I developed in-class worksheets to help students engage with lectures for an active learning experience in the classroom. The other instructors who want to exercise a flipped classroom model have used the worksheets in their lectures.


ECE 310 – Digital Signal Processing

ECE 310 is a junior-level multi-section digital signal processing course. I instructed the course in Spring 2021, Summer 2022, and Spring 2023.


ECE 205 – Introduction to Electric and Electronic Circuits

ECE 205 is an introductory course on circuit analysis and electronics for non-majors in engineering course. I instructed the course in Summer 2021.


ECE 496/499 – Senior Research and Thesis

Through ECE 496/499, I have advised the following students.

Student NameGraduate YearThesis TitlePlacement
Miraj Shah2021SimpleSynth: Mobile Music SynthesizerNorthrop Grumman Corporation
Luke Jacobs2023*Research into applications of the USRP software-defined radio
*Expected

ENG 572 – Practicum
ENG 573 – Capstone Project

Through ENG 572, I have guided 7 Master of Engineering students for their internship projects in Amazon, Intel, Nvidia, Cirrus Logic, KLA Corporation, and Schlumberger.
Through ENG 573, I have guided 3 Master of Engineering students for their Capstone projects in Texas Instrument.