Programming, Physics, and Fun: An Honest Introduction to Computer Science
Eric Freudenthal
Dept. of Computer Science, UTEP
Consider the misguided things teenagers do when they first consider the possibility of dating. They focus on smooth 'pickup' lines and acting 'cool' rather than earnestly seeking mutual interests. In response to recent enrollment drops in computer science (CS) programs, many advocates are taking a similar path: They recruit students with engaging courses that hide CS's relationship to mathematical concepts. Some are creating attractive introductory 'computer' courses that focus on the social component of interface design and ignore programming altogether. Although these courses are engaging and teach important skills, they do not strengthen skills in mathematics --- which are crucial for success in computer science programs, and in other science-math-engineering-technology (STEM) careers. Furthermore, students are perceptive, and like Hansel and Gretel who saw the oven and recognized the witch's intentions, they can read degree plans and will recognize that intimidating math and science courses are in their future.
Calculus and classical physics are layered upon each other and understanding is communicated through the composition of complex concepts. Due to this dense layering of abstractions, the cognitive distance between concrete experience and coursework is large. Rather than treating mathematics as a liability that must be hidden from potential suitors, we seize the opportunity to use introductory programming as a vehicle to present mathematics and physical laws from an intuitive and engaging perspective that appears to strengthen interest in, and understanding of technical content.
Our freshman course leverages computer programming's accessibility to engage students in the construction of simple time-based simulators that expose underlying principles and create concrete and easily understood examples that mimic and explain familiar phenomena. Thus, by using computation to 'concretize' mathematical abstraction, we expose computation's "best side," and by doing so, hope to creatively engage and retain entering college students with the potential to enjoy creative and productive careers in computer science and other STEM areas.