Spring 1999 CS302 Assignment #3
by Dan Garcia (ddgarcia@cs.berkeley.edu)
1. Define a colleciton of prerequisite skills / concepts that culminate in mastery of one of the difficult concepts or techniques you described in assignment 2; model this on Dubinsky's "genetic decomposition".
I chose number (3) from assignment 2 : Inferring 3D from 2D projections (and vice-versa) in order to build a correct articulated figure.
This is a skill with which most students appear to have the hardest
time, as evidenced by their often physically disconnected animated
figures. (n.b. this is in contrast to what Dubinsky found for
induction, which was that many students could not even give an overview
of how to set up a proof that was different from memorized examples. Here
students know the process of creating an articulated figure, it's that
they fail in their implementation for several possible reasons.)
I believe the
prerequisite skills the students need to work in 3D and successfully build
an articulated figure are:
- Zooming vs. dollying
Dollying is moving a camera and zooming is changing the focal length. This is not necessarily a computer notion, and examples from the real world to help them understand the difference.
- Parallel projections
Parallel projections assume the viewer is located at infinity but has a very powerful zoom lens. The projections lines are all parallel and the projected objects exhibit no foreshortening and do not have vanishing points. Approximations to this are only seen rarely in real life (e.g. baseball games with the camera positioned in the outfield), so students may not have much familiarity with it.
- Coordinating multiple 2D views into one consistent 3D mental model
This is a skill that many students take for granted, yet others struggle with. Those who are spatially oriented find this process natural, but our job is to help students form internal 3D views who aren't naturally gifted in this way.
- Comfort with the 3D program
When it comes down to it, the implementation is done in the program itself. A level of comfort is required to actually position the geometric objects in their correct place and line them up with the other limbs successfully.
- Leaving the GUI mindset
In order to effectively build their articulated figure in the computer, the student needs to select geometric objects with the mouse and place them on the screen. Many students eyeball the placement, but for the object to be free of cracks and holes, the student has to have the precision of an engineer. There is an interface to input values to precisely position the object, but I seldom see students using it, and consequently I see lots of imprecise objects with holes and cracks.
- Testing, testing, testing
Students who fail to understand the purpose and practice of testing will almost certainly have trouble in computer science, and CS5 is no exception. If the student were to test the motion of each limb, rotate the object around, it would become immediately clear whether the model was correct in all dimensions, not just from one view angle.
Provide and justify a sequence of exercises that would help students master the steps in your decomposition
Each exercise listed below addresses the prerequisites of the same number above.
- Have students play with cameras with zoom lenses to learn zooming vs dollying
We're fortunate that a real-world analogue exists for this virtual concept of a camera - a real camera! Familiarity with a real camera's zoom lens and the concept of zooming vs. dollying is a must for those confused here. The students can then refer to their experiences with the real camera once they get behind the computer.
- Explain parallel projection in more detail, with more examples
It is very possible that the primary reason some students flounder in being able to transform 3D geometry to 2D representations is they don't fully understand what parallel projection means. The mathematics behind this is usually reserved for the final computer graphics segment of the course, but it may be appropriate to give them more of an understanding what is actually happening with this projection. Examples from real zoom lenses will help them understand what happens to geometry when seen with (near-) parallel projectors.
- Identification of those with spatial difficulties, and directed training on paper and computer
This is meant to address those students who have problems intuitively jumping back and forth from 2D to 3D. We start with a simple quiz (which doesn't count toward their grades) to isolate those target students who are not spatially intuitive. Then, depending on their difficulties, design one-on-one tutorials (much like the self-paced quizzes) which help them with their individual difficulties. Also, make sure to pair these students up with students who show high spatial ability.
- Give them a competency exam or project for Infini-D
Very often in the class I found the students struggling with deadlines because they left everything to the last minute. Thus, it may be the case that the students are having trouble building a working animated figure because they didn't have to prove competency with the program until that assignment. The students may have been learning Infini-D at the same time as they were implementing the hierarchical figure, so they weren't as comfortable with the tools for examining the state of the world and didn't know (for example) what the "Top / Front / Side" projection windows were. Competency exams or projects would force them to learn the tutorial before they begin working seriously with the program to implement their figures.
- Force the students to ONLY use the text interface to
Infini-D
One exercise to train the students to be precise
is to have them perform a simple talk using Infini-D two ways: only using the keyboard and only using the mouse. In
Windows (but not the Mac, unfortunately), it is possible to use the
keyboard to control the entire program. A reliance on the text-based
interface and comparison of two identical tasks using each input
device will
highlight for them when each is appropriate. Also, using just the keyboard
for positioning geometry will make the process seem routine, and
they'll be (a) more comfortable using the text interface in the
future, and (b) they'll realize that the degree of precision cannot
be reached just by using the mouse.
- Highlight uses of "debugging" tools
This will help them to test and debug their designs. It's possible the students don't test their figures because they don't know how. A short tutorial of the use of the tools which aid in debugging 3D worlds (e.g. using wireframe, multiple cameras, etc) will help.
WWW Maven: Dan Garcia (ddgarcia@cs.berkeley.edu) Send me feedback