Department of Computer Science

10/28/2010

3:30pm-4:30pm

This talk is an experience report. In particular, I'll share some of my experiences in bringing new topics to the classroom -- often topics that seem out of place, possibly too advanced for the level of the course, or maybe even forbidden! (No, not really, but it catches the students' attention if you suggest that the CIA doesn't want these things taught.) I'll compress three specific topics into 50 minutes:

Using graphics in our CS1 course, right from Day One (from joint work with Elliot Koffman of Temple University). We use graphics to introduce all the major topics in the course. As soon as the second week, the students are programming animations in C using the winBGIm library.

Using sparse matrices to provide a mathematical semantics for a tiny programming language. This material also allows me to talk about formal proofs of program correctness in terms of matrix operations that are already familiar to the students in our junior-level course, Principles of Programming Languages.

Introducing our CS2 students to quantum computing. This work, developed with my TAs Robert Frohardt and Yingdan Huang, shows the students how to simulate quantum computer programs using their own matrix class and a tensor product. The particular program that they simulate solves a problem using a technique that Einstein called "spooky action at a distance." These kinds of programs are said to exhibit quantum pseudo-telepathy because it appears that they instantly communicate information across vast distances. (They don't, but they do solve a problem that cannot be solved in a world of classical physics.)

Along the way, I'll provide a few suggestions for appealing to a variety of different learning styles -- for example. These ideas might not work for everyone, because some of them are tailored to my teaching style. But even so, I hope you'll get ideas for your own classroom -- or at least go away with an appreciation for the bizarre world of quantum psuedo-telepathy.

Department of Computer Science

University of Colorado Boulder

Boulder, CO 80309-0430 USA

webmaster@cs.colorado.edu

University of Colorado Boulder

Boulder, CO 80309-0430 USA

webmaster@cs.colorado.edu