CS 335 - Graphics and Multimedia

 

Credits: 3

 

Course Description

 

This course focuses on the graphical human-machine interface, covering the principles of windowing systems, graphical interface design and implementation, and processing graphical data. There is an emphasis on medium-scale programming projects with graphical user interfaces using a high-level procedural programming language and concepts such as object-oriented design.

 

Prereqs: CS-216 and engineering standing

 

Needed Skills

 

Students should be capable of programming in a high-level programming language.

 

Learning Outcomes

 

Students will learn the principles of graphical user interfaces, system support for graphical, window-based systems, and introductory concepts in computer graphics and multimedia processing. Students will learn to use software tools and object-oriented techniques which will allow them to create user-friendly interfaces for computer applications.

 

CAC Categories

 

Topic

Core

Advanced

Math Fundamentals

0

0

Data Structures

2

0

Algorithms & Software Design

30

0

Computer Organization and Architecture

2

1

Concepts of Programming Languages

9

0

Social and ethical issues

1

0

Total

44

1

 

Math Fundamentals: none

 

Data structures (2): Core (2): arrays, stacks, trees, link lists

 

Algorithms and Software (30): Core (30): viewing transformation, clipping, rendering (line generation, font generation, polygon filling), curve generation, graphics software hierarchy

 

Computer Organization and Architecture (3):

Core (2): raster and vector graphics systems, physical input devices

Advanced (1): flat panel display devices

 

Concepts of Programming Languages (9): Core (9): Core object-oriented programming using Java

 

Social and Ethical Issues (1): Discussion of professional and academic integrity; no assignments

 

Oral Communication (presentations)

 

none

 

Written Communication

 

8-10 homeworks and projects, 3-4 projects, 0 reports

 

Coverage

 

Theoretical content: 48%

· Object-oriented programming using Java: object-oriented concepts, objects, applets, control structures, methods, arrays, object-based programming, object-oriented programming, strings

· Fundamental techniques in graphics: simple color models (RGB, HSB), homogeneous coordinates, affine transformation, viewing transformation, clipping, parametric curves * Graphics systems:: raster and vector graphics systems, flat panel display devices, physical and logical input devices

· Rendering: scan conversion, font generation, light models, polygon filling, texture mapping, double buffering

· User interface design: event handling, layout management, graphics algorithms and toolkits, UGI design, managing text areas, canvases, custom components

· Exception-Handling and multithreading: understanding, performing and using exception-handling, understanding and using multithreading

· Multimedia: image creation and display, animated sequences, image maps

 

Problem analysis: 24%

· Problem formulation and property study in viewing transformation

· Line/polygon clipping

· Polygon filling

· Texture mapping

· Curve evaluation and generation

· 2D animation

 

Solution design: 24%

· Develop algorithms for line/polygon clipping, scan-conversion, polygon filling, texture mapping, curve evaluation and generation, and 2D animation

 

Other: 4%

· Course administration, social issues, exams.

 

Possible Textbooks

 

Computer Graphics: Tools for Visualization
Morris Firebaugh
William C. Brown Publishers
ISBN 0-697-11646-8

 

Computational Geometry and Computer Graphics in C++
Michael J. Laszlo
Prentice Hall
ISBN 0-13-290842-5