Teaching Philosophy
Students are interested in topics that are relatable to them. Moreover, they become invested about such a topic when they think about it from a critical perspective. My teaching philosophy is based on these two observations. By engaging with the students in open-ended discussions that encourage critical thinking, questioning assumptions and beliefs, and exploring different perspectives, they learn about the nuances involved in the real world. As a result, complementary to the rather black-and-white binary thinking of computer science, students learn to think about implicit, hidden factors within, which inspires them to think critically with curiosity, thus motivating learning.
To elaborate, when it comes to the undergraduate level courses, students become much more interested in the topic once they find it relatable. Therefore, I invest time in getting to know the students and then give them relatable real-life examples, interacting with them throughout the lecture. Students engage much more in the class when they experience relatable stories, examples, or narratives while learning about a particular topic. As a result, students could develop an intuitive understanding of functions in programming language, regardless of their non-CS background, and became much more engaged. Moreover, I encourage the students to ask me questions and take pauses now and then so that any student can ask about anything that may improve their understanding of the topic at hand. Sometimes, I ask “easy” questions in the class as examples so that students are not hesitant to ask questions, even if they consider it “easy”.
For upper-level courses, in addition to making the contents relatable, I also focus on critical thinking, asking them the ‘why’, ‘what’ and ‘how’ related questions, such as why are certain design choices are made in a system, what design choices are the possible alternatives, and how trade-offs in between the alternatives are determined. Furthermore, I provide them with relatable scenarios based on freshly learned concepts and ask them whether they would prefer a particular alternative design in that particular scenario over the existing designs, and if so - why. Such discussions lead to an increased, in-depth understanding of the topics being taught while nurturing and growing the student’s mindset about critical thinking. Understanding these concepts while considering nuances helps the students develop skills that help them with both research and beyond their graduate life.
Class(es) I am teaching Now
Past classes
- Secure Coding - Fall 2026 at the University of South Florida
- Programming for Data Science - Fall 2023 at the College of William & Mary