Theory, design, programming, and evaluation of interactive application interfaces. Human capabilities and limitations, interface design and engineering, prototyping and interface construction, interface evaluation, and topics such as data visualization and World Wide Web.
Principles of programming design/analysis. Concepts in software development. Uses C/C++ language to illustrate key ideas in program design/development, data structures, debugging, files, I/O, state machines, testing, coding standards.
Problem solving, search, inference techniques. Knowledge representation. Planning. Machine learning. Robotics. Lisp programming language.
This course was an introduction to fundamental concepts in computer graphics programming. We created basic graphics programs from the ground up, including a ray tracing-based renderer written in C/C++ as well as interactive applications written using modern OpenGL.
Theory behind algorithms used to bring virtual worlds to life. Computer animation topics. Real-time, interactive techniques used in modern games. Physically-based animation, motion planning, character animation, simulation in virtual worlds.