Brown CS News

Justin Pombrio Wins A Presidential Award For Excellence In Teaching

None

Click the link that follows for more news items about Justin Pombrio.

After successfully defending his doctoral thesis last month, PhD candidate Justin Pombrio of Brown University's Department of Computer Science (Brown CS) has a new honor to look back on as he plans his next move. Out of approximately 400 Brown graduate students with instruction-related appointments, he was one of only four to receive a Presidential Award for Excellence in Teaching.

The award, which was given at a ceremony in Pembroke Hall on April 30, recognizes outstanding pedagogical achievement. Its criteria include teaching that influences, motivates, and inspires students to learn and fosters independent learning; development of curriculum and resources that promote student learning; and development of students as individual learners. 

Since 2013, Justin has been the sole graduate teaching assistant for Professor Shriram Krishnamurthi's upper-level course on programming languages, CSCI 1730, which has had enrollments of up to nearly 80 students. Justin developed assignments for the class that varied from year to year, conducted some grading, and held frequent office hours. "I love them," he says. "Teaching a whole class is difficult because everyone's on a different page, but in hours, I can figure out what a student is thinking, and explain things from their perspective."

In addition to his official duties, Justin devoted a considerable amount of his own time to what may be his most noteworthy contribution to the class. The Mystery Language approach to teaching, which he developed with Shriram, was described in a paper published at the Summit on Advances in Programming Languages, has already been used at other universities and has shown the potential to dramatically change the teaching of the subject.

Each mystery language is one language (syntax) with multiple semantics that explore the design space for a feature. All in all, Justin implemented 11 languages, with a total of 35 semantics. As the course moves forward, each language builds incrementally on the previous one, and each assignment introduces new syntactic features, requiring students to explore how new ones interact with old ones. Given a set of variants of a mystery language, a student’s task is to apply adversarial thinking to figure out how the variants differ, and then explain and categorize the differences.

"They've been a lot of fun to develop," Justin says, "and students seem to enjoy them too. They help teach you how to explore a programming language, which isn't something that's otherwise taught."

For more information, click the link that follows to contact Brown CS Communication Outreach Specialist Jesse C. Polhemus.