CS-PROJECTS / README.md
README.md
Raw

CS_PROJECTS

All provided code should work as intended. Please reach out if you encounter any bugs. I conduct routine maintenance to enhance and/or cleanup code which may introduce new bugs.

Fuzzylloyd - A paralleled implementation of Lloyd's algorithm for k-means clustering in C. In summary, I randomly generate n points using a teacher provided Oracle function and distribute said points evenly amongst k ranks. One rank randomly generates an initial set of cluster centroids which are then iteratively altered to reflect the true centroid values of each cluster. For further documentation, please refer to the provided pdf found within the fuzzylloyd directory. To run the provided code, compile the main, oracle, and fuzzykmeans C files into an executable using an Open MPI compatible compiler (mpicc) and look within main.c to view the required arguments.

GIS File System - A file system which indexes GIS records using an array list and hash table for in-memory data storage. Allows for query by name and state abbreviation or featureID. Also has the ability to calculate and report orthodromic distances between two distinct locations. Notably, my hash table implementation maintains a linked list at each index to deal with collisions as multiple unique locations may share a given name and state abbreviation. See provided pdf found within the c08_gis_system directory for further documentation. Details on how to compile, run, and test the code are provided within said document.

Assembler - A C-based assembler with support for MIPS32 assembly instructions. Said assembler takes in a file of MIPS32 instructions and translates those instructions to machine readable code in text format. See MIPSAssembler_1000.pdf within the c02_assembler directory for a list of supported instructions in addition to details on how to compile, run, and test the provided code. To aid in the latter, I have provided a script that will automatically run all tests and open a results log file within VSCode (change 'code grading.txt' to open said file in whatever text editor you prefer if VSCode is not suitable).

Coordinate Parser - A file parser which reads in coordinate pairs and uses a taxicab metric function to calculate the distance between both points. For instructions on how to run and test the provided code, please refer to the ParsingCoordinates.pdf found within the c02_parsing_coor directory.

Job Control Shell - A Unix-like simple job control shell in C. See README and project specification within job_cotrol directory for more information. (A large part of the development took place in cush.c)

Web Scraper - A web scraper that takes advantage of the Beautifulsoup library to collect 1000 movie/show reviews from the IMDB website. The dataset created from this scraping effort was later used to determine whether or not the length and sentiment of a review had any correlation with the movie/show's rating on IMDB.