Multi-language computer science coursework portfolio — Python, C++, ARM assembly, MATLAB, data structures and algorithms.
Selected coursework and exercises from my CS degree at the University of Florida:
- Python (
projects/Python/) — CLI calculators, tkinter GUIs, and I/O exercises - C++ (
projects/C++/) — Stepik exercises covering pointers, templates, and OOP - Data structures & algorithms (
projects/DSA/) — sorting, searching, linked lists, trees, and BST validation (C++), plus self-authored review notes - ARM assembly (
projects/ARM/) — AArch64 programs: recursive Fibonacci and vowel counting - MATLAB (
projects/MATLAB/) — linear-algebra exercises: linear systems, matrix operations, Cramer's Rule, and rank-theorem verification
⚪ Reference — foundations work, not under active development.
| File | What it does |
|---|---|
Hello.py |
Prompts for name, age, and location; prints personalized responses |
calculator.py |
Single-run four-operation CLI calculator |
sci_calculator.py |
Looping OOP calculator: add, sub, mul, div, exponent, log, running average; type RESULT to chain calculations |
1stGUI.py |
tkinter window with a label, text input, and a 2×3 button grid |
2ndGUI.py |
OOP tkinter app with a menu bar, message box, Ctrl+Enter shortcut, and clear button |
Run:
python3 projects/Python/Hello.py
python3 projects/Python/calculator.py
python3 projects/Python/sci_calculator.py # enter 0 to quit
python3 projects/Python/1stGUI.py # opens a GUI window
python3 projects/Python/2ndGUI.pyRequires Python 3.8+. No third-party packages — only standard library (
math,tkinter).
| File | What it does |
|---|---|
Stepik1.cpp |
Pointers, overloaded TripleNum, template ProductOfThree, Cop3530 class, recursive palindrome check |
Stepik2.cpp |
Reference collection: Stack (linked list), circular queue, linked list find/add, list iterator, median via fast/slow pointers |
Stepik3.cpp |
Reference collection: N-ary level-order/preorder, BST traversals, flip, sum right leaves, BST insert, LCA |
Stepik4.cpp |
Reference collection: AVL validation, rotations (left/right/left-right), balanced BST reconstruction |
Stepik2–4 contain reference code in block comments. Only
Stepik1.cpphas an activemain().
Run:
g++ -std=c++17 -o stepik1 projects/C++/Stepik1.cpp
echo "3 7" | ./stepik1 # supply two integers on stdin| File | Algorithm / Structure |
|---|---|
binarySearch.cpp |
Iterative binary search — returns the index of a target in a sorted array |
bubbleSort.cpp |
Optimized bubble sort with early-exit flag |
linearSearch.cpp |
Linear search on a string array |
lasgestvalueSequentialSearch.cpp |
Find max value and its index by sequential scan |
validateBST.cpp |
Recursive BST validation using propagated min/max bounds |
linkedList.cpp |
Merge two sorted std::lists; STL forward_list, list, and vector iteration demos |
TreeNode.cpp |
BST insert, BFS-based sum of right leaves, recursive inorder traversal |
This folder also includes self-authored review notes (PDFs) on algorithm analysis, balanced trees, lists/stacks/queues, and trees.
Run (each file is self-contained):
g++ -std=c++17 -o bsearch projects/DSA/binarySearch.cpp && ./bsearch
g++ -std=c++17 -o bsort projects/DSA/bubbleSort.cpp && ./bsort
g++ -std=c++17 -o lsearch projects/DSA/linearSearch.cpp && ./lsearch
g++ -std=c++17 -o seqmax projects/DSA/lasgestvalueSequentialSearch.cpp && ./seqmax
g++ -std=c++17 -o treenode projects/DSA/TreeNode.cpp && ./treenodeSample output — binarySearch.cpp (search for 98 in {1,2,5,12,98,101,264,...}):
4
Sample output — bubbleSort.cpp (sorts {100,96,4,3,5,71,89,64,78,122,15,22}):
3
4
5
15
22
64
71
78
89
96
100
122
Sample output — TreeNode.cpp (tree: insert 4,2,3,5,6):
Sum of right leaves: 11
Inorder traversal: 2 3 4 5 6
Both programs target AArch64 Linux and link against libc (printf, scanf).
| File | What it does |
|---|---|
RecursiveFibonacciARM_noGlobalInput_S21.asm |
Prompts for n (1–10), recursively computes Fibonacci(n), prints result |
VowelCounterARM_StringAnalysis_S23.asm |
Reads a string, counts ASCII vowels (a/e/i/o/u, upper & lower), prints count |
Build and run (AArch64 Linux or QEMU):
gcc projects/ARM/RecursiveFibonacciARM_noGlobalInput_S21.asm -o fibonacci -no-pie
./fibonacci # enter a number 1–10
gcc projects/ARM/VowelCounterARM_StringAnalysis_S23.asm -o vowelcounter -no-pie
./vowelcounter # enter any stringSample output — Fibonacci (input = 8):
Please enter a number between 1 and 10
21
Sample output — Vowel Counter (input = "Hello World"):
Please enter a string:
The number of vowels is 3
Four problem sets covering key linear algebra topics. Each file exports a function that returns computed values.
| Folder | Key topics |
|---|---|
MATLAB_LinearAlgebra_Exercise1/ |
Matrix creation, row/column extraction, concatenation, randi, eye, zeros, ones, diag |
MATLAB_LinearAlgebra_Exercise2/ |
Matrix multiplication, inversion, elementary row operations, linear dependence/independence, transformation matrices |
MATLAB_LinearAlgebra_Exercise3/ |
Cramer's Rule, RREF, Rouché–Capelli theorem, rank theorem, M×N system classification |
MATLAB_LinearAlgebra_Exercise4/ |
Advanced linear system analysis |
Run: Open any .m file in MATLAB R2020a+ and call the exported function, or press Run.
Python · C++ · ARM Assembly · MATLAB