Midterm Guide

Page content

The CS559 Midterm Exam will be at 7:30pm on Wednesday, March 11th.

The Midterm Exam Will be in Rooms:

  • Noland 132 (Students with last names beginning A-N)

  • Chamberlin 2241 (Students with last names beginning O-Z)

  • McBurney accomodated testing will be handled by the Testing and Evaluation Center. Send email to the professor to request the code to give them. (yes, this is a case where you need to send email to the Professor). These requests must be made by March 6th, otherwise Testing and Evaluation may not be able to accomodate you.

  • Students whose last names begin with A-N Should go to 132 Noland

  • Students whose last names begin with O-Z Should go to 2241 Chamberlin

Midterm Description

See the Quizzes for the style of questions we will ask. Expect 30-50 multiple choice questions (on a standard scantron form).

There are no example exams available. The quizzes are designed to help you know the kinds of questions we will ask.

You are responsible for everything we discussed in lecture, everything covered in the workbooks, and the readings that the workbooks require. However, the focus is on the parts discussed in lecture.

The lectures include everything up to, and including Thursday, March 5th. The last topic we discussed in this lecture is fair game. We may review some of the topics on March 10th, but the new content of March 10th will not be on the exam.

The workbooks include everything up to and including Workbook 7. Expect things about 3D.

The focus of the exam will be on things in the lectures - we generally covered the topics in the readings. The readings can give you more depth on most topics.

The readings include:

  • WB1: mainly the course web (we won’t ask you about class rules)
  • WB2: 559 Tutorials, JavaScript and Canvas documentation
  • WB3: Tutorials, Hart 5 and 7, FCG 6
  • WB4: FCG6, Hart 5
  • WB5: FCG15, Hart 20
  • WB7: Hart 6, FCG 7, 12.2

Or, organized differently:

  • Foundations of Computer Graphics: Chapter 6,7,15 (Chapter 1&8 were optional) - we didn’t use all of these chapters (the relevant parts were discussed in lecture)

Hart Big Fun Book of Computer Graphics: 5,6,7,20 - we didn’t use all of these chapters (the relevant parts were discussed in lecture)

559 Tutorials: image vs. object graphics; color; SVG; Points, Vectors, Coordinate Systems

You are not expected to memorize the details of the API calls, however, you should be familiar with the concepts and what the functions do.

You were expected to read on your own to pick up key pieces of JavaScript and Web Programming, and to review Vector Algebra. The important parts were also discussed in lecture and/or the workbooks. We may ask you questions about programming and math things we used in class.

Exam Non-Content

We do not expect you to memorize details. Of course, this is subjective – but our goal is to test that you know the concepts, not memorize the things you can look up. But some examples of things we will not ask you to remember:

  • equations for cubic forms – for example, you should know what a Hermite or Cardinal Spline is, and the geometric intuitions, but you if you need them, we’ll give you the equations for the parametric functions or basis functions.

  • the parameter list of JavaScript, Canvas or THREE functions. For example, we don’t expect you to remember the order of the parameters, so if we show you the code new THREE.PerspectiveCamera(50, 1, 0.1, 1000 ); and remind you that the first parameter is the field of view, you should know what field of view does.

  • While we discussed course mechanics in lecture, and it was a required reading, you are unlikely to be tested on it

  • While we mentioned B-Splines in lecture, they were excluded from the readings, so I won’t ask you about them.

Exam Content List

Here is a brief outline of the course content (note: you are responsible for all covered material – we are trying to be complete in this outline, but might have missed something):

  • JavaScript (particularly the details we discussed in class)
  • Distributed Source Control (GIT) Concepts
  • Images and Image representations
  • Displays and Display Types
  • Buffers and buffering
  • Web basics (DOM, HTML, …)
  • Interaction models for web programming (event loops, animation loops)
  • JavaScript and Programming Concepts (e.g., lexical scope, closures, lightweight objects)
  • Immediate mode vs. Retained-Mode / Scene-Graph API
  • Canvas basics (coordinate systems, state, stroke fill, paths)
  • Event models for Canvas vs. SVG
  • SVG concepts
  • Coordinate systems
  • Context/state stack
  • Typescript type checking
  • Composition of transformation
  • Linear and Affine Transformations
  • Homogeneous Coordinates
  • Hierarchical modeling and instancing
  • Common compositions of 2D linear transformations
  • Properties of rotations
  • Articulated chains
  • Scene Graphs
  • Transformations as matrices
  • Vector/Matrix basics
  • How APIs realize (and hide) transformations
  • JavaScript mechanisms for traditional object oriented programming
  • Linear Interpolation
  • Polygon filling rules
  • Shape concepts (curves vs. areas)
  • JavaScript modules
  • Representations types of curves
  • Subdivision concepts
  • Parametric forms, parameterizations, free parameters
  • Arc-length parameterizations
  • Approximations of smooth shapes
  • Continuity conditions
  • Interpolating polynomials (why we don’t use them)
  • Piecewise polynomial curves
  • Polynomial forms
  • Hermite forms
  • Basis function forms
  • Matrix forms for polynomial segments
  • Catmul-Rom / Cardinal Splines
  • Bezier Curve concepts and properties
  • Bezier Curve algorithms (De Castlejau)
  • Arc-length parameterizations
  • Basic 3D Concepts
  • 3D Graphics Abstractions
  • How the THREE library embodies the basic abstractions
  • Normals
  • Projections
  • Perspective Projections and Projection Matrices
  • Camera Transformations
  • THREE materials and lighting
  • Types of lights
  • Single Axis Rotations in 3D