Programming Fundamentals for Engineers
Programming fundamentals, problem decomposition, and applied computational thinking.
TEACHING
My teaching connects conceptual understanding with implementation, debugging, explanation, and reflection so students learn how systems work, not only how to produce an answer.
TEACHING PHILOSOPHY
I structure learning around clear problems, progressive practice, feedback, and explanation. Students should be able to justify assumptions, test intermediate decisions, diagnose errors, and compare alternatives.
AI tools can support learning when students are required to audit, test, and improve generated work rather than outsource judgment. Clear criteria and multiple representations also help students with varied backgrounds engage with technical material.
TEACHING EXPERIENCE
Programming fundamentals, problem decomposition, 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.
MENTORING
I support students in experiment design, reproducible implementation, interpretation of results, academic writing, and communicating uncertainty.
Discuss student collaboration →