How many ways to make 50 cents? first-denomination Solution. CS61A Lecture 5. count-change. cc base cases. How many have you figured out?

Size: px
Start display at page:

Download "How many ways to make 50 cents? first-denomination Solution. CS61A Lecture 5. count-change. cc base cases. How many have you figured out?"

Transcription

1 6/6/ CS6A Lecture -6-7 Colleen Lewis How many ways to make cents? first-denomination Solution (define (first-denomination kinds-of-coins) ((= kinds-of-coins ) ) ((= kinds-of-coins ) ) ((= kinds-of-coins ) ) ((= kinds-of-coins ) ) ((= kinds-of-coins ) ))) STk> (first-denomination ) STk> (first-denomination ) STk> (first-denomination ) count-change amount )) (first-denomination kinds-of-coins) cc base cases amount )) STk> ) STk> ) STk> ) How many have you figured out? A) B) C) D) count-change base cases ((= amount ) ) ((< amount ) ) ((= kinds-of-coins ) ) (else ((or (< amount )(= kinds-of-coins )) ) Designing the recursion Delegate (make a recursive call): Assuming you use the biggest coin (w/ highest value) Assuming you don t use the biggest coin Example: How many ways can you make cents?

2 6/6/ Use biggest coin Woah! The number of coins didn t change! - - Don t use biggest coin Woah! The amount didn t change! Continuing from previous slide count-change recursive cases Blank Blank (+ Reading Code (Like analyzing a poem) Start with simple parts e.g. (first-denomination) Read, re-read, re-read, re-read, test, re-read Re-read specific sections Highlight things you think are important Write down your hypotheses after each reading Tests your hypothesis when possible You re not going to understand it the first or third time you read it! Same is true for project specs!!!! Iterative versus Recursive Process (all of which use recursion!)

3 6/6/ STk>(evens ( 8 )) (evens ( 8 )) (se (evens ( 8 )) (se 8 Recursive process case I m not done (se (se 8 (se ()))) (evens ( )) (se (evens ()) () evens (define (evens sent) ((empty? sent) ()) ((even? (first sent)) Waiting (se (first sent) to do se (evens (bf sent)))) (else (evens (bf sent))))) STk>(evens ( 8 ) ) (evens-iter ( 8 ) ()) (evens-iter ( 8 ) ()) (evens-iter ( ) ) (evens-iter () ) Keep track of your as you go! case I m DONE! STk>(evens ( 8 ) ) (evens-iter ( 8 ) ()) (evens-iter ( 8 ) ()) (evens-iter ( ) ) (evens-iter () ) evens (define (evens sent) (define (evens-iter sent ) (if (empty? sent) (evens-iter (bf sent) (se (first sent))))) (evens sent '())) Do you like this version better? A) Yes B) No Factorial (if (= n ) (* n (factorial (- n )))))

4 6/6/ STk>(factorial ) (factorial ) (* (factorial ) (* Recursive process case I m not done (* (* (* ))) (factorial ) (* (factorial ) factorial version (define (fact-iter n ) (if (= n ) (fact-iter (- n )(* n )))) (fact-iter n )) Do you like this version better? A) Yes B) No Keep track of your as you go! case I m DONE! STk>(factorial ) (fact-iter ) (fact-iter ) (fact-iter ) (fact-iter ) RC = RC + RC R: R: R: R: R: R: R: 6 Pascal s Triangle Recursion (Cont.) RC = RC + RC (R,C) = (R-,C-) + (R-, C) (define (pascal row col) ((= col ) ) ((= col row) ) (else (+ (pascal (- row ) (- col )) (pascal (- row ) col)))) Summary count-change an example of: Practicing learning to read and trace code Tree recursion multiple recursive calls in a single case Recursive vs. Iterative Processes All of them are implemented with recursion! Recursive processes aren t done at the base case es keep their with them

5 6/6/ Base Cases How many ways can you count $. in change using types of coins? way -$. in change using types of coins? ways $. in change using types of coins? ways count-change recursive cases Blank Blank (+ (- amount(first-denomination kinds-of-coins)) kinds-of-coins) amount (- kinds-of-coins )))))) amount )) ((= amount ) ) ((or (< amount ) (= kinds-of-coins )) ) (else (+ (- amount (first-denomination kinds-of-coins)) kinds-of-coins) amount (- kinds-of-coins )))))) (define (first-denomination kinds-of-coins) ((= kinds-of-coins ) ) ((= kinds-of-coins ) ) ((= kinds-of-coins ) ) ((= kinds-of-coins ) ) ((= kinds-of-coins ) ))) Woah! This is overwhelming! evens Solution (define (evens sent) (define (evens-iter sent ) (if (empty? sent) (evens-iter (bf sent) (se (first sent))))) (evens sent '())) factorial version Solution (define (fact-iter n ) (if (= n ) (fact-iter (- n )(* n )))) (fact-iter n )) Recursion (Cont.) Solution RC = RC + RC (R,C) = (R-,C-) + (R-, C) (define (pascal row col) ((= col ) ) ((= col row) ) (else (+ (pascal (- row ) (- col )) (pascal (- row ) col))))

(first (hello)) (hello) CS61A Lecture 2. Computer Science. Hierarchy of Abstraction. Functions. REVIEW: Two Types of( s so far

(first (hello)) (hello) CS61A Lecture 2. Computer Science. Hierarchy of Abstraction. Functions. REVIEW: Two Types of( s so far CS61A Lecture 2 Computer Science 2011-06-21 Colleen Lewis Not really about computers! Not really a science! Hierarchy of Abstraction Application Programs High-level language (Scheme) Low-level language

More information

O(1) How long does a function take to run? CS61A Lecture 6

O(1) How long does a function take to run? CS61A Lecture 6 How long does a function take to run? It depends on what computer it is run on! CS6A Lecture 6 20-06-28 Colleen Lewis Assumptions We want something independent of the speed of the computer We typically

More information

CS3: Introduction to Symbolic Programming. Lecture 11: Tree Recursion, beginning lists, and Midterm 2. Spring 2007 Nate Titterton

CS3: Introduction to Symbolic Programming. Lecture 11: Tree Recursion, beginning lists, and Midterm 2. Spring 2007 Nate Titterton CS3: Introduction to Symbolic Programming Lecture : Tree Recursion, beginning lists, and Midterm 2 Spring 2007 Nate Titterton nate@berkeley.edu Schedule April 2-6 2 April 9-3 3 April 6-20 4 April 23-27

More information

CS159. Nathan Sprague. November 9, 2015

CS159. Nathan Sprague. November 9, 2015 CS159 Nathan Sprague November 9, 2015 Recursive Definitions Merriam Websters definition of Ancestor: Ancestor One from whom a person is descended [...] Here is a recursive version: Ancestor One s parent.

More information

BAD BAD BAD! This doesn t work! REVIEW: define the animal class. CS61A Lecture 15. dogs inherit from animals (& can call parent methods) Inheritance

BAD BAD BAD! This doesn t work! REVIEW: define the animal class. CS61A Lecture 15. dogs inherit from animals (& can call parent methods) Inheritance CS61A Lecture 15 2011-07-14 Colleen Lewis REVIEW: define the animal class STk> (define animal1 (instantiate animal 'fred)) animal1 STk> (ask animal1 'age) 0 STk> (ask animal1 'eat) yum STk> (ask animal1

More information

Problem 1. Remove consecutive duplicates (6 points, 11 mintues)

Problem 1. Remove consecutive duplicates (6 points, 11 mintues) Problem 1. Remove consecutive duplicates (6 points, 11 mintues) CS3 Fall 04 Midterm 2 Consider a function remove-conseq-dups that takes a sentence and returns a sentence in which any occurrences of a word

More information

Review Analyzing Evaluator. CS61A Lecture 25. What gets returned by mc-eval? (not analyzing eval) REVIEW What is a procedure?

Review Analyzing Evaluator. CS61A Lecture 25. What gets returned by mc-eval? (not analyzing eval) REVIEW What is a procedure? 2 1 Review Analyzing Evaluator CS61A Lecture 2011-08-02 Colleen Lewis What s look like What the output of analyze was Fact: The body of a lambda gets analyzed! We can give names to analyzed lambdas What

More information

Recursion. CSCI 112: Programming in C

Recursion. CSCI 112: Programming in C Recursion CSCI 112: Programming in C 1 What is recursion? Recursion looks at a large problem as a bunch of smaller versions of the same problem. 2 2 What is recursion? Recursion looks at a large problem

More information

RACKET BASICS, ORDER OF EVALUATION, RECURSION 1

RACKET BASICS, ORDER OF EVALUATION, RECURSION 1 RACKET BASICS, ORDER OF EVALUATION, RECURSION 1 COMPUTER SCIENCE 61AS 1. What is functional programming? Give an example of a function below: Functional Programming In functional programming, you do not

More information

6.001 Notes: Section 4.1

6.001 Notes: Section 4.1 6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,

More information

(scheme-1) has lambda but NOT define

(scheme-1) has lambda but NOT define CS61A Lecture 12 2011-0-11 Colleen Lewis (calc) review (scheme-1) has lambda but NOT define Remember calc-apply? STk> (calc-apply '+ '(1 2 )) 6 STk> (calc-apply '* '(2 4 )) 24 STk> (calc-apply '/ '(10

More information

APCS-AB: Java. Recursion in Java December 12, week14 1

APCS-AB: Java. Recursion in Java December 12, week14 1 APCS-AB: Java Recursion in Java December 12, 2005 week14 1 Check point Double Linked List - extra project grade Must turn in today MBCS - Chapter 1 Installation Exercises Analysis Questions week14 2 Scheme

More information

CS115 INTRODUCTION TO COMPUTER SCIENCE 1. Additional Notes Module 5

CS115 INTRODUCTION TO COMPUTER SCIENCE 1. Additional Notes Module 5 CS115 INTRODUCTION TO COMPUTER SCIENCE 1 Additional Notes Module 5 Example my-length (Slide 17) 2 (define (my-length alos) [(empty? alos) 0] [else (+ 1 (my-length (rest alos)))])) (my-length empty) alos

More information

Recursion. So, just as you are allowed to call function B from within function A, you are ALSO allowed to call function A from within function A!

Recursion. So, just as you are allowed to call function B from within function A, you are ALSO allowed to call function A from within function A! Recursion Definition: Any time the body of a function contains a call to the function itself. So, just as you are allowed to call function B from within function A, you are ALSO allowed to call function

More information

SCHEME AND CALCULATOR 5b

SCHEME AND CALCULATOR 5b SCHEME AND CALCULATOR 5b COMPUTER SCIENCE 6A July 25, 203 In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs,

More information

INTRODUCTION OF LOOPS

INTRODUCTION OF LOOPS INTRODUCTION OF LOOPS For Loop Example 1: based on an existing array L, create another array R with each element having the absolute value of the corresponding one in array L. Input: L = [11-25 32-2 0

More information

Assignment #1 Simple C++

Assignment #1 Simple C++ Eric Roberts Handout #5 CS 106B January 7, 2015 Assignment #1 Simple C++ Due: Friday, January 16 Part 1. Get Qt Creator working Parts of this handout were written by Julie Zelenski. Your first task is

More information

While Loops A while loop executes a statement as long as a condition is true while condition: statement(s) Statement may be simple or compound Typical

While Loops A while loop executes a statement as long as a condition is true while condition: statement(s) Statement may be simple or compound Typical Recommended Readings Chapter 5 Topic 5: Repetition Are you saying that I am redundant? That I repeat myself? That I say the same thing over and over again? 1 2 Repetition So far, we have learned How to

More information

CS3L Summer 2011 Exam 2 Time: up to 170 minutes (you may leave when finished; or, you must stop promptly at noon)

CS3L Summer 2011 Exam 2 Time: up to 170 minutes (you may leave when finished; or, you must stop promptly at noon) CS3L Summer 2011 Exam 2 Time: up to 170 minutes (you may leave when finished; or, you must stop promptly at noon) Name: Login: cs3- First names of the people to your left and right, if any: Left: Right:

More information

Dynamic Programming Algorithms Greedy Algorithms. Lecture 29 COMP 250 Winter 2018 (Slides from M. Blanchette)

Dynamic Programming Algorithms Greedy Algorithms. Lecture 29 COMP 250 Winter 2018 (Slides from M. Blanchette) Dynamic Programming Algorithms Greedy Algorithms Lecture 29 COMP 250 Winter 2018 (Slides from M. Blanchette) Return to Recursive algorithms: Divide-and-Conquer Divide-and-Conquer Divide big problem into

More information

Lecture 04 More Iteration, Nested Loops. Meet UTA Jarrett s dog Greta, lying in her nest

Lecture 04 More Iteration, Nested Loops. Meet UTA Jarrett s dog Greta, lying in her nest Lecture 4 More Iteration, Nested Loops Meet UTA Jarrett s dog Greta, lying in her nest Indefinite Loops Rest Chase tail Got tail! Almost got it... Based in part on notes from the CS-for-All curriculum

More information

CS3: Introduction to Symbolic Programming. Lecture 5:

CS3: Introduction to Symbolic Programming. Lecture 5: CS3: Introduction to Symbolic Programming Lecture 5: Spring 2006 Nate Titterton nate@berkeley.edu Announcements Nate's office hours this week only: - Thursday, 2-4, in 329 Soda - (Usually, they are Wed

More information

Purchase Order Processing Step by Step. May 2016

Purchase Order Processing Step by Step. May 2016 Purchase Order Processing Step by Step May 2016 Financial Management Procurement Purchasing Purchase Orders Click New to start a new Purchase order P.O. Entry Screen Two Sections Top is Header Bottom is

More information

Fundamentals of Programming. Recursion - Part 2. October 30th, 2014

Fundamentals of Programming. Recursion - Part 2. October 30th, 2014 15-112 Fundamentals of Programming Recursion - Part 2 October 30th, 2014 Important points from last lecture To understand recursion, you have to first understand recursion. A recursive function: a function

More information

6.046 Recitation 1: Proving Correctness Bill Thies, Fall 2004 Outline

6.046 Recitation 1: Proving Correctness Bill Thies, Fall 2004 Outline 6.046 Recitation 1: Proving Correctness Bill Thies, Fall 2004 Outline Acknowledgement Much of these notes is adapted from David Liben Nowell s notes for the same subject (thanks David!) My contact information:

More information

Subset sum problem and dynamic programming

Subset sum problem and dynamic programming Lecture Notes: Dynamic programming We will discuss the subset sum problem (introduced last time), and introduce the main idea of dynamic programming. We illustrate it further using a variant of the so-called

More information

The Citizen s Guide to Dynamic Programming

The Citizen s Guide to Dynamic Programming The Citizen s Guide to Dynamic Programming Jeff Chen Stolen extensively from past lectures October 6, 2007 Unfortunately, programmer, no one can be told what DP is. You have to try it for yourself. Adapted

More information

CS3 Fall 05 Midterm 1 Standards and Solutions

CS3 Fall 05 Midterm 1 Standards and Solutions CS3 Fall 05 Midterm 1 Standards and Solutions Problem (7 points, 11 minutes). Fill in the blanks. Each of the following parts has a blank that you need to fill in. For parts (1)-(5), the blank follows

More information

TY1 / TY+ Guide. On/ Off $ Menu Enter. PIN # - The PIN number is needed for calibrations and programming.

TY1 / TY+ Guide. On/ Off $ Menu Enter. PIN # - The PIN number is needed for calibrations and programming. TY1 / TY+ Guide PIN # - The PIN number is needed for calibrations and programming. On/ Off $ Menu Enter 1 First press and release the on.off button (one star on the screen). 2 Then press and release the

More information

Recursive Thinking. Chapter 8: Recursion. Recursive Definitions. Recursion. Java Software Solutions for AP* Computer Science A 2nd Edition

Recursive Thinking. Chapter 8: Recursion. Recursive Definitions. Recursion. Java Software Solutions for AP* Computer Science A 2nd Edition Chapter 8: Recursion Presentation slides for Recursive Thinking Recursion is a programming technique in which a method can call itself to solve a problem Java Software Solutions for AP* Computer Science

More information

CS 115 Exam 3, Fall 2016, Sections 1-4

CS 115 Exam 3, Fall 2016, Sections 1-4 , Sections 1-4 Your name: Rules You may use one handwritten 8.5 x 11 cheat sheet (front and back). This is the only resource you may consult during this exam. Explain/show work if you want to receive partial

More information

QuickSort

QuickSort QuickSort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 1 QuickSort QuickSort on an input sequence S with n elements consists of three steps: n n n Divide: partition S into two sequences S 1 and S 2 of about

More information

CS W3134: Data Structures in Java

CS W3134: Data Structures in Java CS W3134: Data Structures in Java Lecture #10: Stacks, queues, linked lists 10/7/04 Janak J Parekh HW#2 questions? Administrivia Finish queues Stack/queue example Agenda 1 Circular queue: miscellany Having

More information

Very sad code. Abstraction, List, & Cons. CS61A Lecture 7. Happier Code. Goals. Constructors. Constructors 6/29/2011. Selectors.

Very sad code. Abstraction, List, & Cons. CS61A Lecture 7. Happier Code. Goals. Constructors. Constructors 6/29/2011. Selectors. 6/9/ Abstrction, List, & Cons CS6A Lecture 7-6-9 Colleen Lewis Very sd code (define (totl hnd) (if (empty? hnd) (+ (butlst (lst hnd)) (totl (butlst hnd))))) STk> (totl (h c d)) 7 STk> (totl (h ks d)) ;;;EEEK!

More information

An introduction to Scheme

An introduction to Scheme An introduction to Scheme Introduction A powerful programming language is more than just a means for instructing a computer to perform tasks. The language also serves as a framework within which we organize

More information

introduction to Programming in C Department of Computer Science and Engineering Lecture No. #40 Recursion Linear Recursion

introduction to Programming in C Department of Computer Science and Engineering Lecture No. #40 Recursion Linear Recursion introduction to Programming in C Department of Computer Science and Engineering Lecture No. #40 Recursion Linear Recursion Today s video will talk about an important concept in computer science which is

More information

CSE 101. Algorithm Design and Analysis Miles Jones Office 4208 CSE Building Lecture 5: SCC/BFS

CSE 101. Algorithm Design and Analysis Miles Jones Office 4208 CSE Building Lecture 5: SCC/BFS CSE 101 Algorithm Design and Analysis Miles Jones mej016@eng.ucsd.edu Office 4208 CSE Building Lecture 5: SCC/BFS DECOMPOSITION There is a linear time algorithm that decomposes a directed graph into its

More information

CS1 Recitation. Week 2

CS1 Recitation. Week 2 CS1 Recitation Week 2 Sum of Squares Write a function that takes an integer n n must be at least 0 Function returns the sum of the square of each value between 0 and n, inclusive Code: (define (square

More information

I want an Oompa-Loompa! screamed Veruca. Roald Dahl, Charlie and the Chocolate Factory

I want an Oompa-Loompa! screamed Veruca. Roald Dahl, Charlie and the Chocolate Factory Greedy and Basic Graph Algorithms CS 421 - Algorithms Spring 2019 Apr 5, 2019 Name: Collaborators: I want an Oompa-Loompa! screamed Veruca. Roald Dahl, Charlie and the Chocolate Factory This problem set

More information

RECURSION 7. 1 Recursion COMPUTER SCIENCE 61A. October 15, 2012

RECURSION 7. 1 Recursion COMPUTER SCIENCE 61A. October 15, 2012 RECURSION 7 COMPUTER SCIENCE 61A October 15, 2012 1 Recursion We say a procedure is recursive if it calls itself in its body. Below is an example of a recursive procedure to find the factorial of a positive

More information

Uniformed Search (cont.)

Uniformed Search (cont.) Uniformed Search (cont.) Computer Science cpsc322, Lecture 6 (Textbook finish 3.5) Sept, 16, 2013 CPSC 322, Lecture 6 Slide 1 Lecture Overview Recap DFS vs BFS Uninformed Iterative Deepening (IDS) Search

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 03 / 09 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? More examples Change making algorithm Greedy algorithm Recursive implementation

More information

2.2 (a) Statement, subroutine, procedure, function, parameter, loop

2.2 (a) Statement, subroutine, procedure, function, parameter, loop Chapter 2.2: The structure of procedural programs 2.2 (a) Statement, subroutine, procedure, function, parameter, loop Procedural programs are ones in which instructions are executed in the order defined

More information

CS1114 Assignment 3. 1 Previously, on Assignment 2. 2 Linked lists

CS1114 Assignment 3. 1 Previously, on Assignment 2. 2 Linked lists CS1114 Assignment 3 out: February 25, 2013 due: March 8, 2013 by 5pm 1 Previously, on Assignment 2 In the last assignment we implemented several robust ways of finding the lightstick center. In this assignment,

More information

Software Design and Analysis for Engineers

Software Design and Analysis for Engineers Software Design and Analysis for Engineers by Dr. Lesley Shannon Email: lshannon@ensc.sfu.ca Course Website: http://www.ensc.sfu.ca/~lshannon/courses/ensc251 Simon Fraser University Slide Set: 2 Date:

More information

CSE 101, Winter Design and Analysis of Algorithms. Lecture 11: Dynamic Programming, Part 2

CSE 101, Winter Design and Analysis of Algorithms. Lecture 11: Dynamic Programming, Part 2 CSE 101, Winter 2018 Design and Analysis of Algorithms Lecture 11: Dynamic Programming, Part 2 Class URL: http://vlsicad.ucsd.edu/courses/cse101-w18/ Goal: continue with DP (Knapsack, All-Pairs SPs, )

More information

Warm-up! CS 3 Final Review. Predict the output. Predict the Output. Predict the output. Predict the output. What is your favorite color?

Warm-up! CS 3 Final Review. Predict the output. Predict the Output. Predict the output. Predict the output. What is your favorite color? Warm-up! What is your favorite color? CS 3 Final Review Gilbert Chou, Jenny Franco and Colleen Lewis December 14, 2008 1-4pm GPB Brown Orange Yellow Green ((repeated bf 3) '(cat dog hat bat)) Predict the

More information

Practical Exam. Recursion and Friends

Practical Exam. Recursion and Friends Practical Exam Recursion and Friends Treasure Hunt Recursion 2 Treasure Hunt On a rectangular grid, you enter from one side and exit from the other There are differing amounts of treasure on each grid

More information

Creating Universally Designed Word 2010 Documents - Quick Start Guide

Creating Universally Designed Word 2010 Documents - Quick Start Guide Creating Universally Designed Word 2010 Documents - Quick Start Guide Overview Creating accessible documents ones that work well with all sorts of technology can be a daunting task. The purpose of this

More information

Computer Science 385 Design and Analysis of Algorithms Siena College Spring Topic Notes: Dynamic Programming

Computer Science 385 Design and Analysis of Algorithms Siena College Spring Topic Notes: Dynamic Programming Computer Science 385 Design and Analysis of Algorithms Siena College Spring 29 Topic Notes: Dynamic Programming We next consider dynamic programming, a technique for designing algorithms to solve problems

More information

SCHEME The Scheme Interpreter. 2 Primitives COMPUTER SCIENCE 61A. October 29th, 2012

SCHEME The Scheme Interpreter. 2 Primitives COMPUTER SCIENCE 61A. October 29th, 2012 SCHEME COMPUTER SCIENCE 6A October 29th, 202 In the next part of the course, we will be working with the Scheme programming language. In addition to learning how to write Scheme programs, we will eventually

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 03 / 25 / 2013 Instructor: Michael Eckmann Today s Topics Comments/Questions? More on Recursion Including Dynamic Programming technique Divide and Conquer techniques

More information

Dynamic Programming Intro

Dynamic Programming Intro Dynamic Programming Intro Imran Rashid University of Washington February 15, 2008 Dynamic Programming Outline: General Principles Easy Examples Fibonacci, Licking Stamps Meatier examples RNA Structure

More information

Functionally Modular. Self-Review Questions

Functionally Modular. Self-Review Questions Functionally Modular 5 Self-Review Questions Self-review 5.1 Which names are local, which are global and which are built-in in the following code fragment? Global names: Built-in names: space_invaders

More information

Design and Analysis of Algorithms

Design and Analysis of Algorithms Design and Analysis of Algorithms Instructor: SharmaThankachan Lecture 10: Greedy Algorithm Slides modified from Dr. Hon, with permission 1 About this lecture Introduce Greedy Algorithm Look at some problems

More information

ECE608 - Chapter 16 answers

ECE608 - Chapter 16 answers ¼ À ÈÌ Ê ½ ÈÊÇ Ä ÅË ½µ ½ º½¹ ¾µ ½ º½¹ µ ½ º¾¹½ µ ½ º¾¹¾ µ ½ º¾¹ µ ½ º ¹ µ ½ º ¹ µ ½ ¹½ ½ ECE68 - Chapter 6 answers () CLR 6.-4 Let S be the set of n activities. The obvious solution of using Greedy-Activity-

More information

CSE 421 Applications of DFS(?) Topological sort

CSE 421 Applications of DFS(?) Topological sort CSE 421 Applications of DFS(?) Topological sort Yin Tat Lee 1 Precedence Constraints In a directed graph, an edge (i, j) means task i must occur before task j. Applications Course prerequisite: course

More information

COMP 202 Recursion. CONTENTS: Recursion. COMP Recursion 1

COMP 202 Recursion. CONTENTS: Recursion. COMP Recursion 1 COMP 202 Recursion CONTENTS: Recursion COMP 202 - Recursion 1 Recursive Thinking A recursive definition is one which uses the word or concept being defined in the definition itself COMP 202 - Recursion

More information

CMSC 150 LECTURE 7 RECURSION

CMSC 150 LECTURE 7 RECURSION CMSC 150 INTRODUCTION TO COMPUTING ACKNOWLEDGEMENT: THESE SLIDES ARE ADAPTED FROM SLIDES PROVIDED WITH INTRODUCTION TO PROGRAMMING IN JAVA: AN INTERDISCIPLINARY APPROACH, SEDGEWICK AND WAYNE (PEARSON ADDISON-WESLEY

More information

Recursion Chapter 17. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013

Recursion Chapter 17. Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 Recursion Chapter 17 Instructor: Scott Kristjanson CMPT 125/125 SFU Burnaby, Fall 2013 2 Scope Introduction to Recursion: The concept of recursion Recursive methods Infinite recursion When to use (and

More information

CS 206 Introduction to Computer Science II

CS 206 Introduction to Computer Science II CS 206 Introduction to Computer Science II 03 / 19 / 2018 Instructor: Michael Eckmann Today s Topics Questions? Comments? Change making algorithm Greedy algorithm implementation Divide and conquer recursive

More information

Greedy Algorithms. Previous Examples: Huffman coding, Minimum Spanning Tree Algorithms

Greedy Algorithms. Previous Examples: Huffman coding, Minimum Spanning Tree Algorithms Greedy Algorithms A greedy algorithm is one where you take the step that seems the best at the time while executing the algorithm. Previous Examples: Huffman coding, Minimum Spanning Tree Algorithms Coin

More information

Discussion section number. a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z

Discussion section number. a b c d e f g h i j k l m n o p q r s t u v w x y z a b c d e f g h i j k l m n o p q r s t u v w x y z CS 61A Midterm #1 Your name TA s name Discussion section number A random five-digit number: Circle the last two letters of your login (cs61a-xx) a b c d e f g h i j k l m n o p q r s t u v w x y z 1 2

More information

CS3: Introduction to Symbolic Programming. Lecture 14: Lists Scheme vs. other programming languages.

CS3: Introduction to Symbolic Programming. Lecture 14: Lists Scheme vs. other programming languages. CS3: Introduction to Symbolic Programming Lecture 14: Lists Scheme vs. other programming languages Fall 2006 Nate Titterton nate@berkeley.edu Schedule 13 14 15 Nov 20-24 Nov 27 Dec 1 Dec 4 Dec 8 Dec 16

More information

UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING

UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING UNIVERSITY OF CALIFORNIA, SANTA CRUZ BOARD OF STUDIES IN COMPUTER ENGINEERING CMPE13/L: INTRODUCTION TO PROGRAMMING IN C SPRING 2012 Lab 3 Matrix Math Introduction Reading In this lab you will write a

More information

hw6, BFS, debugging CSE 331 Section 5 10/25/12 Slides by Kellen Donohue

hw6, BFS, debugging CSE 331 Section 5 10/25/12 Slides by Kellen Donohue hw6, BFS, debugging CSE 331 Section 5 10/25/12 Slides by Kellen Donohue Agenda hw4 being graded hw5 may be graded first, for feedback to be used on hw6 hw6 due next week Today hw6 BFS Debugging hashcode()

More information

More Complicated Recursion CMPSC 122

More Complicated Recursion CMPSC 122 More Complicated Recursion CMPSC 122 Now that we've gotten a taste of recursion, we'll look at several more examples of recursion that are special in their own way. I. Example with More Involved Arithmetic

More information

Object Oriented Programming (OOP) Overview CS61A Lecture 14

Object Oriented Programming (OOP) Overview CS61A Lecture 14 Objet Oriented Programming (OOP) Overview CS6A Leture 4 0-07-3 Colleen Lewis Multiple independent intelligent agents Message passing, loal state, inheritane define-lass, instantiate, ask, method, instane-vars,

More information

Correctness of specifications. Correctness. Correctness of specifications (2) Example of a Correctness Proof. Testing versus Correctness Proofs

Correctness of specifications. Correctness. Correctness of specifications (2) Example of a Correctness Proof. Testing versus Correctness Proofs CS 390 Lecture 17 Correctness A product is correct if it satisfies its output specifications when operated under permitted conditions Correctness of specifications Incorrect specification for a sort (Figure

More information

RECURSION, RECURSION, (TREE) RECURSION! 3

RECURSION, RECURSION, (TREE) RECURSION! 3 RECURSION, RECURSION, (TREE) RECURSION! 3 COMPUTER SCIENCE 61A September 18, 2013 A function is recursive if it calls itself. Below is recursive factorial function. def factorial(n): if n == 0 or n ==

More information

Sample midterm 1 #1. Problem 1 (What will Scheme print?).

Sample midterm 1 #1. Problem 1 (What will Scheme print?). Sample midterm 1 #1 Problem 1 (What will Scheme print?). What will Scheme print in response to the following expressions? If an expression produces an error message, you may just say error ; you don t

More information

Student Number: Lab day:

Student Number: Lab day: CSC 148H1 Summer 2008 Midterm Test Duration 60 minutes Aids allowed: none Last Name: Student Number: Lab day: First Name: Lecture Section: L0101 Instructor: R. Danek Do not turn this page until you have

More information

Discussion 11. Streams

Discussion 11. Streams Discussion 11 Streams A stream is an element and a promise to evaluate the rest of the stream. You ve already seen multiple examples of this and its syntax in lecture and in the books, so I will not dwell

More information

CmpSci 187: Programming with Data Structures Spring 2015

CmpSci 187: Programming with Data Structures Spring 2015 CmpSci 187: Programming with Data Structures Spring 2015 Lecture #9 John Ridgway February 26, 2015 1 Recursive Definitions, Algorithms, and Programs Recursion in General In mathematics and computer science

More information

Notes slides from before lecture. CSE 21, Winter 2017, Section A00. Lecture 4 Notes. Class URL:

Notes slides from before lecture. CSE 21, Winter 2017, Section A00. Lecture 4 Notes. Class URL: Notes slides from before lecture CSE 21, Winter 2017, Section A00 Lecture 4 Notes Class URL: http://vlsicad.ucsd.edu/courses/cse21-w17/ Notes slides from before lecture Notes January 23 (1) HW2 due tomorrow

More information

Recursive Search with Backtracking

Recursive Search with Backtracking continued CS 311 Data Structures and Algorithms Lecture Slides Friday, February 2, 29 Glenn G. Chappell Department of Computer Science University of Alaska Fairbanks CHAPPELLG@member.ams.org 25 29 Glenn

More information

Tutorial 7: Advanced Algorithms. (e) Give an example in which fixed-parameter tractability is useful.

Tutorial 7: Advanced Algorithms. (e) Give an example in which fixed-parameter tractability is useful. CS 161 Summer 2018 8/9/18 Tutorial 7: Advanced Algorithms Final Review Advanced Algorithms 1. (Warmup with Advanced Algorithms) (Difficulty: Easy to Medium) (a) T/F All NP-complete decision problems are

More information

Overview of List Syntax

Overview of List Syntax Lists and Sequences Overview of List Syntax x = [0, 0, 0, 0] Create list of length 4 with all zeroes x 4300112 x.append(2) 3 in x x[2] = 5 x[0] = 4 k = 3 Append 2 to end of list x (now length 5) Evaluates

More information

Quick Reference Card Capacity and Demand Planning via Resource Workbench

Quick Reference Card Capacity and Demand Planning via Resource Workbench This document outlines the steps for resource managers to allocate their staff to projects. Allocations should be done on a quarterly basis and are reviewed by the portfolio manager and director. managers

More information

61A LECTURE 6 RECURSION. Steven Tang and Eric Tzeng July 2, 2013

61A LECTURE 6 RECURSION. Steven Tang and Eric Tzeng July 2, 2013 61A LECTURE 6 RECURSION Steven Tang and Eric Tzeng July 2, 2013 Announcements Homework 2 solutions are up! Homework 3 and 4 are out Remember, hw3 due date pushed to Saturday Come to the potluck on Friday!

More information

Lecture 6: Sequential Sorting

Lecture 6: Sequential Sorting 15-150 Lecture 6: Sequential Sorting Lecture by Dan Licata February 2, 2012 Today s lecture is about sorting. Along the way, we ll learn about divide and conquer algorithms, the tree method, and complete

More information

AP Computer Science A Course Syllabus

AP Computer Science A Course Syllabus AP Computer Science A Course Syllabus Textbook: Litvin, Maria and Litvin, Gary. Java Methods: Object-Oriented Programming and Data Structures. Skylight Publishing, 2011 http://www.skylit.com Course Description:

More information

Chapter 3 Dynamic Programming Part 2 Algorithm Theory WS 2012/13 Fabian Kuhn

Chapter 3 Dynamic Programming Part 2 Algorithm Theory WS 2012/13 Fabian Kuhn Chapter 3 Dynamic Programming Part 2 Algorithm Theory WS 2012/13 Fabian Kuhn Dynamic Programming Memoization for increasing the efficiency of a recursive solution: Only the first time a sub problem is

More information

Goals: Define computational problem instance of a computational problem algorithm pseudocode Briefly discuss recursive procedure big-o notation

Goals: Define computational problem instance of a computational problem algorithm pseudocode Briefly discuss recursive procedure big-o notation Goals: Define computational problem instance of a computational problem algorithm pseudocode Briefly discuss recursive procedure big-o notation algorithms 1 p.1/19 Informal Definitions: A computational

More information

RECURSION, RECURSION, (TREE) RECURSION! 2

RECURSION, RECURSION, (TREE) RECURSION! 2 RECURSION, RECURSION, (TREE) RECURSION! 2 COMPUTER SCIENCE 61A February 5, 2015 A function is recursive if it calls itself. Below is a recursive factorial function. def factorial(n): if n == 0 or n ==

More information

Chapter 4 Loops. int x = 0; while ( x <= 3 ) { x++; } System.out.println( x );

Chapter 4 Loops. int x = 0; while ( x <= 3 ) { x++; } System.out.println( x ); Chapter 4 Loops Sections Pages Review Questions Programming Exercises 4.1 4.7, 4.9 4.10 104 117, 122 128 2 9, 11 13,15 16,18 19,21 2,4,6,8,10,12,14,18,20,24,26,28,30,38 Loops Loops are used to make a program

More information

ALGORITHM DESIGN DYNAMIC PROGRAMMING. University of Waterloo

ALGORITHM DESIGN DYNAMIC PROGRAMMING. University of Waterloo ALGORITHM DESIGN DYNAMIC PROGRAMMING University of Waterloo LIST OF SLIDES 1-1 List of Slides 1 2 Dynamic Programming Approach 3 Fibonacci Sequence (cont.) 4 Fibonacci Sequence (cont.) 5 Bottom-Up vs.

More information

Announcements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop

Announcements. Lab Friday, 1-2:30 and 3-4:30 in Boot your laptop and start Forte, if you brought your laptop Announcements Lab Friday, 1-2:30 and 3-4:30 in 26-152 Boot your laptop and start Forte, if you brought your laptop Create an empty file called Lecture4 and create an empty main() method in a class: 1.00

More information

STUDENT LESSON A12 Iterations

STUDENT LESSON A12 Iterations STUDENT LESSON A12 Iterations Java Curriculum for AP Computer Science, Student Lesson A12 1 STUDENT LESSON A12 Iterations INTRODUCTION: Solving problems on a computer very often requires a repetition of

More information

COMP-202: Foundations of Programming. Lecture 13: Recursion Sandeep Manjanna, Summer 2015

COMP-202: Foundations of Programming. Lecture 13: Recursion Sandeep Manjanna, Summer 2015 COMP-202: Foundations of Programming Lecture 13: Recursion Sandeep Manjanna, Summer 2015 Announcements Final exams : 26 th of June (2pm to 5pm) @ MAASS 112 Assignment 4 is posted and Due on 29 th of June

More information

Greedy Algorithms. This is such a simple approach that it is what one usually tries first.

Greedy Algorithms. This is such a simple approach that it is what one usually tries first. Greedy Algorithms A greedy algorithm tries to solve an optimisation problem by making a sequence of choices. At each decision point, the alternative that seems best at that moment is chosen. This is such

More information

Programming Team Lecture: Dynamic Programming

Programming Team Lecture: Dynamic Programming Programming Team Lecture: Dynamic Programming Standard Algorithms to Know Computing Binomial Coefficients (Brassard 8.1) World Series Problem (Brassard 8.1) Making Change (Brassard 8.2) Knapsack (Brassard

More information

Transportation Problems

Transportation Problems Transportation Problems Transportation is considered as a special case of LP Reasons? it can be formulated using LP technique so is its solution 1 (to p2) Here, we attempt to firstly define what are them

More information

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #16 Loops: Matrix Using Nested for Loop

Introduction to Programming in C Department of Computer Science and Engineering. Lecture No. #16 Loops: Matrix Using Nested for Loop Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #16 Loops: Matrix Using Nested for Loop In this section, we will use the, for loop to code of the matrix problem.

More information

Course Content. Objectives of Lecture 20 Arrays. Outline of Lecture 20. CMPUT 102: Arrays Dr. Osmar R. Zaïane. University of Alberta 4

Course Content. Objectives of Lecture 20 Arrays. Outline of Lecture 20. CMPUT 102: Arrays Dr. Osmar R. Zaïane. University of Alberta 4 Structural Programming and Data Structures Winter CMPUT 1: Arrays Dr. Osmar R. Zaïane Course Content Introduction Objects Methods Tracing Programs Object State Sharing resources Selection Repetition Vectors

More information

PAIRS AND LISTS 6. GEORGE WANG Department of Electrical Engineering and Computer Sciences University of California, Berkeley

PAIRS AND LISTS 6. GEORGE WANG Department of Electrical Engineering and Computer Sciences University of California, Berkeley PAIRS AND LISTS 6 GEORGE WANG gswang.cs61a@gmail.com Department of Electrical Engineering and Computer Sciences University of California, Berkeley June 29, 2010 1 Pairs 1.1 Overview To represent data types

More information

Lecture 19: Recursion

Lecture 19: Recursion Lecture 19: Recursion Building Java Programs: A Back to Basics Approach by Stuart Reges and Marty Stepp Copyright (c) Pearson 2013. All rights reserved. Recursion recursion: The definition of an operation

More information

Implementation of Lexical Analysis. Lecture 4

Implementation of Lexical Analysis. Lecture 4 Implementation of Lexical Analysis Lecture 4 1 Tips on Building Large Systems KISS (Keep It Simple, Stupid!) Don t optimize prematurely Design systems that can be tested It is easier to modify a working

More information

RECURSION. Many Slides from Ken Birman, Cornell University

RECURSION. Many Slides from Ken Birman, Cornell University RECURSION Many Slides from Ken Birman, Cornell University Iteration Computers are well-suited for executing the same task repeatedly Programs and algorithms use iteration to perform repetitive jobs Programming

More information

Chapter 18 Recursion. Motivations

Chapter 18 Recursion. Motivations Chapter 18 Recursion CS1: Java Programming Colorado State University Original slides by Daniel Liang Modified slides by Chris Wilcox 1 Motivations Suppose you want to find all the files under a directory

More information