I'm a fourth 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 soon, 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 dad 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.
Recently, I have been taking more low-level courses, piquing my curiosity in systems programming and microcontrollers. Then again, last summer I worked as a Software Analyst for Tesla Government, with a team producing a government web application, which introduced me to several very interesting web frameworks and technologies.
- I am currently on a Co-op with Northrop Grumman for the Summer and Fall of 2011. I work on ePower, a document and workflow management suite written in C# and ASP.net.
- 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.
- 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 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.
- Computer Science Theory
- Languages, grammars, automata, computability and complexity
- 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, generics, multiple inheritance, operator overloading and the lack of a garbage collector make for a tough 10 weeks.
- Computer Science 3
- Data Structures and Algorithms in Java, that 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 general consensus seems to be that they're 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 (States for Virginia High Schools) for McLean High School or New York Collegiate Rowing Championships for RIT.
I only let humans email me, so you have to solve a captcha here. I once had a Facebook and Twitter, but I can't stand the way people my age treat social networking.
This site was hand coded in strict conforming XHTML and CSS3 in Emacs. The image slider was created by Gilbert Pellegrom and released under the MIT license. Thanks for reading!