Make thinking visible
Students explain assumptions, intermediate decisions, errors, and trade-offs—not just final outputs.
My teaching connects conceptual understanding with implementation, debugging, explanation, and reflection—so students learn how systems work, not only how to produce an answer.
Request teaching portfolio
Collaborative learning and research exchangeStudents explain assumptions, intermediate decisions, errors, and trade-offs—not just final outputs.
Exercises progress from guided examples to independent design, with rapid feedback and opportunities to revise.
AI tools can support learning when students audit, test, and improve generated work rather than outsourcing judgment.
Clear structure, multiple representations, and transparent criteria help students with varied backgrounds engage fully.
Teaching and instructional support across programming, databases, software design, and engineering practice.
Problem decomposition, programming fundamentals, and applied computational thinking.
Relational modeling, SQL, normalization, transactions, and database design. Lead TA experience.
Object-oriented design, modularity, implementation, and software-development practice.
Requirements, architecture, team workflows, and iterative system design.
Students may use AI, but must identify errors, test assumptions, and explain each correction.
A small requirement is changed during assessment; students adapt the solution and justify the impact.
Students evaluate multiple designs using explicit criteria rather than presenting a single opaque answer.
Short reflections connect debugging traces, test results, and design decisions to the final submission.