COP 4521 · Secure, Parallel and Distributed Applications · Fall 2025
Baking Contest Management System
A full-stack Flask web app with session-based login, Fernet encryption for sensitive user data, and role-based access control across three security levels. Features client-side JS validation, a SQLite backend, and views for managing users, contest entries, and results.
PythonFlaskSQLiteJavaScriptEncryptionFull Stack
COP4020 · Programming Languages · Fall 2025
Euclidean GCD in x86-64 Assembly
Command-line program implementing the Euclidean GCD algorithm in x86-64 NASM assembly. Takes two integers as arguments and returns their greatest common divisor via repeated division — manually handling argument parsing, integer I/O, and register management.
x86-64 AssemblyNASMAlgorithmsSystems
COP4020 · Programming Languages · Fall 2025
Flex Lexer for a Toy Language
A lexical analyzer built with Flex that tokenizes a custom programming language — recognizing keywords, punctuation, and identifiers, and printing each token with its line number. Implements the first stage of a compiler pipeline.
FlexCCompilersSystems
COP4020 · Programming Languages · Fall 2025
Random Order Generator: C++ vs Racket
The same random order generator implemented in both C++ and Racket — comparing imperative and functional programming paradigms side by side. Randomly combines actors, actions, and items into orders until a sentinel value terminates the loop.
C++RacketFunctionalComparative
COP4020 · Programming Languages · Fall 2025
Recursive Descent Parser with Parse Tree Visualization
Extended a recursive descent parser in C for a toy calculator language — adding support for goto and location statements — and outputting Graphviz digraph code to render visual parse trees.
CFlexGraphvizCompilersParsing
COP4020 · Programming Languages · Fall 2025
Pollard's Rho Factorization: Four Languages
Knuth's Algorithm B for Pollard's Rho prime factorization implemented in C, Gauche Scheme, Go, and OCaml — comparing imperative, functional, and concurrent paradigms applied to the same number theory algorithm.
CSchemeGoOCamlNumber TheoryComparative
COP4020 · Programming Languages · Fall 2025
Palindrome & Pattern Finder with Regex
Bash script using extended regular expressions with back-references to find 5, 6, and 7-letter palindromes, words with repeated doubled letters, and words with 3+ doubled characters — all searched against a dictionary word list.
BashRegexPattern MatchingSystems
COP4521 · Secure, Parallel and Distributed Applications · Fall 2025
Parallel Prisoner's Dilemma Simulation
Parallelized a grid-based Prisoner's Dilemma simulation using Python multiprocessing with domain decomposition and double-buffering — achieving up to 10x speedup with 16 processes over the sequential baseline.
PythonMultiprocessingParallel ComputingGame Theory