Mathematical Reasoning in Software Engineering Education. Peter B. Henderson Butler University

Save this PDF as:

Size: px
Start display at page:

Download "Mathematical Reasoning in Software Engineering Education. Peter B. Henderson Butler University"

Transcription

2 What are the similarities? Excluding concerns about project cost, management, personnel, etc. perhaps the most relevant is modeling. All engineering disciplines require developing and analyzing models of the desired artifact. However, the methods, tools and degree of precision differ between traditional and software engineering. Abstract modeling and analysis is mathematical. It is very mature in traditional engineering and very slowly maturing in software engineering. An example of using mathematical reasoning in both traditional and software engineering will be informative. In electrical engineering consider a resistor-capacitor (RC) circuit. The voltage decay as a function of time ( t ) is specified by the function V(t) = Vo e (-t/rc), where R is the resistance, C the capacitance and Vo the initial capacitor voltage. After taking foundational calculus and differential equations, electrical engineering students take their first electrical circuits course. Here, they develop a mathematical model of the behavior of a RC circuit using differential equations, and solve these to derive the function above. Mathematics based reasoning is used to derive and understand foundational concepts. Iteration invariants are a foundational concept few computer science or software engineering graduates understand, appreciate or can use effectively. Every iteration has a predicate I( ), the iteration/loop invariant, that captures the underlying meaning of the iteration (e.g., sum values in a list, search a tree structure, compute the tax due by all taxpayers, etc.). Mathematical logic can be used to argue that this predicate satisfies logical constraints as illustrated below for the while-do iteration ({. } represents logical assertions) : { pre-condition } Initialization code { I( ) is true } while C( ) is true do { I( ) and C( ) are true } < code for body of iteration > { I( ) is true } { I( ) and not C( ) are true } fi { post-condition } Upon termination (another mathematical issue), { I( ) and not C( ) are true } must logically imply ( fi ) the desired post-condition. Software engineering students can learn to use mathematical reasoning to derive, understand and debug software systems. With sufficient practice, the underlying mathematical concepts become intrinsic to the thought processes, supporting rather than hindering thinking. Why is Mathematics Important for Practicing Software Engineers? Below are some key reasons: 1. Software is abstract. 2. Notations, symbols, abstractions, precision are features common to both mathematics and software engineering.

3 3. Mathematics is requisite for modeling software systems. 4. Many application domains (engineering, science, economics, etc.) are mathematically based. 5. Mathematical reasoning about software systems is essential. 1. Software is abstract: Constructing non-real (abstract) artifacts requires abstract reasoning. What endeavor of mankind has been developed to deal with abstraction? Mathematics!! Indeed, a software system is simply a mathematical model of some process or desired computation. Mathematics provides one tool for reasoning about software systems, and is the only tool available to the practitioner for rigorous reasoning and analysis. 2. Notations, symbols, abstractions, precision: y = ax + b is familiar from algebra, count == 0 from programming. Both use notations, symbols and are precise knowing the types of the data and semantics of the operations, both of which are specified mathematically. Learning a formal notation is no harder than learning a programming language. Indeed, it is often easier since the syntax and semantics are cleaner. Programming appeals to our process/imperative oriented minds and programming tools breath life into programs. Mathematics tends to be declarative and static, although tools such as Maple, Mathematica and Axiom help to mitigate this perception. 3. Modeling software systems: A model, even a mental one, must be created before beginning construction of any artifact. Much software development is like art - an initial vision slowly takes form. Planned evolution is not considered, and maintenance issues are ignored. This may be acceptable for some projects, but with software projects the more you know and understand up front, the better. Modeling is one vehicle for achieving this, and mathematics is an important tool for building, checking, analyzing and experimenting with models [2]. 4. Application Domains: Software practitioners need mathematics to communicate effectively with clients and colleagues who are engineers, scientists, mathematicians, statisticians, actuaries, economists, etc. Mathematics is pervasive and a universal language for communication. 5. Mathematical Reasoning: One definition of mathematical reasoning is: Applying mathematical techniques, concepts and processes, either explicitly or implicitly, in the solution of problems -- in other words, mathematical modes of thought that help us to solve problems in any domain [6]. In the most general interpretation, every problem solving activity is an application of mathematical reasoning. For example, consider the benefits of exercises that require students to translate English statements to propositional or predicate logic form. These modeling exercises help students to be more precise and inquisitive about the interpretation of English statements. When a client or colleague states A or B do they mean inclusive or or exclusive or? Or when they say for all do they really mean universal quantification? What is the intended meaning when this statement is vacuous?

