If you would like to view the code of any of these projects please email me.

Click to jump to class from list below


 

Data Structures (CS61B)

 

Cube Puzzle Game

For more info about the project see the project spec.

First mini-project for CS61B to become familiar with syntax for coding and debugging with Java. Task was to implement functionality where user can click square on game for cube to roll onto and the cube will pick up a blue square if its face is not already blue. Learned about Model-View-Controller architecture for project structure to implement a CubeModel that followed an observer design pattern

Enigma

For more info about the project see the project spec.

First large scale project of CS61B, replicated the WWII German encryption machine "Enigma" by building generalized simulator that could handle numerous different descriptions of possible initial configurations of the machine and messages to encode or decode. Worked mostly with Java's String, HashMap, ArrayList, and Scanner data structures to handle string manipulation, data mapping required, and file reading for encryption. 

ATAXX

For more info about the project see the project spec.

Created a replica of the game Ataxx in Java in CS61B. The objective of the game is to fill the board with your color and moving to a square adjacent to an opponent's square changes their color to yours. Built both the GUI version and the command line version of the game implementing both manual players and AI players. For AI player, used game trees and alpha beta pruning based on heuristic values.

Graph API

For more info about the project see the project spec.

Built graph library package API in Java to facilitate creating and manipulating graphs. Required to build without implementing Java's hashing and mapping data structures so I had to get creative with ArrayLists and customized Queues to handle traversals, breadth first search, and depth first search. Used this package to implement replica of GNU Make and a Trip client that suggests the shortest path between two destinations using Djikstra's Algorithm and A* search.


 

The Structure and Interpretation of Computer Programs (CS61A)

 

HOG

For more info about the project see  the project spec .

For more info about the project see the project spec.

First CS61A project to gain a basic understanding of the features of Python. Most of the time was spent understanding the given code. Learned how to implement control statements and higher-order functions.

Maps

For more info about the project see  the project spec .

For more info about the project see the project spec.

In Python created a Voronoi diagram to make a visualization of restaurant ratings using machine learning and the Yelp academic dataset. Model segmented Berkeley into regions that were shaded by the predicted rating of the closest restaurant (yellow is 5 stars, blue is 1 star).

 

Ants Vs. SomeBees

For more info about the project see  the project spec

For more info about the project see the project spec

Remake of Plants vs Zombies tower defense game created in Python for CS61A to learn a combination of functional programming and object-oriented programming. 

SCHEME

For more info about the project see  the project spec .

For more info about the project see the project spec.

Used Python to code an interpreter for Scheme language for CS61A. Learned both about functional programming through Scheme coding assignment and Read-Eval-Print-Loop through coding each step of the process for interpretation.