Data Structures

Comparing Sorting Algorithms

The purpose of this project is to understand how various sorting algorithms function as well as the number of comparisons and time required to complete each sort.

The sorting algorithms used are Selection Sort, Insertion Sort, Heap Sort, Merge Sort, and Quick Sort. The project was completed in Java.

See Full Code >

Dynamically Store and Access Polynomial Objects

This project is designed to work with user input to STORE, SEARCH, and DELETE polynomials from a list.

Polynomials are stored in a sequence of objects in PolyList. Each Polynomial is broken down by Term. Users can search and delete Polynomials by name.

See Full Code >

Prefix and Postfix Expressions to Binary Tree

The purpose of this project is to understand the difference between Prefix and Postfix mathematical expressions.

The program takes user input in one form and converts it to the opposite as well as displaying a visual binary tree of the expression.

See Full Code >

Array Based Stacks and List Based Stacks

The purpose of this project is to understand the Stack data type and the difference between Array based stacks and list based stacks.

This program provides two stack interfaces that allow the user to create both List and Array based stacks as well as manipulate them in various ways.

See Full Code >

Doubly Linked Lists

The purpose of this project is to understand the doubly linked list abstract data type.

The program provides the DLList object and the subclass DLListNode. Users can create nodes and store them in the linked list using the provided methods.

See Full Code >

Coloring A Matrix of Pixels

The purpose of this project is to understand recursion, Java user input, and terminal output.

The program takes in array of . and *'s. Adjacent *'s are replaced with letters to represent similar color and the output is displayed in the console.

See Full Code >

Techniques in Programming

Local Server and Client for Encrypted Messaging

This purpose of this project is to understand Java's Socket functionality for server-client communication.

The program allows users to start a local server, connect multiple chat clients, and send and receive encrypted messages.

See Full Code >

Encrypt and Decrypt Messages Using Pi

The purpose of this project is to understand the process of encoding and decoding strings using a specific key.

The program allows the user to input text or upload a txt file. After clicking 'Encode', the ciphertext result is displayed in a new window. The user can 'Decode' the ciphertext to get the original plaintext.

See Full Code >

Building a Code Interpreter in Java

The purpose of this project is to understand the design and structure of code interpreters by building a basic one.

This program allows user input using strict syntax (shown in project description) and 'runs' the code.

See Full Code >

Convert Between Binary, Hex, and ARM Code

The purpose of this project is to understand the differences between binary, hex, and ARM code and the conversions between them.

The program accepets user input in any of the three forms and converts it to the other two.

See Full Code >

Mathematical Operations with Matricies

The purpose of this project is to understand various mathematical operations using matricies as well as dynamically displaying and updating Java UI.

The program prompts the user for the dimensions of two matricies and displays windows them. Numerical values can then be input and the chosen operations are carried out.

See Full Code >

Introduction to Programming

Show Properties of Planets in the Solar System (Continued)

This project is designed to build upon the previous project to help increase understanding of dynamic Java UI, Action Listeners, and system sounds.

The program allows the user to select from a list of planets in the solar system. A window is then displayed with information about the planet selected.

See Full Code >

Test Properties of a List of Numbers

This project is designed to help understand dynamic Java UI and Action Listeners.

The program allows the user to input a number of data points. A corresponding number of input boxes are then displayed and various mathemetical properties can be computed from the numbers inputted.

See Full Code >

Show Properties of Planets in the Solar System

This project is designed to increase understanding of dynamic Java UI, Action Listeners.

The program allows the user to select from a list of planets in the solar system. A window is then displayed with information about the planet selected.

See Full Code >

Building a Basic Cashier In Java

The purpose of this project is to understand basic Java UI and user input.

The program allows the user to select various sizes and ingredients for a salad. The total cost is then calculated and displayed.

See Full Code >