4 What Mathematics is Important for Practicing Software Engineers? As computer science and software engineering mature, educational foundations are more easily identified. Computing Curriculum 2001 requires discrete mathematics in its core and recommends that it be taken early in the undergraduate curriculum [3]. The current ACM/IEEE undergraduate software engineering curriculum effort has adopted and extended this foundational model [9]. The topics for a two course mathematical foundations core are listed below (here E = Essential, D = Desirable, and O = Optional): Functions, Relations and Sets (E) Basic Logic (propositional and predicate) (E) Proof Techniques (direct, contradiction, inductive) (E) Basic Counting (E) Graphs and Trees (E) Discrete Probability (E) Finite State Machines, regular expressions (E) Grammars (E) Algorithm Analysis (E) Number Theory (D) Algebraic Structures (O) Other complementary foundational core material includes: 1. Abstraction a) Generalization b) Levels of Abstraction and Viewpoints c) Data types, class abstractions, generics/templates d) Composition 2. Modeling a) Principles of Modeling b) Pre & Post conditions, invariants c) Mathematical models and specification languages (Z, etc.) d) Tools for modeling and model validation e) Modeling/design languages (UML, OOD, functional, etc.) f) Syntax vs Semantics g) Explicitness (make no assumptions, or state all assumptions) Although calculus is not explicitly in the core, it is highly recommended since it enhances mathematical maturity, provides a good contrast with discrete mathematics concepts, and is used by many client and application disciplines. Other recommended mathematical courses include probability and statistics, and linear algebra. Advanced mathematical courses such as graph theory, combinatorics, theory of computing, probability theory, operations research, algebra, etc. might be required or elective courses depending upon the goals of the program and the individual student.

5 There are currently a number of mathematically oriented software engineering courses including ones with titles like, Formal specifications, Formal methods, Mathematically rigorous software design, Software verification and validation, Software models and model checking, etc. In time, it is expected that the word formal will disappear as the discipline matures. The word is rarely used in traditional engineering where formal approaches are the norm. Specific material will vary between programs. However, an important goal is to ensure that foundational mathematical concepts are used and reinforced in computer science and software engineering courses, in the same way that continuous mathematics is used and reinforced in traditional engineering courses. Achieving this will require time, dedication and rethinking the current software engineering curricula. How can Mathematics be Used? The article Why Math? in this issue illustrates several example applications of mathematics in computer science. A more detailed example of mathematical reasoning, based upon iteration invariants is presented below. Humans tend to apply familiar patterns of thought when solving problems. This works well for most in-the-box problems. Consider the following simple linear search problem: Find the location of the first instance of a specified item in a list of items. The specified item is known to be in the list. Develop an algorithm for this problem. Think about the following questions ones we hope our students would ask themselves. How many items are in the list? Can the list be empty? What happens if the specified item appears more than once? What is meant by first instance? By location? Knowing the answers to these questions and the given problem information one can formulate representative pre and post conditions - required to ensure the problem is well defined. Most graduating students would love to see such a question on a comprehensive exit exam 1. Applying a familiar pattern, or template, leads to a few lines of code simple. But do students really understand, or is this an example of rote learning? Now consider an extension of this problem, binary search. Identify the pre and post conditions, apply a somewhat fuzzier familiar pattern, and compose the algorithm. Jon Bentley used this problem with professional programmers - approximately 90% got it wrong [1]. Returning to the linear search problem, let s consider an alternative solution strategy based on the foundational concept of iteration invariants. First, what is the post condition? It can be formally specified using predicate logic, but for this discussion English will be used. The desired item = list of items [ location ] and the desired item is not found in the list before location (i.e., for all locations loc = 1, 2, 3,, location-1, desired item list of items [ loc ] ) 2. The latter leads to the iteration invariant, the desired item has not been 1 Most colleges and universities don t have such exams. 2 Start counting a 1, not 0 as in C, C++, Java.

