Teaching

Computer Science at Millsaps features small class sizes (all under twenty), rigorous academic standards, and highly-interactive in-class learning experiences. The following is a description of several of the courses I teach in my areas of specialization.

Computer Graphics

This course provides an introduction to the foundational topics of computer graphics with an emphasis on two- and three-dimensional graphics rendering pipelines. We will focus on the underlying mathematics and algorithms to gain a deeper understanding of concepts that can transfer to use of any of the many 3D libraries. For example, we'll do in-class exercises on both paper and pencil and the computer to learn how to do modeling and hierarchical transformations in both column- and row-vector convention. Near the end of the semester, we'll use SoftImage XSI 5 to model our own 3D objects, which will be loaded and rendered in the concluding program assignment. XSI is the package used to model the popular 3D action game Half-Life 2.

Artificial Intelligence

This course will focus on practical artificial intelligence techniques including autonomous agents, finite-state machines, state-space search, game trees, maze navigation, and optimization using techniques such as hill-climbing and genetic algorithms. These techniques have wide-ranging applications from automated braking systems, personal digital assistants, medical diagnosis, robotics, and video games. This course will feature video game applications due to their relative familiarity and opportunity for creative expression. Programming assignments will be implemented in C++. The course will begin with a review and introduction of C++ topics including input/output, classes, methods, parameters, pointers, stacks, lists, and templates.

Digital Media Programming

This new course was offered in Spring 2007 and combined hands-on learning of popular graphics software such as PhotoShop Elements with programming our implementations of the algorithms used to produce various image processing, digital special effects, and animation. For example, we will do our own digital image compositing using the "green screen" technique. We will use PhotoShop to create composite images as well as write our own Java programs to compute composited images. The course will also cover 2D animation.