Teaching

Courses & Program Leadership

Systems-first CS education with applied ML, graphics, and immersive development — plus student research mentoring.

Positions

Selected teaching and leadership roles.

Cedarville University 2019–present

Professor of Computer Science; Program Head for Computer Science / Cyber Operations. Program and curriculum development in Video Game Engineering and Data Science / AI.

  • C++ Programming • Object-Oriented Design (C++) • Computer Graphics • Computer Networking
  • Deep Learning • Agents using Reinforcement Learning • VR App Development
Eastern Kentucky University 2007–2019

Professor of Computer Science; curriculum and program initiatives in interactive multimedia and game development. Supervised multi-instructor, high-enrollment courses and supported student-focused conference and institute activities.

  • Game Design • Game Engine Design • Graphics Programming • Computer Vision
  • 3D Modeling/Simulation • 3D Animation • 3D Printing • Multimedia Systems
Mentoring & applied research ongoing

Student project and capstone mentoring in SDA, ML, and immersive systems. See Research for current topic areas.

Courses

Systems & Software
C++ Programming
Modern C++ fundamentals through performance-aware programming exercises and small systems-style projects.
Tech: C++17/20 • STL • CMake • Git • unit testing
Object-Oriented Design (C++)
Design for maintainability: abstraction, interfaces, SOLID principles, and pattern-driven architecture using C++.
Tech: C++ • design patterns • code review • static analysis
Computer Networking
Internet protocols from the ground up: sockets, routing concepts, congestion/throughput tradeoffs, and practical troubleshooting.
Tech: TCP/UDP sockets • Wireshark • Linux tooling
ML & Data
Deep Learning
From linear models to modern neural networks: optimization, CNNs, regularization, and disciplined evaluation.
Tech: Python • PyTorch • Jupyter • experiment tracking
Agents using Reinforcement Learning
Train agents in simulated environments; compare value-based and policy-gradient approaches; emphasize reproducibility.
Tech: PyTorch • Gymnasium-style environments • logging/plots
Data Science / Applied AI (projects)
End-to-end data work: dataset curation, baselines, error analysis, and communicating results to non-specialists.
Tech: Python • NumPy/Pandas • scikit-learn • visualization
Graphics & Simulation
Computer Graphics
The rendering pipeline in depth: transforms, lighting/shading, texturing, and basic GPU programming concepts.
Tech: OpenGL • GLSL • linear algebra • debugging tools
Graphics Programming
Real-time rendering techniques and performance constraints; building small engines/renderers and profiling them.
Tech: C++ • OpenGL/GLSL • asset pipelines • profiling
Modeling / Simulation Workflows
Scenario-driven simulations with an emphasis on data generation, validation, and analysis loops.
Tech: Python • scripting • reproducible pipelines
Immersive Development
VR App Development
Interaction design for XR: locomotion, input, performance budgets, and building deployable VR experiences.
Tech: Unity/Unreal • OpenXR • C#/C++ • performance tuning
Video Game Engineering
Engineering practices for games: game loop architecture, components/systems, tooling, and testing in production-style projects.
Tech: engine architecture • version control • CI habits
Spatial Audio & Virtual Environments
Audio as a first-class interaction channel: spatialization concepts and integrating sound design into immersive scenes.
Tech: spatial audio tooling • middleware concepts