6 found yet (i.e., for all locations loc = 1, 2, 3,, current_location-1, desired item list of items [ loc ] ) as illustrated pictorially in Figure 1. It can be established by iterative comparisons starting from location 1, then 2, etc....??...? _ current_location Figure 1 Start the iteration to ensure the initial invariant is valid, keep the loop iterating to ensure the invariant remains valid, and ensure it is valid at the end since it is necessary to imply the desired post condition. See Figure 2 where the predicate invariant( current_location ) is for all locations loc = 1, 2, 3,, current_location-1, desired item list of items [ loc ]. Also, note that this invariant is vacuously true prior to entering the iteration, as is often the case - a reason why students should understand this fundamental mathematical logic concept. Feel free to complete the algorithm using the red stuff to derive condition C( ) and <body of the iteration>. { there exists location loc such that desired item = list of items [ loc ] } current_location fl 1 { invariant( current_location ) } while C( ) do { invariant( current_location ) and C( current_location ) } <body of the iteration> { invariant( current_location ) } { invariant( current_location ) and not C( current_location ) } fi { invariant( current_location ) and desired item = list of items( current_location ) } Figure 2 One may argue that all this red stuff gets in the way. Perhaps, but the red stuff mimics the underlying reasoning our mind uses. It has simply been made explicit here. This is the type of reasoning, from first principles, software engineering students should be able to do. However, this does not mean they must use it all the time. It is a tool available when needed. For example, when a derived software system must be correct, or when understanding or debugging a software system. What is the iteration invariant for binary search? Intuitively, that the location of the desired item is constrained between two other locations low and high that the algorithm adjusts to converge on the potential location of the desired item (the desired item may not even be in the list). This intuitive invariant is only useful if it is used to derive a correct algorithm. What percentage of Bentley s programmers would have gotten it right if they reasoned more mathematically?

7 Conclusions Mathematical reasoning is intrinsic to both traditional engineering and software engineering; however, the foundational mathematics and its use differ. Traditional engineers primarily use continuous mathematics in a calculational mode for modeling, design and analysis (e.g., calculate load on a bridge component, compute wattage of a resistor, determine optimum weight of a car suspension system, etc.). Software engineers mainly use discrete mathematics and logic in a declarative mode for specifying and verifying system behaviors, and for analyzing system features. A resistor-capacitor circuit and iteration invariants were used to illustrate basic mathematical reasoning. Engineering is much deeper and broader. Engineers are systems architects who understand and can apply the foundational principles of the discipline. Software engineers must learn to use mathematics to construct, analyze and check models of software systems, to compose systems from components, to develop correct, efficient system components, to precisely specify the behavior of systems and components, and to be able to analyze, test and evaluate systems and components. They must understand the theoretical and practical principles of programming, and be able to learn and use new languages and tools. One area where traditional engineering has an advantage is tools for mathematical modeling, design, analysis and implementation. These include standard languages for communication (e.g, blue prints, schematic circuit diagrams, etc.) and computer-aided prototyping, design and analysis tools. Comparable tools at the software engineers disposal are slowly emerging as the discipline matures. Evidence supporting the importance of mathematics in software engineering practice is sparse. This naturally leads to claims that software practitioners don t need or use mathematics [5]. Recall the adage If {the only tool} you have {is} a hammer, everything looks like a nail. Surveys of current practices [7] simply reflect reality - many software engineers have not been educated to use discrete mathematics and logic as effective tools. Education is one key to ensuring future software engineers can use mathematics and logic as power{ful} tools for reasoning and thinking. Acknowledgements I thank David Hemmendinger, Doug Baldwin and Kim Bruce for suggestions that significantly improved the quality of this paper. References [1] Bentley, J., Programming Pearls: Writing Correct Programs, Communications of the ACM, Dec (26:12) pp [2] Clark, E.M., Grumberg, O., and Peled, D., Model Checking, MIT Press, 1999 [3] Computing Curricula 2001 : Computer Science Volume, Dec. 15, 2001.

8 [4] Devlin, K., The Real Reason Why Software Engineers Need Math, Communications of the ACM, Oct (44:10) pp [5] Glass, R.L., "A New Answer to 'How Important is Mathematics to the Software Practitioner'?", IEEE Software, November/December 2000, pp [6] Henderson, P., et. al., Striving for Mathematical Thinking, SIGCSE Bulletin - Inroads, Vol. 33, No. 4, Dec 2001, pp [7] Lethbridge, T., "What Knowledge is Important to a Software Professional?," IEEE Computer, (33:5), May 2000, pp [8] Parnas, D.L., "Software Engineering Programmes are not Computer Science Programmes", Annals of Software Engineering. Vol. 6, No. 1-4, 1998, pp [9] Sobel, A. (Editor), First Draft of the Software Engineering Education Knowledge (SEEK), Aug. 28, 2002.

REASONING IN MATHEMATICAL SOFTWARE ENGINEERING EDUCATION

BY PETER B. HENDERSON MATHEMATICAL REASONING IN SOFTWARE ENGINEERING EDUCATION Discrete mathematics, especially logic, plays an implicit role in software engineering similar to the role of continuous mathematics

