🎓 Teaching
Selected courses I’ve taught at the University of North Carolina at Greensboro (UNCG).
CSC 362 — System Programming
In-person SP24 • FA24 • SP25 UNCG • 2024System-level programming with an emphasis on building efficient, secure, and robust applications. Students gain hands-on experience with C, processes, memory, threads, IPC, synchronization, networking basics, and virtualization—tying concepts to practical debugging and performance analysis.
Topics covered
- Terminal workflow, Git, build systems
- C fundamentals, pointers, dynamic memory
- Processes, address spaces, scheduling, memory management
- IPC (pipes, sockets), threads & synchronization, deadlock avoidance
- Security themes, network fundamentals, virtualization concepts
CSC 330 — Advanced Data Structures
In-person Spring 2024 UNCG • 2024Deep dive into data structures and algorithmic analysis to develop strong problem-solving instincts. Students design, implement, and benchmark structures across varied workloads and constraints.
Topics covered
- Arrays (static/dynamic), linked lists, stacks/queues
- Hash tables, trees (BST/AVL), heaps & priority queues
- Graphs (traversals, shortest paths), disjoint sets
- Sorting families, amortized analysis, complexity trade-offs
CSC 250 — Foundations of Computer Science I
In-person Fall 2023 UNCG • 2023Core CS ideas and mathematical maturity for downstream courses. From algorithms and complexity to automata and compilers, students build a rigorous mental model for computing.
Topics covered
- Functions, recursion, algorithmic paradigms
- Complexity notions & counting (combinatorics)
- Data structures overview & invariants
- Compiler basics, formal languages & automata
- Security perspectives woven into problem-solving
CSC 105 — Data, Computing, and Quantitative Reasoning
In-person Fall 2023 UNCG • 2023Python-first introduction to data analysis with an emphasis on clear thinking and reproducibility. We practice loading, transforming, visualizing, and communicating insights from real-world datasets.
Topics covered
- Python for data: Pandas, NumPy, tidy workflows
- Visualization: Matplotlib, Seaborn, storytelling with data
- Exploratory analysis, cleaning, and basic statistics
- Reasoning with uncertainty & quantitative communication
