Maar hoe moet het dan?


 Maurice Nelson
 3 years ago
 Views:
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 AskElle: a programming tutor for Haskell
3 Demos!
4 Main ideas behind AskElle A teacher specifies model solutions for an exercise, and possibly adapts the feedback AskElle compares possibly partial student solutions against model solutions As long as a student follows a model solution, AskElle 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 userdefined 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 welltyped program A contract for the toplevel 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 Highlevel: 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 AskElle: Inferring contracts Normal forms of programs More info: General information: Experiment online:
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 informationFormal 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 informationFizzBuzzinHaskell 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 informationASKELLE: a Haskell Tutor
ASKELLE: 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 informationAdvanced 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 informationDiscovering Counterexamples (and Proof Ingredients) for Knuthlike kprinciples
Discovering Counterexamples (and Proof Ingredients) for Knuthlike 01... kprinciples Moritz Fürneisen and Janis Voigtländer University of Bonn October 9th, 2012 Knuth s 01Principle [Knuth 1973] Informally:
More information09336863931 : 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 informationONTOLOGY BASED FEEDBACK GENERATION IN DESIGN ORIENTED ELEARNING SYSTEMS
ONTOLOGY BASED FEEDBACK GENERATION IN DESIGN ORIENTED ELEARNING SYSTEMS Harrie Passier and Johan Jeuring Faculty of Computer Science, Open University of the Netherlands Valkenburgerweg 177, 6419 AT Heerlen,
More informationTesting 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 informationComputer 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 informationUNIVERSITY 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 informationCall 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 informationAnatomy 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 informationCenter 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 informationDATA 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 informationChapter 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]
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 informationFunctional 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 informationArithmetic 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 informationType Classes with Functional Dependencies
Appears in Proceedings of the 9th European Symposium on Programming, ESOP 2000, Berlin, Germany, March 2000, SpringerVerlag LNCS 1782. Type Classes with Functional Dependencies Mark P. Jones Department
More informationWelcome 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 informationDemo: 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 informationProgramming 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 informationSoftware Testing and Maintenance 1
Input Space Partitioning Introduction Equivalence Partitioning BoundaryValue Analysis Summary Software Testing and Maintenance 1 The Test Selection Problem The input domain of a program consists of all
More informationFunctional 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 informationThe 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 informationOn 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 D52056 Aachen GERMANY http://verify.rwthaachen.de/ LuFG Informatik II Functional Programming Exam,
More informationJava 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 highlevel introduction of the Java Collections Framework
More informationN 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 informationSemantics 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 information2. 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 informationMoving from CS 61A Scheme to CS 61B Java
Moving from CS 61A Scheme to CS 61B Java Introduction Java is an objectoriented language. This document describes some of the differences between objectoriented programming in Scheme (which we hope you
More informationWIRIS 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 informationFormal 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 informationReverse, 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 informationRelational 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 informationOn 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 D52056 Aachen GERMANY http://verify.rwthaachen.de/ LuFG Informatik II Functional Programming Exam,
More informationSpecial 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 informationRelational 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 informationImproving typeerror messages in functional languages
Improving typeerror messages in Bastiaan Heeren Universiteit Utrecht January 5, 200 Contents Introduction Constraints Type inference rules Solving constraints Solving inconsistencies Future work Conclusion
More informationhttp://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 informationData 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
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 floatingpoint numbers (type float). Integers are limited
More informationCognitive 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 informationProgramming 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 informationBridging 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 information4. 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 informationMP8, 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 informationGoing from Python to C
Going from Python to C Darin Brezeale December 8, 2011 Python is a highlevel, interpreted language. C has many of the same types of programming constructs as in Python: arrays, loops, conditionals, functions,
More informationNumber 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 informationAlgebraic 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 informationDeriving 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 informationCSCE 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 informationLecture 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 informationRelational 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 informationIntroduction. 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 informationThe Needle Programming Language
The Needle Programming Language The Needle Programming Language 1 What is Needle? Needle is an objectoriented functional programming language with a multimethodbased OO system, and a static type system
More informationAspectOriented Programming with Type Classes
AspectOriented 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 informationHaskell 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 informationA 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 informationMapReduce. 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 informationTracking Loadtime Configuration Options
FOSD Meeting 2014 Tracking Loadtime 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 informationLINKED 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 informationCS 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 informationAdvanced 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:3012:30.
More informationProgramming Fundamental. Instructor Name: Lecture2
Programming Fundamental Instructor Name: Lecture2 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 informationAspects 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 informationProducten 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 informationAlphabet 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 informationData Integrator. Pervasive Software, Inc. 12365B Riata Trace Parkway Austin, Texas 78727 USA
Data Integrator Event Management Guide Pervasive Software, Inc. 12365B Riata Trace Parkway Austin, Texas 78727 USA Telephone: 888.296.5969 or 512.231.6000 Fax: 512.231.6010 Email: info@pervasiveintegration.com
More informationKS3 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 informationDATA 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 informationClass 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 informationTypes, 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 informationThe while loop is a common repetition structure. ! Check loopcontinuation condition. ! Execute a sequence of statements. ! Repeat.
While Loops Lecture 3: Loops The while loop is a common repetition structure.! Check loopcontinuation condition.! Execute a sequence of statements.! Repeat. while (boolean expression) statement; while
More informationCIS 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 informationA 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 informationC++ 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 informationInstructions 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 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 informationCourseBuilder 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 informationHome 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 informationA 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 informationQuiz 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 informationCS 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 informationChapter 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 informationCSE 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 informationBlame 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 informationMonads 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 informationCourse 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 2dimensional tables of simple values (with lines, or rows,
More informationRigorous Software Development CSCIGA 3033009
Rigorous Software Development CSCIGA 3033009 Instructor: Thomas Wies Spring 2013 Lecture 11 Semantics of Programming Languages Denotational Semantics Meaning of a program is defined as the mathematical
More informationPart 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 informationToolAssisted UnitTest Generation and Selection Based on Operational Abstractions
ToolAssisted UnitTest 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 informationApplying 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 wellknown area of microparametric
More informationSquare 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 informationDecision 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 informationA 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 stateoftheart
More informationDenotational design with type class morphisms (extended version)
LambdaPix technical report 200901, 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 informationFeedback 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