Michael Brooks

Contact
michael.brooks [at] oberlin.edu

A prototype for my real-time music analysis project.

A video of the DARPA ARM robot.

A screenshot of my final project for Databases.

A screenshot of my IZZI game.

Last updated
September 7, 2010

PDF Version

Education

University of Washington

PhD Candidate in Human Centered Design and Engineering
2010 to present

Oberlin College

B.A. in Computer Science and Mathematics, minor in Physics
2006 to 2010

top

Research Experience

A Tool for Real-time Music Analysis and Visualization - Oberlin College, 2009-2010

This was my Computer Science Honors thesis. The goal was to develop a software tool that musicians can use while they practice their instruments. It uses a microphone to record their playing and extract musical features like notes played, intonation, tone, and rhythm. The software displays this data to the user with real-time visualizations. In addition to developing a prototype of the software, I conducted and informal user study to assess the usability of the prototype.

More detailed information is available at the main website for this project.

Game Theory and Social Networks REU - Oberlin and Carleton College, Summer 2008

We applied principles of game theory to problems involving social networks. The first project investigated the algorithmic properties of "social balance" theory as described by Fritz Heider. We tried to find an efficient algorithm that could balance an arbitrary social network, but reduced the problem to Correlation Clustering (NP-Complete) and developed two approximation algorithms.

The second project was based on Ronald Burt's description of structural holes in real social networks. This refers to the property that social networks often have small, well-connected clusters that are only connected to one another by only a few links. With the hope that it would exhibit these structural holes, we described an agent-based model for social network formation and stabilization based on Game Theory and investigated the behavior of this model on many types of networks.

Results were presented at the Oberlin Summer Research Symposium in Fall 2008 (Downloadable here and here). The results of the second project are also available on Google Code

top

Teaching Experience

Co-Instructor for Competitive Programming ExCo - Spring and Fall 2009

I co-teach an ExCo course that prepares teams of student programmers for collegiate programming competitions. We hold weekly meetings for practice competitions and lectures about algorithms, implementation techniques, and programming as a team. As a result of this course, Oberlin sent an unprecedented four teams to the ACM International Collegiate Programming Competition this fall, where every team solved at least two problems. The top two teams placed 17th and 22nd out of 113 in the region.

More information is available at the course website.

TA for Principles of CS (CS 150) - Fall 2007 to Spring 2009

I helped students in this introductory Java programming course with their questions as they completed the lab assignments, and graded their labwork.

TA for Game Design (CS 261) - Fall 2009

With another TA, I wrote several sample games and an introductory tutorial which covered several aspects of Microsoft's XNA Framework and C#. I also graded student's games.

CS and Mathematics Tutor - Fall 2008 to present

I have tutored students for the following courses: Principles of CS, Data Structures, Introductory Programming, Programming Abstractions, Theory of CS, and Differential Equations.

top

Work Experience

Internship with RE2, Inc. - Summer 2010

RE2 is a small robotics research and development company located in Pittsburgh, PA. They specialize in robotic manipulation systems. I worked on developing system software for RE2's DARPA Autonomous Robot Manipulation project and with another intern wrote the software that demonstrated the robot at the AUVSI conference. Below is a video of the robot running our software to sense and manipulate blocks on a table.

Internship with RE2, Inc. - Summer 2009

I was assigned to three main projects over the course of the summer. First, I fixed bugs in and gained familiarity with their implementation of the Joint Architecture for Unmanned Systems (JAUS). I then added several features to a control interface for robotic platforms. Finally, I explored strategies for future development of the JAUS SDK and tested their viability by partially implementing them in C++. I presented this work to the software team.

Student Technician for the Oberlin Piano Tech. Dept. - Fall 2009 to present

Helped maintain the over 200 Steinway grand pianos in the Oberlin Conservatory of Music.

Student Technician for Oberlin AV Dept. - Fall 2006 to Spring 2009

Managed and repaired media devices in Smart Classroom facilities around Oberlin College.

Internship with Tackle Design, Inc. - Summer 2007

I worked with Duke University and industry partners to develop a design for a low-cost incubator for premature and ill infants that would be appropriate for developing countries. Our results are documented here.

Online Editor for the Oberlin Review - Fall 2008 to Spring 2009

Published articles to the Oberlin Review website and developed website features.

top

Other Projects

A Database for Musical Recordings - Fall 2009

This was my final project for my Databases course. I designed and developed a web interface for searching and modifying an underlying Oracle database. This project features use of SQL, PHP, HTML, Javascript, and AJAX. It can be viewed here, although I can make no promises about the reliability of the server on which it is currently hosted.

Streamlined Data Analysis through Clustering - Fall 2009

This was my final project for my Optimization course. A partner and I developed an architecture for a web application that would enable streamlined exploratory data analysis using clustering based on Integer Programming. The project featured the integration of several technologies including web programming, a database, a Java application, and use of the lpsolve optimization library (written in C). Though we did not have time to finish the web interface, we completed the portion that actually solved the integer programs and tested the system using several data sets.

A Content-based Image Search - Spring 2009

This was my final project for my Artificial Intelligence course. Working with a partner, I developed a search engine in PHP that used neural networks (powered by FANN) to recognize characteristics of images.

IZZI Computer Game - Summer 2009

For fun and in preparation for assisting with the Game Design course at Oberlin, I wrote a computer game version of the excellent pattern-matching game IZZI. It is based on the XNA framework and written in C#.

Real-time Physics Simulation - January 2008

This project involved reading books about rigid-body physics simulation techniques including object representation, collision detection, collision response, and numerical integration of physical equations. In conjunction with this, I wrote a demo program of a small physics engine in C# and XNA and contributed some code to a group project to wrap the Nvidia PhysX library in Managed C++ (physxdotnet).

top

Awards and Honors

Oberlin College NSF S-STEM Scholarship for Computational Modeling

National Merit Scholar







Website designed by Katie Kuksenok.