Projects

Note that school projects will not have code publicly available. For a full list of school projects not showcased here, you can go to my project journal!

Numc

This was a school project for UC Berkeley's CS 61C, Great Ideas in Computer Architecture (Machine Structures). Made a NumPy library clone in C. Used SIMD and MIMD to accelerate matrix operations, with frameworks such as Intel AVX Intrinsics and OpenMP, as well as optimizations with caches and virtual memory. Benchmarked 110X speed up in DGEMM and 2200X in matrix exponentiation on an Intel i7-4770 processor. Scored on average top 100 out of 1200+ students out of multiple categories, scored top 10 in matrix unary/binary operations category.

RISC-V CPU

This was a school project for UC Berkeley's CS 61C, Great Ideas in Computer Architecture (Machine Structures). Designed a CPU with datapath, control logic, and memory fully implemented in Logisim following the RISC-V 32-bit ISA. Design scored top 100 out of 1200+ students based on how many logic gates were efficiently used.

Kaggle InClass Prediction Competition

This was a series of homework assignments for UC Berkeley's CS 189, Introduction to Machine Learning. Scored on average top 5% of the class in Kaggle InClass Prediction Competitions consisting of 600+ graduate and undergraduate students. Competed for the best classifiers such as SVMs, GDA, Logistic Regression, Decision Trees/Random Forests, Neural Networks, and Latent Matrix Factorization developed from scratch in Python.

AI Pacman

This was a school project for UC Berkeley's CS 188, Introduction to Artificial Intelligence. Encoded a series of AI functionality to the game of Pacman in Python, such as searching algorithms, gametrees, MDPs, reinforcement learning, and Bayesian networks. Scored 5th for best AI agent out of 600+ students.

COVID-19 Visualizations with Data Science and Machine Learning

Visualizations of the novel coronavirus with Python. This was my first step into data science and I really learned a lot through libraries such as Pandas, GeoPandas, NumPy, and MatPlotLib. I primarily used data from NYTimes to analyze US cases and data from JHU CSSE to analyze international cases.

Gitlet

This was for a school project for UC Berkeley's CS 61BL, Data Structures and Programming Methodology. A Git clone made in Java using SHA-1 serialization and basic data structures. Can do basic version control system through the command line such as init, add, commit, log, find, status, branch, checkout, merge, rebase, push, pull, etc.

BearMaps

This was for a school project for UC Berkeley's CS 61BL, Data Structures and Programming Methodology. Created a mini web map application deployed on Heroku using OpenStreetMap of Berkeley. Application uses data structures and algorithms such as tries, hashing, A* shortest path, rasterizing, and KD-trees.

SIXT33N Voice Activated Self-Driving Car

This was a school project for UC Berkeley's EECS 16B, Designing Information Devices and Systems II. Made a self-driving car with circuits, op-amps, filters, and sensors with a TI MSP-EXP430F5529LP microcontroller. Software is written in C++ and can recognize four voice commands corresponding to four actions. Commands are classified with unsupervised learning technique using principal components analysis.

Mandelbrot Zoom

A small project in C++ that can make a movie of a zoom in of the Mandelbrot set. Creates bitmap images and uses ffmpeg to stitch frames together into a movie or gif. Computation of the Mandelbrot set, as well creating images is accelerated using OpenMP.