Relevant Courses

Object Oriented Programming

Learned the fundamentals of Object Oriented Programming. This includes Abstraction, Inheritance, Encapsulation, and Polymorphism. Using Java, I learned about the importance of classes and separating methods into the appropriate class. The class also taught me about dynamic memory, sorting algorithms, and recursive algorithms. For the full class description, click here.

The Gym Helper, my final project for this class, encapsulates a large amount of what I learned. The app was created with the intentions of putting Object Oriented Programming principles to use (e.g. creating relevant classes, writing efficient code, using UML diagrams, storing information effectively, etc.). This resulted in me creating an app dedicated to making gym workouts for new lifters and calculating lift maxes. Navigate to one of the links below to learn more about this project.

Systems I

Learned C++, memory management, and network programming. Also learn about computer architecture. Also learned about data representation in various computing languages, and how to use SQL to access and apply various data structures. For more information about Systems I, click here.

The Airline Scheduling Application is a project that I did for this class. The app was coded in C++ and uses Object-Oriented elements such as h files. The app also involves a makefile to help with compiling all of the code and making sure everything is up-to-date. I also used Command Line Arguments to make sure the text files were used correctly. The zip file for the project and the instructions for use are linked below.

Data Structures & Algorithms

Learned how to create data structures using arrays and nodes. I also learned the advantages and disadvantages of LinkedLists, ArrayLists, Queues, and HashSets. This includes time complexity and space complexity. I would then consider these traits to create various implementations of data structures. Learned a little bit about graphs and binary trees as well. For more information on Data Structures and Algorithms, click here.

My project for this class involved a Binary Tree with an Inner Node implementation. Using Java, I used recursive methods, queues, and sets to perform various tasks with access to the binary tree. These include pre/post-order traversal of the tree, finding various sums of tree elements, and finding the max element value within the tree. I use a tester file to test all of my methods, so that is what you will see when running the project (That's also why the below picture isn't the most accurate). The zip file for the project and the instructions for use are linked below.

Introduction to Software Engineering

Learned about the process of creating software and its importance. Did this through the use of the Agile method and iterations for projects. Learned how to elicit requirements from a customer, designate tasks, and estimate the time it would take to complete said tasks. Essentially the class taught me about the life cycle of software development, and in addition taught me how to develop software in a team/company setting. For more information about the class, click here.

The Hoopsyclopedia is a group project that I did for this class. My group mates and I wanted to create a web application that kept track of NBA players' stats during the 2023-2024 NBA regular season. Using javascript and HTML we designed unique features like the Compare Player and the Random Player lookup. Then, to store player data, we used MongoDB. Finally, to get this website onto a server, we used React and NodeJS. This project was supposed to simulate a real world Agile project where we would have weekly meetings with the client, and also present our progress to the "CEO" of the company at the end of each iteration.
The video below is a demonstration of how to use/access the web application after downloading it. It will show a full sample use case of how the app works. The zip file and a set of written instructions for use are linked below as well.