A systematic approach to teaching abstraction and mathematical modeling
Charles T. Cook, Svetlana V. Drachova, Jason O. Hallstrom, Joseph E. Hollingsworth, David Pokrass Jacobs, Joan Krone, Murali Sitaraman · 2012
The need for undergraduate CS students to create and understand mathematical abstractions is clear, yet these skills are rarely taught in a systematic manner, if they are taught at all. This paper presents a systematic approach to teaching abstraction using rigorous mathematical models and a web-based reasoning environment. It contains a series of representative examples with varying levels of sophistication to make it possible to teach the ideas in a variety of courses, such as introductory programming, data structures, and software engineering. We also present results from our experimentation with these ideas over a 3-year period at our institution in a required course that introduces object-based software development, following CS2.