This project implements a basic Unix shell in C, designed to mimic the behavior of a standard Unix command-line interface. The shell provides an interactive environment where users can enter commands, and it executes them by creating child processes. It was a great learning tool for understanding process creation, management, and inter-process communication in Unix-like operating systems.
Iceicle: A Winter Adventure is a simple winter themed fixed-shooter that was built within one week for our final project of Atlas School's Computer Science Foundations curriculum. We were given the freedom to build any sort of project we desired as long as it followed the winter theme assigned using the knowledge we gained from the last four months at Atlas. My partner, Amir Colbert, and I decided to utilize the Python's Pygame module to create an arcade style game inspired by a Galaga boss battle. I am not particularly creative, and I am a huge fan of Python, so I focused on the mechanics of the moving elements of the game as well as the organization of the code itself. Amir was in charge of the direction, style/look of the game, and the presentation of the project.
In this project, I built neural networks from scratch using only NumPy, progressing from a single neuron to a fully functional multi-layer neural network. I started by constructing a single neuron, implementing both the forward and backward passes, and exploring activation functions like sigmoid. Next, I extended this to a single-layer neural network, where I handled multiple neurons in a layer and ensured the correct propagation of inputs and gradients. Finally, I developed a multi-layer neural network with the flexibility to include any number of layers. I trained these networks on the MNIST dataset to classify handwritten digits, manually implementing key components such as forward and backward propagation, loss calculation, and gradient descent optimization. This project gave me a deep understanding of the inner workings of neural networks and the mathematical principles behind them.
In this project, I implemented the YOLOv3 (You Only Look Once) object detection algorithm from scratch in Python. Using TensorFlow for the model and OpenCV for image processing, the Yolo class includes methods for processing model outputs, filtering and suppressing bounding boxes, calculating Intersection over Union (IoU), and displaying detection results. This project demonstrates a complete pipeline for detecting objects in images, highlighting key steps such as preprocessing, model prediction, and visualization of results.
In this project, I practiced transfer learning by taking a pre-trained model from TensorFlow Keras and fine-tuning it for a new task. I selected a well-known model, such as VGG16 or ResNet50, which was pre-trained on the ImageNet dataset. I then replaced the top layers with a new classifier suited for my specific dataset. By freezing the base layers and only training the newly added layers, I efficiently adapted the model to achieve high performance on the new task, demonstrating the power and flexibility of transfer learning in deep learning applications.