side projects

I'm very passionate about computer science, so I've spent a lot of time outside of class working on so-called "Side Projects" to further my understanding of programming practices. Here's a handful of the projects I'm most proud of.

markov word generator

web design

I've always been interested in creating my own websites. At a young age, I familiarized myself with HTML and CSS (and to some extent JavaScript) and by the age of 14 had my own website built from the ground up. More recently, I've applied these skills to two projects.

custom tumblr theme

Screenshot of custom Tumblr theme I made

Last year, I took the time to create a Tumblr theme from scratch. Using HTML and CSS, I created a theme which makes use of all Tumblr has to offer and can be beautifully fully integrated into any existing blog. You can see a working example of it on my abandoned programming blog which this website has since replaced.

this website

This website is another application of those skills, albeit in a very different manner. I used HTML and CSS to create a "theme" for the site. I also used Pelican, a Python-based application, as a way to generate static content for this site.

klondike

Screenshot of Klondike application

As an exercise in C programming, I implemented a terminal-based application to create a version of Klondike (also known as Solitaire). It made heavy use of the kinds of abstract data types I learned in my CS 136 course, such as stacks and queues. I also worked with the ncurses library to offer a graphical interface.

This project developed my ability to design modular programs, something not usually taught in early-level CS courses. It also taught me how to use additional additional C libraries.

project euler

Project Euler is a collection of logic puzzles. As exercises, I've created programs to find the answers to the first 30 or so puzzles. I started them largely in Java, but as I continued I've transitioned to doing them in C.

This activity has improved my ability to design algorithms efficiently, as well as generally improve my programming ability.

other pursuits

These projects only scratch the surface of what I've done. In a job I had previously, I used an assembly language to program a simple computer to control the cabin lights in an electric delivery vehicle. In my last co-op, I spent weeks automating the testing of web-based software through the user interface using Ruby and WATIR (Web Application Testing In Ruby). I have a diverse set of skills and the ability to learn new ones quickly.