CS Bachelor's Thesis
11/2015 - present.
Comments: Pairnomix uses individualized compound screening to identify personalized treatments for genetic epilepsies.
- Diagis Research. 01/2007 - 06/2008. Employees: 7.
- Yaplet, Inc. 09/2006 - 06/2008. Employees: 2.
- Association for Computing Machinery. 01/2015 - present. Position : Member.
- SIGPLAN. 01/2015 - present. Position : Member.
I believe strongly in "hands on" implementation-driven education. In computer science, being able to implement a system or an algorithm is the ultimate marker of understanding.
Toward that end, I have students engineer creative implementations of undeniably real-world software systems, such an entire Python compiler.
Although challenging, the fact that these projects are drawn from real concerns provides a powerful motivation for students to master the course concepts, which otherwise might seem theoretical or detached.
My goal is to have every student leave my course having completed a project so impressive that they can demonstrate it to any potential employer and receive an offer on the spot.
While students complain bitterly about the workload in my courses while taking them, graduates consistently reach out to tell me that my courses were the ones that best prepared them for both graduate school and industry.
In the classroom itself, I believe in having a dynamic conversation between myself and my students.
I'm particularly fond of "Socratic live-coding," in which through a series of questions, I elicit a program from the audience to solve a problem they didn't realize they could solve.
This is the undergraduate compilers course. Students implement a Python compiler.
Scripting Language Design and Implementation
Students learn how to use scripting languages, how to design scripting languages and how to implement scripting languages.
A phase-by-phase review of the latest algorithms and techniques in the research literature.
Static Program Analysis
Research concepts in advanced static analysis of programs.