jason hallstrom (clemson), joan krone (denison), joseph e. hollingsworth (iu southeast), and murali...
TRANSCRIPT
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
GoalsReasoning Across the Curriculum
Not just in Discrete MathFundamental part of CSMotivating example: binary search “proven” correct
Supporting ToolsSupporting MethodsApplicable to both large universities and small
colleges
2
PartnersAlabamaClemsonCleveland StateDenisonDepauwIU SoutheastRamapo CollegeVirginia Tech NVCWestern Carolina
3
What reasoning skills are necessary?Concept InventoryBoolean Logic Standard Logic Symbols, Standard
Proof Techniques
Discrete Math Structures Sets, Strings, Numbers, Relations, and other mathematical theories as needed
Precise Specifications Mathematical Descriptions of Software interfaces for clients and implementers.Math models for structuresPre and Post conditions for operations.
Modular Reasoning Each Module needs to be proven correct only once.
Verification Conditions Mathematical Assertions equivalent to the correctness of the program.
Correctness Proofs Application of Proof Techniques to the program
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 LevelsBeginning level: CS110 – Intro to Programming,
CS174 – Discrete math at Denison, (others – CPSC101 – CSI, CPSC102 – CS2, Discrete Math at Clemson)Use of collaborative approachUse of specifications Reasoning assistant tool
6
Intermediate level: CPSC215 – Software Foundations, (others: CPSC212 – Data Structures) at ClemsonContract specifications – comparing informal specs
with formal specsMathematical modeling – abstractionGenerating test data from specsReasoning assistant tool
7
Advanced level: CS373 – Theory of Programming Languages and CS349 – Software Engineering at Denison, CP372 – Software Engineering at ClemsonFormal specificationsProofsVC generator toolContract based team development using RESOLVE
compiler
8
All LevelsCollaborative Approach
Pairs or small groupsIn class or homework
9
Collaborative MethodPairs or small groupsWith or without toolsEach team presents their findingsCollaboration both within teams and among teams
10
Selective AdaptationPick and choose appropriate reasoning concepts
and/or toolsFaculty expertiseStudent background
11
12
One Example: Software Engineering CourseUsual Topics
Requirements analysisDesign and specificationComponent-based implementationQuality assurance
Formal Reasoning
13
ObjectivesRead formal specifications
Create test points from the specsUse component specifications to build larger
systemsWork in teams
Carry out formal verification of componentsUse automated rules
14
MethodsCollaborative learning
Teams of 2 to 4 membersRead specsImplement specsVerify implementationsBuild larger systems.
SummaryImportance of Reasoning across the CurriculumTools to Support ReasoningCollaborative Pedagogy includes collaboration
between students and between students and faculty
16
Some WorkBinary search specificationsJavaC++Any other languageAre the algorithms correct?Do the implementations work?What’s the difference?