Jason Hallstrom (Clemson), Joan Krone (Denison), Joseph E. Hollingsworth (IU Southeast), and Murali Sitaraman(Clemson) This workshop is funded in part.

Slides:



Advertisements
Similar presentations
Copyright 2000 Cadence Design Systems. Permission is granted to reproduce without modification. Introduction An overview of formal methods for hardware.
Advertisements

This research is funded in part the U. S. National Science Foundation grant CCR DEET for Component-Based Software Murali Sitaraman, Durga P. Gandi.
DIScovery SciEnce through Computational Thinking (DISSECT) Enrico Pontelli.
Computer Science School of Computing Clemson University Introduction to Mathematical Reasoning Jason Hallstrom and Murali Sitaraman Clemson University.
Addressing the Challenges of Current Software. Questions to Address Why? What? Where? How?
ECOE 560 Design Methodologies and Tools for Software/Hardware Systems Spring 2004 Serdar Taşıran.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Standards Alignment A study of alignment between state standards and the ACM K-12 Curriculum.
This research has been funded in part by grants from the U. S. National Science Foundation for the past 20 years. Towards Verified Software: Research and.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Background information Formal verification methods based on theorem proving techniques and model­checking –to prove the absence of errors (in the formal.
Cyber Education Project Accreditation Committee November 2014.
(c) 2007 Mauro Pezzè & Michal Young Ch 7, slide 1 Symbolic Execution and Proof of Properties.
Educating Programmers: A Customer Perspective Alexander Stepanov A9.com Workshop on Quality Software: A Festschrift for Bjarne Stroustrup Texas A&M University,
© Copyright CSAB 2013 Future Directions for the Computing Accreditation Criteria Report from CAC and CSAB Joint Criteria Committee Gayle Yaverbaum Barbara.
CS 101 Course Summary December 5, Big Ideas Abstraction Problem solving Fundamentals of programming.
Describing Syntax and Semantics
Financial Engineering Club Career Path and Prep. Entry Level Career Paths Type 1: Research based Background: Physics, Electrical Engineering, Applied.
20 February Detailed Design Implementation. Software Engineering Elaborated Steps Concept Requirements Architecture Design Implementation Unit test Integration.
MCA –Software Engineering Kantipur City College. Topics include  Formal Methods Concept  Formal Specification Language Test plan creation Test-case.
Mathematics throughout the CS Curriculum Support by NSF #
Computer Science Education in Japan Bush, M. E. (2004). Computer science education in Japan. CACM, 47(8),
Do we need theoretical computer science in software engineering curriculum: an experience from Uni Novi Sad Bansko, August 28, 2013.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
Computer Science School of Computing Clemson University Discrete Math and Reasoning about Software Correctness Murali Sitaraman
Computer Science School of Computing Clemson University Specification and Reasoning in SE Projects Using a Web IDE Charles T. Cook (Clemson) Svetlana V.
Computer Science School of Computing Clemson University Mathematical Reasoning across the Curriculum Software Development Foundations and Software Engineering.
Nama : Jehan binti Jamian No.matrik : UK Discrete Mathematics Area of mathematics that deals with the study of discrete objects. Discusses languages.
Lecture 16 March 22, 2011 Formal Methods CS 315 Spring Adapted from slides provided by Jason Hallstrom and Murali Sitaraman (Clemson)
Introduction Ellen Walker CPSC 201 Data Structures Hiram College.
Chapter 1 Introduction Dr. Frank Lee. 1.1 Why Study Compiler? To write more efficient code in a high-level language To provide solid foundation in parsing.
Computer Science School of Computing Clemson University Introduction to Formal Specification Murali Sitaraman Clemson University.
Software Verification Academician V.P.Ivannikov, Director of ISPRAS Moscow, November 2008.
Lecture 17 March 24, 2011 Formal Methods 2 CS 315 Spring Adapted from slides provided by Jason Hallstrom and Murali Sitaraman (Clemson)
Computer Science and Engineering College of Engineering The Ohio State University Interfaces The credit for these slides goes to Professor Paul Sivilotti.
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
Computer Science School of Computing Clemson University Discrete Math and Reasoning about Software Correctness Joseph E. Hollingsworth
Copyright Jim Martin Emerging Scholars Computer Science Session Summer 2007 Dr. Jim Martin School of Computing Clemson University
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering Foundations.
Software Engineering in the Academy Bertrand Meyer IEEE Computer, May 2001.
Software Engineering Principles. SE Principles Principles are statements describing desirable properties of the product and process.
© Andrew IrelandDependable Systems Group Static Analysis and Program Proof Andrew Ireland School of Mathematical & Computer Sciences Heriot-Watt University.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
DISCRETE STRUCTURES CHE SUHANA CHE WIL UK WHAT IS DISCRETE MATHEMATICS? STRUCTURES? Discrete Mathematics is mathematics that deal with discrete.
Iconic Programmer A Visualization Tool for Teaching Concepts without Context.
RESOLVE VERIFICATION: A New Perspective Joan Krone William F. Ogden.
Computer Science School of Computing Clemson University Mathematical Reasoning with Objects.
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
Impact of the New ASA Undergraduate Curriculum Guidelines on the Hiring of Future Undergraduates Robert Vierkant Mayo Clinic, Rochester, MN.
Course: Software Engineering – Design I IntroductionSlide Number 1 What is a specification Description of a (computer) system, which:  is precise;  defines.
Integrating Math Units and Proof Checking for Specification and Verification SAVCBS Workshop 2008 SIGSOFT 2008 / FSE 16 November 9th, 2008 Hampton Smith.
Introductory Lecture. What is Discrete Mathematics? Discrete mathematics is the part of mathematics devoted to the study of discrete (as opposed to continuous)
Course Overview Stephen M. Thebaut, Ph.D. University of Florida Software Engineering.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
CPSC 121: Models of Computation REVIEW. Course Learning Outcomes You should be able to: – model important problems so that they are easier to discuss,
Modular Alternatives to Testing
Software Engineering in the Academy
Ap computer science 2 AP COMPUTER SCIENCE A EXAM SPRING OF EVERY YEAR
Neeraj Mittal September 29, 2017
Software Engineering in the Academy
EECE 310 Software Engineering
Introduction to Components and Specifications Using RESOLVE
Logic: tool-based modeling and reasoning
Topics in Formal Reasoning for Cyber-Physical Systems
Mathematical Reasoning with Data Abstractions
Computing and Informatics Courses
Formal Methods Lecture 16 March 22, 2011 CS 315 Spring 2011
Computer Science Department
Presentation transcript:

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

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

Partners Alabama Clemson Cleveland State Denison Depauw IU Southeast Ramapo College Virginia Tech NVC Western Carolina 3

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

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 6

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

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

All Levels Collaborative Approach Pairs or small groups In class or homework 9

Collaborative Method Pairs or small groups With or without tools Each team presents their findings Collaboration both within teams and among teams 10

Selective Adaptation Pick and choose appropriate reasoning concepts and/or tools Faculty expertise Student background 11

12 One Example: Software Engineering Course Usual Topics Requirements analysis Design and specification Component-based implementation Quality assurance Formal Reasoning

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 Methods Collaborative learning Teams of 2 to 4 members Read specs Implement specs Verify implementations Build larger systems.

Using the Tools 15

Summary Importance of Reasoning across the Curriculum Tools to Support Reasoning Collaborative Pedagogy includes collaboration between students and between students and faculty 16

Some Work Binary search specifications Java C++ Any other language Are the algorithms correct? Do the implementations work? What’s the difference?