Skip to main content


Office Location

440 Huntington Avenue
326 West Village H
Boston, MA 02115

Mailing Address

Northeastern University
ATTN: Benjamin Lerner, 202 WVH
360 Huntington Avenue
Boston, MA 02115

Research Interests

  • Programming languages
  • Computer science education


  • PhD in computer science, University of Washington, Seattle
  • BS in computer science and Mathematics, Yale University


Benjamin Lerner is an assistant teaching professor at Northeastern University’s Khoury College of Computer Sciences. Lerner earned his undergraduate degree at Yale University and achieved his PhD at the University of Washington in Seattle. He is currently developing Pyret, a new programming language aimed at teaching introductory programming. In the past, Lerner worked for Microsoft and MSR, and has taught at the Johns Hopkins Center for Talented Youth Program. He received awards for CCIS Teacher of the Year and University Excellence in Teaching in 2017.

Where did you grow up?

New York City.

What are the specifics of your educational background?

I graduated from Yale University with a bachelor’s degree in computer science and mathematics, having worked with Professor Paul Hudak as my undergraduate thesis advisor on the semantics of functional-reactive programming in Haskell. I completed my PhD at the University of Washington in Seattle, working with Dan Grossman on the semantics and implementations of extensible web browsers. I also worked as a post-doc with Shriram Krishnamurthi at Brown, and that collaboration continues.

What are your research interests?

I’ve worked on semantics for web programming (JavaScript, the browser event model) and studied how extensible browser environments behave. In my post-doc, that research shifted from studying the semantics of JavaScript to using it as a compilation target. Since then, we have worked on developing a new programming language, Pyret (, suitable for teaching introductory programming, which has a primary implementation living in the browser and is based on our experiences from both teaching novice students and from studying browser semantics. I am one of the lead developers on Pyret and continue to work on it alongside my teaching responsibilities.

What courses/subjects do you teach?

  • CS2500: Fundamentals of Computer Science 1
  • CS2510: Fundamentals of Computer Science 2
  • CS3500: Object-oriented Design
  • CS4410/6410: Compilers

What do you enjoy most or find most rewarding about what you teach?

I especially enjoy working with novice students and introducing them to the concepts and the fun of computer science, as I see them “get it” for the first time. I have been lucky to have a few inspiring teachers who displayed genuine enthusiasm for their material and shared that passion with their students; this led me to do the same for students of my own. I have taught at the Johns Hopkins Center for Talented Youth program and worked with gifted middle-school kids who had not been academically challenged in school and may never have found close friends among other students who were at their intellectual level.

What are the specifics of your industry experience?

I spent a year at Microsoft, working on the event-tracing infrastructure for Windows Vista, and spent a year and a half on an extended research internship with MSR during grad school, working on the extensible browser architecture that formed the basis of my thesis.