Teaching Philosophy


I really enjoy teaching! I'm a strong believer in chalkboard lectures for undergraduate courses, rather than projected PowerPoint presentations. On the other hand, I've recently begun to record my lectures in higher-level courses, in the form of video capture of my computer desktop accompanied by my voiceover. These lectures include paper-and-pencil derivations captured by an attached document camera, real-time Matlab programming and examples, external researchers' programs running on test images, and web pages and videos from research groups and visual effects studios. I both provide these videos to the class and upload them to Youtube, where I'm building a personal channel of videos illustrating computer vision and signal processing concepts. Please take a look at my annotated video lectures on Digital Signal Processing, Introduction to Image Processing, and Computer Vision for Visual Effects.

Another key component of my teaching style is the use of Piazza, an online tool for posting course materials and holding threaded discussions on homeworks and course topics. I encourage the students to frequently post questions and answers, and I also constantly check the site and comment on posts. Typically, I can get to a student's question within a few minutes, and all the students in the class benefit from seeing the exchange.

In 2014 I won the Rensselaer School of Engineering Classroom Excellence Award.


ECSE 496x/696x: Computer Vision for Visual Effects

Fall 2007, 2008, 2011, 2014; Spring 2015


This course was originally called "Computer Vision and Graphics for Digital Arts", and I taught it from a stack of copies of SIGGRAPH and CVPR papers. This was the impetus for the textbook I wrote, Computer Vision for Visual Effects, which was published by Cambridge University Press in Fall 2012. The course emphasizes research topics that underlie the advanced visual effects that are becoming increasingly common in commercials, music videos and movies. Topics include classical computer vision algorithms used on a regular basis in Hollywood (such as blue-screen matting, structure from motion, optical flow, and feature tracking) and exciting recent developments that form the basis for future effects (such as natural image matting, multi-image compositing, image retargeting, and view synthesis). We also discuss the technologies behind motion capture and three-dimensional data acquisition. Analysis of behind-the-scenes videos and in-depth interviews with Hollywood visual effects artists tie the mathematical concepts to real-world filmmaking. My annotated video lectures for this course are available here.


ECSE 4540: Introduction to Image Processing

Spring 2007, 2008, 2009, 2010, 2015


An introduction to the field of image processing, covering both analytical and implementation aspects. Topics include the human visual system, cameras and image formation, image sampling and quantization, spatial- and frequency-domain image enhancement, filter design, image restoration, image coding and compression, morphological image processing, color image processing, image segmentation, and image reconstruction. Real-world examples and assignments drawn from consumer digital imaging, security and surveillance, and medical image processing. This course forms a good basis for our extensive graduate image processing and computer vision courses. My annotated video lectures for this course are available here.


ECSE 4530: Digital Signal Processing

Fall 2001, 2002, 2006, 2009, 2014


This course provides a comprehensive treatment of the theory, design, and implementation of digital signal processing algorithms. In the first half of the course, we emphasize frequency-domain and Z-transform analysis. In the second half of the course, we investigate advanced topics in signal processing, including multirate signal processing, filter design, adaptive filtering, quantizer design, and power spectrum estimation. The course is fairly application-independent, to provide a strong theoretical foundation for future study in communications, control, or image processing. This course was originally offered at the graduate level but retooled in 2009 to be senior-level. My annotated video lectures for this course are available here.


ECSE 2500: Probability for Engineering Applications

Fall 2011, 2013, Spring 2013


This course covers fundamental concepts including the axioms of probability, joint and conditional probability, random variables, probability density, mass, and distribution functions, functions of one and two random variables, sequences of independent random variables, the central limit theorem, and laws of large numbers. The course goals are to understand basic probability theory and statistical analysis and be able to apply them to modeling typical computer and electrical engineering problems such as noisy signals, decisions in the presence of uncertainty, pattern recognition, network traffic, and digital communications.


ECSE 2410: Signals and Systems

Fall 2003, 2004, 2005, 2011, 2012, Spring 2012


This course covers the time and frequency-domain representation of continuous-and discrete-time signals, and the behavior of linear, time-invariant systems. In particular, we focus on the Fourier series and transform, the Laplace transform, and the z-transform. We will also discuss feedback systems and root-locus analysis and design, and applications involving communication and control systems. Signals and Systems is a prerequisite to many courses in the CSE curriculum. We are very serious about our responsibility to ensure that you understand this basic material before you take any advanced course in signal processing, communications, or control.


ECSE 4560: Signal Processing Design

Spring 2002, 2003, 2004, 2005, 2006


This capstone design course requires students to integrate their understanding from several previous courses, working in teams to create signal processing algorithms that solve an open-ended problem. This is a highly student-driven course where the students propose their own signal processing projects; past course projects have included automatic techno music DJs, spoken-English accent identifiers, football play classifiers that operated on video-game screen captures, classical music counterpoint generators, tone-of-voice detectors, automatic pill sorters, and nail and screw identifiers. In addition to solving the technical problem at hand, a substantial percentage of the course grade is based on the students' ability to clearly express themselves in several professional written reports and a final oral report in front of the whole class. (Note: this course was discontinued in favor of ECSE 4900.)


Course materials for all of the above courses are available on Piazza and RPI's online course management system, RPILMS. If you're enrolled in any of my courses, you should be able to see the syllabus, assignments, and other materials at the links above.