
I'm a fifth year Computer Science student at Rochester Institute of Technology. You can also find me on the Genesee River, rowing for RIT Crew.
I also have a resume, what a surprise.
At some point, I'll add some projects that I have worked on.
Knowing how things work has always fascinated me, so it is no surprise that I was hooked from the first time I touched a computer, playing Spectre with my father and older brother on ancient Macintoshes.
I was first introduced to computer science in high school by taking AP Computer Science. Somehow, I managed to convince the teacher to allow me to enroll without the prerequisite (and learn an entire year's worth of material in a weekend with my older brother). After six months of Java, I knew I liked computer science enough to select computer science as my major when applying to RIT. Since coming to RIT, I have never once regretted my choice or wondered if I am in the wrong place.
I am in a five-year B.S. program majoring in computer science. The extra year allows me to spend a total of four quarters in Co-ops and internships gaining experience in a real-world environment. After each one, I have known much more specifically what I want continue studying and what field I want to work in when I graduate. My expected graduation date is one quarter ahead of schedule in February 2013.
My diverse interests (and being on track to graduate early) have lead me to pursue minors in both Web Development and Political Science.
For the summer and fall of 2011, I held a co-op with Northrop Grumman. I worked on ePower, a document and workflow management suite written in C# and ASP.net.
During the summer of 2010, I worked as a Software Analyst for Tesla Government, a defense-contracting startup, with a team producing a government web application, which introduced me to several very interesting web frameworks and technologies.
Parallel Computing
It's just what you would expect, the study of parallel everything: architectures, algorithms, metrics, languages, applications, program design and debugging. Teams of 2-3 work on a quarter-long team project. My team parallelized two solutions to the Longest Common Subsequence problem
Computer Architecture
I've been wanting to take this course for a while now! This class covers the study of modern and classic hardware and several projects to emulate classic processor architectures to demonstrate considerations in various design choices.
Web Site Design and Implementation
Focused on usability, accessability and information architecture, through projects using HTML5, CSS3 and JavaScript.
Programming Language Concepts
A study of the concepts underpinning programming language design. Several languages in particular are studied to compare paradigms and features. Our chosen languages were Common Lisp, Prolog and Haskell.
Systems Programming 2
The first three weeks of class were spent collectively designing, implementing and debugging a simple operating system. At that point, teams of three to four students formed to continue development of additions to the baseline system. Each team member selects a project for the team to work on, giving each team three to four total projects. I wrote an ext2 driver for my team's os: Eunuchs.
Computer Science Theory
Languages, grammars, automata, computability and complexity.
Data Communications and Networks
Transport, network and data link protocols and algorithms. Data transmission and network security fundamentals being emphasized in class projects.
Systems Programming 1
An introduction to the Intel x86 architecture and the C language, and the application of these to interact with low-level hardware, focusing on the UNIX operating system.
Operating Systems 1
A generalized examination of operating system fundamentals. Topics included process synchronization, interprocess communication, deadlock, multiprogramming, multiprocessing, processor scheduling, resource management, memory management, virtual memory, file systems, device allocation, I/O and process and resource protection.
Humanitarian, Free and Open-Source Development
A free elective in the school of game design, this class commits groups of students to new and continuing projects for the One Laptop per Child project. My group, Abbi Honeycutt and I, restarted and completed development of PacMath, a game to teach 4th grade level math, on the XO-1 PC.
Computer Organization
Introduction to computer architecture and assembly language. Use of MIPS assembly to implement high-level data structures and algorithms. Also studied the design and function of simple CPU microarchitecture and microarchitectural elements from discrete logic gates.
Software Engineering 1
Based around a quarter-long team project, teaching fundamentals of software life cycle, software design, user interfacing, specification and implementation of components, support, code and design reviews, testing, technical communication and team-based development.
Computer Science 4
Although most likely unintentional, this has become the class to thin the herds. This class is taught in C++, quite a few steps up from Java or Python. Pointers, templates, multiple inheritance, operator overloading and manual memory management make for a tough 10 weeks.
Computer Science 3
Data Structures and Algorithms in Java, which was even the title of our textbook. Stacks, queues, lists, trees, graphs, sorting, searching, hashing and recursion.
Computer Science 2
A continued exploration of object oriented programming. Projects in this class emphasize problem solving using reusable components and inheritance. First exposure to exception handling, files, streams, collections, threads, synchronization, swing, networking and event-driven programming.
Computer Science 1
The first in a series of four introductory classes. Back in my day, (2008) CS1-3 were in Java, but now 1-2 are Python. The consensus seems to be that it is better for students who have never programmed before. Computer Science 1 teaches mostly problem decomposition and solving.
These are some pictures of me rowing, at either the Virginia Scholastic Rowing Championships (State Championships for Virginia High Schools) for McLean High School or the New York Collegiate Rowing Championships for RIT.
I only let humans email me, so you either have to solve a captcha here or go read it off my resume. I once had a Facebook, Google Plus and Twitter, but if you want to find me now, you'll have to email me.
All elements of this site were hand coded, by me, in dual-conforming XHTML 1.1 and HTML 5, CSS3, and JavaScript using Emacs, my editor of choice. Thanks for reading!