COMPUTER SCIENCE STUDENTS NEED ADEQUATE MATHEMATICAL BACKGROUND

COMPUTER SCIENCE STUDENTS NEED ADEQUATE MATHEMATICAL BACKGROUND Hasmik GHARIBYAN PAULSON Computer Science Department, California Polytechnic State University, 1 Grand Avenue, San Luis Obispo, CA 93407,

Introducing Formal Methods. Software Engineering and Formal Methods

Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended

MATHEMATICS EDUCATION FOR SOFTWARE ENGINEERS: IT SHOULD BE RADICALLY DIFFERENT!

MATHEMATICS EDUCATION FOR SOFTWARE ENGINEERS: IT SHOULD BE RADICALLY DIFFERENT! Franz LICHTENBERGER Research Institute for Sybolic Computation (Risc-Linz) Johannes Kepler University and Department of Software

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT

Automated Theorem Proving - summary of lecture 1

Automated Theorem Proving - summary of lecture 1 1 Introduction Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement is a logical consequence of

Software Engineering Transfer Degree

www.capspace.org (01/17/2015) Software Engineering Transfer Degree This program of study is designed for associate-degree students intending to transfer into baccalaureate programs awarding software engineering

Specification and Analysis of Contracts Lecture 1 Introduction

Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider gerardo@ifi.uio.no http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.

Integration of Mathematical Concepts in the Computer Science, Information Technology and Management Information Science Curriculum

Integration of Mathematical Concepts in the Computer Science, Information Technology and Management Information Science Curriculum Donald Heier, Kathryn Lemm, Mary Reed, Erik Sand Department of Computer

WHAT ARE MATHEMATICAL PROOFS AND WHY THEY ARE IMPORTANT?

WHAT ARE MATHEMATICAL PROOFS AND WHY THEY ARE IMPORTANT? introduction Many students seem to have trouble with the notion of a mathematical proof. People that come to a course like Math 216, who certainly

A Comparison of Computer Science and Software Engineering Programmes in English Universities

A Comparison of Computer Science and Software Engineering Programmes in English Universities Farid Meziane and Sunil Vadera School of Computing, Science and Engineering University of Salford, Salford M5

Rigorous Software Development CSCI-GA 3033-009

Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical

Professional Organization Checklist for the Computer Science Curriculum Updates. Association of Computing Machinery Computing Curricula 2008

Professional Organization Checklist for the Computer Science Curriculum Updates Association of Computing Machinery Computing Curricula 2008 The curriculum guidelines can be found in Appendix C of the report

Structure of Presentation. The Role of Programming in Informatics Curricula. Concepts of Informatics 2. Concepts of Informatics 1

The Role of Programming in Informatics Curricula A. J. Cowling Department of Computer Science University of Sheffield Structure of Presentation Introduction The problem, and the key concepts. Dimensions

(Refer Slide Time: 01:52)

Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This

Probability Using Dice

Using Dice One Page Overview By Robert B. Brown, The Ohio State University Topics: Levels:, Statistics Grades 5 8 Problem: What are the probabilities of rolling various sums with two dice? How can you

Verification of Imperative Programs in Theorema

Verification of Imperative Programs in Theorema Laura Ildikó Kovács, Nikolaj Popov, Tudor Jebelean 1 Research Institute for Symbolic Computation, Johannes Kepler University, A-4040 Linz, Austria Institute

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent

VDM vs. Programming Language Extensions or their Integration

VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,

Structure of Presentation. Stages in Teaching Formal Methods. Motivation (1) Motivation (2) The Scope of Formal Methods (1)

Stages in Teaching Formal Methods A. J. Cowling Structure of Presentation Introduction to Issues Motivation for this work. Analysis of the Role of Formal Methods Define their scope; Review their treatment

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011 Department Mission The Department of Computer Science in the College of Arts and Sciences

Fundamental Computer Science Concepts Sequence TCSU CSCI SEQ A

Fundamental Computer Science Concepts Sequence TCSU CSCI SEQ A A. Description Introduction to the discipline of computer science; covers the material traditionally found in courses that introduce problem

What Is School Mathematics?

What Is School Mathematics? Lisbon, Portugal January 30, 2010 H. Wu *I am grateful to Alexandra Alves-Rodrigues for her many contributions that helped shape this document. The German conductor Herbert

NODAL ANALYSIS. Circuits Nodal Analysis 1 M H Miller

