Teaching

Teaching Statements

Teaching Awards

Courses Taught

Courses ordered by most recently taught.

CS 3240: Software Engineering

Course Website: http://s25.cs3240.org - Taught: 2009-2010, 2018-2025

Analyzes modern software engineering practice for multi-person projects; methods for requirements specification, design, implementation, verification, and maintenance of large software systems; advanced software development techniques and large project management approaches; project planning, scheduling, resource management, accounting, configuration control, and documentation. (Former title: Advanced Software Development Techniques)

SLAV 2500: Bits & Bytes: Exploring Vampires in Video Games

Course Website: http://vampiregames.org - Taught: 2025

(Co-taught with Prof. Stanley Stepanic, Department of Slavic Languages and Literatures) This class will explore the origins of the vampire in the world of video games and how original folklore, over time, was altered. This will include an overview of the vampire’s movement into popular culture from old belief, how it first entered video games, and the most culturally significant games starting in the late 1970s and entering the modern era. Students will have the opportunity to explore both literature and video games to analyze how vampires and the lore surrounding them is represented and, through this, create a final portfolio that includes a literature and game review and a game they make themselves.

CS 4730: Computer Game Design

Course Website: http://f24.cs4730.org - Taught: 2013-2015, 2017, 2022-2024

This course will introduce students to the concepts and tools used in the development of modern 2-D and 3-D real-time interactive computer video games. Topics covered in this include graphics, parallel processing, human-computer interaction, networking, artificial intelligence, and software engineering.

CS 2501: Introduction to Game Programming and Design

Taught: 2015, 2024

This course is an introductory course in video game design and creation. We will focus on both the design and technical aspects of creating a game, from concept inception and prototyping through coding and playtesting. There will be a heavy focus on playing games and evaluating them. Students will also create games in the course using game building tools, such as GB Studio.

CS 4720: Mobile Application Development

Course Website: http://f22.cs4720.org - Taught: 2009-2018, 2022

Mobile computing devices have become ubiquitous in our communities. In this course, we focus on the creation of mobile solutions for various modern platforms, including major mobile operating systems. Topics include mobile device architecture, programming languages, software engineering, user interface design, and app distribution.

CS 1110: Introduction to Programming

Taught: 2010-2016

A first course in programming, software development, and computer science. Introduces computing fundamentals and an appreciation for computational thinking. No previous programming experience required.

CS 4750: Database Systems

Taught: 2007-2008, 2011-2013

Introduces the fundamental concepts for design and development of database systems. Emphasizes relational data model and conceptual schema design using ER model, practical issues in commercial database systems, database design using functional dependencies, and other data models. Develops a working relational database for a realistic application.

Other Teaching Experience

Teaching at NC State University (PhD Student)