I will be debuting a new 1 credit seminar next semester. The intention of the course is teach students the fundamentals of unix, as well as other tools that will be useful to them for their entire career as a computer scientist. The focus is on learning what tools are available and how to work efficiently. For more information, see the course syllabus here:
I am currently an Instructional Aide for two courses at the University of Michigan:
I serve as a lab instructor for this course.
In addition to lab responsibilities, I built a novel simulator project for the students. The project required students to build an ARM Cortex-M3 simulator, however, instead of the more traditional model of every student implementing a carbon-copy project, the entire class had to work together on one shared repository. A novel simulator architecture facilitated collaborative work. Students "registered" opcode masks with callback functions that "taught" the simulator core how to execute instructions (that is, the decode stage would scan all registered handlers and call the student's implementation of ADD, SUB, etc). In addition, students had to build (simulated) reset hardware and a software library to run on the simulated chip. The project was extremely interesting, and students reported it to be "unlike anything they had ever seen before". Students had to learn the challenges of developing and debugging their code, when the code of other engineers on their project is also new and unreliable. In addition, they had to deal with the challenges of co-operatively developing software and hardware. In the end, we found the project to be a much more accurate microcosm of real-world engineering - in particular new hardware development - and in some cases exposing critical gaps in the skill set of our engineering students.
Continuing the trend of building a class students had "never seen before", for the final exam (take-home), I built a reverse-engineering challenge. The exam is still currently live, but those interested in trying it out can use the UMID 00011000 to try it yourself!
This is my third semester teaching this course. In this course I teach a recitation and hold office hours. This course is more refined and traditional than 373 (in fact, it's a bit of an institution at Michigan) and I am proud to be a part of the course's legacy
In addition to prescribed duties, I generally hold exam review sessions for the midterm and the final