Download presentation
Presentation is loading. Please wait.
Published byEzra Stanley Modified over 9 years ago
1
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
2
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 2
3
Partners Alabama Clemson Cleveland State Denison Depauw IU Southeast Ramapo College Virginia Tech NVC Western Carolina 3
4
What reasoning skills are necessary? Concept Inventory Boolean LogicStandard Logic Symbols, Standard Proof Techniques Discrete Math StructuresSets, Strings, Numbers, Relations, and other mathematical theories as needed Precise SpecificationsMathematical Descriptions of Software interfaces for clients and implementers. Math models for structures Pre and Post conditions for operations. Modular ReasoningEach Module needs to be proven correct only once. Verification ConditionsMathematical Assertions equivalent to the correctness of the program. Correctness ProofsApplication of Proof Techniques to the program
5
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.
6
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 6
7
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 7
8
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 8
9
All Levels Collaborative Approach Pairs or small groups In class or homework 9
10
Collaborative Method Pairs or small groups With or without tools Each team presents their findings Collaboration both within teams and among teams 10
11
Selective Adaptation Pick and choose appropriate reasoning concepts and/or tools Faculty expertise Student background 11
12
12 One Example: Software Engineering Course Usual Topics Requirements analysis Design and specification Component-based implementation Quality assurance Formal Reasoning
13
13 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
14
14 Methods Collaborative learning Teams of 2 to 4 members Read specs Implement specs Verify implementations Build larger systems.
15
Using the Tools http://www.cs.clemson.edu/group/resolve 15
16
Summary Importance of Reasoning across the Curriculum Tools to Support Reasoning Collaborative Pedagogy includes collaboration between students and between students and faculty 16
17
Some Work Binary search specifications Java C++ Any other language Are the algorithms correct? Do the implementations work? What’s the difference?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.