Computer Science

My first introduction to computer science came as I was preparing to spend a summer doing computational research. I took a free online course in Python through Codeacademy and spent a summer writing short scripts to analyze and visualize molecular dynamics data. I was inspired to pursue a more formal education, with the added benefits of following the recommendations of my math advisor. I have since managed to pick up a minor in Computer Science, with coursework in programming fundamentals, data structures, algorithms, and combinatorics. I will finish this in fall 2020 with a course in web systems.

I spent part of Summer 2020 a Virtual Tech Camp Instructor for iD Tech, where I taught week-long courses on Python and C++.

My site is hosted on GitHub. I made it using Hugo, an open source static site generator. It uses a modified version of the Soho theme.

Though I may eventually make and host small portfolio projects here, most of my current project work has been for courses. Since my site is hosted publicly, the actual code won’t be posted here for academic integrity reasons. But for a brief, by-course breakdown:

EECS 183: Elementary Programming Concepts

– Given a number of people, outputs a shopping list for ingredients to make an appropriate amount of cookies – Calculates the day of the week given a date, also calculates leap years – Encrypts and decrypts messages using Caesar, Vigenere, or Polybius ciphers – Writes simple .bmp graphics files given defined input files – Web-based music game /* please note some aspects of the site are defunct /*

EECS 280: Programming and Intro Data Structures

– Given a specifically-formatted data set, computes and outputs basic statistics – Implements a seam-carving algorithm for image resizing – Playable command-line euchre simulator – Postfix calculator, along with stack and linked-list class implementations – Piazza post classifier, using simplified natural language processing and machine learning

EECS 281: Data Structures and Algorithms

– Implementation of breadth-first search and depth-first search algorithms – Implemented priority queues (3 different implementations) and wrote a zombie game simulator using priority queues – Given logfile, searches entries using keywords, timestamps, or categories – Implemented minimal spanning tree algorithm and two programs solving the Traveling Salesman Problem – one favoring fast computation using a heuristic, the other favoring optimality

EECS 485: Web Systems

– Implemented static site generator (akin to Hugo – which is what this site is made with!) – Implemented early Instagram clone using server-side and client-side dynamic pages – Implemented basic MapReduce framework – Implemented basic search engine using pre-computed indexing and server-side dynamic pages