Computer Vision I (University of Iowa)
The traditional model for mid-level computer science courses---pen and paper exercises plus programming projects---is not appropriate for teaching computer vision. I developed a course using teaching methods from the physical sciences: supervised laboratories, proper experimental method, laboratory notebooks, and written reports. I adapted these techniques to a computer science setting and established an organized curriculum for the course, accessible to undergraduates as well as graduate students. With the aid of my teaching assistant Dan Stevenson, I devised a series of experiments that could be finished by a pair of students in a half hour lab period, wrote the laboratory handouts, and coded a substantial package of supporting utilities.
To make the supporting code run at an acceptable speed on the computers available at the time, but still keep the code readable, Dan's research system compiled key low-level operations from a subset of Franz Common LISP to C. The system is describec briefly in our Usenix DSL conference paper and in more detail in our legacy documentation. Our computer vision package ran on workstations from two vendors with significantly different implementations of Unix: IBM on our research workstations and HP on the machines in the lab used for teaching.
This course ran for four terms (fall 1992, 1993, 1995, 1996). It ended because Dan and I both left Iowa.