Machine Learning Fundamentals
Diagram illustrating knowledge-based agent architecture with knowledge base, reasoning, and action components

Foundations of AI: Knowledge-Based Agents and Logic

Explore the building blocks of classic AI reasoning, from knowledge bases and logic to how systems draw new conclusions from existing knowledge.

Scientific Computing
Cartesian Genetic Programming graph showing input nodes, function nodes, and output nodes with active and inactive connections

Cartesian Genetic Programming in Julia

A sophomore year exploration of evolutionary algorithms applied to Atari games, implementing NEAT-inspired speciation mechanisms for Cartesian Genetic Programming to protect topological innovation while introducing custom crossover operators (subgraph, aligned-node) for evolving neural network policies.

Scientific Computing
Radix-2 DIT butterfly diagram showing the fundamental FFT operation with twiddle factor multiplication

FFTW Compiler in Haskell

A sophomore year deep dive into functional metaprogramming, replicating FFTW’s genfft metaprogram logic in Haskell to generate straight-line optimized C kernels for FFTs, using symbolic DAG representation and algebraic simplification to understand how abstract algebra translates into efficient machine code.

Scientific Computing
Flowchart diagram showing the recursive backtracking algorithm for constraint satisfaction in schedule generation

Term Schedule Optimizer

A freshman-year automation tool solving the university scheduling constraint satisfaction problem through web scraping Drexel’s Term Master Schedule and implementing recursive backtracking algorithm to generate every valid schedule permutation satisfying user-defined hard and soft constraints, used throughout undergrad 2016-2020.