Computer Science Department
School of Computer Science, Carnegie Mellon University
Technological and Pedagogical Innovations
Students studying computer science usually encounter an introductory discrete math course in their first or second year of undergraduate education. Before this course, the only computer science they have seen is often programming, and as a result they have a very narrow definition of our field. The realization that math–in particular, math that is very different than what they've seen in high school and calculus–is a large part of computer science can be very jarring and unwelcome. Moreover, these courses often simultaneously introduce the concept of a proof and formalism, numerous new symbols and terminology, have difficult content, and have slow grading.
We present several technological and pedagogical solutions to these prob- lems wrapped together in a course implementation, piloted at Carnegie Mellon University as 15-151. 15-151 deliberately addresses and embraces these concerns rather than trying to avoid them. In particular, it invites students to explore content applications by programming, write and discuss proofs together in groups, use a "computational environment" to explore syntax and semantics, and read and evaluate each other's proofs to understand their errors and speed up grading