A collection of Java programs demonstrating core programming concepts including algorithms, coding logic, built-in and custom object types, and object-oriented design.
This repository was developed as part of my undergraduate coursework in Computer Science. The projects demonstrate my understanding of core data structures, algorithmic problem solving, and computational thinking through hands-on implementations.
Each folder focuses on a specific concept and includes short, well-documented programs that highlight design decisions, logic flow, and correctness.
This folder holds custom implementations and applications of fundamental data structures.
-
Binary Search Tree (BST)
- This subfolder implements insertion, deletion, traversal, and frequency tracking skills.
- It also includes a sentence-processing program that builds a BST from user input.
-
Circularly Linked List
- This subfolder has generic circular singly linked list implementation.
- The implementation is applied to simulate CPU round-robin process scheduling.
-
Hash Table
- This program is a custom hash table with a defined hash function.
- The hash function is designed to handle collisions using linear probing.
-
File Stack Simulation
- This subfolder is two implementations of the same problem
- one being Array-based and the other being Singly-Linked-list-based.
- This demonstrates tradeoffs between data representations.
- This subfolder is two implementations of the same problem
-
Custom Data Types
- This subfolder shows object-oriented design using a
Dieclass. - This also includes testing and probabilistic simulation of the
Dieobject.
- This subfolder shows object-oriented design using a
These programs focuse on algorithmic logic and problem-solving techniques, including control flow, iteration, and decision-making strategies.
-
Max Priority
- This progra is an array-based max heap implementation.
- It demonstrates heap insertion, deletion, and re-heapification.
-
Post Fix
- This program is a stack-based infix-to-postfix expression conversion.
- This allows evaluation of postfix expressions using operator precedence.
This section is for procedural projects demonstrating coordinate systems, loops, and modular design.
- Pavilion Scene
- This program utilizes the StdDraw Library to produce a static drawing.
- This shows use of procedural logic, coordinate-based reasoning, nested loops, and modular decomposition of tasks.
- Java
- Object-Oriented Programming
- Custom data structure implementations
- Stack- and heap-based algorithms
This portfolio is intended to showcase:
- My ability to implement data structures from scratch
- Strong understanding of algorithmic logic
- Clear, readable, and well-documented code
- Experience translating theoretical concepts into working programs
These projects reflect both academic rigor and practical problem-solving skills relevant to software engineering and data science roles.
Olivia Rueschhoff
M.S. in Mathematics | B.S. in Mathematics (Data Science & Statistics)
Minor: Computer Science (Algorithms & Data Structures)