My Coursework.

Classes

EECS16A: Designing Information Devices and Systems I
EECS16B: Designing Information Devices and Systems I
CS61A: Structure and Interpretation of Computer Programs
CS61B: Data Structures
CS61C: Computer Architecture (Machine Structures)
CS70: Discrete Math and Probability
Data100: Principles and Techniques of Data Science
CS170: Efficient Algorithms and Intractable Problems
CS186: Introduction to Database Systems
CS161: Computer Security
CS188: Introduction to Artificial Intelligence

The Pac-Man Projects

CS188
June 2021 - August 2021

The Pac-Man Projects involved utilizing A*Search, Multiagent Minimax/Expectimax, Markov Decision Process, Q-Learning, Bayes Nets, Hidden Markov Models to play a game of pac-man.

File Sharing System

CS161
February 2021 - May 2021

An end-to-end encrypted file sharing system like DropBox in Golang, utilizing cryptography to ensure the server cannot view/tamper with user data.

View Design.

RookieDB

CS186
February 2021 - April 2021

RookieDB is a database that supports executing simple transactions: implemented support for B+ tree indices, efficient join algorithms, query optimizations, multigranularity locking to support concurrent execution of transactions, and database recovery.

Zoom Breakout Rooms

CS170
December 2020

My team utilized the Markov Chain Monte Carlo algorithm to approximate solutions to a NP-Hard problem where we had to assign zoom breakout rooms to minimize stress/maximize happiness between students.

numc

CS61C
December 2020

Numc is a version of Numpy written in C. My team implemented arithmetic matrix operations and matrix slicing features. We also used OpenMP and SIMD to speed up numc.

CS61CPU

CS61C
November 2020

CS61CPU is a CPU built using logic circuits to run RISC-V instructions.

CS61Classify

CS61C
October 2020

Classify is an artificial neural network built in RISC-V (assembly) to classify handwritten digits from the MNIST benchmark set for CS61C.

Game of Life

CS61C
September 2020

The Game of Life, invented by mathematician John Conway, is a cellular automation, where the evolution of each cell depends on the initial state and a provided game rule. I developed a version of the Game of Life in C.

SIXT33N

EECS16B
June 2020

SIXT33N is a mobile robot on 3 wheels (2 drivable) that moves around according to voice inputs. It uses the MSP430 Launchpad and some circuitry for driving the motor and sensing voice inputs through a microphone. SVD/PCA was used for voice recognition.

Gitlet

CS61B
May 2020

Gitlet is a version control system similar to Git that I developed in Java. It implements the commands: init, add, commit, rm, log, global-log, find, status, checkout, rm-branch, reset, and merge.

Lines of Action

CS61B
April 2020

Lines of Action is a two player board game. The objective is to connect all of one's pieces into a single group. I developed LOA in Java and built an AI using the Minimax algorithm.

Enigma

CS61B
March 2020

Enigma is an encryption device that Germany used for military communication during World War II that use an electromechanical rotor mechanism to scramble the letters of the alphabet. I developed a generalized version of Enigma in Java.