What I'm doing here

I've never felt more fulfilled doing 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 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

Instructional Lab Coordinator, Purdue University

Jul 2023 - Present

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.

https://github.com/norandomtechie/wavedraw

These are the classes whose labs I coordinate:

ECE 27000 - Introduction to Digital Design

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 Assistant Awards

2019 Andrew Boldt 3-Z Teaching Award

Fall 2021 Outstanding Service Award - IEEE HKN Beta Chapter

Spring 2022 Outstanding Active Award - IEEE HKN Beta Chapter

2022 Estus H. & Vashti Magoon Award for Excellence in Teaching

Fall 2022 Outstanding Active Award - IEEE HKN Beta Chapter

Fall 2022 Outstanding Teaching Award - IEEE HKN Beta Chapter


Teaching Staff Awards

Fall 2023 Outstanding Teaching Award - IEEE HKN Beta Chapter

Fall 2023 Staff Bravo Award - College of Engineering