Welcome
  Here you can find out more information about me, Jackson Newman, and how I would make an excellent candidate for any opportunity. This website houses all my relevant information, such as links to my GitHub and LinkedIn, projects that I have completed in the past, and extracurricular activities that I participate in at UCSB.
AI/ML Projects
...

Autoencoder for Transistor Position Classification

GitHub Repo: https://github.com/JNewman‑cell/AutoencoderClassfication

I created an Autoencoder with the goal of classifying numbers and positions of transistors through image recognition. I used a 5-layer convolutional network for the encoder and the same for the decoder so that the network was able to recreate the most general pictures of the transistors. The autoencoder used about 220,000 parameters and could easily identify the whether a transistor was in the correct position, pictured above. If you want to learn more about my autoencoder, click here.

...

Neural Network Classification of Wafer Maps

GitHub Repo: https://github.com/JNewman‑cell/WaferMapNeuralNetworkClassification

Using the same WM-811k Wafermap dataset on Kraggle from real manufacturing plants, I created a 14-layer neural network with augmentation, feature extraction, and classifier layers to predict wafer maps with greater accuracy compared to classical machine learning methods. Using convolutional and pooling layers, the features of the wafer maps are identified and exemplified, to make classifying each map easier for the classifying layer. To find out more about what algorithms were used and how I created the features, click here.

...

Classification of Wafer Maps

GitHub Repo: https://github.com/JNewman‑cell/WaferMapMachineLearningClassification

Using the WM-811k Wafermap dataset on Kraggle from real manufacturing plants, I used machine learning algorithms from SciKitLearn combined with feature engineering and wafer map standardization to predict the classification of wafer maps, which manufacturers use to find errors in their production steps. This kind of prediction allows manufacturers to tweak their processes to decrease the fail rate of chips on their wafers. To find out more about what algorithms were used and how I created the features, click here.

...

Stanford TreeHacks

DevPost Repo: https://devpost.com/software/stock‑related‑tweet‑sentiment‑analysis‑vs‑stock‑performance

I participated in the 2021 Stanford TreeHacks and our group created an algorithm that allowed us to track how certain tweets tagged with a ticker symbol of a stock affected that stock's price. We used past stock price data to see how the two were related. For a more in-depth write-up, click here.

...

Historical Course Finder

GitHub Repo: https://github.com/JNewman‑cell/UCSBHistoricalCourseScraper

I created this Python script to easily search for the courses that were recently offered at UCSB for any area of study. This repo offers an easier way of planning around the courses that are still on the course catalogs but have not been offered in the past year. It also provides an easier way to see what quarter certain sequences, which are mandatory to complete, occur and when required classes are taught. Find out more here.

Web Devlopment Projects

Full Stack Website Project

GitHub Repo: https://github.com/ucsb-cs156-s23/proj-courses-s23-7pm-2

In this project, I used Dokku as a database and server to deploy and run the backend of my webapp, for which I used React and Java to create a page which has Google Authentication built into it. The Authentication also enabled me to store users in the database and attach info to their accounts, allowing them to save data from past visits to the site. To learn more about the technologies I used and what I learned in my Advanced Applications class click here.

...

Google Website Authentication

GitHub Repo: https://github.com/ucsb-cs156-s23/jpa03-JNewman-cell

In this project, I used Dokku as a database and server to deploy and run the backend of my webapp, for which I used React and Java to create a page which has Google Authentication built into it. The Authentication also enabled me to store users in the database and attach info to their accounts, allowing them to save data from past visits to the site. To learn more about the technologies I used and what I learned in my Advanced Applications class click here.

...

This Website

This website uses CSS and HTML to display all the information about me. I used Bootstrap for the website design and added to those designs with styling, backgrounds, and overall outline of the webpage. I have also made form input designs and used javascript to allow for submission, however, they have been excluded for greater simplicity and cleanness.

Computer Architecture Projects
...

Multi-Cycle Pipelined MIPS Processor

A classmate and I built a functional multi-cycle Pipelined MIPS processor using what we learned from Computer Architecture. We built out each cycle of the processor and learned how to store intermediate data and use each cycle most efficiently. Our processor ran those instructions at 75 MHz and used 751 logic cells to function. Overall, we learned a lot about how to speed up execution time, increase IPC in processors, and decrease the amount of hardware and power needed for computational tasks.

...

Single-Cycle MIPS Processor

A classmate and I built a functional single-cycle MIPS processor using what we learned from Computer Architecture. We built out all the functions and tested them using data files that were read into the instruction memory and executed. Our processor ran those instructions at 40 MHz and used 3354 logic cells to function. Overall, we learned a lot about the storage of data in a system, the execution of tasks per clock, and how to control the processor using logic design.

...

FPGA Design

I used a Nexys A7 100T to create projects based on embedded systems, such as polling, interrupts, timers, scheduling, hierarchal state machines, and display drivers. I made multiple projects, that used these concepts, such as a chromatic tuner that predicted a note played using sampling rate and FFT, Fast Fourier Transform, and calculations. Further, I made a state machine that allowed certain functionality that you would find on a smartphone, such as a volume and mode controls using buttons and a rotary encoder. I created and connected all the modules in the Vivado Design Suite that allowed these projects to function.

Nexys A7 Volume Control

This FPGA project involved using a rotary encoder to simulate changing volume, with it being bounded from 0 to 65, and being able to reset by pushing a button. This involved setting up interrupts to change the volume value and also driving the background and volume indicator on the display. My classmate and I used multiple functions to limit the debouncing of the encoder to provide a smoother experience. We also set up a state machine using QP Nano, so that the code was modular and extensible.

Nexys A7 Note Finder

This FPGA Project involved using FFT to calculate the frequency of notes with a 2-3% accuracy within milliseconds. To accomplish this, we pre-calculated the values of sine and cosine functions that could be used with 256-point FFT. This process sped up the calculation time, meaning that it could be done in more real-time.