Special Directions for this Test
|
|
|
- Clarissa Townsend
- 9 years ago
- Views:
Transcription
1 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 numbered 1 through 8. This test is open book and notes, but no electronics. If you need more space, use the back of a page. Note when you do that on the front. Before you begin, please take a moment to look over the entire test so that you can budget your time. Clarity is important; if your programs are sloppy and hard to read, you may lose some points. Correct syntax also makes a difference for programming questions. Take special care with indentation and capitalization in Haskell. When you write Haskell code on this test, you may use anything we have mentioned in class that is built-in to Haskell. But unless specifically directed, you should not use imperative features (such as the IO type). You are encouraged to define functions not specifically asked for if they are useful to your programming; however, if they are not in the standard Haskell Prelude, then you must write them into your test. (That is, your code may not import modules other than the Prelude.) Hints If you use functions like filter, map, and foldr whenever possible, then you will have to write less code on the test, which will mean fewer chances for making mistakes and will leave you more time to be careful. The problem will note explicitly if you are prohibited from using such functions, but by default you can. In the follow the grammar problems the examples may be very extensive and take a long time to read if you read every detail. But the basic idea of the recursion is usually clear from the description, simple examples, and the follow the grammar idea of recursing everywhere possible. So look to the examples to confirm your understanding and don t spend too much time reading examples after you understand the problem. For Grading Question: Total Points: Score:
2 2 1. (10 points) [UseModels] In Haskell, write the function: squareevens :: [Integer] -> [Integer] that takes a list of Integers, lst, and returns a list of Integers that is just like lst, except that each even element of lst is replaced by the square of that element. In your solution, you might find it helpful to use the built-in predicate even. The following are examples, written using the Testing module from the homework. tests :: [TestCase [Integer]] tests = [eqtest (squareevens []) "==" [],eqtest (squareevens [3]) "==" [3],eqTest (squareevens [4]) "==" [16],eqTest (squareevens [4,3]) "==" [16,3],eqTest (squareevens [1,2,3,4,5,6]) "==" [1,4,3,16,5,36],eqTest (squareevens [3,22,3,95,600,0,-2]) "==" [3,484,3,95,360000,0,4]
3 3 2. (5 points) [Concepts] [UseModels] Consider the data type Amount defined below. data Amount = Zero One Two In Haskell, write the polymorphic function rotate :: Amount -> (a,a,a) -> (a,a,a) which takes an Amount, amt, and a triple of elements of some type, (x,y,z), and returns a triple that is circularly rotated to the right by the number of steps indicated by the English word that corresponds to amt. That is, when amt is Zero, then (x,y,z) is returned unchanged; when amt is One, then (z,x,y) is returned; finally, when amt is Two, then (y,z,x) is returned. The following are examples, written using the Testing module from the homework. tests :: [TestCase Bool] tests = [asserttrue ((rotate Zero (1,2,3)) == (1,2,3)),assertTrue ((rotate One (1,2,3)) == (3,1,2)),assertTrue ((rotate Two (1,2,3)) == (2,3,1)),assertTrue ((rotate Two ("jan","feb","mar")) == ("feb","mar","jan")),asserttrue ((rotate One ("jan","feb","mar")) == ("mar","jan","feb")),asserttrue ((rotate Zero (True,False,True)) == (True,False,True)) ]
4 4 3. (10 points) [UseModels] Consider the type of address book entries below. data Entry = Record {name :: String, phone :: Integer, : String} Write, in Haskell, the function nophones :: [Entry] -> [(String,String)] that takes a list of records of type Entry, es, and returns a list of pairs of the name and address of each entry, in the same order as in es. The following are examples, written using the Testing module from the homework. tests :: [TestCase [(String,String)]] tests = [eqtest (nophones []) "==" [],eqtest (nophones [Record {name = "Eastman", phone = , = "[email protected]"}]) "==" [("Eastman","[email protected]")],eqTest (nophones [Record {name = "M", phone = , = "[email protected]"},record {name = "Bond", phone = , ="[email protected]"}]) "==" [("M","[email protected]"),("Bond","[email protected]")],eqTest (nophones sample) "==" [("Adams","[email protected]"),("Bullfinch","[email protected]"),("Cassidy","[email protected]"),("Durham","[email protected]"),("Eastman","[email protected]")],eqTest (nophones ((Record {name="durham",phone= , ="[email protected]"}):sample)) "==" [("Durham","[email protected]"),("Adams","[email protected]"),("Bullfinch","[email protected]"),("Cassidy","[email protected]"),("Durham","[email protected]"),("Eastman","[email protected]")] ] where sample = [Record {name = "Adams", phone = , = "[email protected]"},record {name = "Bullfinch", phone = , = "[email protected]"},record {name = "Cassidy", phone = , = "[email protected]"},record {name = "Durham", phone = , = "[email protected]"},record {name = "Eastman", phone = , = "[email protected]"}]
5 5 4. (15 points) [Concepts] [UseModels] Without using any functions from the Haskell prelude, write the polymorphic function unpickedmap :: (a -> Bool) -> (a -> a) -> [a] -> [a] which takes a predicate, p, a function f, and a list lst, and returns a list that is just like lst, but in which every element x that does not satisfy p is replaced by f applied to x. (An element x satisfies p if (p x) == True.) The following are examples, written using the Testing module from the homework. tests :: [TestCase Bool] tests = [asserttrue ((unpickedmap odd (\x -> x*x) []) == []),asserttrue ((unpickedmap odd (\x -> 66) [2,4,6,8,10]) == [66,66,66,66,66]),assertTrue ((unpickedmap odd (\x -> x*x) [1,2,3,4,5]) == [1,4,3,16,5]),assertTrue ((unpickedmap even (\x -> 6000) [3,1,-5]) == [6000,6000,6000]),assertTrue ((unpickedmap (\c -> c == 'q') (\x -> 'u') "quip") == "quuu"),asserttrue ((unpickedmap (== False) not [True,False,True]) == [False,False,False]) ]
6 6 5. (15 points) [Concepts] [UseModels] Without using any functions from the Haskell prelude, and without using a list comprehension, write the polymorphic function partition :: (a -> Bool) -> [a] -> ([a],[a]) which takes a predicate, p, and a list lst, and returns a pair of lists (no,yes) such that no contains the elements of lst that do not satisfy p, and yes contains the elements of lst that satisfy p. In both no and yes the order of elements is the same as that in lst. The following are examples, written using the Testing module from the homework. tests :: [TestCase Bool] tests = [asserttrue ((partition odd []) == ([],[])),asserttrue ((partition odd [1..10]) == ([2,4,6,8,10],[1,3,5,7,9])),assertTrue ((partition even [1..10]) == ([1,3,5,7,9],[2,4,6,8,10])),assertTrue ((partition (== 3) [1..5]) == ([1,2,4,5],[3])),assertTrue ((partition (== 3) [5,7,2]) == ([5,7,2],[])),assertTrue ((partition (== 3) [3,3,3]) == ([],[3,3,3])),assertTrue ((partition (== 3) [3,3,4,3]) == ([4],[3,3,3]))
7 7 6. (20 points) [UseModels] This problem is about the type WindowLayout, which is defined as follows. data WindowLayout = Window {wname :: String, width :: Int, height :: Int} In Haskell, write a function Horizontal [WindowLayout] Vertical [WindowLayout] iconify :: WindowLayout -> WindowLayout that takes a WindowLayout, wl, and returns a WindowLayout that is just like wl, except that in each Window record, the value of each width and height field is replaced by 2. The following are examples using the Testing module from the homework. tests :: [TestCase WindowLayout] tests = [eqtest (iconify Window {wname="castle", width=1280, height=740}) "==" (Window {wname="castle", width=2, height=2}),eqtest (iconify (Horizontal [Window {wname="castle", width=1280, height=740}, Window {wname="bball", width=900, height=900}])) "==" (Horizontal [Window {wname="castle", width=2, height=2}, Window {wname="bball", width=2, height=2}]),eqtest (iconify (Vertical [])) "==" (Vertical []),eqtest (iconify (Horizontal [])) "==" (Horizontal []),eqtest (iconify (Vertical [Horizontal [Window {wname="castle", width=1280, height=740}, Window {wname="bball", width=900, height=900}], Vertical [Window {wname="csi", width=1000, height=500}]])) "==" (Vertical [Horizontal [Window {wname="castle", width=2, height=2}, Window {wname="bball", width=2, height=2}], Vertical [Window {wname="csi", width=2, height=2}]]),eqtest (iconify (Horizontal [Vertical [Window {wname="csi", width=1280, height=740}, Window {wname="daily", width=900, height=900}], Horizontal [Window {wname="news", width=1000, height=500}, "==" (Horizontal [Vertical [Window {wname="csi", width=2, height=2}, Be sure to follow the grammar! Horizontal [Window {wname="pbs", width=800,height=400}]]])) Window {wname="daily", width=2, height=2}], Horizontal [Window {wname="news", width=2, height=2}, Horizontal [Window {wname="pbs", width=2,height=2}]]]) ]
8 8 7. (25 points) [UseModels] Consider the data type of quantified Boolean expressions defined as follows. data QBExp = Varref String QBExp `Or` QBExp Exists String QBExp Your task is to write a function freeqbexp :: QBExp -> [String] that takes a QBExp, qbe, and returns a list containing just the strings that occur as a free variable reference in qbe. The following defines what occurs as a free variable reference means. A string s occurs as a variable reference in a QBExp if s appears in a subexpression of the form (Varref s). Such a string occurs as a free variable reference if it occurs as a variable reference in a subexpression that is outside of any expression of the form (Exists s e), which declares s. The following are examples that use the course s Testing module. Note that the lists returned by freeqbexp should have no duplicates. In the tests, the seteq function constructs a test case that considers lists of strings to be equal if they have the same elements (so that the order is not important). tests :: [TestCase [String]] tests = [seteq (freeqbexp (Varref "x")) "==" ["x"],seteq (freeqbexp ((Varref "x") `Or` (Varref "y"))) "==" ["x","y"],seteq (freeqbexp ((Varref "y") `Or` (Varref "x"))) "==" ["y","x"],seteq (freeqbexp (((Varref "y") `Or` (Varref "x")) "==" ["y","x"] `Or` ((Varref "x") `Or` (Varref "y")))),seteq (freeqbexp (Exists "y" (Varref "y"))) "==" [],seteq (freeqbexp (Exists "y" ((Varref "y") `Or` (Varref "z")))) "==" ["z"],seteq (freeqbexp (Exists "z" (Exists "y" ((Varref "y") `Or` (Varref "z"))))) "==" [],seteq (freeqbexp ((Varref "z") "==" ["z"] `Or` (Exists "z" (Exists "y" ((Varref "y") `Or` (Varref "z")))))),seteq (freeqbexp (((Varref "z") `Or` (Varref "q")) `Or` (Exists "z" (Exists "y" ((Varref "y") `Or` (Varref "z")))))) "==" ["z","q"] ] where seteq = gtest setequal setequal los1 los2 = (length los1) == (length los2) && subseteq los1 los2 subseteq los1 los2 = all (\e -> e `elem` los2) los1
The Clean programming language. Group 25, Jingui Li, Daren Tuzi
The Clean programming language Group 25, Jingui Li, Daren Tuzi The Clean programming language Overview The Clean programming language first appeared in 1987 and is still being further developed. It was
Ź Ź ł ź Ź ś ź ł ź Ś ę ż ż ł ż ż Ż Ś ę Ż Ż ę ś ź ł Ź ł ł ż ż ź ż ż Ś ę ż ż Ź Ł Ż Ż Ą ż ż ę ź Ń Ź ś ł ź ż ł ś ź ź Ą ć ś ś Ź Ś ę ę ć ż Ź Ą Ń Ą ł ć ć ł ł ź ę Ś ę ś ę ł ś ć ź ś ł ś ł ł ł ł ć ć Ś ł ź Ś ł
Chapter 15 Functional Programming Languages
Chapter 15 Functional Programming Languages Introduction - The design of the imperative languages is based directly on the von Neumann architecture Efficiency (at least at first) is the primary concern,
J a v a Quiz (Unit 3, Test 0 Practice)
Computer Science S-111a: Intensive Introduction to Computer Science Using Java Handout #11 Your Name Teaching Fellow J a v a Quiz (Unit 3, Test 0 Practice) Multiple-choice questions are worth 2 points
3. Mathematical Induction
3. MATHEMATICAL INDUCTION 83 3. Mathematical Induction 3.1. First Principle of Mathematical Induction. Let P (n) be a predicate with domain of discourse (over) the natural numbers N = {0, 1,,...}. If (1)
CSE 530A Database Management Systems. Introduction. Washington University Fall 2013
CSE 530A Database Management Systems Introduction Washington University Fall 2013 Overview Time: Mon/Wed 7:00-8:30 PM Location: Crow 206 Instructor: Michael Plezbert TA: Gene Lee Websites: http://classes.engineering.wustl.edu/cse530/
Functional Programming. Functional Programming Languages. Chapter 14. Introduction
Functional Programming Languages Chapter 14 Introduction Functional programming paradigm History Features and concepts Examples: Lisp ML 1 2 Functional Programming Functional Programming Languages The
Boolean Expressions, Conditions, Loops, and Enumerations. Precedence Rules (from highest to lowest priority)
Boolean Expressions, Conditions, Loops, and Enumerations Relational Operators == // true if two values are equivalent!= // true if two values are not equivalent < // true if left value is less than the
University of Toronto Department of Electrical and Computer Engineering. Midterm Examination. CSC467 Compilers and Interpreters Fall Semester, 2005
University of Toronto Department of Electrical and Computer Engineering Midterm Examination CSC467 Compilers and Interpreters Fall Semester, 2005 Time and date: TBA Location: TBA Print your name and ID
Project 2: Bejeweled
Project 2: Bejeweled Project Objective: Post: Tuesday March 26, 2013. Due: 11:59PM, Monday April 15, 2013 1. master the process of completing a programming project in UNIX. 2. get familiar with command
Part I. Multiple Choice Questions (2 points each):
Part I. Multiple Choice Questions (2 points each): 1. Which of the following is NOT a key component of object oriented programming? (a) Inheritance (b) Encapsulation (c) Polymorphism (d) Parallelism ******
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
Programming Language Rankings. Lecture 15: Type Inference, polymorphism & Type Classes. Top Combined. Tiobe Index. CSC 131! Fall, 2014!
Programming Language Rankings Lecture 15: Type Inference, polymorphism & Type Classes CSC 131 Fall, 2014 Kim Bruce Top Combined Tiobe Index 1. JavaScript (+1) 2. Java (-1) 3. PHP 4. C# (+2) 5. Python (-1)
Sample CSE8A midterm Multiple Choice (circle one)
Sample midterm Multiple Choice (circle one) (2 pts) Evaluate the following Boolean expressions and indicate whether short-circuiting happened during evaluation: Assume variables with the following names
Example of a Java program
Example of a Java program class SomeNumbers static int square (int x) return x*x; public static void main (String[] args) int n=20; if (args.length > 0) // change default n = Integer.parseInt(args[0]);
POLYTYPIC PROGRAMMING OR: Programming Language Theory is Helpful
POLYTYPIC PROGRAMMING OR: Programming Language Theory is Helpful RALF HINZE Institute of Information and Computing Sciences Utrecht University Email: [email protected] Homepage: http://www.cs.uu.nl/~ralf/
Math 55: Discrete Mathematics
Math 55: Discrete Mathematics UC Berkeley, Fall 2011 Homework # 5, due Wednesday, February 22 5.1.4 Let P (n) be the statement that 1 3 + 2 3 + + n 3 = (n(n + 1)/2) 2 for the positive integer n. a) What
Masters programmes in Computer Science and Information Systems. Object-Oriented Design and Programming. Sample module entry test xxth December 2013
Masters programmes in Computer Science and Information Systems Object-Oriented Design and Programming Sample module entry test xxth December 2013 This sample paper has more questions than the real paper
(Eng. Hayam Reda Seireg) Sheet Java
(Eng. Hayam Reda Seireg) Sheet Java 1. Write a program to compute the area and circumference of a rectangle 3 inche wide by 5 inches long. What changes must be made to the program so it works for a rectangle
VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0
VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 UX Software - 2009 TABLE OF CONTENTS INTRODUCTION... ii What is this book about?... iii How to use this book... iii Time to start...
Software Testing. Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program.
Software Testing Definition: Testing is a process of executing a program with data, with the sole intention of finding errors in the program. Testing can only reveal the presence of errors and not the
The Habit Programming Language: The Revised Preliminary Report
The Habit Programming Language: The Revised Preliminary Report The High Assurance Systems Programming Project (Hasp) Department of Computer Science, Portland State University Portland, Oregon 97207, USA
Euler Paths and Euler Circuits
Euler Paths and Euler Circuits An Euler path is a path that uses every edge of a graph exactly once. An Euler circuit is a circuit that uses every edge of a graph exactly once. An Euler path starts and
Visual Basic Programming. An Introduction
Visual Basic Programming An Introduction Why Visual Basic? Programming for the Windows User Interface is extremely complicated. Other Graphical User Interfaces (GUI) are no better. Visual Basic provides
Practical Generic Programming with OCaml
Practical Generic Programming with OCaml Jeremy Yallop LFCS, University of Edinburgh ML Workshop 2007 Instead of this... type α tree = Node of α Branch of (α tree) (α tree) val show_tree : (α string) (α
6.3 FACTORING ax 2 bx c WITH a 1
290 (6 14) Chapter 6 Factoring e) What is the approximate maximum revenue? f) Use the accompanying graph to estimate the price at which the revenue is zero. y Revenue (thousands of dollars) 300 200 100
CISC 181 Project 3 Designing Classes for Bank Accounts
CISC 181 Project 3 Designing Classes for Bank Accounts Code Due: On or before 12 Midnight, Monday, Dec 8; hardcopy due at beginning of lecture, Tues, Dec 9 What You Need to Know This project is based on
Bridgemate developer s guide
Bridgemate developer s guide Document revision 39 (rev1) February 6 th, 2015 2002-2015 Bridge Systems BV Contents Contents... 2 Revision history... 3 General... 7 Purpose of this document... 7 Data exchange
Fun with Phantom Types
1 Fun with Phantom Types RALF HINZE Institut für Informatik III, Universität Bonn Römerstraße 164, 53117 Bonn, Germany Email: [email protected] Homepage: http://www.informatik.uni-bonn.de/~ralf
Introduction to Python
WEEK ONE Introduction to Python Python is such a simple language to learn that we can throw away the manual and start with an example. Traditionally, the first program to write in any programming language
FLORIDA STATE COLLEGE AT JACKSONVILLE COLLEGE CREDIT COURSE OUTLINE. Introduction to Programming with Visual Basic.NET
Form 2A, Page 1 FLORIDA STATE COLLEGE AT JACKSONVILLE COLLEGE CREDIT COURSE OUTLINE COURSE NUMBER: COP 2837 COURSE TITLE: Introduction to Programming with Visual Basic.NET PREREQUISITE(S): COP 1000 COREQUISITE(S):
SOLUTION Trial Test Grammar & Parsing Deficiency Course for the Master in Software Technology Programme Utrecht University
SOLUTION Trial Test Grammar & Parsing Deficiency Course for the Master in Software Technology Programme Utrecht University Year 2004/2005 1. (a) LM is a language that consists of sentences of L continued
Overview of CheckMarket question types
Overview of CheckMarket question types This is an overview of the standard question types we offer. Each question type is shown with an example, followed by the corresponding options. Special question
Grandstream XML Application Guide Three XML Applications
Grandstream XML Application Guide Three XML Applications PART A Application Explanations PART B XML Syntax, Technical Detail, File Examples Grandstream XML Application Guide - PART A Three XML Applications
Translating to Java. Translation. Input. Many Level Translations. read, get, input, ask, request. Requirements Design Algorithm Java Machine Language
Translation Translating to Java Introduction to Computer Programming The job of a programmer is to translate a problem description into a computer language. You need to be able to convert a problem description
A Concrete Introduction. to the Abstract Concepts. of Integers and Algebra using Algebra Tiles
A Concrete Introduction to the Abstract Concepts of Integers and Algebra using Algebra Tiles Table of Contents Introduction... 1 page Integers 1: Introduction to Integers... 3 2: Working with Algebra Tiles...
Portal Connector Fields and Widgets Technical Documentation
Portal Connector Fields and Widgets Technical Documentation 1 Form Fields 1.1 Content 1.1.1 CRM Form Configuration The CRM Form Configuration manages all the fields on the form and defines how the fields
For the next three questions, consider the class declaration: Member function implementations put inline to save space.
Instructions: This homework assignment focuses on basic facts regarding classes in C++. Submit your answers via the Curator System as OQ4. For the next three questions, consider the class declaration:
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)
BAR CODE CONTROL BAR CODE CONTROL - 1
BAR CODE CONTROL BAR CODE CONTROL - 1 CONTENTS 1. INTRODUCTION... 3 2. PRINT BAR CODES OR EXPANDED CHARACTERS... 4 3. DEFINITION OF PARAMETERS... 5 3.1. Bar Code Mode............ 5 3.2. Bar Code Style,
CSc 372. Comparative Programming Languages. 21 : Haskell Accumulative Recursion. Department of Computer Science University of Arizona
1/18 CSc 372 Comparative Programming Languages 21 : Haskell Accumulative Recursion Department of Computer Science University of Arizona [email protected] Copyright c 2013 Christian Collberg 2/18 Stack
Outline. Conditional Statements. Logical Data in C. Logical Expressions. Relational Examples. Relational Operators
Conditional Statements For computer to make decisions, must be able to test CONDITIONS IF it is raining THEN I will not go outside IF Count is not zero THEN the Average is Sum divided by Count Conditions
Exercise 4 Learning Python language fundamentals
Exercise 4 Learning Python language fundamentals Work with numbers Python can be used as a powerful calculator. Practicing math calculations in Python will help you not only perform these tasks, but also
Factoring and Applications
Factoring and Applications What is a factor? The Greatest Common Factor (GCF) To factor a number means to write it as a product (multiplication). Therefore, in the problem 48 3, 4 and 8 are called the
Changing the Display Frequency During Scanning Within an ImageControls 3 Application
Changing the Display Frequency During Scanning Within an ImageControls 3 Date November 2008 Applies To Kofax ImageControls 2x, 3x Summary This application note contains example code for changing he display
Overview. Elements of Programming Languages. Advanced constructs. Motivating inner class example
Overview Elements of Programming Languages Lecture 12: Object-oriented functional programming James Cheney University of Edinburgh November 6, 2015 We ve now covered: basics of functional and imperative
Java Classes. GEEN163 Introduction to Computer Programming
Java Classes GEEN163 Introduction to Computer Programming Never interrupt someone doing what you said couldn't be done. Amelia Earhart Classes, Objects, & Methods Object-oriented programming uses classes,
Selection Statements
Chapter 5 Selection Statements 1 Statements So far, we ve used return statements and expression ess statements. e ts. Most of C s remaining statements fall into three categories: Selection statements:
CSCE 314 Programming Languages
CSCE 314 Programming Languages Introduction and Course Administration Dr. Hyunyoung Lee [email protected] 410B HR Bright 979-845-2490 1 CSCE 314: Programming Languages Course Homepage http://faculty.cse.tamu.edu/hlee/csce314/
Pseudo code Tutorial and Exercises Teacher s Version
Pseudo code Tutorial and Exercises Teacher s Version Pseudo-code is an informal way to express the design of a computer program or an algorithm in 1.45. The aim is to get the idea quickly and also easy
Formal Engineering for Industrial Software Development
Shaoying Liu Formal Engineering for Industrial Software Development Using the SOFL Method With 90 Figures and 30 Tables Springer Contents Introduction 1 1.1 Software Life Cycle... 2 1.2 The Problem 4 1.3
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
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
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
Programming Database lectures for mathema
Programming Database lectures for mathematics students April 25, 2015 Functions Functions are defined in Postgres with CREATE FUNCTION name(parameter type,...) RETURNS result-type AS $$ function-body $$
by Mario Fusco [email protected] twitter: @mariofusco Monadic
by Mario Fusco [email protected] twitter: @mariofusco Monadic Imperative languages Java C# C / C++ Fortran Add abstractions Scala F# Subtract abstractions Hybrid languages Algol Lisp ML Haskell Functional
FACTORING OUT COMMON FACTORS
278 (6 2) Chapter 6 Factoring 6.1 FACTORING OUT COMMON FACTORS In this section Prime Factorization of Integers Greatest Common Factor Finding the Greatest Common Factor for Monomials Factoring Out the
The if Statement and Practice Problems
The if Statement and Practice Problems The Simple if Statement Use To specify the conditions under which a statement or group of statements should be executed. Form if (boolean-expression) statement; where
When a variable is assigned as a Process Initialization variable its value is provided at the beginning of the process.
In this lab you will learn how to create and use variables. Variables are containers for data. Data can be passed into a job when it is first created (Initialization data), retrieved from an external source
User guide for the Error & Warning LabVIEW toolset
User guide for the Error & Warning LabVIEW toolset Rev. 2014 December 2 nd 2014 1 INTRODUCTION... 1 2 THE LABVIEW ERROR CLUSTER... 2 2.1 The error description... 3 2.2 Custom error descriptions... 4 3
Chicago Booth BUSINESS STATISTICS 41000 Final Exam Fall 2011
Chicago Booth BUSINESS STATISTICS 41000 Final Exam Fall 2011 Name: Section: I pledge my honor that I have not violated the Honor Code Signature: This exam has 34 pages. You have 3 hours to complete this
Global Variables. However, when global variables are used in a function block or control modules, they must be declared as external
Global Variables You can define global variables in the Application Editor. Global variables are available in all programs. It is only possible to declare global variables on application level. Global
Objective-C and Cocoa User Guide and Reference Manual. Version 5.0
Objective-C and Cocoa User Guide and Reference Manual Version 5.0 Copyright and Trademarks LispWorks Objective-C and Cocoa Interface User Guide and Reference Manual Version 5.0 March 2006 Copyright 2006
5.3 Graphing Cubic Functions
Name Class Date 5.3 Graphing Cubic Functions Essential Question: How are the graphs of f () = a ( - h) 3 + k and f () = ( 1_ related to the graph of f () = 3? b ( - h) 3 ) + k Resource Locker Eplore 1
Conditionals (with solutions)
Conditionals (with solutions) For exercises 1 to 27, indicate the output that will be produced. Assume the following declarations: final int MAX = 25, LIMIT = 100; int num1 = 12, num2 = 25, num3 = 87;
Data Structures and Algorithms Written Examination
Data Structures and Algorithms Written Examination 22 February 2013 FIRST NAME STUDENT NUMBER LAST NAME SIGNATURE Instructions for students: Write First Name, Last Name, Student Number and Signature where
Programming and Reasoning with Side-Effects in IDRIS
Programming and Reasoning with Side-Effects in IDRIS Edwin Brady 19th October 2014 Contents 1 Introduction 3 1.1 Hello world............................................. 3 1.2 Outline................................................
F ahrenheit = 9 Celsius + 32
Problem 1 Write a complete C++ program that does the following. 1. It asks the user to enter a temperature in degrees celsius. 2. If the temperature is greater than 40, the program should once ask the
The Cool Reference Manual
The Cool Reference Manual Contents 1 Introduction 3 2 Getting Started 3 3 Classes 4 3.1 Features.............................................. 4 3.2 Inheritance............................................
3 length + 23 size = 2
This pledged exam is closed textbook, open class web site, and two pieces of paper with notes. You may not access any other code or websites including your own. Write your email id and name on every page
IENG2004 Industrial Database and Systems Design. Microsoft Access I. What is Microsoft Access? Architecture of Microsoft Access
IENG2004 Industrial Database and Systems Design Microsoft Access I Defining databases (Chapters 1 and 2) Alison Balter Mastering Microsoft Access 2000 Development SAMS, 1999 What is Microsoft Access? Microsoft
CS 2112 Spring 2014. 0 Instructions. Assignment 3 Data Structures and Web Filtering. 0.1 Grading. 0.2 Partners. 0.3 Restrictions
CS 2112 Spring 2014 Assignment 3 Data Structures and Web Filtering Due: March 4, 2014 11:59 PM Implementing spam blacklists and web filters requires matching candidate domain names and URLs very rapidly
Java Basics: Data Types, Variables, and Loops
Java Basics: Data Types, Variables, and Loops If debugging is the process of removing software bugs, then programming must be the process of putting them in. - Edsger Dijkstra Plan for the Day Variables
Introduction to Programming (in C++) Loops. Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC
Introduction to Programming (in C++) Loops Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC Example Assume the following specification: Input: read a number N > 0 Output:
Compsci 101: Test 1. October 2, 2013
Compsci 101: Test 1 October 2, 2013 Name: NetID/Login: Community Standard Acknowledgment (signature) Problem 1 Problem 2 Problem 3 Problem 4 Problem 5 TOTAL: value 16 pts. 12 pts. 20 pts. 12 pts. 20 pts.
Example. Introduction to Programming (in C++) Loops. The while statement. Write the numbers 1 N. Assume the following specification:
Example Introduction to Programming (in C++) Loops Assume the following specification: Input: read a number N > 0 Output: write the sequence 1 2 3 N (one number per line) Jordi Cortadella, Ricard Gavaldà,
Grade 7/8 Math Circles Fall 2012 Factors and Primes
1 University of Waterloo Faculty of Mathematics Centre for Education in Mathematics and Computing Grade 7/8 Math Circles Fall 2012 Factors and Primes Factors Definition: A factor of a number is a whole
Regression Verification: Status Report
Regression Verification: Status Report Presentation by Dennis Felsing within the Projektgruppe Formale Methoden der Softwareentwicklung 2013-12-11 1/22 Introduction How to prevent regressions in software
WebSphere Business Monitor
WebSphere Business Monitor Monitor models 2010 IBM Corporation This presentation should provide an overview of monitor models in WebSphere Business Monitor. WBPM_Monitor_MonitorModels.ppt Page 1 of 25
Summit Public Schools Summit, New Jersey Grade Level / Content Area: Mathematics Length of Course: 1 Academic Year Curriculum: AP Computer Science A
Summit Public Schools Summit, New Jersey Grade Level / Content Area: Mathematics Length of Course: 1 Academic Year Curriculum: AP Computer Science A Developed By Brian Weinfeld Course Description: AP Computer
Party Time! Computer Science I. Signature Examples PAIR OBJ. The Signature of a Procedure. Building a Set. Testing for Membership in a Set
Computer Science I Professor Tom Ellman Lecture 21 Party Time! Whom shall you invite? We will write the Party Planner program. It will select SETS of guests. By reasoning with RELATIONS. Before we party,
Boolean Expressions 1. In C++, the number 0 (zero) is considered to be false, all other numbers are true.
Boolean Expressions Boolean Expressions Sometimes a programmer would like one statement, or group of statements to execute only if certain conditions are true. There may be a different statement, or group
PL/JSON Reference Guide (version 1.0.4)
PL/JSON Reference Guide (version 1.0.4) For Oracle 10g and 11g Jonas Krogsbøll Contents 1 PURPOSE 2 2 DESCRIPTION 2 3 IN THE RELEASE 3 4 GETTING STARTED 3 5 TWEAKS 4 6 JSON PATH 6 7 BEHAVIOR & ERROR HANDLING
Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation
Paper 109-25 Merges and Joins Timothy J Harrington, Trilogy Consulting Corporation Abstract This paper discusses methods of joining SAS data sets. The different methods and the reasons for choosing a particular
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
Programming Project 1: Lexical Analyzer (Scanner)
CS 331 Compilers Fall 2015 Programming Project 1: Lexical Analyzer (Scanner) Prof. Szajda Due Tuesday, September 15, 11:59:59 pm 1 Overview of the Programming Project Programming projects I IV will direct
CompSci 125 Lecture 08. Chapter 5: Conditional Statements Chapter 4: return Statement
CompSci 125 Lecture 08 Chapter 5: Conditional Statements Chapter 4: return Statement Homework Update HW3 Due 9/20 HW4 Due 9/27 Exam-1 10/2 Programming Assignment Update p1: Traffic Applet due Sept 21 (Submit
Microsoft Access 3: Understanding and Creating Queries
Microsoft Access 3: Understanding and Creating Queries In Access Level 2, we learned how to perform basic data retrievals by using Search & Replace functions and Sort & Filter functions. For more complex
Form Validation. Server-side Web Development and Programming. What to Validate. Error Prevention. Lecture 7: Input Validation and Error Handling
Form Validation Server-side Web Development and Programming Lecture 7: Input Validation and Error Handling Detecting user error Invalid form information Inconsistencies of forms to other entities Enter
Excel Database Management
How to use AutoFill Whether you just want to copy the same value down or need to get a series of numbers or text values, fill handle in Excel is the feature to help. It's an irreplaceable part of the AutoFill
Single Page Web App Generator (SPWAG)
Single Page Web App Generator (SPWAG) Members Lauren Zou (ljz2112) Aftab Khan (ajk2194) Richard Chiou (rc2758) Yunhe (John) Wang (yw2439) Aditya Majumdar (am3713) Motivation In 2012, HTML5 and CSS3 took
ML for the Working Programmer
ML for the Working Programmer 2nd edition Lawrence C. Paulson University of Cambridge CAMBRIDGE UNIVERSITY PRESS CONTENTS Preface to the Second Edition Preface xiii xv 1 Standard ML 1 Functional Programming
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?
ESPResSo Summer School 2012
ESPResSo Summer School 2012 Introduction to Tcl Pedro A. Sánchez Institute for Computational Physics Allmandring 3 D-70569 Stuttgart Germany http://www.icp.uni-stuttgart.de 2/26 Outline History, Characteristics,
Intel Retail Client Manager Audience Analytics
Intel Retail Client Manager Audience Analytics By using this document, in addition to any agreements you have with Intel, you accept the terms set forth below. You may not use or facilitate the use of
Intermediate Code. Intermediate Code Generation
Intermediate Code CS 5300 - SJAllan Intermediate Code 1 Intermediate Code Generation The front end of a compiler translates a source program into an intermediate representation Details of the back end
