Programming and Coding Projects
Programming and Coding Projects
Many of my programming projects and work are hosted here. Use the table of contents to view specific details about any works. Please reach out to me for any full source code not provided here.
In the course CS 4910 - Intro to Computer Security, a partner and I were given the opportunity to research an advanced topic of cryptology. We chose to research quantum computing and its impact on cryptology, both now and in the future. The project consisted of some kind of physical or computational demonstration, as well as a research paper in IEEE format that lays out our findings and elaborates on the demonstration. A video demonstration of the program can be viewed to the left. The full research paper can be seen at the link below, and is also available for download.
This project was created for a database management course with a team of five students. The objective of the project was to use the data visualization tool Mapbox to demonstrate an understanding of data representation, management, and visualization. Our team utilized a database of earthquakes around the globe and updated daily. The data from this source was visualized on an interactive map with various filters for users to see where earthquakes were happening, how strong they were, and how close in proximity to other earthquakes they were. This project took about two months to complete, and our team utilized various tools including Node.js, Visual Studio, Github, and Heroku to make this project possible.
This program was written for CS 4920 - Intro to Applied Cryptography in my final semester at UCCS. The Python program implements the Data Encryption Standard (DES) using text files as input and output for generating the encoded ciphertext from the provided key and plaintext. The program allows for any number of rounds of DES, though the standard 16 rounds were used for the purposes of this project. A simple example of the program generating ciphertext can be seen below, and the full source code can be viewed in PDF form by clicking the 'Source Code' button. There is a second file of the program simply containing a three-dimensional array for the standard substitution boxes of DES not included in the main program as to not take up space.
The programs shown below are a pair of programs for a simple file transfer system utilizing FTP. This system was written for CS 4220 - Computer Networks using template client-side and server-side code in C. The objective of the project was to learn and implement sockets into the templates as well as how to complete a handshake connection between a client and a server to transfer files. The system was tested on UCCS Linux servers available to students where one program was placed on one virtual system (acting as a client) and the other on another virtual system (acting as a server). The program can successfully transfer files both directions.
In the course CS 3020 - Advanced Object Technology using C#/.NET, projects were focused around video game design. In these projects, I made recreations of popular board games Battleship and Minesweeper in a terminal interface and program interface respectively. I also created a graphical turn-based role-playing game (RPG) for the final project. The primary tools utilized for these projects were Visual Studio, C# and .NET, and Windows Forms. These programs demonstrate programming topics including object-oriented design, classes and inheritance, polymorphism, and more. Program code is available upon request.
This program was written in Python for a course in computer architecture. The program was part of a larger project centered around assembly programming in the language Y86, a teaching variant of Intel's X86 architecture. A fellow student and I wrote a simple program in Y86 that involved large amounts of loops for matrix operations, and this program was used to analyze the performance of the Y86 program. The performance was measured as the number of cycles used for the entire Y86 program to run. We then made improvements to our Y86 program to increase efficiency and re-ran the performance analysis with new data about the improved program to again see overall cycle counts for larger and larger values. The final data was plotted on a three-dimensional graph to compare performance of the old program versus our improved version.
These programs were written for CS 2300 - Computational Linear Algebra and cover various concepts including matrix arithmetic and operations, image vectoring, 3-D subspace calculations and more. Click the 'more details' button below to view full source code PDF files of each program and learn more.
Want to See More?
More examples of my work in programming, cryptography, game development and more are available. If you are curious about any other projects I have worked on not listed here, please reach out to me. This portfolio is ever-expanding and may not contain all of my works. Contact info can be found on the 'About Me' page and I would be happy to discuss and elaborate on any project listed here as well as any others not currently shown.