Computer Science

I am currently a Senior studying Computer Science in the School of Engineering and Applied Sciences at Harvard. As you can see from the photo above, though, I've been engaged with computers for a long time. (Not sure why I needed that head and eye protection though...)

Coursework

So far, my studies have included programming, abstraction and design, systems and machine organization, human-computer interaction, data structures and algorithms, theory, and graphics. I am proficient in C/C++, C#, and Python, with experience in OCaml, LUA, Java, JavaScript, HTML, CSS, php, and SQL.

COmputer Graphics

I studied 3D Computer Graphics using OpenGL and C++. Projects included implementing an arcball to control objects, a scenegraph to organize parts of robot characters, a keyframe animator, bump-mapped textures, and a simple fur simulation. Unfortunately I cannot post solution code from the class, but here are some images of completed projects.

For my final project, a physics-based set of rooms built in Unity and C#, please see the game design page.

 a keyframe animator written from scratch made for some fun little movies.

a keyframe animator written from scratch made for some fun little movies.

 This bunny has dynamic and physically-affected fur that moves and settles, and is affected by gravity.

This bunny has dynamic and physically-affected fur that moves and settles, and is affected by gravity.


Data structures and algorithms

For an example of some of my work in data structures and algorithms, please check out this dynamic paragraph formatting algorithm. This was a DP exercise that involved formatting a paragraph so as to minimize the amount of white space at the ends of lines, given a per-line character limit provided by the user.

other projects

The first project that really lit my fire for Computer Science was a Java program to play Battleship that I wrote with my friend Matt. Even though I wrote it several years ago, it's still one of my favorite pieces of code; I had to think through my first real algorithm to give the CPU player a strategy, I had to understand my first data structures to manage the board and the behind the scenes data storage, and I had to think through good UI design to make the game understandable and enjoyable.

Click here to download and try out my Battleship Game!

I have taken classes in data structures and algorithms, high-level abstraction, and low-level machine organization/systems programming. In my classes I've had the chance to implement several challenging projects, including a scaled-down operating system, a miniature shell, a search engine, and a game environment. Because these were assignments, I'm afraid I can't post code samples, but I have posted code from a Weather Predictor that my friends and I built in Python my Freshman year. It can (quite accurately) predict tomorrow's high, low, and precipitation for Cambridge, MA.

Click here to download and try out our Cambridge Weather Predictor!


Teaching

I was the Head Teaching Fellow for Harvard's CS50 Precollege course, a Summer course designed to teach high-schoolers the fundamentals of programming and computational thinking. I have also worked as a Teaching Fellow for Computer Science 51, which is an undergraduate course at Harvard in abstraction and design. For that course, I was awarded the Derek Bok Certificate of Distinction in Teaching. As a Teaching Fellow, I was responsible for teaching sections, grading, holding office hours, helping to develop assignments, and advising student projects.


Unity3D Development

Along with my classwork, I have a passion for game design and development. Over the Summer of 2016, I learned to use the Unity 5 game engine, through an online course with Michigan State University, online tutorials, and personal experimentation. I've made a few simple games, but I'm always trying to explore the greater possibilities of the engine. I also learned C# so that I can write programs that work natively with the engine's systems. Below are some pictures of my projects so far:

Please check out the Game Design section for more information about each project, as well at downloadable demos!

Computer Science + Music

Along with Computer Science, I am a Joint Concentrator in Music. As part of my Music Concentration, I have also worked a great deal with digital tools such as Logic Pro, Reaper, Sibelius, and the Roli Seaboard. I provide original scores both for my own game projects and for game and film project by other students here at Harvard. These advanced tools, combined with my passion for music, video games, and film are at the heart of my interest in using technology to entertain.