Making Mathematical Reasoning Fun Jason Hallstrom (Clemson), Joan Krone (Denison), Joseph E. Hollingsworth (IU Southeast), and MuraliSitaraman(Clemson) This workshop is funded in part by NSF grant DUE-1022941
Goals • Reasoning Across the Curriculum • Not just in Discrete Math • Fundamental part of CS • Motivating example: binary search “proven” correct • Supporting Tools • Supporting Methods • Applicable to both large universities and small colleges • Students who can write reliable software
Partners • Alabama • Clemson • Cleveland State • Denison • Depauw • IU Southeast • Ramapo College • Virginia Tech NVC • Western Carolina • Evergreen University • Southern Wesleyan • University of Houston
Svetlana Drachova, Jason O. Hallstrom, MuraliSitaraman, Joseph E. Hollingsworth, and Joan Krone, Assessment of Learning Outcomes Using a Mathematical Reasoning Concept Inventory, Technical Report RSRG-13-03, School of Computing, Clemson University, Clemson, SC 29634-0974, February 2013, 6 pages.
Why? • Current software is too large for one person to understand. • Students need tools for dealing with all sizes of projects. • Maintenance makes up the majority of jobs. • Students need to separate specifications from implementations.
Courses at All Levels • Beginning level: CS110 – Intro to Programming, CS174 – Discrete math at Denison, (others – CPSC101 – CSI, CPSC102 – CS2, Discrete Math at Clemson) • Use of collaborative approach • Use of specifications • Reasoning assistant tool
Intermediate level: CPSC215 – Software Foundations, (others: CPSC212 – Data Structures) at Clemson • Contract specifications – comparing informal specs with formal specs • Mathematical modeling – abstraction • Generating test data from specs • Reasoning assistant tool
Advanced level: CS373 – Theory of Programming Languages and CS349 – Software Engineering at Denison, CP372 – Software Engineering at Clemson • Formal specifications • Proofs • VC generator tool • Contract based team development using RESOLVE compiler
All Levels • Collaborative Approach • Pairs or small groups • In class or homework
Collaborative Method • Pairs or small groups • With or without tools • Each team presents their findings • Collaboration both within teams and among teams
Selective Adaptation • Pick and choose appropriate reasoning concepts and/or tools • Faculty expertise • Student background
One Example: Software Engineering Course • Usual Topics • Requirements analysis • Design and specification • Component-based implementation • Quality assurance • Formal Reasoning
Objectives • Read formal specifications • Create test points from the specs • Use component specifications to build larger systems • Work in teams • Carry out formal verification of components • Use automated rules
Methods • Collaborative learning • Teams of 2 to 4 members • Read specs • Implement specs • Verify implementations • Build larger systems.
Using the Tools • http://resolve.cs.clemson.edu/interface
Summary • Importance of Reasoning across the Curriculum • Tools to Support Reasoning • Collaborative Pedagogy includes collaboration between students and between students and faculty
Some Work • Binary search specifications • Java • C++ • Any other language • Are the algorithms correct? • Do the implementations work? • What’s the difference?