PROGRAMMING for EOR (346022) 7-Jul-2011

Save this PDF as:
 WORD  PNG  TXT  JPG

Size: px
Start display at page:

Download "PROGRAMMING for EOR (346022) 7-Jul-2011"

Transcription

1 PROGRAMMING for EOR (346022) 7-Jul-2011 Lecturer: Bert Bettonvil, Manfred Jeusfeld This is NO open book exam. The use of electronic devices such as calculators, smartphones or computers is not allowed. The exam consists of 5 questions with 2 parts each, and all are of equal weight. The exam will be marked before August 1. By then, a standard elaboration is presented on Blackboard, and you may make an appointment by to view your exam. The programs asked must: be clear, short and be written in Delphi/Pascal, except for question 2a and 2b: these must be answered in C++. must have a clear algorithm and clear identifiers. Further remarks: This exam is not about reproducing details or user-interface. The latter has been tested exhaustively while making the assignments. The emphasis of the exam is on algorithms, use of data structures and parameters. Most input and output is done by use of parameters. However, sometimes knowledge of the user-interface is needed. In the listings we mostly use OUTPUT(...), which can be read as Edit1.Text:=..., depending on the graphical environment. The emphasis in this exam is on how the value(s) of the variable(s) are computed, and not on how these are reported. In case you know what must happen in a program, but you do not know how it must be done, then indicate this in a clear way. Example: ### Here A must be inverted ###. 1

2 Question 1 (Delphi) [1.a] A recursive function can always be transformed into an iterative function. Do so for the function F where N is a positive integer number. function F (N: Integer): Integer; if N =0 then F := 0 else F := 2 * F(N div 2) + 1; [1.b] Give the output for the variable P,R,T of the following program module (no elaboration): procedure Proc1b; var A,R: Integer; procedure computef(var P,Q: Integer; R,S: Integer); P := R*S; R := R+S; S := P+Q; Q := S-R; A:=3; R:=5; computef(r,a,a,r); OUTPUT(A,R) 2

