I have been a member of the Department of Computer Science at the University of Utah since 1987. I do research into the application of computers to education, and I teach extensively at the undergraduate and graduate levels. As Director of Educational Programs, I have broad purview over the teaching mission of the department.
For the last five years I have been actively developing computerbased tools and curricula for teaching introductory programming courses, primarily to science and engineering students. The evolution of my thoughts on this subject can be traced via the volumes of computerbased instructional material I have developed, as well as via my recentlypublished textbook.
Introduction to Scientific Programming:

The book introduces programming using both Maple (a computer algebra system) and C. It uses Maple in its first half to introduce the computational properties of numbers; numerical, symbolic, and graphical programming; and programmerdefined functions. In the second half, it builds on the ideas introduced in the context of Maple to introduce procedural programming in the context of C.
Each chapter is organized around the solution of a simple but realistic problem from science or engineering. The solution of each problem is divided into five steps: problem, model, method, implementation, and assessment. Since my book is primarily an introduction to programming, the focus tends to be on implementation, but I make sure that students can appreciate the context in which computational problem solving occurs.
My students and I have developed a variety of online resources that support the book. The available resources include Javaenhanced HTMLbased tutorials, Maple worksheetbased tutorials, Maple libraries, and C programs. These resources can be used to create laboratory experiences for students.
The Hamlet ProjectI head the Hamlet Project, a research group that develops and experiments with online instructional support for introductory computer science classes. Over the last five years we have experimented with a variety of technologies. We are currently focusing on HTMLbased tutorials that exploit Java applets to interactive illustrate key ideas. 
The applet whose image appears above, for example, is used in a tutorial on the physical principle of centerofgravity.
The online course materials that we have developed include:
zachary@cs.utah.edu