NODAL ANALYSIS A branch of an electric circuit is a connection between two points in the circuit. In general a simple wire connection, i.e., a 'short-circuit', is not considered a branch since it is known

Component visualization methods for large legacy software in C/C++

Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University mcserep@caesar.elte.hu

Execution of A Requirement Model in Software Development

Execution of A Requirement Model in Software Development Wuwei Shen, Mohsen Guizani and Zijiang Yang Dept of Computer Science, Western Michigan University {wwshen,mguizani,zijiang}@cs.wmich.edu Kevin Compton

Integrating Formal Models into the Programming Languages Course

Integrating Formal Models into the Programming Languages Course Allen B. Tucker Robert E. Noonan Computer Science Department Computer Science Department Bowdoin College College of William and Mary Brunswick,

[Refer Slide Time: 05:10]

Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture

STUDIA UNIV. BABEŞ BOLYAI, INFORMATICA, Volume LV, Number 3, 2010 TEACHING MODEL CHECKING TO UNDERGRADUATES A.VESCAN AND M. FRENŢIU Abstract. The way program verification is taught in our faculty is firstly

Model Checking: An Introduction

Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI

Absolute Value of Reasoning

About Illustrations: Illustrations of the Standards for Mathematical Practice (SMP) consist of several pieces, including a mathematics task, student dialogue, mathematical overview, teacher reflection

A Reasoning Concept Inventory for Computer Science

A Reasoning Concept Inventory for Computer Science Joan Krone, Joseph E. Hollingsworth, Murali Sitaraman, and Jason O. Hallstrom Technical Report RSRG-09-01 School of Computing 100 McAdams Clemson University

SUBJECT-SPECIFIC CRITERIA

SUBJECT-SPECIFIC CRITERIA Relating to the accreditation of Bachelor s and Master s degree programmes in the field of mathematics (09 December 2011) The following specifications complement the ASIIN General

PRACTICE BOOK COMPUTER SCIENCE TEST. Graduate Record Examinations. This practice book contains. Become familiar with. Visit GRE Online at www.gre.

This book is provided FREE with test registration by the Graduate Record Examinations Board. Graduate Record Examinations This practice book contains one actual full-length GRE Computer Science Test test-taking

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science Program Schedule CTech Computer Science Credits CS101 Computer Science I 3 MATH100 Foundations of Mathematics and

model-driven development

focus model-driven development What Models Mean Ed Seidewitz, InteliData Technologies If today s software developers use models at all, they use them mostly as simple sketches of design ideas, often discarding

Software engineering licensing bodies, universities

COVER FEATURE What Knowledge Is Important to a Software Professional? Efforts to develop licensing requirements, curricula, or training programs for software professionals should consider the experience

Applied Mathematics and Mathematical Modeling

Applied Mathematics and Mathematical Modeling Joseph Malkevitch, York College (CUNY), Chair Ricardo Cortez, Tulane University Michael A. Jones, Mathematical Reviews Michael O Neill, Claremont McKenna College

The Role of Modelling in Teaching Formal Methods for Software Engineering

The Role of Modelling in Teaching Formal Methods for Software Engineering A. J. Cowling Department of Computer Science University of Sheffield Sheffield, England A.Cowling@dcs.shef.ac.uk Abstract. This

FACTORING POLYNOMIALS IN THE RING OF FORMAL POWER SERIES OVER Z

FACTORING POLYNOMIALS IN THE RING OF FORMAL POWER SERIES OVER Z DANIEL BIRMAJER, JUAN B GIL, AND MICHAEL WEINER Abstract We consider polynomials with integer coefficients and discuss their factorization

Writing in the Computer Science Major

Writing in the Computer Science Major Table of Contents Introduction... 2 Statement of Purpose... 2 Revision History... 2 Writing Tasks in Computer Science... 3 Documentation... 3 Planning to Program:

2. Methods of Proof Types of Proofs. Suppose we wish to prove an implication p q. Here are some strategies we have available to try.

2. METHODS OF PROOF 69 2. Methods of Proof 2.1. Types of Proofs. Suppose we wish to prove an implication p q. Here are some strategies we have available to try. Trivial Proof: If we know q is true then

Digital Logic Design

Digital Logic Design: An Embedded Systems Approach Using VHDL Chapter 1 Introduction and Methodology Portions of this work are from the book, Digital Logic Design: An Embedded Systems Approach Using VHDL,

A GENERAL CURRICULUM IN MATHEMATICS FOR COLLEGES W. L. DUREN, JR., Chairmnan, CUPM 1. A report to the Association. The Committee on the Undergraduate