3 Question 2 (C++) Let A[N][N] be a two-dimensional array of integer numbers (i.e. indexes run from 0... N-1. Consider the following game. A player 1 chooses a number i between 0 and N-1. Then, player 2 chooses a number j between 0 and N-1. As a result of the game, player 1 pays A[i][j] to player 2. Note that A[i][j] can be negative meaning that the payment goes into the opposite direction. [2.a] Player 2 assumes that player 1 has no knowledge of the matrix A. Hence he assumes that player 1 chooses an arbitrary number i. Player 2 has two alternative strategies in mind. Strategy 1 is to always select the same number as player 1, i.e. j=i. Strategy 2 would is to select an arbitrary number j. Write a function Better with parameter A that return 1 if strategy 1 is better and 2 is strategy 2 is better. Note that you need to compute the expected payment for both strategies and also note that the solution depends on the values in matrix A. [2.b] Player 2 gets information about the matrix A. He wants to precompute an array B that returns j=b[i] for which A[i][j] is maximal, i.e. returns the best result for him. Write a procedure makeb that creates the array B out of the matrix A. 3

4 Question 3 (Delphi) Consider a the following type definitions const N=...; {* number of points *} type Point = record xpos: Real; ypos: Real Curve = Array[1..N] of Point; The type curve represents points of a curve. We assume that the x- positions are strictly increasing, i.e. for any curve c and for any two indexes 1 i, j N the following holds: i < j then c[i].xpos < c[j].xpos. [3.a] (Integral) Implement a function function integral(c: Curve) : Real; that computes the integral of the curve c. The integral shall be approximated by the average between the area of the upper y- values (gray reactangles) and the lower y-values (hatched rectangles) of two consecutive points. Note that the distance between two x values is not a constant. 4

5 [3.b] (First zero point) Implement a function function firstzeropoint(c: Curve): Real; that computes the first zero point of the curve c, where each two consecutive points are connected by a straight line. Return 0.0 if there is no such zero point. In the above drawing, the first zero point is indicated by the arrow. You should return the x-value, where the line crosses the zero-level. 5

6 Question 4 (Delphi) Consider the following type definitions for a linked list. type ElemP = ^Elem Elem = record value: Integer; next: ElemP end [4.a]: Write a function function Count(x: Integer; Head: ElemP): Integer; that counts the number of occurrences of value x in the linked list with first element Head. [4.b]: Write a procedure procedure Reverse(Head: ElemP; var NewHead: ElemP); that reverses the elements in the list original list Head, i.e. the new list starts with the last element of the original list and ends with the first element of the original list. 6

7 Question 5 (Delphi) A logistics company plans truck tours to customers. const N=...; {* number of trucks *} M=...; {* number of customers *} maxhops =...; {* max number of stops in a tour *} type Coordinates = record xpos: Real; ypos: Real Truck = record trucknr: Integer; currentpos: Coordinates; booked: Boolean Customer = record custnr: Integer; homebase: Coordinates Trucks = array[1..n] of Truck; Customers = array[1..m] of Customer; Tour = array[1..maxhops] of Integer; { the entries in a tour are customer numbers } The coordinates are in an Euklidian space (x- and y-values) where the distance between two coordinates are computed by the Euklidian distance. [5.a] Implement a function function nearesttruck(cust: Customer; tr:trucks): Integer; that returns the number of the truck in tr that is closest to the home base of customer cust. Use Euklidian distance. Note: it is useful to define a function edistance that calculates the Euklidian distance between two coordinates. This function can be used for both 5a and 5b. 7

8 [5.b] Implement the procedure procedure optimizetour(start: Coordinates; custs: Customers; var t: Tour); that optimizes the stops in the tour t as follows: the first stop in tour t is the customer that is closed to the given start point. The second is the customer in the set of remaining customers in the tour that is closest to the first stop (computed in the preceding step), and so on. The procedure is called with an non-optimized tour t. After calling the procedure, the tour t shall be optimized. 8

9 Master solutions Q1a function F_it(N: Integer): Integer; var I,Res: Integer; I:=N; Res:=0; while (I>0) do Res:=2*Res + 1; I:= I div 2; F_it := Res Important here is that you may not increase the result for each i (1<=i<==N). Q1b A=10 R=15 9

10 Q2 const int N=2; typedef int TMatr[N][N]; typedef int TMatr1[N]; Q2a int Better(TMatr& A) { } double count1=0; double count2=0; for (int i=0; i < N; i++) { count1 += A[i][i]; for (int j=0; j < N; j++) { count2 += A[i][j]; } } count2 /= N; return (count1>count2)? 1 : 2; count1 is the expected value for strategy 1 (always choose the same number); count2 is the expected value for the strategy 2 (randomized strategy). Q2b void MakeB(TMatr& A, TMatr1& B) { int win; for (int i=0; i<n; i++){ win=a[i][0]; B[i]=0; for (int j=0; j<n; j++){ if (A[i][j]>win) {B[i]=j; win=a[i][j];} } } } Note that B is a matrix containing indexes to A (B[i]=j means: choose j if opponent chooses i). The variable win is for determining the best position j in A[i][j]. 10

11 Q3 const N= 5; {* points *} type Point = record xpos: Real; ypos: Real Curve = Array[1..N] of Point; var mycurve: Curve; Q3a function integral(c: Curve) : Real; var i: Integer; sum1,sum2: Real; function min(r1,r2: Real): Real; if (r1 < r2) then min := r1 else min := r2 function max(r1,r2: Real): Real; if (r1 < r2) then max := r2 else max := r1 sum1 := 0.0; sum2 := 0.0; for i := 2 to N do sum1 := sum1 + max(c[i-1].ypos,c[i].ypos) * (c[i].xpos - c[i-1].xpos); sum2 := sum2 + min(c[i-1].ypos,c[i].ypos) * (c[i].xpos - c[i-1].xpos) integral := (sum1 + sum2)/2 Simpler solutions were possible! 11

12 Q3b function firstzeropoint(c:curve): Real; var found: Boolean; i: Integer; zp: Real; found := false; i := 1; zp := 0.0; while not found and (i < N) do i := i + 1; if (c[i-1].ypos <= 0.0) and (c[i].ypos >= 0.0) or (c[i-1].ypos >= 0.0) and (c[i].ypos <= 0.0) then found := true; if (c[i].ypos = c[i-1].ypos) and (c[i].ypos = 0.0) then zp := c[i].xpos else zp := c[i-1].xpos - ( c[i-1].ypos*(c[i].xpos-c[i-1].xpos) ) / ( c[i].ypos - c[i-1].ypos ) end firstzeropoint := zp; Note that the curve C only contains the carrying points and that the zero point is typically between two consecutive points, or could be just hit by some point of C. Actuallu firstzeropoint is only well-defined when found=true. But the initial value was acceptable in such cases. 12

13 Q4 Q4a function Count(x: Integer; Head: ElemP): Integer; var Help: ElemP; Count:=0; Help:=Head; while (Help<>nil) do if (Help^.value=x) then inc(count); Help:=Help^.Next; Loop with Help<>nil, not Help^.next<M>nil! Q4b procedure Reverse(Head: ElemP; var NewHead: ElemP); var Help1,Help2: ElemP; if (Head=nil) then NewHead:=nil else new(newhead); NewHead^.value:=Head^.value; NewHead^.Next:=nil; Help1:=Head; while (Help1^.Next<>nil) do Help1:=Help1^.Next; new(help2); Help2^.value:=Help1^.value; Help2^.Next:=NewHead; NewHead:=Help2; You needed to take care of Head=nil and that NewHead is actually set correctly. So Help1 scans the old list, and Help2 is for setting the NewHead iteratively. No dispose! 13

14 14

15 Q5 const N= 2; {* number of trucks *} M= 3; {* number of customers *} maxhops = 2; {* maximum number of stops in a tour *} type Coordinates = record xpos: Real; ypos: Real Truck = record trucknr: Integer; model: String; currentpos: Coordinates; booked: Boolean Customer = record custnr: Integer; homebase: Coordinates Trucks = array[1..n] of Truck; Customers = array[1..m] of Customer; Tour = array[1..maxhops] of Integer; var mytrucks: Trucks; mycustomers: Customers; 15

16 {* 5.a *} function edistance(p1,p2: Coordinates) : Real; edistance := sqrt( sqr(p1.xpos - p2.xpos) + sqr(p1.ypos - p2.ypos) ); This is the Euklidian distance. function nearesttruck(cust: Customer; tr:trucks): Integer; var i,nt: Integer; bestdist: Real; nt := 0; for i := 1 to N do if ( (nt=0) and not (tr[i].booked=true) ) then nt := i; bestdist := edistance(cust.homebase,tr[nt].currentpos) end else if edistance(cust.homebase,tr[i].currentpos) < bestdist then nt := i; bestdist := edistance(cust.homebase,tr[i].currentpos) end nearesttruck := tr[nt].trucknr 16

17 {* 5.b *} procedure optimizetour(start: Coordinates; custs: Customers; var tour: Tour); var currentpos: Coordinates; i,j,help: Integer; currentpos := start; for i := 1 to maxhops do for j := i+1 to MaxHops do if edistance(currentpos,custs[tour[i]].homebase) > edistance(currentpos,custs[tour[j]].homebase) then help := tour[i]; tour[i] := tour[j]; tour[j] := help; currentpos := custs[tour[i]].homebase end end This task is to be solved by a double loop (sorting tour). 17

SECOND JUNIOR BALKAN OLYMPIAD IN INFORMATICS

SECOND JUNIOR BALKAN OLYMPIAD IN INFORMATICS SECOND JUNIOR BALKAN OLYMPIAD IN INFORMATICS July 8 13, 2008 Shumen, Bulgaria TASKS AND SOLUTIONS Day 1 Task 1. TOWERS OF COINS Statement Asen and Boyan are playing the following game. They choose two

More information

Data Structures Lecture 3 Order Notation and Recursion

Data Structures Lecture 3 Order Notation and Recursion Data Structures Lecture 3 Order Notation and Recursion 1 Overview The median grade.cpp program from Lecture 2 and background on constructing and using vectors. Algorithm analysis; order notation Recursion

More information

CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion

CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion Review from Lectures 5 & 6 Arrays and pointers, Pointer arithmetic and dereferencing, Types of memory ( automatic, static,

More information

The University Of Michigan. EECS402 Lecture 07. Andrew M. Morgan. Sorting Arrays. Element Order Of Arrays

The University Of Michigan. EECS402 Lecture 07. Andrew M. Morgan. Sorting Arrays. Element Order Of Arrays The University Of Michigan Lecture 07 Andrew M. Morgan Sorting Arrays Element Order Of Arrays Arrays are called "random-access" data structures This is because any element can be accessed at any time Other

More information

Lecture 9. Assignment. Logical Operations. Logical Operations - Motivation 2/8/18

Lecture 9. Assignment. Logical Operations. Logical Operations - Motivation 2/8/18 Assignment Lecture 9 Logical Operations Formatted Print Printf Increment and decrement Read through 3.9, 3.10 Read 4.1. 4.2, 4.3 Go through checkpoint exercise 4.1 Logical Operations - Motivation Logical

More information

In this article we will see how the OmniThreadLibrary can be used to split a simple image processing kernel across multiple threads.

In this article we will see how the OmniThreadLibrary can be used to split a simple image processing kernel across multiple threads. In a previous article named " Easy multi-thread programming Delphi ", the AsyncCalls library was used to process multiple images at the same time. However, the processing of every single image was still

More information

VARIABLE, OPERATOR AND EXPRESSION [SET 1]

VARIABLE, OPERATOR AND EXPRESSION [SET 1] VARIABLE, OPERATOR AND EXPRESSION Question 1 Write a program to print HELLO WORLD on screen. Write a program to display the following output using a single cout statement. Subject Marks Mathematics 90

More information

ESC101 : Fundamental of Computing

ESC101 : Fundamental of Computing ESC101 : Fundamental of Computing End Semester Exam 19 November 2008 Name : Roll No. : Section : Note : Read the instructions carefully 1. You will lose 3 marks if you forget to write your name, roll number,

More information

WYSE Academic Challenge 2002 Computer Science Test (Sectional) SOLUTION

WYSE Academic Challenge 2002 Computer Science Test (Sectional) SOLUTION Computer Science - 1 WYSE Academic Challenge 2002 Computer Science Test (Sectional) SOLUTION 1. Access to moving head disks requires three periods of delay before information is brought into memory. The

More information

Tribhuvan University Institute of Science and Technology 2065

Tribhuvan University Institute of Science and Technology 2065 1CSc.102-2065 2065 Candidates are required to give their answers in their own words as for as practicable. 1. Draw the flow chart for finding largest of three numbers and write an algorithm and explain

More information

APCS Semester #1 Final Exam Practice Problems

APCS Semester #1 Final Exam Practice Problems Name: Date: Per: AP Computer Science, Mr. Ferraro APCS Semester #1 Final Exam Practice Problems The problems here are to get you thinking about topics we ve visited thus far in preparation for the semester

More information

n Specifying what each method does q Specify it in a comment before method's header n Precondition q Caller obligation n Postcondition

n Specifying what each method does q Specify it in a comment before method's header n Precondition q Caller obligation n Postcondition Programming as a contract Assertions, pre/postconditions and invariants Assertions: Section 4.2 in Savitch (p. 239) Loop invariants: Section 4.5 in Rosen Specifying what each method does q Specify it in

More information

Sorting. Weiss chapter , 8.6

Sorting. Weiss chapter , 8.6 Sorting Weiss chapter 8.1 8.3, 8.6 Sorting 5 3 9 2 8 7 3 2 1 4 1 2 2 3 3 4 5 7 8 9 Very many different sorting algorithms (bubblesort, insertion sort, selection sort, quicksort, heapsort, mergesort, shell

More information

CS 110 Practice Final Exam originally from Winter, Instructions: closed books, closed notes, open minds, 3 hour time limit.

CS 110 Practice Final Exam originally from Winter, Instructions: closed books, closed notes, open minds, 3 hour time limit. Name CS 110 Practice Final Exam originally from Winter, 2003 Instructions: closed books, closed notes, open minds, 3 hour time limit. There are 4 sections for a total of 49 points. Part I: Basic Concepts,

More information

BITG 1113: Array (Part 1) LECTURE 8

BITG 1113: Array (Part 1) LECTURE 8 BITG 1113: Array (Part 1) LECTURE 8 1 1 LEARNING OUTCOMES At the end of this lecture, you should be able to: 1. Describe the fundamentals of arrays 2. Describe the types of array: One Dimensional (1 D)

More information

The exam is closed book, closed calculator, and closed notes except your one-page crib sheet.

The exam is closed book, closed calculator, and closed notes except your one-page crib sheet. CS Summer Introduction to Artificial Intelligence Midterm You have approximately minutes. The exam is closed book, closed calculator, and closed notes except your one-page crib sheet. Mark your answers

More information

Lecturers: Sanjam Garg and Prasad Raghavendra March 20, Midterm 2 Solutions

Lecturers: Sanjam Garg and Prasad Raghavendra March 20, Midterm 2 Solutions U.C. Berkeley CS70 : Algorithms Midterm 2 Solutions Lecturers: Sanjam Garg and Prasad aghavra March 20, 207 Midterm 2 Solutions. (0 points) True/False Clearly put your answers in the answer box in front

More information

Dynamic Programming II

Dynamic Programming II Lecture 11 Dynamic Programming II 11.1 Overview In this lecture we continue our discussion of dynamic programming, focusing on using it for a variety of path-finding problems in graphs. Topics in this

More information

Lecture Notes on Binary Search Trees

Lecture Notes on Binary Search Trees Lecture Notes on Binary Search Trees 15-122: Principles of Imperative Computation Frank Pfenning Lecture 17 1 Introduction In the previous two lectures we have seen how to exploit the structure of binary

More information

Scan and its Uses. 1 Scan. 1.1 Contraction CSE341T/CSE549T 09/17/2014. Lecture 8

Scan and its Uses. 1 Scan. 1.1 Contraction CSE341T/CSE549T 09/17/2014. Lecture 8 CSE341T/CSE549T 09/17/2014 Lecture 8 Scan and its Uses 1 Scan Today, we start by learning a very useful primitive. First, lets start by thinking about what other primitives we have learned so far? The

More information

Object-Oriented Design Lecture 16 CS 3500 Fall 2010 (Pucella) Friday, Nov 12, 2010

Object-Oriented Design Lecture 16 CS 3500 Fall 2010 (Pucella) Friday, Nov 12, 2010 Object-Oriented Design Lecture 16 CS 3500 Fall 2010 (Pucella) Friday, Nov 12, 2010 16 Mutation We have been avoiding mutations until now. But they exist in most languages, including Java and Scala. Some

More information

Lecture #39. Initial grading run Wednesday. GUI files up soon. Today: Dynamic programming and memoization.

Lecture #39. Initial grading run Wednesday. GUI files up soon. Today: Dynamic programming and memoization. Lecture #39 Initial grading run Wednesday. GUI files up soon. Today: Dynamic programming and memoization. Last modified: Fri Dec 10 12:19:27 2004 CS61B: Lecture #39 1 A puzzle (D. Garcia): Dynamic Programming

More information

CSCE 110 PROGRAMMING FUNDAMENTALS. Prof. Amr Goneid AUC Part 7. 1-D & 2-D Arrays

CSCE 110 PROGRAMMING FUNDAMENTALS. Prof. Amr Goneid AUC Part 7. 1-D & 2-D Arrays CSCE 110 PROGRAMMING FUNDAMENTALS WITH C++ Prof. Amr Goneid AUC Part 7. 1-D & 2-D Arrays Prof. Amr Goneid, AUC 1 Arrays Prof. Amr Goneid, AUC 2 1-D Arrays Data Structures The Array Data Type How to Declare

More information

CIS 110 Introduction To Computer Programming. February 29, 2012 Midterm

CIS 110 Introduction To Computer Programming. February 29, 2012 Midterm CIS 110 Introduction To Computer Programming February 29, 2012 Midterm Name: Recitation # (e.g. 201): Pennkey (e.g. bjbrown): My signature below certifies that I have complied with the University of Pennsylvania

More information

Procedural programming with C

Procedural programming with C Procedural programming with C Dr. C. Constantinides Department of Computer Science and Software Engineering Concordia University Montreal, Canada August 11, 2016 1 / 77 Functions Similarly to its mathematical

More information

1 Dynamic Programming

1 Dynamic Programming CS161 Lecture 13 Dynamic Programming and Greedy Algorithms Scribe by: Eric Huang Date: May 13, 2015 1 Dynamic Programming The idea of dynamic programming is to have a table of solutions of subproblems

More information

Department of Computer Science COMP The Programming Competency Test

Department of Computer Science COMP The Programming Competency Test The Australian National University Faculty of Engineering & Information Technology Department of Computer Science COMP1120-2003-01 The Programming Competency Test 1 Introduction The purpose of COMP1120

More information

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of Electronics and Communication

PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -100 Department of Electronics and Communication USN 1 P E PESIT Bangalore South Campus Hosur road, 1km before Electronic City, Bengaluru -0 Department of Electronics and Communication INTERNAL ASSESSMENT TEST 1 Date : 30/8/2017 Marks: 0 Subject & Code

More information

Lecture Notes on Tries

Lecture Notes on Tries Lecture Notes on Tries 15-122: Principles of Imperative Computation Thomas Cortina, Frank Pfenning, Rob Simmons, Penny Anderson Lecture 22 June 20, 2014 1 Introduction In the data structures implementing

More information

1.3 Conditionals and Loops

1.3 Conditionals and Loops 1.3 Conditionals and Loops Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2002 2010 15/1/2013 22:16:24 A Foundation for Programming any program

More information

Sample Examination. Family Name:... Other Names:... Signature:... Student Number:...

Sample Examination. Family Name:... Other Names:... Signature:... Student Number:... Family Name:... Other Names:... Signature:... Student Number:... THE UNIVERSITY OF NEW SOUTH WALES SCHOOL OF COMPUTER SCIENCE AND ENGINEERING Sample Examination COMP1917 Computing 1 EXAM DURATION: 2 HOURS

More information

Michele Van Dyne Museum 204B CSCI 136: Fundamentals of Computer Science II, Spring

Michele Van Dyne Museum 204B  CSCI 136: Fundamentals of Computer Science II, Spring Michele Van Dyne Museum 204B mvandyne@mtech.edu http://katie.mtech.edu/classes/csci136 CSCI 136: Fundamentals of Computer Science II, Spring 2016 1 Review of Java Basics Data Types Arrays NEW: multidimensional

More information

IV/IV B.Tech (Regular) DEGREE EXAMINATION. Design and Analysis of Algorithms (CS/IT 414) Scheme of Evaluation

IV/IV B.Tech (Regular) DEGREE EXAMINATION. Design and Analysis of Algorithms (CS/IT 414) Scheme of Evaluation IV/IV B.Tech (Regular) DEGREE EXAMINATION Design and Analysis of Algorithms (CS/IT 414) Scheme of Evaluation Maximum: 60 Marks 1. Write briefly about the following 1*12= 12 Marks a) Give the characteristics

More information

1 Recursion. 2 Recursive Algorithms. 2.1 Example: The Dictionary Search Problem. CSci 235 Software Design and Analysis II Introduction to Recursion

1 Recursion. 2 Recursive Algorithms. 2.1 Example: The Dictionary Search Problem. CSci 235 Software Design and Analysis II Introduction to Recursion 1 Recursion Recursion is a powerful tool for solving certain kinds of problems. Recursion breaks a problem into smaller problems that are identical to the original, in such a way that solving the smaller

More information

arxiv: v3 [math.co] 9 Jan 2015

arxiv: v3 [math.co] 9 Jan 2015 Subset-lex: did we miss an order? arxiv:1405.6503v3 [math.co] 9 Jan 2015 Jörg Arndt, Technische Hochschule Nürnberg January 12, 2015 Abstract We generalize a well-known algorithm for the

More information

We cover recursion in 150. Why do it again in 151?

We cover recursion in 150. Why do it again in 151? Recursion We cover recursion in 150. Why do it again in 151? First, good solutions to problems are often recursive. Here is a quick way to sort a list of objects: split the list in half, recursively sort

More information

Algorithm Complexity Analysis: Big-O Notation (Chapter 10.4) Dr. Yingwu Zhu

Algorithm Complexity Analysis: Big-O Notation (Chapter 10.4) Dr. Yingwu Zhu Algorithm Complexity Analysis: Big-O Notation (Chapter 10.4) Dr. Yingwu Zhu Measure Algorithm Efficiency Space utilization: amount of memory required Time efficiency: amount of time required to accomplish

More information

2 Homework: Bond class, fair value, duration & yield

2 Homework: Bond class, fair value, duration & yield Queens College, CUNY, Department of Computer Science Computational Finance CSCI 365 / 765 Spring 2018 Instructor: Dr. Sateesh Mane c Sateesh R. Mane 2018 due Monday, Feb 12, 2018, 11.59 pm This will not

More information

Problem 1. Multiple Choice (choose only one answer)

Problem 1. Multiple Choice (choose only one answer) Practice problems for the Final (Tuesday, May 14 4:30-6:30pm MHP 101). The Final Exam will cover all course material. You will be expected to know the material from the assigned readings in the book, the

More information

Subject: Computer Science

Subject: Computer Science Subject: Computer Science Topic: Data Types, Variables & Operators 1 Write a program to print HELLO WORLD on screen. 2 Write a program to display output using a single cout statement. 3 Write a program

More information

ACSL All-Star Practice, Woburn CI, (T AR) + S R = ART S + ST + AR

ACSL All-Star Practice, Woburn CI, (T AR) + S R = ART S + ST + AR ACSL All-Star Practice, Woburn CI, 2008 1 Question 1. Which is bigger: 0.11 10 or 0.000111 2? Question 2. How many boolean strings RAT S satisfy the following equation? (T AR) + S R = ART S + ST + AR Question

More information

1. What does the following code fragment write to the monitor?

1. What does the following code fragment write to the monitor? 1. What does the following code fragment write to the monitor? int sum = 14; if ( sum < 20 ) System.out.print("Under "); else System.out.print("Over "); System.out.println("the limit."); a. Under b. Over

More information

MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012

MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012 MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012 Instructor: K. S. Booth Time: 70 minutes (one hour ten minutes)

More information

CS 307 Midterm 2 Fall 2010

CS 307 Midterm 2 Fall 2010 Points off 1 2 3 4 Total off Net Score Exam Number: CS 307 Midterm 2 Fall 2010 Name UTEID login name TA's Name: Harsh Yi-Chao (Circle One) Instructions: 1. Please turn off your cell phones and other electronic

More information

Points off Total off Net Score. CS 314 Final Exam Spring 2016

Points off Total off Net Score. CS 314 Final Exam Spring 2016 Points off 1 2 3 4 5 6 Total off Net Score CS 314 Final Exam Spring 2016 Your Name Your UTEID Instructions: 1. There are 6 questions on this test. 100 points available. Scores will be scaled to 300 points.

More information

The Importance of Runtime Cost! Measuring Runtime Cost! How to Measure Runtime Cost?!

The Importance of Runtime Cost! Measuring Runtime Cost! How to Measure Runtime Cost?! The Importance of Runtime Cost Amazon claims that just an extra one tenth of a second on their response times will cost them 1% in sales" [http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it]

More information

COS 126 General Computer Science Fall Exam 1

COS 126 General Computer Science Fall Exam 1 COS 126 General Computer Science Fall 2005 Exam 1 This test has 9 questions worth a total of 50 points. You have 120 minutes. The exam is closed book, except that you are allowed to use a one page cheatsheet,

More information

CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques

CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques Review from Lecture 12 Rules for writing recursive functions: 1. Handle the base case(s). 2. Define the problem solution in terms

More information

New York University Introduction to Computer Science Midterm2B Sample Problems Solution Key. Instructions:

New York University Introduction to Computer Science Midterm2B Sample Problems Solution Key. Instructions: Name: New York University Introduction to Computer Science Midterm2B Sample Problems Solution Key Instructions: KEEP TEST BOOKLET CLOSED UNTIL YOU ARE INSTRUCTED TO BEGIN. This exam is double sided (front

More information

More on Polynomial Time and Space

More on Polynomial Time and Space CpSc 8390 Goddard Fall15 More on Polynomial Time and Space 20.1 The Original NP-Completeness Proof A configuration/snapshot of a machine is a representation of its current state (what info would be needed

More information

C Language Part 2 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee

C Language Part 2 Digital Computer Concept and Practice Copyright 2012 by Jaejin Lee C Language Part 2 (Minor modifications by the instructor) 1 Scope Rules A variable declared inside a function is a local variable Each local variable in a function comes into existence when the function

More information

C 101. Davide Vernizzi. April 29, 2011

C 101. Davide Vernizzi. April 29, 2011 C 101 Davide Vernizzi April 9, 011 1 Input/Output Basic I/O. The basic I/O shown here can be used to get input from the user and to send output to the user. Note that usually input must be verified before

More information

Next week will be great!

Next week will be great! Next week will be great! Three major things are happening next week: Zynga guest lecture Your game pitches (more details later) Christina Paxson Feedback for M 1 Some of you had stacking shapes The stack

More information

6. Dicretization methods 6.1 The purpose of discretization

6. Dicretization methods 6.1 The purpose of discretization 6. Dicretization methods 6.1 The purpose of discretization Often data are given in the form of continuous values. If their number is huge, model building for such data can be difficult. Moreover, many

More information

cs1114 REVIEW of details test closed laptop period

cs1114 REVIEW of details test closed laptop period python details DOES NOT COVER FUNCTIONS!!! This is a sample of some of the things that you are responsible for do not believe that if you know only the things on this test that they will get an A on any

More information

ECE264 Fall 2013 Exam 1, September 24, 2013

ECE264 Fall 2013 Exam 1, September 24, 2013 ECE264 Fall 2013 Exam 1, September 24, 2013 In signing this statement, I hereby certify that the work on this exam is my own and that I have not copied the work of any other student while completing it.

More information

C++ Programming Lecture 1 Software Engineering Group

C++ Programming Lecture 1 Software Engineering Group C++ Programming Lecture 1 Software Engineering Group Philipp D. Schubert Contents 1. More on data types 2. Expressions 3. Const & Constexpr 4. Statements 5. Control flow 6. Recap More on datatypes: build-in

More information

Variable initialization and assignment

Variable initialization and assignment Variable initialization and assignment int variable_name; float variable_name; double variable_name; String variable_name; boolean variable_name; Initialize integer variable Initialize floating point variable

More information

Scheme Quick Reference

Scheme Quick Reference Scheme Quick Reference COSC 18 Fall 2003 This document is a quick reference guide to common features of the Scheme language. It is not intended to be a complete language reference, but it gives terse summaries

More information

Chapter 12 Supplement: Recursion with Java 1.5. Mr. Dave Clausen La Cañada High School

Chapter 12 Supplement: Recursion with Java 1.5. Mr. Dave Clausen La Cañada High School Chapter 12 Supplement: Recursion with Java 1.5 La Cañada High School Recursion: Definitions Recursion The process of a subprogram (method) calling itself. A clearly defined stopping state must exist. The

More information

Working with recursion

Working with recursion Working with recursion Readings: HtDP, sections 11, 12, 13 (Intermezzo 2). We can extend the idea of a self-referential definition to defining the natural numbers, which leads to the use of recursion in

More information

Control Statements. Objectives. ELEC 206 Prof. Siripong Potisuk

Control Statements. Objectives. ELEC 206 Prof. Siripong Potisuk Control Statements ELEC 206 Prof. Siripong Potisuk 1 Objectives Learn how to change the flow of execution of a MATLAB program through some kind of a decision-making process within that program The program

More information

Dynamic Programming Algorithms

Dynamic Programming Algorithms CSC 364S Notes University of Toronto, Fall 2003 Dynamic Programming Algorithms The setting is as follows. We wish to find a solution to a given problem which optimizes some quantity Q of interest; for

More information

Midterm Practice Exam

Midterm Practice Exam Name: CS 410 Introduction to Software Engineering Fall 2016 Instructor: Marc Pomplun Midterm Practice Exam Duration: 75 minutes No books, no notes, and no calculators are allowed. Question 1: out of points

More information

PROBLEM SOLVING WITH LOOPS. Chapter 7

PROBLEM SOLVING WITH LOOPS. Chapter 7 PROBLEM SOLVING WITH LOOPS Chapter 7 Concept of Repetition Structure Logic It is a computer task, that is used for Repeating a series of instructions many times. Ex. The Process of calculating the Total

More information

Programming Exercise

Programming Exercise Programming Exercise Nibbles Objective: To gain experience working with 2 dimensional arrays. The Problem Nibbles is a snake. Nibbles moves around a field, looking for food. Unfortunately, Nibbles is not

More information

Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Spring 2016 Howard Rosenthal

Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Spring 2016 Howard Rosenthal Selec%on and Decision Structures in Java: If Statements and Switch Statements CSC 121 Spring 2016 Howard Rosenthal Lesson Goals Understand Control Structures Understand how to control the flow of a program

More information

Basic Computer Programming (Processing)

Basic Computer Programming (Processing) Contents 1. Basic Concepts (Page 2) 2. Processing (Page 2) 3. Statements and Comments (Page 6) 4. Variables (Page 7) 5. Setup and Draw (Page 8) 6. Data Types (Page 9) 7. Mouse Function (Page 10) 8. Keyboard

More information

(Refer Slide Time 5:19)

(Refer Slide Time 5:19) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 7 Logic Minimization using Karnaugh Maps In the last lecture we introduced

More information

Goals of this Lecture

Goals of this Lecture C Pointers Goals of this Lecture Help you learn about: Pointers and application Pointer variables Operators & relation to arrays 2 Pointer Variables The first step in understanding pointers is visualizing

More information

Fall Semester (081) Dr. El-Sayed El-Alfy Computer Science Department King Fahd University of Petroleum and Minerals

Fall Semester (081) Dr. El-Sayed El-Alfy Computer Science Department King Fahd University of Petroleum and Minerals INTERNET PROTOCOLS AND CLIENT-SERVER PROGRAMMING Client SWE344 request Internet response Fall Semester 2008-2009 (081) Server Module 2.1: C# Programming Essentials (Part 1) Dr. El-Sayed El-Alfy Computer

More information

Name CMPS 5J Final March 17, 2009 This is a closed notes, closed book exam.

Name CMPS 5J Final March 17, 2009 This is a closed notes, closed book exam. Name CMPS 5J Final March 17, 2009 This is a closed notes, closed book exam. There are 21 problems and 50 points total. The last 5 problems ask you to write short programs or code fragments. There are multiple

More information

CSC 1351: Quiz 6: Sort and Search

CSC 1351: Quiz 6: Sort and Search CSC 1351: Quiz 6: Sort and Search Name: 0.1 You want to implement combat within a role playing game on a computer. Specifically, the game rules for damage inflicted by a hit are: In order to figure out

More information

Lecture Notes on Binary Search Trees

Lecture Notes on Binary Search Trees Lecture Notes on Binary Search Trees 15-122: Principles of Imperative Computation Tom Cortina Lecture 15 October 14, 2010 1 Introduction In the previous two lectures we have seen how to exploit the structure

More information

Introduction to C++ 2. A Simple C++ Program. A C++ program consists of: a set of data & function definitions, and the main function (or driver)

Introduction to C++ 2. A Simple C++ Program. A C++ program consists of: a set of data & function definitions, and the main function (or driver) Introduction to C++ 1. General C++ is an Object oriented extension of C which was derived from B (BCPL) Developed by Bjarne Stroustrup (AT&T Bell Labs) in early 1980 s 2. A Simple C++ Program A C++ program

More information

Module 2: Choice and Iteration

Module 2: Choice and Iteration Module 2: Choice and Iteration Ron K. Cytron * Department of Computer Science and Engineering * Washington University in Saint Louis Thanks to Alan Waldman for comments that improved these slides Prepared

More information

1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors

1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors 1. (a) O(log n) algorithm for finding the logical AND of n bits with n processors on an EREW PRAM: See solution for the next problem. Omit the step where each processor sequentially computes the AND of

More information

n 1 x i = xn 1 x 1. i= (2n 1) = n 2.

n 1 x i = xn 1 x 1. i= (2n 1) = n 2. Questions 1. Use mathematical induction to prove that, for any n 1 n 1 x i = xn 1 x 1. (Recall that I proved it in a different way back in lecture 2.) 2. Use mathematical induction to prove that, for all

More information

Final Exam Winter 2013

Final Exam Winter 2013 Final Exam Winter 2013 1. Which modification to the following program makes it so that the display shows just a single circle at the location of the mouse. The circle should move to follow the mouse but

More information

CS 223: Data Structures and Programming Techniques. Exam 2

CS 223: Data Structures and Programming Techniques. Exam 2 CS 223: Data Structures and Programming Techniques. Exam 2 Instructor: Jim Aspnes Work alone. Do not use any notes or books. You have approximately 75 minutes to complete this exam. Please write your answers

More information

Lecture 15 Binary Search Trees

Lecture 15 Binary Search Trees Lecture 15 Binary Search Trees 15-122: Principles of Imperative Computation (Fall 2017) Frank Pfenning, André Platzer, Rob Simmons, Iliano Cervesato In this lecture, we will continue considering ways to

More information

CS1102: Macros and Recursion

CS1102: Macros and Recursion CS1102: Macros and Recursion Kathi Fisler, WPI October 5, 2009 This lecture looks at several more macro examples. It aims to show you when you can use recursion safely with macros and when you can t. 1

More information

Multithreaded Parallelism and Performance Measures

Multithreaded Parallelism and Performance Measures Multithreaded Parallelism and Performance Measures Marc Moreno Maza University of Western Ontario, London, Ontario (Canada) CS 3101 (Moreno Maza) Multithreaded Parallelism and Performance Measures CS 3101

More information

Flow Chart. The diagrammatic representation shows a solution to a given problem.

Flow Chart. The diagrammatic representation shows a solution to a given problem. low Charts low Chart A flowchart is a type of diagram that represents an algorithm or process, showing the steps as various symbols, and their order by connecting them with arrows. he diagrammatic representation

More information

AC64/AT64 DESIGN & ANALYSIS OF ALGORITHMS DEC 2014

AC64/AT64 DESIGN & ANALYSIS OF ALGORITHMS DEC 2014 AC64/AT64 DESIGN & ANALYSIS OF ALGORITHMS DEC 214 Q.2 a. Design an algorithm for computing gcd (m,n) using Euclid s algorithm. Apply the algorithm to find gcd (31415, 14142). ALGORITHM Euclid(m, n) //Computes

More information

DATA STRUCTURES AND ALGORITHMS. Asymptotic analysis of the algorithms

DATA STRUCTURES AND ALGORITHMS. Asymptotic analysis of the algorithms DATA STRUCTURES AND ALGORITHMS Asymptotic analysis of the algorithms Summary of the previous lecture Algorithm definition Representation of the algorithms: Flowchart, Pseudocode Description Types of the

More information

Final Exam Principles of Imperative Computation Frank Pfenning, Tom Cortina, William Lovas. December 10, Name: Andrew ID: Section:

Final Exam Principles of Imperative Computation Frank Pfenning, Tom Cortina, William Lovas. December 10, Name: Andrew ID: Section: Final Exam 15-122 Principles of Imperative Computation Frank Pfenning, Tom Cortina, William Lovas December 10, 2010 Name: Andrew ID: Section: Instructions This exam is closed-book with one sheet of notes

More information

Chapter Fourteen Bonus Lessons: Algorithms and Efficiency

Chapter Fourteen Bonus Lessons: Algorithms and Efficiency : Algorithms and Efficiency The following lessons take a deeper look at Chapter 14 topics regarding algorithms, efficiency, and Big O measurements. They can be completed by AP students after Chapter 14.

More information

Computer Science E-119 Fall Problem Set 1. Due before lecture on Wednesday, September 26

Computer Science E-119 Fall Problem Set 1. Due before lecture on Wednesday, September 26 Due before lecture on Wednesday, September 26 Getting Started Before starting this assignment, make sure that you have completed Problem Set 0, which can be found on the assignments page of the course

More information

Procedures, Parameters, Values and Variables. Steven R. Bagley

Procedures, Parameters, Values and Variables. Steven R. Bagley Procedures, Parameters, Values and Variables Steven R. Bagley Recap A Program is a sequence of statements (instructions) Statements executed one-by-one in order Unless it is changed by the programmer e.g.

More information

Computer Science Foundation Exam

Computer Science Foundation Exam Computer Science Foundation Exam December 18, 015 Section I B COMPUTER SCIENCE NO books, notes, or calculators may be used, and you must work entirely on your own. SOLUTION Question # Max Pts Category

More information

Q1 Q2 Q3 Q4 Q5 Total 1 * 7 1 * 5 20 * * Final marks Marks First Question

Q1 Q2 Q3 Q4 Q5 Total 1 * 7 1 * 5 20 * * Final marks Marks First Question Page 1 of 6 Template no.: A Course Name: Computer Programming1 Course ID: Exam Duration: 2 Hours Exam Time: Exam Date: Final Exam 1'st Semester Student no. in the list: Exam pages: Student's Name: Student

More information

INTERFACES IN JAVA. Prof. Chris Jermaine

INTERFACES IN JAVA. Prof. Chris Jermaine INTERFACES IN JAVA Prof. Chris Jermaine cmj4@cs.rice.edu 1 Before We Begin... Couple more slides on checkers, then a challenge There is also an AIntelligence This encapsulates the idea of a checker-playing

More information

Programming Languages

Programming Languages CSE 130 : Spring 2011 Programming Languages Lecture 3: Crash Course Ctd, Expressions and Types Ranjit Jhala UC San Diego A shorthand for function binding # let neg = fun f -> fun x -> not (f x); # let

More information

CMPSCI 187: Programming With Data Structures. Lecture #16: Thinking About Recursion David Mix Barrington 12 October 2012

CMPSCI 187: Programming With Data Structures. Lecture #16: Thinking About Recursion David Mix Barrington 12 October 2012 CMPSCI 187: Programming With Data Structures Lecture #16: Thinking About Recursion David Mix Barrington 12 October 2012 Thinking About Recursion Review of the Grid Class Recursion on Linked Structures

More information

Parallel Programming. OpenMP Parallel programming for multiprocessors for loops

Parallel Programming. OpenMP Parallel programming for multiprocessors for loops Parallel Programming OpenMP Parallel programming for multiprocessors for loops OpenMP OpenMP An application programming interface (API) for parallel programming on multiprocessors Assumes shared memory

More information

1.3 Conditionals and Loops

1.3 Conditionals and Loops .3 Conditionals and Loops Introduction to Programming in Java: An Interdisciplinary Approach Robert Sedgewick and Kevin Wayne Copyright 2008 February 04, 2008 0:00 AM A Foundation for Programming A Foundation

More information

Sorting. There exist sorting algorithms which have shown to be more efficient in practice.

Sorting. There exist sorting algorithms which have shown to be more efficient in practice. Sorting Next to storing and retrieving data, sorting of data is one of the more common algorithmic tasks, with many different ways to perform it. Whenever we perform a web search and/or view statistics

More information

Fall 2005 CS 11 Final exam Answers

Fall 2005 CS 11 Final exam Answers Fall 2005 CS 11 Final exam Answers 1. Question: (5 points) In the following snippet of code, identify all places where type casting would occur automatically or would need to occur through a forced cast.

More information

LECTURE 17. Array Searching and Sorting

LECTURE 17. Array Searching and Sorting LECTURE 17 Array Searching and Sorting ARRAY SEARCHING AND SORTING Today we ll be covering some of the more common ways for searching through an array to find an item, as well as some common ways to sort

More information