My teaching philosophy for engineering and computer science reflects the way people often learn complex skills like spoken or written language: by observing, imitating, practicing, experimenting, and ultimately creating.  Technical ideas and skills are best understood when students can see concepts demonstrated, try them hands-on, and safely make mistakes along the way. I believe strongly in creating an environment where experimentation is encouraged and failure is both safe and constructive. This progression from observation, to imitation, to experimentation and creation also helps students distinguish between what are foundational principles versus merely common conventions and fosters a deeper understanding.

In the classroom, I begin by grounding new topics in first principles and historical context. Understanding where conventions originate allows students to see modern practices more clearly and promotes healthy questioning. After this foundation, I try to introduce clear examples that illustrate core ideas. Students are then given exercises that allow them to practice new skills while also leaving room for individual creativity. Collaboration and the use of appropriate tools, including AI, are welcomed as long as they support learning rather than replace it. To ensure that students are engaging with the material and not relying too heavily on external resources, I use regular quizzes that focus on conceptual understanding rather than memorization.

Projects (and lab work) play an essential role in my teaching. Once students have developed sufficient foundational knowledge, they are often eager to “build something” with their skills. Projects give them a structured opportunity to synthesize knowledge and experience the satisfaction of applying what they have learned. “I hear and I forget. I see and I remember. I do and I understand.” (Confucius) is a good distillation of this idea. Projects frequently include small group elements, allowing students with varying levels of expertise to learn from one another while practicing teamwork. Exams then serve as a culminating assessment, asking students to integrate knowledge, methods and experience into coherent solutions.

My approach emphasizes experiences (good and bad) and transparently acknowledges (and values) both success and failure. I try to model intellectual curiosity, resilience, humility and confidence. Students should feel free to take risks and explore ideas without fear of failure or embarrassment. A core goal of my teaching is to help students retain enthusiasm even when they encounter setbacks. This mindset reaches beyond engineering.

Ultimately, I hope students leave my classes with a sense of joy and personal pride in what they have achieved. When a student exceeds their own expectations and gains confidence in their ability to solve problems and overcome challenges, both teacher and student have succeeded. My aim is to help students discover engineering not only as a noun, but as a verb.

Currently teaching / previously taught:

EE 380 - Microprocessor Design
EE 204 - Intro to digital systems
EE 210 – Programming Lab (Marshall University)
MFG 130 – Industrial Electrical Principles
MFG 280 – Intro to Programmable Logic Controllers
MFG 281 – Advanced Programmable Logic Controllers