CS255{S,W}. Computer Graphics
Offers an introduction to computer graphics, which has become an increasingly important area within computer science. Computer graphics, particularly in association with the multimedia aspects of the World-Wide Web, have opened up exciting new possibilities for the design of human-computer interfaces. The purpose of this course is to investigate the principles, techniques, and tools that have enabled these advances.
Prerequisites: introduction to computer science (any implementation of CS103 or CS112), discrete structures (CS106 or CS115), linear algebra
Syllabus:
- Graphic systems: Raster and vector graphics systems; video display devices; physical and logical input devices; issues facing the developer of graphical systems
- Fundamental techniques in graphics: Hierarchy of graphics software; using a graphics API; simple color models; homogeneous coordinates; affine transformations; viewing transformation; clipping
- Graphical algorithms: Line generation algorithms; structure and use of fonts; parametric polynomial curves and surfaces; polygonal representation of 3D objects; parametric polynomial curves and surfaces; introduction to ray tracing; image synthesis, sampling techniques, and anti-aliasing; image enhancement
- Principles of human-computer interaction: Human-centered software development and evaluation
- Graphical user-interface design: Choosing interaction styles and interaction techniques; HCI aspects of interface design; dynamics of color; structuring a view for effective understanding
- Graphical user-interface programming: Graphical widgets; event management and user interaction; GUI builders and programming environments
- Computer animation: Key-frame animation; camera animation; scripting system; animation of articulated structures; motion capture; procedural animation; deformation
- Multimedia techniques: Sound, video, and graphics; design of multimedia systems; tools for multimedia development; virtual reality
Units covered:
| AL10 | Geometric algorithms | 2 | hours |
| HC2 | Building a simple graphical user interface | 2 | core hours |
| HC3 | Human-centered software evaluation | 2 | hours |
| HC4 | Human-centered software development | 2 | hours |
| HC5 | Graphical user-interface design | 5 | hours |
| HC6 | Graphical user-interface programming | 5 | hours |
| GV1 | Fundamental techniques in graphics | 2 | core hours |
| GV2 | Graphic systems | 1 | core hour |
| GV3 | Graphic communication | 2 | hours |
| GV4 | Geometric modeling | 3 | hours |
| GV5 | Basic rendering | 3 | hours |
| GV8 | Computer animation | 2 | hours |
| GV10 | Virtual reality | 2 | hours |
| IM13 | Multimedia information and systems | 4 | hours |
| SE2 | Using APIs | 2 | core hours (of 5) |
| | Elective topics | 1 | hour |
Notes:
Computer graphics is extremely exciting to students and can serve as an excellent motivator for students, particularly to the extent that the course structure offers students the opportunity to create graphical systems. Although implementation must be a central component of this course, it is equally important to emphasize the mathematical underpinnings of the area, thereby reinforcing the relationship between theory and practice.
Software tools play a particularly critical role in this course. While it is useful for students to learn basic principles at an abstract level, it is also essential for them to have exposure to sophisticated graphical libraries, which will vastly extend their ability to construct interesting applications. In addition to programmer-oriented graphical APIs, it may make sense to include other packages -- multimedia tools, modeling languages, virtual reality -- in this course as well.
Students who complete this course should be able to perform the following tasks:
- Offer a meaningful critique of graphical and multimedia interfaces that incorporates an understanding of the principles of HCI design.
- Apply the principles that underpin the design of graphics and multimedia systems.
- Describe the range of tools that can be used to support the development of graphical and multimedia systems.
- Use existing graphics and multimedia packages to develop appropriate graphical applications.
Online resources for CS255