Skip to content

Latest commit

 

History

116 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

CS Foundations

Multi-language computer science coursework portfolio — Python, C++, ARM assembly, MATLAB, data structures and algorithms.

What it is

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

Status

⚪ Reference — foundations work, not under active development.

Python (projects/Python/)

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.py

Requires Python 3.8+. No third-party packages — only standard library (math, tkinter).

C++ (projects/C++/)

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.cpp has an active main().

Run:

g++ -std=c++17 -o stepik1 projects/C++/Stepik1.cpp
echo "3 7" | ./stepik1     # supply two integers on stdin

DSA (projects/DSA/)

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        && ./treenode

Sample 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

ARM64 Assembly (projects/ARM/)

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 string

Sample 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

MATLAB (projects/MATLAB/)

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.

Tech

Python · C++ · ARM Assembly · MATLAB

About

Multi-language CS coursework portfolio — Python, C++, ARM assembly, MATLAB, data structures

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages