Mathematical Reasoning in Software Engineering Education. Peter B. Henderson Butler University
|
|
- Lauren Lynch
- 8 years ago
- Views:
Transcription
1 Mathematical Reasoning in Software Engineering Education Peter B. Henderson Butler University Introduction Engineering is a bridge between science and mathematics, and the technological needs of mankind. Engineering disciplines are fundamentally mathematical and problem solving based. Traditional engineering disciplines, such as chemical, civil, electrical and mechanical, rely heavily upon continuous rather than discrete mathematical foundations. Software engineering is an emerging discipline that applies mathematical and computer science principles to the development and maintenance of software systems. It relies primarily upon principles of discrete mathematics, especially logic. What role does mathematics play in software engineering? Consider the following two statements. Software practitioners do not need or use mathematics. Software practitioners do need to think logically and precisely. An apparent contradiction since the reasoning underlying software engineering and mathematics are similar [4]. Perhaps when a software practitioner says, I don t use mathematics this really means I don t explicitly use mathematics. Practicing engineers don t explicitly use calculus on a daily basis, but they do implicitly use mathematical reasoning all the time. Ask traditional engineers if calculus should be eliminated from undergraduate engineering curricula, and the answer would be a resounding no. There have been arguments by practicing software engineers that mathematics is not that important in software engineering education since they don t use it explicitly [5]. But which mathematics, continuous or discrete? The role of discrete mathematics and logic in software engineering is not well defined or understood by either academics or practitioners. This will change as the discipline matures, and academics and practitioners work together to develop its role - similar to the role continuous mathematics plays in traditional engineering disciplines. Differences and Similarities Between Traditional and Software Engineering Articles have been written attempting to describe the similarities and differences between traditional engineering disciplines and software engineering [8]. One of the major differences is that traditional engineers construct real artifacts and software engineers construct non-real (i.e., abstract) artifacts. The foundations of traditional engineering disciplines are mature physical sciences and continuous mathematics, whereas those of software engineering are more immature abstract computer science and discrete mathematics. In physical engineering, two main concerns for a product are cost of production and reliability measured by time to failure. In software engineering, two main concerns are cost of development and reliability measured by the number of errors per thousand lines of source code. Both disciplines require maintenance, but in different ways.
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.
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,
More informationIntroducing 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
More informationAbstraction 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
More informationMATHEMATICS 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
More informationAutomated 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
More informationIntegration 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
More informationSpecification 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.
More informationSoftware 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
More informationStructure 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
More informationProfessional 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
More informationWHAT 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
More informationA 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
More informationRigorous 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
More information(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
More informationVerification 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
More informationStructure 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
More informationEastern 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
More informationVDM 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,
More informationHow To Teach Software Engineering
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
More informationIntegrating 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,
More informationTEACHING MODEL CHECKING TO UNDERGRADUATES
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
More informationUniversity 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
More informationModel 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
More informationSUBJECT-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
More informationProbability 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
More informationA 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
More informationWhat 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
More informationComponent 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
More informationADVANCED 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
More informationmodel-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
More informationApplied 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
More informationThe 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
More informationExecution 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
More informationDatavetenskapligt 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
More informationA 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
More informationJos 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
More informationWriting 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:
More informationWOLLONGONG 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
More informationSchool 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
More information[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
More informationA 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
More informationIntroduction 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
More informationQuotes 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
More informationOverview. 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
More informationFACTORING 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
More informationCOMPUTER 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
More informationLinear 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
More informationFormally 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
More informationSoftware 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
More informationTHE 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
More informationHANDBOOK 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
More informationVerifying 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)
More informationCOURSE 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.
More informationEastern 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
More informationTheory 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,
More informationEastern 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
More informationComparison 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
More informationDesign 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
More informationUsing 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
More informationMaster 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
More informationDOVER-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)
More informationNew 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;
More informationComputation 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
More informationOpportunities 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
More informationSUBJECT-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
More informationCore 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
More informationVerifying 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
More informationTeaching 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
More informationConstructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers
Constructing Contracts: Making Discrete Mathematics Relevant to Beginning Programmers TIMOTHY S. GEGG-HARRISON Winona State University Although computer scientists understand the importance of discrete
More informationEngineering: Electrical Engineering
Engineering: Electrical Engineering CRAFTY Curriculum Foundations Project Clemson University, May 4 7, 2000 Ben Oni, Report Editor Kenneth Roby and Susan Ganter, Workshop Organizers Summary This report
More informationA demonstration of Numbas, an assessment system for mathematical disciplines
A demonstration of Numbas, an assessment system for mathematical disciplines Christian Perfect Newcastle University, Newcastle upon Tyne, UK christian.perfect@ncl.ac.uk Abstract. Numbas is a free and open-source
More informationA 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...
More informationCurriculum Map. Discipline: Computer Science Course: C++
Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code
More informationProgramming Languages
Programming Languages Programming languages bridge the gap between people and machines; for that matter, they also bridge the gap among people who would like to share algorithms in a way that immediately
More informationKeywords 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
More informationHow To Be A Mathematically Proficient Person
REPRODUCIBLE Figure 4.4: Evaluation Tool for Assessment Instrument Quality Assessment indicators Description of Level 1 of the Indicator Are Not Present Limited of This Indicator Are Present Substantially
More informationWESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math
Textbook Correlation WESTMORELAND COUNTY PUBLIC SCHOOLS 2011 2012 Integrated Instructional Pacing Guide and Checklist Computer Math Following Directions Unit FIRST QUARTER AND SECOND QUARTER Logic Unit
More informationComputer Science Information Sheet for entry in 2016. What is Computer Science?
Computer Science Information Sheet for entry in 2016 What is Computer Science? Computer Science is about understanding computer systems and networks at a deep level. Computers and the programs they run
More informationSTUDENT OUTCOMES ASSESSMENT PLAN (SOAP)
MS PROGRAM IN C OMPUTER SCIENCE DEPARTMENT OF C OMPUTER SCIENCE College of Science and Mathematics STUDENT OUTCOMES ASSESSMENT PLAN (SOAP) I. Mission Statement The mission of the Department of Computer
More information3. 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)
More informationQuestions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements
Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements
More informationSoftware Design. Software Design. Software design is the process that adds implementation details to the requirements.
Software Design Software Design Software design is the process that adds implementation details to the requirements. It produces a design specification that can be mapped onto a program. It may take several
More information2.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
More informationDegrees Major in Computer Science Minor in Computer Science Major in Software Engineering
LT400, Independent Study: Directed reading registering. (U)(1). LT401, Independent Study: Directed reading registering. (U)(2). LT402, Independent Study: Directed reading registering. (U)(3). LT499, Honors
More informationOntological Representations of Software Patterns
Ontological Representations of Software Patterns Jean-Marc Rosengard and Marian F. Ursu University of London http://w2.syronex.com/jmr/ Abstract. This paper 1 is based on and advocates the trend in software
More informationC. Wohlin, "Managing Software Quality through Incremental Development and Certification", In Building Quality into Software, pp. 187-202, edited by
C. Wohlin, "Managing Software Quality through Incremental Development and Certification", In Building Quality into Software, pp. 187-202, edited by M. Ross, C. A. Brebbia, G. Staples and J. Stapleton,
More information3 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
More informationSoftware Verification and Testing. Lecture Notes: Temporal Logics
Software Verification and Testing Lecture Notes: Temporal Logics Motivation traditional programs (whether terminating or non-terminating) can be modelled as relations are analysed wrt their input/output
More informationA New MSc Curriculum in Computer Science and Mathematics at the University of Zagreb
A New MSc Curriculum in Computer Science and Mathematics at the University of Zagreb Robert Manger, Goranka Nogo, Mladen Vuković Department of Mathematics, University of Zagreb Bijenička cesta 30, 10000
More informationAn 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
More informationHigh School Algebra Reasoning with Equations and Inequalities Solve equations and inequalities in one variable.
Performance Assessment Task Quadratic (2009) Grade 9 The task challenges a student to demonstrate an understanding of quadratic functions in various forms. A student must make sense of the meaning of relations
More informationCalifornia State Polytechnic University. Department of Electrical and Computer Engineering ASSESSMENT PLAN. Spring, 2001 - 1 -
California State Polytechnic University Department of Electrical and Computer Engineering ASSESSMENT PLAN Spring, 2001-1 - Table of Contents 1. Introduction 3 2. Goals of assessment in ECE department 3
More informationImplementation of hybrid software architecture for Artificial Intelligence System
IJCSNS International Journal of Computer Science and Network Security, VOL.7 No.1, January 2007 35 Implementation of hybrid software architecture for Artificial Intelligence System B.Vinayagasundaram and
More informationOne 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,
More informationEðlisfræði 2, vor 2007
[ Assignment View ] [ Print ] Eðlisfræði 2, vor 2007 30. Inductance Assignment is due at 2:00am on Wednesday, March 14, 2007 Credit for problems submitted late will decrease to 0% after the deadline has
More informationCHAPTER 3. Methods of Proofs. 1. Logical Arguments and Formal Proofs
CHAPTER 3 Methods of Proofs 1. Logical Arguments and Formal Proofs 1.1. Basic Terminology. An axiom is a statement that is given to be true. A rule of inference is a logical rule that is used to deduce
More informationHow To Improve Software Quality
Software Qualities Quality Assurance Maintainer Go Documentation Readable Ce Go Design Functionality Ease of use Ease of learning User Reliability Correctness Efficiency Low Cost Portability Increased
More informationFrom Workflow Design Patterns to Logical Specifications
AUTOMATYKA/ AUTOMATICS 2013 Vol. 17 No. 1 http://dx.doi.org/10.7494/automat.2013.17.1.59 Rados³aw Klimek* From Workflow Design Patterns to Logical Specifications 1. Introduction Formal methods in software
More informationSYLLABUSES 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
More information