Teaching Philosophy
I start from the view that learning in computing, data science, and information systems is not primarily the
accumulation of procedures. It is the development of disciplined ways of thinking: asking better questions,
tracing relationships among people, data, and systems, testing assumptions, and explaining choices. Technical
skills matter, but they matter most when students can use them to understand situations, evaluate trade-offs,
and act responsibly.
Information technology is socio-technical. A database, model, program, or platform is never only a technical
artifact; it is also a way of organizing work, shaping decisions, and distributing responsibility. For this
reason, technical education should attend to human, organizational, ethical, and managerial contexts. Students
need more than a correct answer; they need to understand why an approach is appropriate, what its limits are,
and how it might transfer to a new problem.
I also see learning as developmental. Students arrive with different levels of preparation, confidence, work
schedules, and professional goals. A learnable course gives them enough structure to know what matters, enough
context to see why it matters, and enough support to recover when they struggle. In that sense, inclusion is
not only a value I hold; it is a design responsibility in every course I teach.
Instructional Approach
My course design moves from foundations to applied integration to synthesis. Students first build core concepts
through focused examples and exercises. They then work with realistic datasets, systems, or scenarios that
connect concepts to professional practice. Finally, projects require design decisions, testing, documentation,
and reflection. This structure has guided my teaching in courses on information systems, database management,
business intelligence, Python for data science, and artificial intelligence.
I use worked examples, structured exercises, iterative feedback, and applied projects to make the reasoning
behind technical concepts visible. In technical courses, mistakes are not interruptions to learning; they are
part of learning. Clear expectations, transparent assignments, frequent low-stakes practice, and multiple
feedback channels help students move from demonstration to independent work without hiding the difficulty of
the material.
My teaching is also a form of curriculum development. At Missouri S&T, I have built and refined course
materials in programming, data science, analytics, and artificial intelligence. My open textbooks,
thinkpy.org and
thinkdsm.org, reflect this approach:
instructional resources should be public, executable, reusable, and continuously improved.
Teaching and research strengthen each other in my work. My research on information seeking, human-computer
interaction, decision-making, and learning systems gives me concrete examples for classroom discussion, while
teaching regularly surfaces new questions about how people learn technical material and make decisions with
information. I see teaching as part of the broader scholarly work of creating, organizing, disseminating, and
applying knowledge.