A GENERAL CURRICULUM IN MATHEMATICS FOR COLLEGES W. L. DUREN, JR., Chairmnan, CUPM 1. A report to the Association. The Committee on the Undergraduate Program in Mathematics (CUPM) hereby presents to the

Jos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl

Domain Specific Languages for Business Users Jos Warmer, Independent jos.warmer@openmodeling.nl www.openmodeling.nl Sheet 2 Background Experience Business DSLs Insurance Product Modeling (structure) Pattern

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

Datavetenskapligt Program (kandidat) Computer Science Programme (master) Wolfgang Ahrendt Director Datavetenskap (BSc), Computer Science (MSc) D&IT Göteborg University, 30/01/2009 Part I D&IT: Computer

Formally speaking: How to apply OCL

Page 1 of 6 Copyright IBM Corporation 2004 http://www-106.ibm.com/developerworks/rational/library/5390.html Search for: within All of dw Use + - ( ) " " Search help IBM home Products & services Support

THE MATHEMATICS EDUCATION FOR THE ENGINEERING STUDENTS OF 21ST CENTURY

THE MATHEMATICS EDUCATION FOR THE ENGINEERING STUDENTS OF 21ST CENTURY Figen Uysal Bilecik University Faculty of Science and Letter Mathematics Department figen.uysal@bilecik.edu.tr Abstract: Engineering

School of Engineering Department of Electrical and Computer Engineering

1 School of Engineering Department of Electrical and Computer Engineering 332:223 Principles of Electrical Engineering I Laboratory Experiment #4 Title: Operational Amplifiers 1 Introduction Objectives

WOLLONGONG COLLEGE AUSTRALIA. Diploma in Information Technology

First Name: Family Name: Student Number: Class/Tutorial: WOLLONGONG COLLEGE AUSTRALIA A College of the University of Wollongong Diploma in Information Technology Final Examination Spring Session 2008 WUCT121

Overview. Essential Questions. Precalculus, Quarter 4, Unit 4.5 Build Arithmetic and Geometric Sequences and Series

Sequences and Series Overview Number of instruction days: 4 6 (1 day = 53 minutes) Content to Be Learned Write arithmetic and geometric sequences both recursively and with an explicit formula, use them

3. Predicates and Quantifiers

3. PREDICATES AND QUANTIFIERS 45 3. Predicates and Quantifiers 3.1. Predicates and Quantifiers. Definition 3.1.1. A predicate or propositional function is a description of the property (or properties)

HANDBOOK FOR THE APPLIED AND COMPUTATIONAL MATHEMATICS OPTION. Department of Mathematics Virginia Polytechnic Institute & State University

HANDBOOK FOR THE APPLIED AND COMPUTATIONAL MATHEMATICS OPTION Department of Mathematics Virginia Polytechnic Institute & State University Revised June 2013 2 THE APPLIED AND COMPUTATIONAL MATHEMATICS OPTION

Introduction to Formal Methods. Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm

Introduction to Formal Methods Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm Outline Introduction Formal Specification Formal Verification Model Checking Theorem Proving Introduction Good papers to

Department of Electrical Engineering and Computer Sciences University of California, Berkeley. First-Order RC and RL Transient Circuits

Electrical Engineering 42/100 Summer 2012 Department of Electrical Engineering and Computer Sciences University of California, Berkeley First-Order RC and RL Transient Circuits When we studied resistive

A Comparison of System Dynamics (SD) and Discrete Event Simulation (DES) Al Sweetser Overview.

A Comparison of System Dynamics (SD) and Discrete Event Simulation (DES) Al Sweetser Andersen Consultng 1600 K Street, N.W., Washington, DC 20006-2873 (202) 862-8080 (voice), (202) 785-4689 (fax) albert.sweetser@ac.com

Quotes from Object-Oriented Software Construction

Quotes from Object-Oriented Software Construction Bertrand Meyer Prentice-Hall, 1988 Preface, p. xiv We study the object-oriented approach as a set of principles, methods and tools which can be instrumental

Theory of Automated Reasoning An Introduction. Antti-Juhani Kaijanaho

Theory of Automated Reasoning An Introduction Antti-Juhani Kaijanaho Intended as compulsory reading for the Spring 2004 course on Automated Reasononing at Department of Mathematical Information Technology,

An Innocent Investigation

An Innocent Investigation D. Joyce, Clark University January 2006 The beginning. Have you ever wondered why every number is either even or odd? I don t mean to ask if you ever wondered whether every number

