Fall 2012


CS101 Introduction to Programming (Undergraduate course)

The objective of CS101 is to teach programming skills and computational thinking. The first is important because programming is needed in all areas of science and engineering, although very different programming languages are used. The second is perhaps even more important, as it influences how you go about solving a problem. 50 years ago, the solution to a problem in mathematics or engineering was often a formula. Today, it is usually an algorithm.

Course Homepage

Spring 2012


CS492/MAE491 Introduction to Haptics (Undergraduate course)

The word ‘haptic’ refers to ‘the sense of touch’. Field of 'Haptics' include 3 parts: (1) Human Haptics deals with human perception related to touch sense, (2) Machine Haptics studies the mechanical aspects of the haptic devices, and (3) Computer Haptics deals with computation of touch sensation by allowing a user to intuitively interact with the virtual world as if the virtual world is tangible. This course covers the fundamentals in all three areas which are tightly coupled together.

Course Homepage (Moodle) 


CS580 Computer Graphics (Graduate course)

This course provides a fundamental understanding of essential concepts of 3D interactive computer graphics. Focusing on 'real-time rendering' techniques, we will learn the graphics rendering pipeline, transformation, shading, lighting, image-based rendering, and acceleration and optimization algorithms. Other topics include non-photorealistic rendering, some modeling issues of geometric data representation, and collision detection. Students are expected to complete various programming assignments with OpenGL and a technical paper presentation in class.

Course Homepage (Moodle)