# Maar hoe moet het dan?

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Maar hoe moet het dan? Onderzoek naar feedback in interactieve leeromgevingen bij de Faculteit Informatica Johan Jeuring Met bijdragen van Alex Gerdes, Bastiaan Heeren, Josje Lodder, Harrie Passier, Sylvia Stuurman Open Universiteit Nederland Touwdag 2012, Amsterdam November 2012

2 Software technology for learning and teaching The software technology group has worked on interactive learning environments since 2005: The logic tutor Feedback in mathematical learning environments Ask-Elle: a programming tutor for Haskell

3 Demos!

4 Main ideas behind Ask-Elle A teacher specifies model solutions for an exercise, and possibly adapts the feedback Ask-Elle compares possibly partial student solutions against model solutions As long as a student follows a model solution, Ask-Elle can give hints

5 And what if a student makes an error, or takes a step that the tutor doesn t recognize? You have made a, possibly incorrect, step that does not follow the strategy.

6 And what if a student makes an error, or takes a step that the tutor doesn t recognize? You have made a, possibly incorrect, step that does not follow the strategy.

7 Our goals Increase the number of recognized good programs Report more errors, as precisely as possible

8 Report more errors, as precisely as possible Specify the properties a solution should satisfy Test the properties using QuickCheck Express the properties a solution should satisfy as a contract Use contract inference to infer contracts for user-defined functions Use contract checking to report property violations as precisely as possible

9 The problem Write a function that sorts a list sort :: Ord a => [a] -> [a] For example: Data.List> sort [1,2,1,3,2,4] [1,1,2,2,3,4]

10 Sorting: a model solution sort = foldr insert [ ] insert x [ ] = [x] insert x (y : ys) x y = x : y : ys otherwise = y : insert x ys

11 An error in sorting sort = foldr insert [ ] insert x [ ] = [x] insert x (y : ys) x y = y : x : ys otherwise = y : insert x ys

12 Sorting: a property propsort xs = isnondesc (sort xs) isnondesc (x : y : xs) = x y isnondesc (y : xs) isnondesc = True

13 Running QuickCheck main = do quickcheck propsort *Main> main *** Failed! Falsifiable (after...): [0,1] But where is the error?

14 Running QuickCheck main = do quickcheck propsort *Main> main *** Failed! Falsifiable (after...): [0,1] But where is the error?

15 Contracts... Contracts to the rescue.

16 A contracted sort sortc = assert ([true] { zs isnondesc zs }) (λxs sort xs)

17 Blaming blamesort = sortc 0 [0, 1] *** Exception: contract failed: the expression sort is to blame. But where is the error?

18 Blaming blamesort = sortc 0 [0, 1] *** Exception: contract failed: the expression sort is to blame. But where is the error?

19 A more precise location To get a more precise location for the error: replace all functions in the definition of sort by their contracted counterparts.

20 A contracted insert insertc = assert (true { xs isnondesc xs } { xs isnondesc xs }) (λx λxs insert x xs)

21 A contracted foldr foldrc ca cb = assert ((ca cb cb) cb [ca] cb) (λf λe λxs foldr (λa λb f 1 a 2 b) e xs)

22 Blaming II blamesort = sortc 0 [0, 1] *** Exception: contract failed: the expression insert is to blame.

23 But wait In the context of the tutor, we only know the contract for sort A student can implement sort in many different ways We want to infer the contracts for the components of a function

24 The inferring contracts problem: Given A well-typed program A contract for the top-level function determine the contracts for the components of the function.

25 range Write a function which enumerates all numbers contained in a given range. range :: Int Int [Int] For example, range 2 5 gives [2, 3, 4, 5]

26 Some solutions for range range 1 x y = if x y then [x] else x : range 1 (x + 1) y range 2 x y = if y x then [x] else x : range 2 (x + 1) y range 3 x y = if x y then x : range 3 (x + 1) y else [x] range 4 x y = if y x then x : range 4 (x + 1) y else [x] range 5 x y = if x y then x : range 5 (1 + x) y else [x] -- and the 3 variants range 6 x = λy if x y then [x] else x : range 6 (x + 1) y -- and the 7 variants range 7 = λx λy if x y then [x] else x : range 7 (x + 1) y -- and the 7 variants

