Teaching Statement

My mother is a retired middle school teacher, and growing up, I have witnessed the significant impacts of an educator on students’ futures. I have observed and listened to the experiences of my mother’s former students and how her teaching methods shaped their cognitive and problem-solving skills. This deeply inspired me to pursue a career in academia, where I can teach, mentor, and equip students with the essential skills they need for their professional lives. I have had the opportunity to serve as an instructor on record and a lab instructor as a graduate teaching assistant for eight-plus years at the University of Oklahoma. This experience has reinforced my understanding of teaching methods and challenged me to continuously refine my approach toward designing and delivering instruction, ensuring that students develop critical thinking and problem-solving skills. As an instructor for a programming course, I was awarded twice with the Provost’s Certificate of Distinction in Teaching for outstanding teaching performance by graduate students who teach at the University of Oklahoma. I am highly encouraged to use my experience and research to improve the learning experience for students in the computer science program.

Teaching Philosophy

My teaching philosophy centers on fostering an inclusive learning environment where students feel valued and are encouraged to learn from their peers’ experiences and approaches to learning. When students learn new and complex concepts, collaborative learning supports the development of knowledge and necessary skills among students. I believe in three core principles: active learning, real-world applications, and inclusivity. This approach is crucial, especially in computer science, as students could benefit from more programming examples and meaningful discussions with peers and feel motivated to program when they can connect the teaching material to real-world situations or their future aspirations.

While teaching an intro to programming class, I observed that students enjoyed and loved one project more than any other assignment, where they were free to create an image of their interest through a program written in Java. Students enjoyed learning through this project, which gave them creative freedom. Having meaningful and relatable assignments based on real-world examples throughout the course gives students food for thought. It provides a baseline for interesting projects to build upon using their interests and aspirations.

While teaching, I aim to create a safe space where students don’t hesitate to discuss or share problems or concerns with me when learning new and complex concepts. Establishing a transparent and professional relationship with students fosters a healthy learning environment and helps them feel appreciated. I believe students should not be discouraged by lower grades just because they missed an assignment or two because of some unforeseen event. My instruction focuses on learning to manage time effectively but being flexible in unexpected situations. Under the guidance of my Ph.D. advisor, I have implemented a system where students can submit requests for delay or excusing assignments in the classes, allowing students to focus on learning the concepts and be given a chance to improve in the class. I want to create a learning environment focused on prioritizing students’ mental and physical health and reducing stress with some needed flexibility in the course structure.

To ensure students understand the concepts being discussed, I use a classroom response system like iClicker to ask questions regularly during the class lecture. Regular feedback from students through small questions provides me with many opportunities to initiate meaningful discussions with students and review the topic again if needed. This activity also provides students with regular feedback, allowing them to address any misconceptions and ask questions.

While teaching programming classes, I observed that novice programmers may have misconceptions about new and complex programming concepts. My approach to this problem is to create an active learning environment that encourages students to view a single problem from multiple perspectives, exploring various approaches to writing a solution and engaging in meaningful discussions with their peers. As part of my Ph.D. dissertation, I have implemented an in-class activity in an introductory programming class that focuses on developing essential skills, such as code review and debugging, through an active learning environment. As per the preliminary results, students prefer in-class activities over traditional lectures. By implementing these activities in class, I could incorporate more working examples in the instruction, providing more practice to the students who are new to the programming concepts. The questions in these activities are designed from previous semester midterm exam questions. This would provide students with sample questions about the type of programming questions they can expect on the exam. The code review exercise has received positive feedback from the students and provided a resource for them to address any misconceptions about programming concepts and learn to review code to understand its logical function.

Teaching Experience

I have been an instructor and teaching assistant for multiple undergraduate and graduate-level CS courses for almost 8 years. I have taught a programming class designed for programmers with experience in programming languages who are new to Java for 9 semesters. I have designed and managed this class to cover essential programming topics using Java and focus on this programming language’s syntax and important concepts. During my teaching experience, I have observed that students with programming experience are more engaged and motivated with a hands-on approach. My instruction is based on many examples and regular class quizzes to help students understand the programming concepts. Using a hands-on approach has worked well in teaching such students who have good programming experience, as reflected in my student evaluations. I have used online tools, such as CodeLab and CodingBat, to introduce alternative learning modes and practice more examples.

I have instructed another class, Introduction to Programming, for students with little programming experience for 6 semesters. This class consists of students from different academic domains, such as communications, Math, Meteorology, and others, along with CS major or minor students. All the students in this class are novice programmers and new to complex programming concepts. Teaching this diverse class has presented many challenges to keep students engaged in the classroom because they all have a wide variety of interests. Implementing an active learning in-class activity has provided me with a solution to utilize other students’ experiences to improve the learning experience for all. I have utilized projects based on real-world examples that could give students different perspectives. I understand that the courses must be updated every year to incorporate the advances in teaching tools available. I have included some assignments in the course that encourage students to use AI tools or ask them to review existing code and fix it. Similar to teaching in other classes, I have used online books for reading assignments and software to support alternative learning methods, such as CodeLab for more practice on concepts and CodingBat for complex programming concepts. I have found that students get additional practice on programming concepts if they complete a reading assignment before the topic is covered in class. They ask questions from their reading and have encouraging discussions during the class.

With my experience in teaching large and small classes and my passion for computer science education, I am confident that I can teach a class of any size with a diverse group of students of CS minor or major and from different academic domains, including students from different STEM fields. I aim to continue working on my research to enhance the students’ learning experience in the CS program and evaluate teaching methodologies in light of advancements in AI-based applications. As a faculty member, I plan to introduce a workshop series (inspired by my previous work in the CS graduate student association) for students from diverse academic backgrounds to learn tools for writing code and introduce the use of packages for machine learning applications and data analysis.