180 likes | 359 Views
Making Mathematical Reasoning Fun. Jason Hallstrom (Clemson), Joan Krone (Denison), Joseph E. Hollingsworth (IU Southeast), and Murali Sitaraman (Clemson) This workshop is funded in part by NSF grant DUE-1022941 . Goals. Reasoning Across the Curriculum Not just in Discrete Math
E N D
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
Partners • Alabama • Clemson • Cleveland State • Denison • Depauw • IU Southeast • Ramapo College • Virginia Tech NVC • Western Carolina
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://www.cs.clemson.edu/group/resolve
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?