Teaching Statement

My teaching philosophy centers on the belief that students learn most effectively when they experience clarity, structure, relevance, and personalized support. As an instructor and researcher in software engineering education, I design learning environments that help students build conceptual understanding, practice professional skills, and gain confidence as emerging software engineers.

Teaching Approach: Clear Foundations and Applied Learning

I emphasize strong conceptual foundations before introducing tools. In introductory programming courses I scaffold learning through concrete examples, guided practice, and formative assessments that help students identify misconceptions early. I pair this with project-based learning that connects fundamental computing principles to authentic software engineering tasks. Across the courses I have taught (including assembly language, object-oriented programming, management information systems, and applied mathematics) I use structured progression, frequent feedback, and active learning to keep students engaged and supported.

Inclusive Pedagogy and Evidence-Based Practice

My instructional approach is shaped by research on adaptive supplementary materials and adaptive learning platforms. I treat diversity in preparation and learning preferences as an opportunity to build more inclusive learning environments. I use low-stakes assessments, data-informed feedback, and multiple representations of key concepts to reach students with varied learning profiles. I adjust instruction based on class performance patterns, student feedback, and systematic analysis of learning artifacts.

Teaching in the Generative AI Era

Students should develop both technical mastery and responsible judgment when using generative AI tools. I integrate AI-literate practices that demonstrate when and how AI can support debugging, design, and testing, while reinforcing individual problem-solving skills to avoid overreliance. I teach students to evaluate AI-generated code for correctness, bias, and security risks, and to apply ethical reasoning in development workflows.

Courses Prepared to Teach

Prepared to teach a range of courses from introductory to advanced, including:

  • Introductory programming and computer science fundamentals
  • Data structures and algorithms (introductory-level)
  • Core software engineering courses: requirements engineering, software architecture and design, software testing and verification, software project planning and management
  • Web programming and modern programming languages
  • Specialized or forward-looking offerings such as software security in the AI era and software supply chain and defensive coding

Commitment to Mentorship and Student Success

I prioritize mentoring students to develop technical competence, professional identity, and long-term academic confidence. I have supervised undergraduate and graduate projects and supported capstone teams focused on real-world software engineering challenges. I aim to foster opportunities for student research, industry collaboration, and experiential learning.

Conclusion

I am committed to creating rigorous, inclusive, and forward-looking learning experiences in computing education. By combining evidence-based teaching practices, adaptive supplementary resources, and careful integration of AI-literate skills, I prepare students to succeed as thoughtful and capable software engineers.