Maar hoe moet het dan?

Size: px
Start display at page:

Download "Maar hoe moet het dan?"

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

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

More information

Formal Methods for Software Development

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

More information

FizzBuzzinHaskell by embeddingadsl

FizzBuzzinHaskell by embeddingadsl 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

More information

ASK-ELLE: a Haskell Tutor

ASK-ELLE: a Haskell Tutor 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

More information

Advanced Functional Programming (9) Domain Specific Embedded Languages

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

More information

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

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:

More information

09336863931 : provid.ir

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

More information

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

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,

More information

Testing and Tracing Lazy Functional Programs using QuickCheck and Hat

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

More information

Computer Programming I & II*

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

More information

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

More information

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

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

More information

Anatomy of Programming Languages. William R. Cook

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

More information

Center for Teacher Certification Austin Community College

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

More information

DATA INPUT METHODS OBJECTIVE QUESTIONS

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

More information

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 4: Control Structures I (Selection)

C++ Programming: From Problem Analysis to Program Design, Fifth Edition. Chapter 4: Control Structures I (Selection) C++ Programming: From Problem Analysis to Program Design, Fifth Edition Chapter 4: Control Structures I (Selection) Objectives In this chapter, you will: Learn about control structures Examine relational

More information

Chapter 7: Functional Programming Languages

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

More information

[Refer Slide Time: 05:10]

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

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

More information

Arithmetic Coding: Introduction

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

More information

Type Classes with Functional Dependencies

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

More information

Welcome to Introduction to programming in Python

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

More information

Demo: Communicate! a serious game for communication skills

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,

More information

Programming with Scratch

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

More information

Software Testing and Maintenance 1

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

More information

Functional Programming

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

More information

The countdown problem

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

More information

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

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,

More information

Java Collections Framework

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

More information

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 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,...,

More information

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

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

More information

2. Basic Relational Data Model

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

More information

Moving from CS 61A Scheme to CS 61B Java

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

More information

WIRIS quizzes web services Getting started with PHP and Java

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

More information

Formal Methods for Software Development

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

More information

Reverse, Flatten, and Zip More List Processing in Ocaml. Table of contents

Reverse, Flatten, and Zip More List Processing in Ocaml. Table of contents 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

More information

Relational Model CENG 351 1

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

More information

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

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,

More information

Special Directions for this Test

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

More information

Relational Database Systems Part 01. Karine Reis Ferreira

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

More information

Improving type-error messages in functional languages

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

More information

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

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

More information

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

More information

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

+ 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

More information

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

More information

Programming in Haskell Homework Assignment 2

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

More information

Bridging Formal Methods and Data Science

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

More information

4. MATRICES Matrices

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:

More information

MP8, MP3 (Grade 3) Task: Adding 1 to an Addend, Adding 1 to a Factor

MP8, MP3 (Grade 3) Task: Adding 1 to an Addend, Adding 1 to a Factor MP8, MP3 (Grade 3) Task: Adding 1 to an Addend, Adding 1 to a Factor Practice standard focus: MP8: Mathematically proficient students at the elementary grades look for regularities as they solve multiple

More information

Going from Python to C

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,

More information

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

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.

More information

Algebraic Complexity Theory and Matrix Multiplication

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

More information

Deriving a Relationship from a Single Example

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

More information

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

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

More information

Lecture 12: Abstract data types

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?

More information

Relational Databases

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

More information

Introduction. Mathematics 41P Precalculus: First Semester

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

More information

The Needle Programming Language

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

More information

Aspect-Oriented Programming with Type Classes

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

More information

Haskell Answers 5: map and filter

Haskell Answers 5: map and filter 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

More information

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:

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)

More information

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

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

More information

Tracking Load-time Configuration Options

Tracking Load-time Configuration Options 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

More information

LINKED DATA STRUCTURES

LINKED DATA STRUCTURES 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

More information

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

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)

More information

Advanced Functional Programming TDA342/DIT260

Advanced Functional Programming TDA342/DIT260 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.

More information

Programming Fundamental. Instructor Name: Lecture-2

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

More information

Aspects of Feedback in Intelligent Tutoring Systems for Modeling Education

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

More information

Producten specifiek voor onderzoekers en professionals

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

More information

Alphabet Stitch Info Color Chart

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

More information

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

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

More information

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

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

More information

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

More information

Class 28: Binary Search Trees. Binary Search Trees

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

More information

Types, Polymorphism, and Type Reconstruction

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

More information

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

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

More information

CIS 500 Software Foundations Midterm I, Review Questions

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

More information

A Brief Introduction to MySQL

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

More information

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++ 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,

More information

Instructions for SA Completion

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

More information

Execution of A Requirement Model in Software Development

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

More information

CourseBuilder Extension ADOBE elearning SUITE 6

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

More information

Home Assignment 4 OCL

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

More information

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

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

More information

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

More information

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

More information

Chapter 6: Programming Languages

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

More information

CSE 130, Fall 2005: Final Examination

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

More information

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

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

More information

Monads for functional programming

Monads for functional programming 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

More information

Course Notes on The Bases of the Relational Model

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,

More information

Rigorous Software Development CSCI-GA 3033-009

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

More information

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

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

More information

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

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

More information

Applying quantitative methods to dialect Dutch verb clusters

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

More information

Square roots by subtraction

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

More information

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

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

More information

A Quick Overview of Software Engineering. Paul Klint

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

More information

Denotational design with type class morphisms (extended version)

Denotational design with type class morphisms (extended version) LambdaPix technical report 2009-01, March 2009 (minor revisions February 15, 2011) 1 Denotational design with type class morphisms (extended version) Conal Elliott LambdaPix conal@conal.net Abstract Type

More information

Feedback to T.Verhoeff@TUE.NL Some standard container ADTs

Feedback to T.Verhoeff@TUE.NL Some standard container ADTs Programming, Block C http://www.win.tue.nl/ wstomv/2ip0/ Lecture 12 Tom Verhoeff Kees Hemerik Technische Universiteit Eindhoven Faculteit Wiskunde en Informatica Software Engineering & Technology Today

More information