Approach
I teach computer science by training how engineers think — through structured problem-solving, debugging intuition, and applied reasoning in real-world systems.
My instruction emphasizes:
- Breaking complex systems into clear reasoning steps
- Connecting theory to production engineering workflows
- Guiding students toward independent problem-solving over rote memorization
Students learn not only how to write code, but how to reason through ambiguity, communicate tradeoffs, and design systems that are reliable beyond the classroom.
Courses Taught
University of Delaware
Introduction to Computer Science II
(CISC 181)
(Problem decomposition, algorithm design, structured reasoning)
Computers, Ethics and Society
(CISC 355)
(System impact, ethical reasoning, responsible AI)
General Computer Science for Engineers
(CISC 106)
(Programming fundamentals, debugging strategies, applied problem-solving)
Data Structures
(CISC 220)
(Data modeling, algorithm efficiency, system design)
West Chester University
Advanced Topics in Security
(CSC 495 / CSC 583)
(Vulnerability analysis, threat modeling, adversarial thinking)
Responsibilities
Instructor
- Designed and delivered lectures, assignments, and course materials
- Led classroom instruction and course direction
- Developed original projects and evaluation frameworks
Teaching Assistant
- Led lab sessions and reinforced lecture material
- Mentored students in programming and data structures
- Provided detailed feedback through grading and office hours
Research Experience
Software Analysis and Compilation Lab (SAC)
Advisor: Lori Pollock
- Conducted research on conversational agents for supporting structured problem-solving in computer science education
- Investigated LLM-guided reasoning approaches (CoT, few-shot, RAG) for guiding user interaction and Socratic learning
- Published peer-reviewed work at ICSE and ITiCSE, demonstrating effectiveness in controlled educational settings and informing the design of structured AI systems