Teaching

Classroom Teaching

During Fall'17 I was a Teaching Assistant for 15-122 Principles of Imperative Programming, Carnegie Mellon's introductory imperative programming course. I taught two recitation periods, a lab period, held office hours, participated in grading, helped draft exams, and served as a liason between the two instructors and approximately two dozen undergraduate Teaching Assistants.

I was a Teaching Assistant for the Spring'16 iteration of 15-424 Foundations of Cyber-Physical Systems at Carnegie Mellon. In addition to holding weekly recitations and grading assignments, I transitioned course infrastructure to the use of the KeYmaera X theorem prover and re-designed several recitations to support this transition. Using KeYmaera X instead of the legacy KeYmaera 3 system enabled students to take on more ambitious course projects. These projects were presented to judges from industry, government, and academia at a competition shortly after the course completed.

I re-designed and presented a guest lecture in Carnegie Mellon's Spring'17 iteration of 15-424 and guest lectured on numerous occastions in Carnegie Mellon's imperative programming course (15-122).

Undergraduate Advising

Undergraduate research is a fantastic pedagogical tool for teaching problem solving, research, and communication skills. I've mentored many undergraduate research projects, some of which resulted in undergraduate theses or peer-reviewed publications:

Software

Software can play a key role in helping students explore concepts. I've developed several pieces of software that instructors at various universities have incorporated into their teaching.

Other Teaching Experience