I’m deeply interested in education and pedagogy. I’ve worked on a number of education research projects and in many teaching positions. Here’s some information about them.

Coding Club @ Propel Schools

Between Spring 2015 and Spring 2016, I developed and taught an introductory coding course for middle schoolers at the Propel East school in East Pittsburgh. Propel East is one of a network of charter schools in underserved communities in Pittsburgh.

In my course, I taught around a dozen students the basics of programming using Processing and Python. We went from zero to a game of Pong in just 10 classes!


TinyASM is an online tool which allows students to write, run, and visualize programs in a simple assembly language. It’s intended for middle- and high-school students learning about assembly and processers. It’s intentionally very simple, and it’s great for students who have little programming background.

I designed TinyASM for a presentation that I gave at TechNights, a CMU program which teaches middle-school girls about technology. Since then, I’ve also deployed it at ECE Outreach, a CMU program for high-schoolers.

The source is available on Github. And it’s currently deployed here.

Teaching 15-112

For two and a half years, I was a Course Assistant for 15-112, an intro computer science course at Carnegie Mellon. The course is taught in Python. It covers the basics of programming, including constructs like loops, conditionals, and funcitons, objects, and recursion, and some computer science topics like efficiency analysis.

It’s quite fast-paced and difficult for an introductory course, and has a “learn-by-doing” ideology. It also has a project component: at the end of the semester, students produce a project of their own design using what they’ve learned. Some are quite stunning! A few are documented here.

As a Course Assistant, I lectured, tutored, and mentored students. I also advised about a dozen end-of-semester project each semester. I’m proud to say that there have been some very cool ones in the bunch!

The course site is available here.

Mechanical Logic

Mechanical Logic was an initiative to develop mechanical devices which acted as logic gates for use in education settings. Over the course of about a year and a half, the Mechanical Logic team and I went though a number of gate designs, participated in numerous teaching engagements and competitions, and won a few awards.

For CMU’s Build18 hack week in 2013, we developed very small, LEGO-compatible version of the gates. We won the First Penguin award, named after a term coined by CMU’s professor Randy Pausch, for a project which deviated most significantly from the theme of the electronics- and programming-themed competition.

Later, at CMU’s 2013 Meeting of the Minds, we won an award from the Studio for Creative Inquiry, a studio in CMU’s College of Fine Arts. This award went to projects which meshed disciplines: in our case, the disciplines of electrical engineering, industrial design, and education.

Since late 2012, the Mechanical Logic team has worked with the University of Pittsburgh and CMU to deploy the gates and an associated curriculum at a number of events. We’ve worked with TechNights and ECE Outreach at CMU and Scientists, Mathematicians, And Engineers For Service at Pitt. We’ve also worked on our own to each lessons at Mt. Lebanon High School in Pittsburgh, PA.

Our project blog (which has been inactive as of late) is here.


Edugamify is an online educational game developed for for CMU’s philanthropic TechBrigde organization as part of their TechCaFE program.

It allows students to design and trade educational mini-games. These games are populated with multiple-choice questions provided by an instructor. In our prototype, we used questions that teach English.

The code is available on Github.

Developing 15-022

With Professor Frank Pfenning, I developed curriculum for 15-022, a computer science course-in-progress at CMU. It will be an accelerated introductory course taught in C0, a safe subset of C intended for use in education.