27 A procedure for determining equality A procedure for determining whether or not two programs are equal is necessarily going to have some limitations But surely each pair of range programs can pass the test How can determine many of these equalities? What program transformations can I specify to steer this procedure?

28 I need a normal form! Remove syntactic sugar Normalization by Evaluation normalizes based on types, so a function of type a b c always has the form λx λy... Normal forms for integer expressions, boolean expressions, string expressions, taking into account algebraic properties of the operators Inlining? let duplicate x = [x, x] in concatmap duplicate concatmap (λx [x, x]) Fusion? map f. map g = map (f. g)

29 The functional programming normal form problem High-level: how can I determine equality of (functional) programs? What is a normal form of a program? What sequence of steps do I use for determining a normal form of a program? How can I influence the computation of a normal form of a program?

30 Conclusions Interesting problems remain to be solved for Ask-Elle: Inferring contracts Normal forms of programs More info: General information: Experiment on-line:

### arxiv: v1 [cs.cy] 14 Jul 2015

A pilot study of the use of LogEx, lessons learned Josje Lodder 1, Bastiaan Heeren 1, and Johan Jeuring 1,2 1 Faculty of Management, Science and Technology, Open University of the Netherlands, P.O.Box

### Formal Methods for Software Development

Formal Methods for Software Development Till Mossakowski, Lutz Schröder 20.10.2004 2 Overview of this Lecture MMISS Software Development and Formal Specification Overview of the course Scheinkriterien

FizzBuzzinHaskell by embeddingadsl Maciej Piróg Leuven Haskell User Group 24 May 2016 Players generally sit in a circle. The player designated to go first says the number 1, and each player thenceforth

ASK-ELLE: a Haskell Tutor Proefschrift ter verkrijging van de graad van doctor aan de Open Universiteit op gezag van de rector magnificus prof. mr. A. Oskamp ten overstaan van een door het College voor

### Advanced Functional Programming (9) Domain Specific Embedded Languages

Advanced Functional Programming (9) Domain Specific Embedded Languages Advanced Functional Programming (9) Domain Specific Embedded Languages, Universiteit Utrecht http://www.cs.uu.nl/groups/st/ February

### Discovering Counterexamples (and Proof Ingredients) for Knuth-like k-principles

Discovering Counterexamples (and Proof Ingredients) for Knuth-like 0-1-... -k-principles Moritz Fürneisen and Janis Voigtländer University of Bonn October 9th, 2012 Knuth s 0-1-Principle [Knuth 1973] Informally:

### 09336863931 : provid.ir

provid.ir 09336863931 : NET Architecture Core CSharp o Variable o Variable Scope o Type Inference o Namespaces o Preprocessor Directives Statements and Flow of Execution o If Statement o Switch Statement

### ONTOLOGY BASED FEEDBACK GENERATION IN DESIGN- ORIENTED E-LEARNING SYSTEMS

ONTOLOGY BASED FEEDBACK GENERATION IN DESIGN- ORIENTED E-LEARNING SYSTEMS Harrie Passier and Johan Jeuring Faculty of Computer Science, Open University of the Netherlands Valkenburgerweg 177, 6419 AT Heerlen,

### Testing and Tracing Lazy Functional Programs using QuickCheck and Hat

Testing and Tracing Lazy Functional Programs using QuickCheck and Hat Koen Claessen 1, Colin Runciman 2, Olaf Chitil 2, John Hughes 1, and Malcolm Wallace 2 1 Chalmers University of Technology, Sweden

### Computer Programming I & II*

Computer Programming I & II* Career Cluster Information Technology Course Code 10152 Prerequisite(s) Computer Applications, Introduction to Information Technology Careers (recommended), Computer Hardware

### UNIVERSITY OF LONDON (University College London) M.Sc. DEGREE 1998 COMPUTER SCIENCE D16: FUNCTIONAL PROGRAMMING. Answer THREE Questions.

UNIVERSITY OF LONDON (University College London) M.Sc. DEGREE 1998 COMPUTER SCIENCE D16: FUNCTIONAL PROGRAMMING Answer THREE Questions. The Use of Electronic Calculators: is NOT Permitted. -1- Answer Question