COURSE TITLE COURSE DESCRIPTION

COURSE TITLE COURSE DESCRIPTION CS-00X COMPUTING EXIT INTERVIEW All graduating students are required to meet with their department chairperson/program director to finalize requirements for degree completion.

The Foundations: Logic and Proofs. Chapter 1, Part III: Proofs

The Foundations: Logic and Proofs Chapter 1, Part III: Proofs Rules of Inference Section 1.6 Section Summary Valid Arguments Inference Rules for Propositional Logic Using Rules of Inference to Build Arguments

Toward Model-Based Verification of Adaptive Allocation Managers

Toward Model-Based Verification of Adaptive Allocation Managers William Leal, Frank Drews, Chang Liu, Lonnie Welch Ohio University { leal@cs.ohiou.edu, drews@ohiou.edu, changliu@cs.ohiou.edu, welch@ohio.edu

Design by Contract beyond class modelling

Design by Contract beyond class modelling Introduction Design by Contract (DbC) or Programming by Contract is an approach to designing software. It says that designers should define precise and verifiable

Computation Beyond Turing Machines

Computation Beyond Turing Machines Peter Wegner, Brown University Dina Goldin, U. of Connecticut 1. Turing s legacy Alan Turing was a brilliant mathematician who showed that computers could not completely

PA Common Core Standards Standards for Mathematical Practice Grade Level Emphasis*

Habits of Mind of a Productive Thinker Make sense of problems and persevere in solving them. Attend to precision. PA Common Core Standards The Pennsylvania Common Core Standards cannot be viewed and addressed

COMPUTER SCIENCE. Department of Mathematics & Computer Science

Department of Mathematics & Computer Science COMPUTER SCIENCE This document is meant as a planning guide only. Students are advised to consult with the Chair of the Department if they have specific questions

Software Specification and Testing

Software Specification and Testing Using UML and OCL Jonathan Milley Faculty of Engineering and Applied Science MUN St. John s, Newfoundland Email: jmilley@engr.mun.ca Dr. Dennis K. Peters Faculty of Engineering

Rules and Tips for Writing Mathematics Discrete Math

Rules and Tips for Writing Mathematics Discrete Math Adapted from: Writing in Mathematics by Annalisa Crannell Why Should You Have To Write Papers In A Math Class? For most of your life so far, the only

Linear Equations in One Variable

Linear Equations in One Variable MATH 101 College Algebra J. Robert Buchanan Department of Mathematics Summer 2012 Objectives In this section we will learn how to: Recognize and combine like terms. Solve

3. Mathematical Induction

3. MATHEMATICAL INDUCTION 83 3. Mathematical Induction 3.1. First Principle of Mathematical Induction. Let P (n) be a predicate with domain of discourse (over) the natural numbers N = {0, 1,,...}. If (1)

Taylor Polynomials and Taylor Series Math 126

Taylor Polynomials and Taylor Series Math 26 In many problems in science and engineering we have a function f(x) which is too complicated to answer the questions we d like to ask. In this chapter, we will

Verifying Specifications with Proof Scores in CafeOBJ

Verifying Specifications with Proof Scores in CafeOBJ FUTATSUGI, Kokichi 二 木 厚 吉 Chair of Language Design Graduate School of Information Science Japan Advanced Institute of Science and Technology (JAIST)

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent

Using Patterns and Composite Propositions to Automate the Generation of Complex LTL

University of Texas at El Paso DigitalCommons@UTEP Departmental Technical Reports (CS) Department of Computer Science 8-1-2007 Using Patterns and Composite Propositions to Automate the Generation of Complex

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent

Chapter II. Controlling Cars on a Bridge

Chapter II. Controlling Cars on a Bridge 1 Introduction The intent of this chapter is to introduce a complete example of a small system development. During this development, you will be made aware of the

2.2. Instantaneous Velocity

2.2. Instantaneous Velocity toc Assuming that your are not familiar with the technical aspects of this section, when you think about it, your knowledge of velocity is limited. In terms of your own mathematical

Comparison of Gaps in Mathematics in Engineering Curricula

Comparison of Gaps in Mathematics in Engineering Curricula Lecturer Department of Interdisciplinary Studies Faculty of Engineering, University of Ruhuna, Sri Lanka ABSTRACT Students entering the engineering

3 Extending the Refinement Calculus

Building BSP Programs Using the Refinement Calculus D.B. Skillicorn? Department of Computing and Information Science Queen s University, Kingston, Canada skill@qucis.queensu.ca Abstract. We extend the

Keywords Aspect-Oriented Modeling, Rule-based graph transformations, Aspect, pointcuts, crosscutting concerns.

Volume 4, Issue 5, May 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Functional and Non-Functional

New Tracks in B.S. in Mathematics

New Tracks in B.S. in Mathematics The University has approved the introduction of several tracks in the BS degree in Math. Starting Fall 2015, there will be a Comprehensive Track; an Applied Math Track;

SUBJECT-SPECIFIC CRITERIA

SUBJECT-SPECIFIC CRITERIA Relating to the accreditation of Bachelor s and Master s degree programmes in electrical engineering and information technology (09 December 2011) The following specifications

Master of Arts in Mathematics

Master of Arts in Mathematics Administrative Unit The program is administered by the Office of Graduate Studies and Research through the Faculty of Mathematics and Mathematics Education, Department of

DOVER-SHERBORN HIGH SCHOOL PROGRAM OF STUDIES

DOVER-SHERBORN HIGH SCHOOL PROGRAM OF STUDIES 2014-2015 Educational Technologies Intro to Computer Applications Computer Graphics Astronomy Web Design & Development Intro to Programming (Visual Basic)

Department of Computer Science and Computer Engineering Program Change Proposal. BS in Computer Engineering

Department of Computer Science and Computer Engineering Program Change Proposal BS in Computer Engineering Motivation: The motivation for the proposed changes to the BS in Computer Engineering is twofold.

SYLLABUSES FOR THE DEGREE OF BACHELOR OF ENGINEERING (BENG)

BEng-1 E30/812 SYLLABUSES FOR THE DEGREE OF BACHELOR OF ENGINEERING (BENG) General Engineering courses (applicable to candidates admitted in the academic year 2012-13 to the three-year curriculum) General

MATH 4330/5330, Fourier Analysis Section 11, The Discrete Fourier Transform

MATH 433/533, Fourier Analysis Section 11, The Discrete Fourier Transform Now, instead of considering functions defined on a continuous domain, like the interval [, 1) or the whole real line R, we wish

Opportunities in Computer Science

Opportunities in Computer Science Andrew Mertz William Slough Nancy Van Cleave Eastern Illinois University Department of Mathematics & Computer Science What is Computer Science? Computer science spans

One LAR Course Credits: 3. Page 4

Course Descriptions Year 1 30 credits Course Title: Calculus I Course Code: COS 101 This course introduces higher mathematics by examining the fundamental principles of calculus-- functions, graphs, limits,

Analysis of Dynamic Circuits in MATLAB

Transactions on Electrical Engineering, Vol. 4 (2015), No. 3 64 Analysis of Dynamic Circuits in MATLAB Iveta Tomčíková 1) 1) Technical University in Košice/Department of Theoretical and Industrial Electrical

