Teaching and research go hand in hand, and I have actively sought opportunities to teach during my academic career. At the CCICADA Center teaching is one of my priorities and I am in the middle of teaching my third semester of Rutger's introductory course on the internet and the information environment (ITI 111). This class introduces a wide range of CS topics, including networking, programming, graph theory, and machine learning. As a graduate student, I taught BYU’s discrete structures class (CS 236). I also substituted frequently in CS 455, BYU’s computer graphics course for seniors, and CS 659, BYU’s graduate level natural phenomena course.

One of my favorite teaching methods is doing in-class labs with my students. I write my own html/javascript webpages that students can use to explore new topics together with me in real-time. Feel free to explore the examples below.

Programming Introduction

Ranking Activity

Encryption Introduction

I can teach courses in any introductory CS topic and advanced courses in:

  • Physical security
  • Crowd simulation
  • Simulation
  • Natural phenomenon
  • Artificial intelligence
  • Real-time graphics
  • Photorealistic rendering
  • Game development
  • Computer animation
  • Machine learning
  • Computer vision