### Call Arity. Joachim Breitner. Abstract. 1. Introduction. Karlsruhe Institute of Technology breitner@kit.edu

Call Arity Joachim Breitner Karlsruhe Institute of Technology breitner@kit.edu Abstract Higher order combinators in functional programming languages can lead to code that would be considerably more efficient

### Anatomy of Programming Languages. William R. Cook

Anatomy of Programming Languages William R. Cook Copyright (C) 2013 2 Chapter 1 Preliminaries Preface What? This document is a series of notes about programming languages, originally written for students

### Center for Teacher Certification Austin Community College

TAKS Exit Exam 120 Problems to Success in Mathematics Tutors with Vision Project Center for Teacher Certification Austin Community College Abel L. Villarreal, mathematics teacher, learned long ago that

### DATA INPUT METHODS OBJECTIVE QUESTIONS

MODULE 7 DATA INPUT METHODS OBJECTIVE QUESTIONS There are 4 alternative answers to each question. One of them is correct. Pick the correct answer. Do not guess. A key is given at the end of the module

### Chapter 7: Functional Programming Languages

Chapter 7: Functional Programming Languages Aarne Ranta Slides for the book Implementing Programming Languages. An Introduction to Compilers and Interpreters, College Publications, 2012. Fun: a language

### [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

### Functional Programming Techniques for Philosophy and Linguistics Chris Barker and Jim Pryor, NASSLLI 2016 JP's Thursday Handout

Functional Programming Techniques for Philosophy and Linguistics Chris Barker and Jim Pryor, NASSLLI 2016 JP's Thursday Handout Remember Polymorphic Types? id : α. α α (we'll usually suppress prenex α

### Arithmetic Coding: Introduction

Data Compression Arithmetic coding Arithmetic Coding: Introduction Allows using fractional parts of bits!! Used in PPM, JPEG/MPEG (as option), Bzip More time costly than Huffman, but integer implementation

### Type Classes with Functional Dependencies

Appears in Proceedings of the 9th European Symposium on Programming, ESOP 2000, Berlin, Germany, March 2000, Springer-Verlag LNCS 1782. Type Classes with Functional Dependencies Mark P. Jones Department

### Welcome to Introduction to programming in Python

Welcome to Introduction to programming in Python Suffolk One, Ipswich, 4:30 to 6:00 Tuesday Jan 14, Jan 21, Jan 28, Feb 11 Welcome Fire exits Toilets Refreshments 1 Learning objectives of the course An

### Demo: Communicate! a serious game for communication skills

Demo: Communicate! a serious game for communication skills Johan Jeuring, Frans Grosfeld, Bastiaan Heeren, Michiel Hulsbergen, Richta IJntema, Vincent Jonker, Nicole Mastenbroek, Maarten van der Smagt,

### Programming with Scratch

Programming with Scratch Harvey Siy hsiy@unomaha.edu http://www.cs.unomaha.edu/~hsiy Outline Computational thinking Introduction to Scratch Short exercise A more complicated example Discussions 2 Computational

### Software Testing and Maintenance 1

Input Space Partitioning Introduction Equivalence Partitioning Boundary-Value Analysis Summary Software Testing and Maintenance 1 The Test Selection Problem The input domain of a program consists of all

### Functional Programming

FP 2005 1.1 3 Functional Programming WOLFRAM KAHL kahl@mcmaster.ca Department of Computing and Software McMaster University FP 2005 1.2 4 What Kinds of Programming Languages are There? Imperative telling

### The countdown problem

JFP 12 (6): 609 616, November 2002. c 2002 Cambridge University Press DOI: 10.1017/S0956796801004300 Printed in the United Kingdom 609 F U N C T I O N A L P E A R L The countdown problem GRAHAM HUTTON

### On every sheet please give your first name, last name, and matriculation number.

RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK 2 RWTH Aachen D-52056 Aachen GERMANY http://verify.rwth-aachen.de/ LuFG Informatik II Functional Programming Exam,

### Java Collections Framework

Java Collections Framework This article is part of Marcus Biel s free Java course focusing on clean code principles. In this piece, you will be given a high-level introduction of the Java Collections Framework

### N E W S A N D L E T T E R S

