computer science

 
  • operating systems

    computer architecture

    software development

    ux design

    programming languages paradigms

  • data structures & algorithms

    c systems & programming

    java & python programming

    mobile applications

  • linear algebra & probability

    discrete mathematics

    calculus & analytical geometry

  • java

    c

    digital design

    arm assembly

    python

    html

    css

    racket

    haskell

    lambda calculus

  • Color of Light & Pollution

    The purpose of this project was to visualize the color of light based on pollution levels. The project, centered around a Raspberry Pi, measures air quality with sensors that continuously collect data as the air quality changes, while cameras record the visual color of the air quality. The project intertwines the visual perspective of air quality with pollution levels, or Air Quality Index, into one visual that shows the coordinating color with the current air pollution.

    Technologies Used:

    • Raspberry Pi

    • Ambient Light Sensors

    • Pollution Sensors

    • AWS RDS PostgreSQL

    • HTML/CSS/p5.js Website Implementation

    Code

Projects

  • Custom Allocator

    Developed a custom memory allocator that uses mmap to allocate entire regions of memory at a time. The project uses free space management algorithms to split up and reuse empty regions: first, best, and worst fit.

    Language: C

  • Custom Shell

    Mimics the outermost part of an operating system. The shell prints a prompt and waits for a user inputs, runs commands in a current directory, and follows paths.

    Language: C

  • Senior Term Project - Color of Light & Pollution

    Visualizes the color of light based on pollution values and visual photographs of the sky.

    Technologies: Raspberry Pi, Ambient Light Sensor, Pollution Sensor, Camera, Amazon Web Services

    Languages: Python, Java, HTML, CSS, p5.js

  • Single Cycle & Pipelined Schematic Processors

    Implementation of a single-cycle microarchitecture for a subset of the ARM instruction set architecture in Digital.

    Pipelined processor includes a Hazard Unit and data path additions to provide support for Register Forwarding for data dependencies.

    Technologies: Digital

    Language: ARM Assembly

  • Inverted Index & Partial Search

    Inverted Index: processes all text files in a directory and its subdirectories, cleans and parses the text into word stems, and builds an in-memory inverted index to store the mapping from word stems to the documents and position within those documents where those word stems were found.

    Partial Search: Stemmed from Inverted Index to support exact search and partial search. Tracks the total number of words found in each text file, parse and stem a query file, generate a sorted list of search results from the inverted index, and support writing those results to a JSON file.

    Both projects were made thread-safe and use a work queue to build and search an inverted index using multiple threads.

    Language: Java

  • Miscellaneous

    Additional Projects