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