Baking contest management system
COP 4521 — Secure, Parallel and Distributed Applications, fall 2025
A Flask web app with session-based login, Fernet encryption for sensitive user data, and role-based access control across three permission levels. Protected routes enforce what each level can see, over a SQLite backend with client-side validation.
Python, Flask, SQLite, JavaScript, encryption
Euclidean GCD in x86-64 assembly
COP 4020 — Programming Languages, fall 2025
A command-line program implementing the Euclidean algorithm in NASM assembly, handling argument parsing, integer I/O, and register management by hand across several linked modules.
x86-64 assembly, NASM
Flex lexer for a toy language
COP 4020 — Programming Languages, fall 2025
A lexical analyzer that scans a custom language into a labeled token stream, recognizing keywords, punctuation, and identifiers and reporting the line each one came from. The first stage of a compiler pipeline.
Flex, C
Random order generator, C++ against Racket
COP 4020 — Programming Languages, fall 2025
The same generator written twice, once imperatively and once functionally, to put the two paradigms side by side. It combines actors, actions, and items into random orders until a sentinel value ends the loop.
C++, Racket
Recursive descent parser with parse tree output
COP 4020 — Programming Languages, fall 2025
Extended a recursive descent parser in C for a toy calculator language, adding goto and location statements, and emitting Graphviz digraph code so the parse trees can actually be looked at.
C, Flex, Graphviz
Pollard's rho factorization in four languages
COP 4020 — Programming Languages, fall 2025
Knuth's Algorithm B for Pollard's rho prime factorization, written in C with GMP, Gauche Scheme, Go, and OCaml with Zarith — comparing imperative, functional, and concurrent approaches to one number theory problem.
C, Scheme, Go, OCaml
Palindrome and pattern finder
COP 4020 — Programming Languages, fall 2025
A Bash script using extended regular expressions with back-references to pull 5, 6, and 7-letter palindromes out of a dictionary word list, along with words containing repeated doubled letters.
Bash, regex
Parallel prisoner's dilemma simulation
COP 4521 — Secure, Parallel and Distributed Applications, fall 2025
Parallelized a grid-based prisoner's dilemma using Python multiprocessing with domain decomposition and double-buffering, distributing row chunks across workers with shared memory and barriers. Roughly 10x faster than the sequential version at 16 processes.
Python, multiprocessing
Responsive web design certification
freeCodeCamp, 2025
Five projects covering HTML and CSS fundamentals through modern layout, built around responsive design and accessibility practice.
- Survey form — accessible, validated form design
- Tribute page — semantic structure and typography
- Technical documentation page — multi-section responsive layout
- Product landing page — Flexbox layout with navigation and media
- Personal portfolio page — CSS Grid and breakpoints
HTML, CSS, Flexbox, CSS Grid
Nothing in that category yet.