/COSC320

💻 Dr. Joseph Anderson | Grade: A (Algorithms) 💻

Primary LanguageC++

COSC320 with Dr. Joe T. Anderson

Justin Ventura's Advanced Data Structures and Algorithm Analysis Repository.

Repository Note for those interested in hiring/recruiting:

One of the many things I do enjoy about Dr. Anderson's labs & projects is that they are very open ended in the sense that there are many features/analysis' in which we are not required to do, (some of them do give bonus points but not all) however they are a good enrichment for us as students in computer science. Many consider school-related projects to be of little worth, but I beg to differ. A lot of my work in this repository is unique not only from other students, but while not perfect, they are good examples of my abilities to solve problems, then summarize & analyze the solution and abstractions required. I only say this because I feel that as a young and new programmer, I may have skills in which are not shown anywhere else due to my lack of work-experience as an underclassman :)

Projects

Wassily Leontief's Input-Output Model (Applied Linear Algebra)

Notable Features & Algorithms:

  • Matrix Data Structure & Formatting.
  • General Matrix Operations: add/subtract, matrix multiplication, scalar multiplication.
  • Strassen's Algorithm for matrix multiplication.
  • Matrix Inversion (Co-Factor & Determinant calculations for determining singularity).
  • See the README for more information.

Spell Checker based on a Hashed Dictionary (Hash Table & SpellCheck)

Notable Features & Algorithms:

  • Hash Table with Chaining (doubly list).
  • A self-made Hashing function.
  • Python Script made to find prime numbers for my hash.
  • Spell Checking (parsed string) within 1 & 2 edit distances.
  • Highlights incorrect words then displays suggestions.

Knight Random Walk (Random Walk on 2D Graphs)

The Problem: given an 8x8 chess board, and a knight in any corner of the board, if the knight randomly walks through the board, what is the average number of moves expected until the knight returns to its starting position? This problem sounds like a useless one, but I would say it is actually a great introduction to 2-Dimensional Graph Random Walks. You don't even have to be good at chess to understand this. In this project, with simulations and mathematical analysis, we come to an average of 168 moves before the knight returns to its origin.

Notable Features & Algorithms:

  • Templated Graph Class.
  • An algorithm to create a chess board graph. (edges are only knight moves)
  • An algorithm to run, simulate, collect data on a random walk.
  • An indepth analysis on the problem and its solution.
  • Please move to the directory for more information,