Research Projects

Here's a quick look at some of the projects I'm currently working on or have worked on in the past. More details about each project can be found by clicking on the associated link.

Computer Science Education for End-User Programmers

Recent estimates for the number of end-user programmers indicate this population is over four times larger than the community of professional programmers. Web developers using active server pages, accountants using spreadsheets, and CAD designers using AutoCAD are just a few example domains where end-user programming has become commonplace. Recently, native scripting capabilities have become integrated with media manipulation tools like Photoshop, Final Cut Pro, and Blender. Such new support for end-user programming creates many opportunities for researchers. My dissertation work studies how and why media professionals, like graphic designers, learn to script. I focus on what they know about computer science, how they learned it, and how we can build tools that support newcomers in learning Computer Science content informally.


Jeroo is an all in one educational IDE designed to help novice programmers learn object-oriented concepts. It has interface languages that align closely to either Java (and other C++ syntax derivatives), Visual Basic, and Python. Jeroo has been used extensively in elementary, secondary, and post-secondary education worldwide, and it was named the 2004 Premiere Award winner for excellence in engineering education software.

JES - Jython Environment for Students

JES is an educational IDE for Python that compliments Guzdial's Media Computation curriculum. It is used to facilitate the teaching introductory programming within the context of manipulating images and sounds. I am involved in ongoing development and maintenance of JES, along with undergraduate students at Georgia Tech. I also have assisted with a summer workshops that introduce Media Computation to high school and university faculty.
(more even more)


As part of my master's thesis, I helped develop Typedscm, an extended dialect of Scheme that allows one to declare types. The software (written in the Typedscm dialect) allows for checking type declarations and doing type inference. Typedscm was designed to compliment Friedman, Wand, and Haynes' Essentials of Programming Languages (2nd ed) book and integrated with DrScheme.