What I'm doing here
During my undergrad, I never felt more fulfilled by anything other than being in the lab with students and walking them through assignments as a teaching assistant. I met great people who inspired me to create tools and software to make it easier for students to learn and absorb course material, and it was at the end of my Masters' degree that I realized I wanted to continue working on this stuff, and that's why I came back to Purdue as a lab coordinator to continue developing and evolving the labs for the classes I love.
I coordinate the labs for the digital design (ECE 27000) and embedded systems (ECE 36200) classes in Purdue ECE. These were my favourite classes in my own undergrad, and I'm honored to keep contributing and making them the best courses they can be.
Education
BS in Computer Engineering, Purdue University
Fall 2016 - Spring 2020
MS in Electrical and Computer Engineering, Purdue University
Fall 2020 - Spring 2023
Experience
Senior Instructional Lab Coordinator, Purdue University
Jul 2024 - Present
Instructional Lab Coordinator, Purdue University
Jul 2023 - Jun 2024
Graduate Lecturer, Purdue University
May 2022 - Aug 2022
Head GTA for ECE 27000, Purdue University
Aug 2020 - May 2023
Head UTA for ECE 27000, Purdue University
Aug 2019 - May 2020
UTA for ECE 36200, Purdue University
Jan-May 2019
UTA for ECE 27000, Purdue University
Aug-Dec 2018, May-Aug 2019
My projects are mostly results of experiments undertaken to create tools that make it easier for students, teaching assistants and course staff to provide a better learning experience. To learn more about any of these projects, please reach out to me directly!
AutoLab
To relieve teaching assistants of the need to review student circuits over Zoom calls, which was quite painful and highly prone to inaccurate circuit checkoffs, AutoLab was designed after the Fall 2020 semester as a way for students to run a simple program that would test their circuits and produce an encrypted confirmation code that would confirm the functionality of their circuit with their identity baked in to be able to distinguish between each student's circuit. The software is still in use for in-person sections to provide an objective way of evaluating a student's circuit.
QueUp/Labutils
labutils was born as a way for TAs to quickly reach students by looking for their station number as opposed to letting students specify an identifier by which to find them. Beyond simple queuing capabilities, labutils also offers auditability (to see when students joined/left the queue) and section-based restrictions and room disabling for when it is not in use. It also includes a timer for lab practical sessions.
Source code: https://github.com/ece270/labutils
QueUp is a spinoff of labutils that uses usernames rather than station numbers to identify students, making adding themselves to the queue a one-click process. QueUp can be accessed by all Purdue staff and students at bit.ly/ece-queup.
Source code: https://github.com/norandomtechie/queup
FPGA Simulator
This is an educational simulator intended to ease Verilog development on programmable logic devices like FPGAs and CPLDs. One can use this site to write basic Verilog to implement combinational and sequential logic as if they were using the board in person. An interactive SVG is used as an example of a breakout board attached to a Lattice ice40HX8K, allowing beginners to digital design to immediately see the results of their code in the site. This is being used to teach students Verilog in ECE 270 at Purdue University.
KarnaughMap.js
Karnaugh Map drawing tool (also entirely in JS) allowing students to fill out NxN-sized k-maps with values (0/1/d), circling them to produce pairs, quads or octals, and attributing these circles as essential/non-essential prime implicants. Upon submission, the data representing the circles and values inputted by the students is also saved to an input element for use in assignments based on k-maps in the content of digital design.
https://github.com/norandomtechie/KarnaughMap.js
(demo at https://verilog.ecn.purdue.edu/mindpalace/karnaughmap/index2.html)
wavedraw
A timing diagram renderer (WaveDraw) written purely in JavaScript to draw diagrams with HTML to model behaviors of digital designs, with the capability of saving these diagrams in text form into an external input element, for use in academic assignments based on timing diagrams in digital design courses.
These are the classes whose labs I coordinate/coordinated:
An introduction to digital system design, with an emphasis on practical design techniques and circuit implementation. The labs start off with breadboarding to prototype simple digital circuits, before moving to use SystemVerilog to model and simulate more complex ones. Students matriculate from this class with:
- an ability to analyze and design combinational logic circuits. [1]
- an ability to analyze and design sequential logic circuits. [1]
- an ability to analyze and design computer logic circuits. [1]
- an ability to realize, test, and debug practical digital circuits. [2,6]
ECE 36200 - Introduction to Digital Design
An introduction to computer instruction sets, assembly language programming, organization, and interfacing. Students use the STM32F0DISCOVERY microcontroller to learn about embedded system programming, making use of the various peripherals on the board. Students matriculate from this class with:
- an ability to program a computer using assembly language. [ABET Criterion 1,2]
- an ability to use a computer to interface with other devices. [ABET Criterion 1,2,6]
- an ability to understand and simulate the functionality of a single-cycle processor. [ABET Criterion 1,2]
- an understanding of basic computer arithmetic algorithms. [ABET Criterion 1,2]
In my last semester as a member of HKN in Spring 2023, I wrote and presented a Linux workshop whose slides you can access here.
I wrote documentation for my ECE 270 simulator as a report in Fall 2019 and Spring 2020. These are quite old and possibly inaccurate, however, and do not reflect changes in semesters past Spring 2020.
ECE 27000 used to have course projects (Simon Says and Drum Machine) that can be accessed via its References page.
Teaching Staff Awards
Outstanding Teaching Award - IEEE HKN Beta Chapter
Spring 2024
Staff Bravo Award - College of Engineering
Spring 2024
Outstanding Teaching Award - IEEE HKN Beta Chapter
Fall 2023
Staff Bravo Award - College of Engineering
Fall 2023
Teaching Assistant Awards
Outstanding Teaching Award - IEEE HKN Beta Chapter
Fall 2022
Outstanding Active Award - IEEE HKN Beta Chapter
Fall 2022
Outstanding Active Award - IEEE HKN Beta Chapter
Spring 2022
Estus H. & Vashti Magoon Award for Excellence in Teaching
Spring 2022
Outstanding Service Award - IEEE HKN Beta Chapter
Fall 2021
Andrew Boldt 3-Z Teaching Award
2019