Teaching HCI in SE Curriculum

Proceedings of the 4th WSEAS/IASME International Conference on Engineering Education, Agios Nikolaos, Crete Island, Greece, July 24-26, 2007 236 Teaching HCI in SE Curriculum KRISTINA MOROZ LAPIN, SAULIUS

Verifying Semantic of System Composition for an Aspect-Oriented Approach

2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach

CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Linda Shapiro Winter 2015

CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis Linda Shapiro Today Registration should be done. Homework 1 due 11:59 pm next Wednesday, January 14 Review math essential

SYLLABUSES FOR THE DEGREE OF BACHELOR OF ENGINEERING (BENG)

BEng-4 SYLLABUSES FOR THE DEGREE OF BACHELOR OF ENGINEERING (BENG) General Engineering courses (applicable to candidates admitted in the academic year 2010-2011 and thereafter) General Engineering courses

RC transients. EE 201 RC transient 1

RC transients Circuits having capacitors: At DC capacitor is an open circuit, like it s not there. Transient a circuit changes from one DC configuration to another DC configuration (a source value changes

The Classes P and NP

The Classes P and NP We now shift gears slightly and restrict our attention to the examination of two families of problems which are very important to computer scientists. These families constitute the

Core Curriculum to the Course:

Core Curriculum to the Course: Environmental Science Law Economy for Engineering Accounting for Engineering Production System Planning and Analysis Electric Circuits Logic Circuits Methods for Electric

A Concrete Introduction. to the Abstract Concepts. of Integers and Algebra using Algebra Tiles

A Concrete Introduction to the Abstract Concepts of Integers and Algebra using Algebra Tiles Table of Contents Introduction... 1 page Integers 1: Introduction to Integers... 3 2: Working with Algebra Tiles...