N E W S A N D L E T T E R S 73rd Annual William Lowell Putnam Mathematical Competition Editor s Note: Additional solutions will be printed in the Monthly later in the year. PROBLEMS A1. Let d 1, d,...,

### Semantics and Generative Grammar. Common Nouns and Adjectives in Predicate Position 1

Common Nouns and Adjectives in Predicate Position 1 (1) The Lexicon of Our System at Present a. Proper Names: [[ Barack ]] = Barack b. Intransitive Verbs: [[ smokes ]] = [ λx : x D e. IF x smokes THEN

### 2. Basic Relational Data Model

2. Basic Relational Data Model 2.1 Introduction Basic concepts of information models, their realisation in databases comprising data objects and object relationships, and their management by DBMS s that

### Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

### WIRIS quizzes web services Getting started with PHP and Java

WIRIS quizzes web services Getting started with PHP and Java Document Release: 1.3 2011 march, Maths for More www.wiris.com Summary This document provides client examples for PHP and Java. Contents WIRIS

### Formal Methods for Software Development

Formal Methods for Software Development Till Mossakowski, Lutz Schröder 03./08.11.2004 2 Monadic QuickCheck extension of QuickCheck for monadic (= imperative) programs specifications are equations between

Reverse, Flatten, and Zip More List Processing in Ocaml Theory of Programming Languages Computer Science Department Wellesley College Table of contents No More Fluff Flatten Reverse Zip Unzip Mapcons Subsets

### Relational Model CENG 351 1

Relational Model CENG 351 1 Relational Database: Definitions Relational database: a set of relations Relation: made up of 2 parts: Instance : a table, with rows and columns. #Rows = cardinality, #fields

### On every sheet please give your first name, last name, and matriculation number.

RHEINISCH- WESTFÄLISCHE TECHNISCHE HOCHSCHULE AACHEN LEHR- UND FORSCHUNGSGEBIET INFORMATIK 2 RWTH Aachen D-52056 Aachen GERMANY http://verify.rwth-aachen.de/ LuFG Informatik II Functional Programming Exam,

### Special Directions for this Test

1 Spring, 2013 Name: (Please do not write your id number!) COP 4020 Programming Languages I Test on Haskell and Functional Programming Special Directions for this Test This test has 7 questions and pages

### Relational Database Systems Part 01. Karine Reis Ferreira

Relational Database Systems Part 01 Karine Reis Ferreira karine@dpi.inpe.br Database System Database: is a collection of related data. represents some aspect of the real world is a logically coherent collection

### Improving type-error messages in functional languages

Improving type-error messages in Bastiaan Heeren Universiteit Utrecht January 5, 200 Contents Introduction Constraints Type inference rules Solving constraints Solving inconsistencies Future work Conclusion

### http://www.guido.be/intranet/enqueteoverview/tabid/152/ctl/eresults...

1 van 70 20/03/2014 11:55 EnqueteDescription 2 van 70 20/03/2014 11:55 3 van 70 20/03/2014 11:55 4 van 70 20/03/2014 11:55 5 van 70 20/03/2014 11:55 6 van 70 20/03/2014 11:55 7 van 70 20/03/2014 11:55

### Data and Its Structure. The Relational Data Model. Physical Data Level. Conceptual Data Level. Conceptual Data Level (con t)

Data and Its Structure The Relational Data Model Chapter 4 Data is actually stored as bits, but it is difficult to work with data at this level. It is convenient to view data at different levels of abstraction.

### + addition - subtraction and unary minus * multiplication / division mod modulo

Chapter 4 Basic types We examine in this chapter the Caml basic types. 4.1 Numbers Caml Light provides two numeric types: integers (type int) and floating-point numbers (type float). Integers are limited

### Cognitive Abilities Test Practice Activities. Teacher Guide. Form 7. Quantitative Tests. Level. Cog

Cognitive Abilities Test Practice Activities Teacher Guide Form 7 Quantitative Tests Level 9 Cog Test 4: Number Analogies, Level 9 Part 1: Overview of Number Analogies An analogy draws parallels between

### Programming in Haskell Homework Assignment 2

UNIZG FER, 2013/2014 Handed out: October 25, 2013. Due: October 31, 2013 at 17:00 Note: Define each function with the exact name and the type specified. You can (and in most cases you should) define each

### Bridging Formal Methods and Data Science

Bridging Formal Methods and Data Science Vijay Murali Rice University IEEE 2015 Slides courtesy of Swarat Chaudhuri Data Science / Data mining Algorithms and tools to extract knowledge or insights from

### 4. MATRICES Matrices

4. MATRICES 170 4. Matrices 4.1. Definitions. Definition 4.1.1. A matrix is a rectangular array of numbers. A matrix with m rows and n columns is said to have dimension m n and may be represented as follows:

### Going from Python to C

Going from Python to C Darin Brezeale December 8, 2011 Python is a high-level, interpreted language. C has many of the same types of programming constructs as in Python: arrays, loops, conditionals, functions,

### Number Factors. Number Factors Number of factors 1 1 1 16 1, 2, 4, 8, 16 5 2 1, 2 2 17 1, 17 2 3 1, 3 2 18 1, 2, 3, 6, 9, 18 6 4 1, 2, 4 3 19 1, 19 2

Factors This problem gives you the chance to: work with factors of numbers up to 30 A factor of a number divides into the number exactly. This table shows all the factors of most of the numbers up to 30.

### Algebraic Complexity Theory and Matrix Multiplication

Algebraic Complexity Theory and Matrix Multiplication [Handout for the Tutorial] François Le Gall Department of Computer Science Graduate School of Information Science and Technology The University of

### Deriving a Relationship from a Single Example

Deriving a Relationship from a Single Example Neil Mitchell ndmitchell@gmail.com Abstract Given an appropriate domain specific language (DSL), it is possible to describe the relationship between Haskell

### CSCE 110 Programming I Basics of Python: Variables, Expressions, and Input/Output

CSCE 110 Programming Basics of Python: Variables, Expressions, and nput/output Dr. Tiffani L. Williams Department of Computer Science and Engineering Texas A&M University Fall 2011 Python Python was developed

### Lecture 12: Abstract data types

Lecture 12: Abstract data types Algebras Abstract data types Encapsulation and information hiding Parameterization Algebras Definition Which kinds of data do we want to discuss? What can we do with it?

### Relational Databases

Relational Databases Jan Chomicki University at Buffalo Jan Chomicki () Relational databases 1 / 18 Relational data model Domain domain: predefined set of atomic values: integers, strings,... every attribute

### Introduction. Mathematics 41P Precalculus: First Semester

Precalculus: First Semester Precalculus is the course that bridges the gap between Algebra 2 and Calculus. A thorough understanding of algebra and trigonometry is essential to success in Calculus and other

### The Needle Programming Language

The Needle Programming Language The Needle Programming Language 1 What is Needle? Needle is an object-oriented functional programming language with a multimethod-based OO system, and a static type system

### Aspect-Oriented Programming with Type Classes

Aspect-Oriented Programming with Type Classes Martin Sulzmann School of Computing, National University of Singapore S16 Level 5, 3 Science Drive 2, Singapore 117543 sulzmann@comp.nus.edu.sg Meng Wang School

Haskell Answers 5: map and filter Antoni Diller 4 August 2011 (1) The type String is the same as [Char]. Define a function capitalises, of type String String, which takes a list of characters as its argument

### A binary search tree or BST is a binary tree that is either empty or in which the data element of each node has a key, and:

Binary Search Trees 1 The general binary tree shown in the previous chapter is not terribly useful in practice. The chief use of binary trees is for providing rapid access to data (indexing, if you will)

### MapReduce. MapReduce and SQL Injections. CS 3200 Final Lecture. Introduction. MapReduce. Programming Model. Example

MapReduce MapReduce and SQL Injections CS 3200 Final Lecture Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI'04: Sixth Symposium on Operating System Design

FOSD Meeting 2014 Tracking Load-time Configuration Options Max Lillack 1 SPL or one App to rule them all? Institut für Wirtschaftsinformatik Max Lillack 2 Challenge Apps must handle variability regarding

LINKED DATA STRUCTURES 1 Linked Lists A linked list is a structure in which objects refer to the same kind of object, and where: the objects, called nodes, are linked in a linear sequence. we keep a reference

### CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)

Chalmers Göteborgs Universitet Alejandro Russo, Computer Science and Engineering Advanced Functional Programming TDA342/DIT260 Tuesday, March 15, 2016, Hörsalsvägen (yellow brick building), 8:30-12:30.

### Programming Fundamental. Instructor Name: Lecture-2

Programming Fundamental Instructor Name: Lecture-2 Today s Lecture What is Programming? First C++ Program Programming Errors Variables in C++ Primitive Data Types in C++ Operators in C++ Operators Precedence

### Aspects of Feedback in Intelligent Tutoring Systems for Modeling Education

Aspects of Feedback in Intelligent Tutoring Systems for Modeling Education Proefschrift ter verkrijging van de graad van doctor aan de Open Universiteit op gezag van de rector magnicus prof. mr. A. Oskamp

### Producten specifiek voor onderzoekers en professionals

Producten specifiek voor onderzoekers en professionals Termijn Product Universiteit 2011 Journal article on mental models: buoyancy, electricity, biological growth Internal report on the development of

### Alphabet Stitch Info Color Chart

Page 1 Alphabet Stitch Info Color Chart 0 1 2 Stitch Count: 3988 Height: 2.2 Width: 1.61 Stitch Count: 2958 Width: 1.26 Stitch Count: 3628 Width: 2.01 3 4 Stitch Count: 3671 Height: 2.2 Width: 1.54 Stitch

### Data Integrator. Pervasive Software, Inc. 12365-B Riata Trace Parkway Austin, Texas 78727 USA

Data Integrator Event Management Guide Pervasive Software, Inc. 12365-B Riata Trace Parkway Austin, Texas 78727 USA Telephone: 888.296.5969 or 512.231.6000 Fax: 512.231.6010 Email: info@pervasiveintegration.com

### KS3 Computing Group 1 Programme of Study 2015 2016 2 hours per week

1 07/09/15 2 14/09/15 3 21/09/15 4 28/09/15 Communication and Networks esafety Obtains content from the World Wide Web using a web browser. Understands the importance of communicating safely and respectfully

### DATA 301 Introduction to Data Analytics Microsoft Excel VBA. Dr. Ramon Lawrence University of British Columbia Okanagan

DATA 301 Introduction to Data Analytics Microsoft Excel VBA Dr. Ramon Lawrence University of British Columbia Okanagan ramon.lawrence@ubc.ca DATA 301: Data Analytics (2) Why Microsoft Excel Visual Basic

### Class 28: Binary Search Trees. Binary Search Trees

Introduction to Computation and Problem Solving Class 2: Binary Search Trees Prof. Steven R. Lerman and Dr. V. Judson Harward Binary Search Trees In the previous lecture, we defined the concept of binary

### Types, Polymorphism, and Type Reconstruction

Types, Polymorphism, and Type Reconstruction Sources This material is based on the following sources: Pierce, B.C., Types and Programming Languages. MIT Press, 2002. Kanellakis, P.C., Mairson, H.G. and

### The while loop is a common repetition structure. ! Check loop-continuation condition. ! Execute a sequence of statements. ! Repeat.

While Loops Lecture 3: Loops The while loop is a common repetition structure.! Check loop-continuation condition.! Execute a sequence of statements.! Repeat. while (boolean expression) statement; while

### CIS 500 Software Foundations Midterm I, Review Questions

CIS 500 Software Foundations Midterm I, Review Questions Untyped lambda calculus 1. (2 points) We have seen that a linear expression likeλx.λy.xyx is shorthand for an abstract syntax tree that can be drawn

### A Brief Introduction to MySQL

A Brief Introduction to MySQL by Derek Schuurman Introduction to Databases A database is a structured collection of logically related data. One common type of database is the relational database, a term

### C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 2: Basic Elements of C++

C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 2: Basic Elements of C++ Objectives In this chapter, you will: Become familiar with the basic components of a C++ program,

### Instructions for SA Completion

Instructions for SA Completion 1- Take notes on these Pythagorean Theorem Course Materials then do and check the associated practice questions for an explanation on how to do the Pythagorean Theorem Substantive

### 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

### CourseBuilder Extension ADOBE elearning SUITE 6

CourseBuilder Extension ADOBE elearning SUITE 6 Legal notices Legal notices For legal notices, see http://help.adobe.com/en_us/legalnotices/index.html. iii Contents Chapter 1: Getting Started Overview..............................................................................................................

### Home Assignment 4 OCL

Home Assignment 4 OCL This home assignment is about writing formal specifications using the Object Constraint Language. You will exercise formulating conditions/invariants on domain models that go beyond

### A First Book of C++ Chapter 2 Data Types, Declarations, and Displays

A First Book of C++ Chapter 2 Data Types, Declarations, and Displays Objectives In this chapter, you will learn about: Data Types Arithmetic Operators Variables and Declarations Common Programming Errors

### Quiz 4 Solutions EECS 211: FUNDAMENTALS OF COMPUTER PROGRAMMING II. 1 Q u i z 4 S o l u t i o n s

Quiz 4 Solutions Q1: What value does function mystery return when called with a value of 4? int mystery ( int number ) { if ( number

### CS 377 Database Systems. Database Design Theory and Normalization. Li Xiong Department of Mathematics and Computer Science Emory University

CS 377 Database Systems Database Design Theory and Normalization Li Xiong Department of Mathematics and Computer Science Emory University 1 Relational database design So far Conceptual database design

### Chapter 6: Programming Languages

Chapter 6: Programming Languages Computer Science: An Overview Eleventh Edition by J. Glenn Brookshear Copyright 2012 Pearson Education, Inc. Chapter 6: Programming Languages 6.1 Historical Perspective

### CSE 130, Fall 2005: Final Examination

CSE 130, Fall 2005: Final Examination Name: ID: Instructions, etc. 1. Write your answers in the space provided. 2. Wherever it says explain, write no more than three lines as explanation. The rest will

### Blame for All. Jeremy G. Siek. Amal Ahmed. Robert Bruce Findler. Philip Wadler. Abstract. 1. Introduction

Blame for All Amal Ahmed Indiana University amal@cs.indiana.edu Robert Bruce Findler Northwestern University robby@eecs.northwestern.edu Jeremy G. Siek University of Colorado at Boulder jeremy.siek@colorado.edu

Monads for functional programming Philip Wadler, University of Glasgow Department of Computing Science, University of Glasgow, G12 8QQ, Scotland (wadler@dcs.glasgow.ac.uk) Abstract. The use of monads to

### Course Notes on The Bases of the Relational Model

Course Notes on The Bases of the Relational Model Intuitive View of Relations Popular view of the relational model = information is structured as 2-dimensional tables of simple values (with lines, or rows,

### 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

### Part A: Data Definition Language (DDL) Schema and Catalog CREAT TABLE. Referential Triggered Actions. CSC 742 Database Management Systems

CSC 74 Database Management Systems Topic #0: SQL Part A: Data Definition Language (DDL) Spring 00 CSC 74: DBMS by Dr. Peng Ning Spring 00 CSC 74: DBMS by Dr. Peng Ning Schema and Catalog Schema A collection

### Tool-Assisted Unit-Test Generation and Selection Based on Operational Abstractions

Tool-Assisted Unit-Test Generation and Selection Based on Operational Abstractions Tao Xie 1 and David Notkin 2 (xie@csc.ncsu.edu,notkin@cs.washington.edu) 1 Department of Computer Science, North Carolina

### Applying quantitative methods to dialect Dutch verb clusters

Applying quantitative methods to dialect Dutch verb clusters Jeroen van Craenenbroeck KU Leuven/CRISSP jeroen.vancraenenbroeck@kuleuven.be 1 Introduction Verb cluster ordering is a well-known area of microparametric

### Square roots by subtraction

Square roots by subtraction Frazer Jarvis When I was at school, my mathematics teacher showed me the following very strange method to work out square roots, using only subtraction, which is apparently

### Decision Logic: if, if else, switch, Boolean conditions and variables

CS 1044 roject 3 Fall 2009 Decision Logic: if, if else, switch, Boolean conditions and variables This programming assignment uses many of the ideas presented in sections 3 through 5 of the Dale/Weems text

### A Quick Overview of Software Engineering. Paul Klint

A Quick Overview of Software Engineering Paul Klint g n i t o qu r o f s ie ch g o t l u o Ap me D pers so wspa ne 2 3 4 Software Engineering is about... Building large software systems Using state-of-the-art