Teaching Philosophy

My teaching philosophy focuses on creating an immersive learning environment that helps students increase their understanding and retention of content while developing the critical thinking abilities necessary to thrive in an evolving technological landscape. Specifically, I use the following techniques in the design and execution of my courses.

  • Create an engaging classroom environment that encourages participation through structured questions, demos, and varied teaching tools that make complex concepts accessible.
  • Integrate lectures with meaningful, real-world examples by showing how theoretical knowledge applies to technologies they use on a daily basis.
  • Use active learning methods such as think-pair-share and flipped classrooms to enhance collaborative discussion and knowledge retention.
  • Provide platforms for self-learning outside the classroom through forums and collaborative tools that encourage independent exploration and creative problem-solving.
  • Embrace diversity and inclusion by ensuring accessible materials, accommodating diverse learning needs, and creating a classroom culture where every student feels valued.
  • Maintain a friendly and approachable attitude, welcoming feedback from students and using it to continuously refine my approach to leading the classroom.

Teaching in the AI Era: With the advent of generative AI, I emphasize that these tools can make mistakes in very subtle ways, making it even more important for students to be smarter than the technology they use. My goal as an educator is to prepare individuals who are skilled problem solvers, can think systematically, and possess strong critical thinking abilities. I believe these three competencies will be essential for success moving forward, enabling students to leverage AI as a tool while identifying its limitations.

With computer science being a rapidly evolving field, I recognize that effective teaching requires openness to new methods. I stay current on research in Computer Science education and continuously incorporate relevant innovations into the courses I teach.



Current Teaching

14-513 - Introduction to Computer Systems
- Fall 2025


Past Teaching

Washington and Lee University
CSCI 397 - Special Topics: Power, Politics and the Internet: The Technology Behind Online Censorship
- Spring 2025
CSCI 323 - Computer and Network Security
- Fall 2021, Fall 2024
CSCI 321 - Computer Networks
- Winter 2021
CSCI 317 - Database Systems
- Fall 2022
CSCI 297 - Special Topics: Systems Programming
- Fall 2023
CSCI 210 - Computer Hardware Organization
- Winter 2021, Winter 2022, Winter 2023
CSCI 112 - Data Structures (L)
- Fall 2020, Winter 2022, Fall 2023
CSCI 111 - Introduction to Programming (L)
- Fall 2021, Winter 2023, Fall 2024
CSCI 101 - A Survey of Computer Science (L)
- Fall 2022
* (L) denotes a lab-based course
Virginia Tech
CS-4604 - Introduction to Database Management Systems
- Spring 24, Spring 25
CS-4254 - Computer Network Architecture and Programming
- Fall 24
CS-3704 - Intermediate Software Design and Engineering
- Spring 25
CS-3304 - Comparative Languages
- Summer 23, Summer 24, Summer 25
University of Illinois at Chicago
CS 211 - Programming Practicum
- Summer 2019