An experimental course in C programming, delivered in the Department Meteorology at 
San Jose State University in the Fall Semester of 1997, is documented in this paper.  This 
required programming course was unique in that instructional techniques were framed 
around outcome-, project-, and collaborative-based pedagogy.  In addition, content 
delivery was via traditional lecture and synchronous and asynchronous distance learning 
aided through web-based instruction, email and one-on-one chat software.  The six-hour 
per week class was held in the new Meteorology Computer Lab containing approximately 
twelve PCs running the Slakware distribution of Linux--the GNU version of the 
proprietary UNIX operating system.  Assessment was based on the student's ability to 
demonstrate a minimum level of proficiency in thirteen identifiable C programming 
areas.  The thirteen areas were incorporated into small projects and problems that 
students had to solve individually and in groups.  Each of these projects and problems 
were part of an overarching class problem: building a parcel model.  Evaluation of the 
effectiveness of the course is gleaned through student performance and feedback, and 
through instructor observation.  Overall, the unique combination of pedagogy and 
technology provided an effective teaching and learning environment.  Of particular note 
was the increased instructor contact time made available through distance learning 
technology, and the increased "buy-in" of students into the learning experience.  The 
major drawbacks to the course include a significant increase in instructor preparation 
time, and a decrease in the quantity of delivered material.  However, the positive aspects 
and benefits of the course more than outweigh the negative