Download presentation
Presentation is loading. Please wait.
Published byLeonard Austen Harrington Modified over 9 years ago
1
Computer Science School of Computing Clemson University Mathematical Reasoning across the Curriculum Software Development Foundations and Software Engineering Murali Sitaraman Clemson University This research is funded in part by NSF grants CCF-0811748 and DUE-1022941
2
School of Computing Clemson University You can find lot more details at… Bing or Google: Clemson RESOLVE
3
School of Computing Clemson University Math Reasoning at Clemson CP SC 215: Software Development Foundations (SDF) Intro to Java, Objects, and SE 2-3 weeks of contracts and reasoning CP SC 372: Software Engineering (SE) Classical SE topics 4-5 weeks of contracts and reasoning
4
School of Computing Clemson University SDF Course Reasoning Example Assume |S| /= 0 and S = S0; S.Push(S.Pop()); Confirm S = S0;
5
School of Computing Clemson University Math Modeling: IntStack Contract Suppose IntStack is an interface uses Integer_Theory, String_Theory; Think of stacks of Integers as “math strings” of integers this: Str(Z); Specification of Constructor Initialization ensures this = empty_string; Exercises: Specification of other Stack operations
6
School of Computing Clemson University Specification of IntStack Interface Operation push (int x); updates this; restores x; ensures this = o #this; int Operation pop (); updates this; requires this /= empty_string; ensures #this = o this; bool Operation is_empty(); preserves this; ensures result of is_empty = (this = empty_string);
7
School of Computing Clemson University Contract specifications Requirements and guarantees Requires clauses are preconditions Ensures clauses are postconditions Who is responsible for requires clauses? Client (i.e., caller) Implementer Neither Both Consequences
8
School of Computing Clemson University Some more details… Henderson & Sitaraman, “Mathematical reasoning at the Crossroads,” ACM Inroads Magazine, March 2012 issue. Joe Hollingsworth YouTube “reasoning table” videos Cook, et al., ITiCSE 2012 Procs. www.cs.clemson.edu/group/resolve
9
School of Computing Clemson University SE Course Highlights Covers classical topics, such as process models, requirements analysis, design with UML, etc. About a third of the course is devoted to mathematical contracts and reasoning Component-based development project with formal contracts using RESOLVE Reasoning about the correctness of a subset of the components formally Use of the Web IDE for experimentation
10
School of Computing Clemson University Example Projects Develop alternative implementations of Queue_Template, satisfying given internal contracts (e.g., rep. invariants) a circular array realization reusing a sequence component Develop an implementation-independent Queue searching capability and reason about its correctness formally Recursion Iteration
11
School of Computing Clemson University Some more details… Cook, et al., ICSE 2012 Procs. Cook, Harton, and Smith, YouTube “Clemson RESOLVE” video RESOLVE is a sourceforge project with MIT license www.cs.clemson.edu/group/resolve www.cs.clemson.edu/group/resolve
12
School of Computing Clemson University Workshop invitation NSF-funded SIGCSE Workshop #27 on Making Math Reasoning Fun tonight at 306 C at 7P!
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.