MiniExam 2: Rules and Information
The second “MiniExam” (I hate to call it a midterm because there are 3 of them, they are small, and its not the middle of the semester) will be Thursday, March 25th during the class period.
The rationale for this style of exam is discussed on the Course Web: https://graphics.cs.wisc.edu/Courses/559sp2021/policies/exams/
The exam will be semisynchronous: you must take it during the class period (11am12:15pm, Madison time, Thursday March 25th), but it is up to you when during that 75 window that you take it.
The exam will be given as two Canvas quizzes. You will be allowed to spend 20 24 minutes on each. You can start a quiz any time during the exam window, but once you begin a quiz, you must complete it within 20 minutes. And you must complete both quizzes by 12:15. If you want to start at 12:10, you will only have 5 minutes. If you want the full 48 minutes to do the work, you need to start before 11:35 11:27. If you start earlier (11am or shortly after), you will have time to take a short break between the quizzes (recommended).
Details of the rules and content are given on the MiniExam 2: Rules and Information page on the course web.
Key Rules
These rules are unchanged from Exam 1.

You must not communicate with other students in class during the exam window (even when you are not taking the exam).

You must not discuss the exam with anyone during the exam window. This includes any form of writing (posting, replying, messaging, etc.) to any forums (Piazza, Stack Exchange, Discord, etc.).

You must avoid listening/reading to people violating the rules; e.g., if someone else makes a posting or message during the exam period, you should not read it.

The exam is “open book”  we will not try to prevent you from reading (or viewing) existing materials. The exam timing will limit your ability to do research on the answers to the questions. Remember, that writing (asking a question, or posting an answer) is not allowed during the exam window. And, reading something illegal is academic misconduct.

You may use a “calculator”, which includes writing programs. But, be careful of the time it takes. The questions are designed that you should be able to figure them out “by hand” (with pencil and paper) more quickly than trying to program.

We must be strict about the start/stop time of the exam window because students in class are allowed to discuss the exam and class material outside of the window.

The rules of proper academic conduct apply. See the course page on Collaboration Policy and Academic Conduct for more details.
In case of technical difficulties
Inevitably something will go wrong for someone.
If you have a problem:

If you have a technical issue during the exam, try to complete the quiz you are taking as best you can. You may want to take a screen shot of the problem. You may want to save your work (e.g., a screenshot or printtoPDF) if you fear Canvas might mess up

After completing the current Quiz, send a private message to the course staff on Piazza explaining the problem. If you have an internet failure that precludes accessing Piazza, you can send email to the Professor. If you can’t even send email, send a message as soon as your internet access is restored.

Please alert us to technical problems as promptly as possible.

We will not answer content questions during the exam. If you feel a question has an error or is ambiguous, take your best guess at what the question means. The questions usually ask for the “most correct” answer (in cases where you feel no answer is exactly correct).

Please check Piazza and Canvas for announcements before beginning each Quiz.

Canvas may allow you to take the quizzes in the wrong order. In the event you start taking the wrong quiz, complete the one you have started. Then complete the remaining quizzes in the correct order.
Technical problems do happen. During the Spring 2020 559 Final, the internet went out in my neighborhood! I had to proctor it by phone (fortunately, the peer mentors and TAs were in a different neighborhood).
Accomodations for McBurney Students
If you have already arranged for additional time, we will try to convince Canvas to give it to you. You must still complete the quizzes within the exam window, but you be given longer to take each quiz. This means that in order to take all of your additional time, you must start the exam relatively promptly at the beginning of the window.
Because of limitations of Canvas, portions of the quiz may not be compatible with screen readers or other assistive technologies. If you are visually impaired and rely on screen reading technology for viewing the web, please contact the course staff before the exam.
Content
MiniExam 2 will cover the topics presented in class during weeks 58, including Workbook 8 and Lecture 16. Because these topics build on earlier topics, things from the first weeks of class are still relevant (although they will not be tested directly).
You are responsible for all topics discussed in lecture, described in the readings and presented in workbooks. We will ask you about the concepts in the workbook, but generally not things that are specific to the questions. We will not ask you about optional tools (e.g., Visual Studio Code or the Debugger). We may ask questions about JavaScript, particularly the topics discussed in lectures or the workbooks.
The weekly surveys are a good model for the kinds of questions we will ask.
The outline of slides and lectures also provides a topic list (https://graphics.cs.wisc.edu/Courses/559sp2021/pages/lecturematerials/).
Topic Outline for Weeks 58:
Shapes Basics
 curves vs. areas vs. surfaces vs. volumes
 implicit vs. parametric vs. subdivision forms
 free parameters (parametric representations)
Parametric Curves
 tangents
 piecewise polynomials and parameters
 cubic segments
 Blending (basis) function forms
Piecewise Parametric curves
 continuity conditions
 C vs. G continuity
 Hermite forms
Interpolating Curves
 Hermite interpolation
 sketching and designing with Hermites
 Cardinal Splines, CatmullRom splines
 sketching, drawing, converting to other forms, …
 locality (interpolating highorder polynomials)
Bezier Curves
 Bezier curve principles and properties
 Quadratic Bezier Curves
 Cubic Bezier Curves (relationship to Hermite)
 Geometric Algorithms (DeCastlejau)
 Basis Functions (Bernstein forms)
 limits of Bezier curves (why rational curves)
 Bezier curves in APIs
Advanced Curve Topics
 Arc length and arclength parameterization
 Approximating curves with segments
 BSplines
 motivations, blending/basis functions
3D Basics
 how we see in 3D
 depth cues (1 eye, 2 eye, image based)
 3D coordinate systems, right hand rule
 Normals and Tangents
3D APIs
 comparison of WebGL and THREE
 main abstractions of 3D Graphics
THREE Basics
 hello cube abstractions
 meshes vs. geometries
 materials
 transformations and hierarchy
 deferred loading
 lighting and shading basics
 state vs. transformation commands
Transformations in 3D
 use of homogeneous coordinates
 rotate, translate, and scale in THREE
Viewing (Projection) transformations
 Viewing vs. Camera Transformations
 type of projections
 projection math
 clipping and frustum
Rotations
 basic facts
 single axis rotations
 lookat transformations
 rotations about multiple axes
 Euler Angles
 Axis Angle representations
 Gimbal Lock and other Euler Angle problems
 Motivations for Quaternions
JavaScript Tips:
 ES6 modules
 Casts and Type Checks
 modules and type checks
 inheritance and subclasses
 methods and this
 asynchronous programming (callbacks, promises, await)
 parameter passing with dictionaries (WB71)