About Me
I am a passionate, self-motivated programmer, who recently recieved his degree in Computer Science. My hobbies includes weight lifting, cooking, and programming anything fun I can think of.
My Projects
Here is a list of notable projects I have done. Clicking on the project will take you to its corresponding githubpage. Feel free download it and play around!
Web Dev.
- Pokemon React App
- Description: Front-end web app I made while learning React. Pokemon data is pulled from an external API and presented with BootStrap.
- Webpage with backend server
- Description: My personalized homepage for storing, and deleting bookmarks. This website was built with standard web programming technologies such as, HTML, CSS, JavaScript, with Java Servlet as a backend.
- Art Dealer Game
- Description: A Web game, designed to stimulate computational thinking in children in different grade ranges (K-2, 3-5, 6-8). The game was designed as a project for the National Science Foundation.
- Learn JavaScript with me
- Description: Repository to learn the different aspects of JavaScript. Notes on required concepts are provided so that anyone can easily get started.
Software Dev.
- Awesome TV with RPi
- Description: Sleep better every night by watching your favorite TV show. This program will schedule episodes of a TV show to play on the television. A unique scheduling algorithm is used to reduce redundancy in episode selection. Adaptive poweroff timer to save energy so you’ll never have to wake up in the middle of the night to manually turn the TV off.
- Top to Bottom Compiler
- Description: A basic compiler to translate a customly designed language to machine code that can be executed on a virtual machine.
- Operating System Simulators: Simulate different problems that uniprocessing operating system will face, and handle it appropriately. Notes are provided for how each simulation works.
- Scheduling
- Description: Schedule multiple processes (18) to run as if concurrently. This simulator handles priority queues, interupts, and termination.
- Resource Management
- Description: Handle deadlocks whenever a process has the the shareable resource that another process needs. Two approaches used to handle deadlocks are deadlock avoidance, and deadlock recovery.
- Memory Management
- Description: Manage processes memory usage using First In First Out, and Least Recently Used replacement policy. A page table is added to keep track of all the process in memory.
- Scheduling
Deep Learning
- Deep Neural Style Transfer
- Description: Take the art style of a painting, and the content of another painting; and have a deep learning model generate a new picture of the content in the selected style. This is done by reading multiple deep learning research papers and implementing their concepts to produce the “best” looking pictures.
- Finger Digit Classification
- Description: Image classification problem where the model attempts to predict the number of fingers raised in an image. Images are preprocessed before hand for better computation.