What is Recursion? 21. Recursion. The Concept of Recursion Is Hard But VERY Important. Recursive Graphics. Tiling a Triangle.
|
|
- Britton Baker
- 5 years ago
- Views:
Transcription
1 . Recursion Recursive Tiling Recursive Evaluation of n! Tracking a Recursive Function Call Random Mondrian What is Recursion? A function is recursive if it calls itself. A pattern is recursive if it is defined in terms of itself. I can tell you what this is in terms of what that is. The Concept of Recursion Is Hard But VERY Important Teaching Plan: Develop a recursive triangle-tiling procedure informally. Fully implement (in Python) a recursive rectangle-tiling procedure. Fully implement a recursive function for n! Fully implement a recursive function for sorting (in a later lecture). Recursive Graphics We will develop a graphics procedure that draws this: The procedure will call itself. We are tiling a triangle with increasingly smaller triangles. Tiling a Triangle Tiling a Triangle We start with one big triangle: And are to end up with this:
2 Requires Repetition Repeat the Process Visit every yellow triangle and replace it with this Given a yellow triangle Define the inner triangle and the corner triangles Color the inner triangle and repeat the process on the corner triangles We Get This Repeat the Process Visit every yellow triangle and replace it with We Get This Repeat the Process Visit every yellow triangle and replace it with
3 We Get This The Notion of Level Etc. A level-0 tiling A level- tiling A level- tiling A level- tiling The Connection Between Levels The Connection Between Levels A level- tiling A level- tiling T T T0 T0 T T T T To display a level- tiling you do this: - display the inner triangle T0 - display a level- tiling of corner triangles T, T, and T To display an level-l tiling you do this: - display the inner triangle T0 - display an level-(l-) tiling of triangles T, T, and T Some Tools to Pull This Off class Point(object): def init (self,x,y): self.x = x self.y = y def Mid(self,other): """ Returns a point that encodes the midpoint of theline segment that connects the Point self and the Point other. """ Midpoints from Vertices P P T T0 T P P T P P P = P.Mid(P) P = P.Mid(P) P = P.Mid(P)
4 Some Tools to Pull This Off Coloring the Inner Triangle def DrawTriangle(P,P,P,c): """ Draws a triangle with vertices P, P, and P and FillColor c PreC: P, P, and P are points and c is a rgb list. """ P P T P T T0 T P P P DrawTriangle(P,P,P,MAGENTA) The Overall Procedure def Tile(P,P,P,L): if L ==0: # Base case. Draw a yellow triangle DrawTriangle(P,P,P,YELLOW) # Compute side midpoints P,P,P The Overall Procedure # Compute side midpoints P,P,P P = P.Mid(P) P = P.Mid(P) P = P.Mid(P) # Color inner triangle MAGENTA # Draw level L- tilings of T,T,T The Overall Procedure The Overall Procedure # Color the inner triangle magenta DrawTriangle(P,P,P,MAGENTA # Draw level-(l-) tilings of T, T, T Tile(P,P,P,L-) Tile(P,P,P,L-) Tile(P,P,P,L-) These are the recursive calls. 4
5 The Overall Procedure def Tile(P,P,P,L): if L ==0: # Base case. Draw a yellow triangle DrawTriangle(P,P,P,YELLOW) # Compute side midpoints P,P,P # Color inner triangle MAGENTA # Draw level L- tilings of T,T,T Tile(P,P,P,L-) Tile(P,P,P,L-) Tile(P,P,P,L-) A Note on Chopping up a Region into Triangles It is Important! Next Up An Area Of Interest A Non-Graphics Example of Recursion: The Factorial Function Step One in simulating flow around an airfoil is to generate a triangular mesh and (say) estimate the velocity at each little triangle using physics and math. Recursive Evaluation of Factorial Recall the factorial function: x = for k in range(,n+): x = x*k x Recursive Evaluation of Factorial Q. How would you compute! given that you have computed 5! = 0? A.! = 0 x 5! = xxx4x5 5! = xxx4x5 5
6 Recursive Evaluation of Factorial How does this work? We are in the calling script print n -> n -> The function F is called with argument. We open up a call frame. We encounter a function call. F is called with argument equal to. n -> n -> n -> n -> We open up a call frame. We encounter a function call. F is called with argument
7 n -> n -> n -> n -> n -> n -> We open up a call frame. The value of is assigned to n -> n -> n -> n -> n -> n -> The value is sent back to the caller. That function call is over n -> n -> n -> n -> Control now passes to this edition of F Control passes to this edition of F. The value is assigned to 7
8 n -> n -> n -> n -> The value is ed to the caller. The function call is over n -> n -> Control now passes to this edition of F The value is assigned to n -> n -> The value is ed to the caller. This function call is over. 8
9 Output: Control passes to the script that asked for F() All Done! Another Example: Random Mondrians Random Mondrian Given This: Using Python: Random Mondrian The Subdivide Process Applies to a Rectangle Draw This: (x,y) W L Given a rectangle specified by its length, width, and center, either randomly color it or randomly subdivide it. 9
10 Subdivision Starts with a Random Dart Throw This Defines 4 Smaller Rectangles Repeat the process on each of the 4 smaller rectangles This Defines 4 Smaller Rectangles The Notion of Level We can again repeat the process on each of the smaller rectangles. Etc. A -level Partitioning A -level Partitioning Pseudocode def Mondrian(x,y,L,W,level): if level ==0: c = RandomColor()) DrawRect(x,y,L,W,FillColor=c) # Subdivide into 4 smaller rectangles Mondrian(upper left rectangle info,level-) Mondrian(upper right rectangle info,level-) Mondrian(lower left rectangle info,level-) Mondrian(lower right rectangle info,level-) How to Generate Random Colors We need some new technology to organize the selection random colors. We need lists whose entries are lists. We look at a few details. Complete implementation online 0
11 Lists with Entries that Are Lists An Example: cyan = [0.0,.0,.0] magenta = [.0,0.0,.0] yellow = [.0,.0,0.0] colorlist = [cyan,magenta,yellow] Pick a Color at Random cyan = [0.0,.0,.0] magenta = [.0,0.0,.0] yellow = [.0,.0,0.0] colorlist = [cyan,magenta,yellow] r = randi(0,) randomcolor = colorlist[r] Package the Idea from simplegraphics import * from random import randint as randi def RandomColor(): Returns a randomly selected rgb list. c = [RED,GREEN,BLUE,ORANGE,CYAN] i = randi(0,len(c)-) c[i] How to Randomly Subdivide a Rectangle (xc,y c) L (x,y ) W xc = randu(x-l/,x+l/) yc = randu(y-w/,y+w/) The Math Behind the Little Rectangles (xc,y c) L The upper right rectangle is typical: Length: Width: Center: (x,y ) W L = (x+l/)-xc W = (y+w/)-yc (xc+l/,yc+w/) The Procedure Mondrian A couple of features to make the design more interesting: () The dart throw that determines the subdivision can t land too near the edge. No super skinny tiles! () Randomly decide whether or not to subdivide. This creates a nice diversity in size.
12 Overall Conclusions Recursion is sometimes the simplest way to organize a computation. It would be next to impossible to do the triangle tiling problem any other way. On the other hand, factorial computation is easier via for-loop iteration. Overall Conclusions Infinite recursion (like infinite loops) can happen so careful reasoning is required. Will we reach the base case? Graphics examples: We will reach Level==0 Factorial: We will reach n==
5. Introduction to Procedures
5. Introduction to Procedures Topics: The module SimpleGraphics Creating and Showing figures Drawing Rectangles, Disks, and Stars Optional arguments Application Scripts Procedures We continue our introduction
More informationCS1110 Lab 5: Practice for A4 (Mar 8-9, 2016) First Name: Last Name: NetID:
CS1110 Lab 5: Practice for A4 (Mar 8-9, 2016) First Name: Last Name: NetID: The lab assignments are very important. Remember this: The lab problems feed into the assignments and the assignments define
More informationCS1110 Lab 6 (Mar 17-18, 2015)
CS1110 Lab 6 (Mar 17-18, 2015) First Name: Last Name: NetID: The lab assignments are very important and you must have a CS 1110 course consultant tell CMS that you did the work. (Correctness does not matter.)
More information24. Divide and Conquer Algorithms. Binary Search Merge Sort Mesh Generation Recursion
24. Divide and Conquer Algorithms Binary Search Merge Sort Mesh Generation Recursion The Manhatten phone book has 1,000,000+ entries. How is it possible to locate a name by examining just a tiny, tiny
More informationAssignment 4: Due Friday Mar 11 at 6pm
CS1110 Spring 2016 Assignment 4: Due Friday Mar 11 at 6pm You must work either on your own or with one partner. If you work with a partner, you and your partner must first register as a group in CMS (this
More informationLast Name: UTION First Name: SOL Cornell NetID: CS1110. Solution: CS 1110 Prelim 2 April 26, 2016
Last Name: UTION First Name: SOL Cornell NetID: CS1110 CS 1110 Prelim 2 April 26, 2016 1. [6 points] What is the output if the following module is run: def F1(x): y = [] # empty list n = len(x) for k in
More informationLoop-Body Returns. Another way to terminate a loop.
12. Loops and Logic Topics: Loop-Body Return The Idea of a Random Walk Showcase: Open-Ended Iteration Showcase: Computing Averages Showcase: Top-Down Development Loop-Body Returns Loop-Body Returns Another
More informationANS:
Math 15-Spring 17-Final Exam Solutions 1. Consider the following definition of the symbol. Definition. Let x and y be integers. Write x y if 5x + 7y = 11k for some integer k. (a) Show that 1 4, 2 8, and
More informationCISC 1600 Lecture 3.1 Introduction to Processing
CISC 1600 Lecture 3.1 Introduction to Processing Topics: Example sketches Drawing functions in Processing Colors in Processing General Processing syntax Processing is for sketching Designed to allow artists
More informationCMPSCI 119 Fall 2018 Thursday, November 29, 2018 Midterm #3 Solution Key Professor William T. Verts
CMPSCI 119 Fall 2018 Thursday, November 29, 2018 Midterm #3 Solution Key Professor William T. Verts 25 Points What is the value of each expression below? Answer any 25; answer more for extra credit.
More informationCS 1110 Prelim 2 April 26th, 2016
Circle your lab/situation: CS 1110 Prelim 2 April 26th, 2016 ACCEL: Tue 12:20 Tue 1:25 Tue 2:30 Tue 3:35 ACCEL : Wed 10:10 Wed 11:15 Wed 12:20 Wed 1:25 Wed 2:30 Wed 3:35 PHILLIPS : Tue 12:20 Tue 1:25 Wed
More informationAssignment 7: Due Wednesday May 11 at 6pm UPDATES on Monday May 9
CS1110 Spring 2016 Assignment 7: Due Wednesday May 11 at 6pm UPDATES on Monday May 9 You must work either on your own or with one partner. If you work with a partner, you and your partner must first register
More information27. Means and Medians. What? What? Three Instructive Problems: The Apportionment Problem The Polygon Averaging Problem The Median Filtering Problem
2. Means and Medians What? Three Instructive Problems: The Apportionment Problem The Polygon Averaging Problem The Median Filtering Problem The Apportionment Problem How to fairly distribute 435 Congressional
More informationLecture 19: Subclasses & Inheritance (Chapter 18)
http://www.cs.cornell.edu/courses/cs1110/2018sp Lecture 19: Subclasses & Inheritance (Chapter 18) CS 1110 Introduction to Computing Using Python [E. Andersen, A. Bracy, D. Gries, L. Lee, S. Marschner,
More information6.009 Fundamentals of Programming
6.009 Fundamentals of Programming Lecture 5: Custom Types Adam Hartz hz@mit.edu 6.009: Goals Our goals involve helping you develop as a programmer, in multiple aspects: Programming: Analyzing problems,
More informationGraphing Calculator Graphing with the TI-89
Graphing Calculator Graphing with the TI-89 I. Introduction The TI-89 has fifty keys, many of which will perform multiple functions when used in combination. Each key has a symbol printed on its face.
More informationLast Name: First: Netid: Section. CS 1110 Final, December 17th, 2014
CS 0 Final, December 7th, 204 SOLUTION This 50-minute exam has 8 questions worth a total of 00 points. Scan the whole test before starting. Budget your time wisely. Use the back of the pages if you need
More informationA Problem. Loop-Body Returns. While-Loop Solution with a Loop-Body Return. 12. Logical Maneuvers. Typical While-Loop Solution 3/8/2016
12. Logical Maneuvers Topics: Loop-Body Returns Exceptions Assertions Type Checking Try-Except Loop-Body Returns Loop-Body Returns Another way to terminate a loop. Uses the fact that in a function, control
More information12. Logical Maneuvers. Topics: Loop-Body Returns Exceptions Assertions Type Checking Try-Except
12. Logical Maneuvers Topics: Loop-Body Returns Exceptions Assertions Type Checking Try-Except Loop-Body Returns Loop-Body Returns Another way to terminate a loop. Uses the fact that in a function, control
More informationPREPARING FOR PRELIM 2
PREPARING FOR PRELIM 2 CS 1110: FALL 2012 This handout explains what you have to know for the second prelim. There will be a review session with detailed examples to help you study. To prepare for the
More informationCMPSCI 119 LAB #2 Anime Eyes Professor William T. Verts
CMPSCI 119 LAB #2 Anime Eyes Professor William T. Verts The goal of this Python programming assignment is to write your own code inside a provided program framework, with some new graphical and mathematical
More informationComputer and Programming: Lab 1
01204111 Computer and Programming: Lab 1 Name ID Section Goals To get familiar with Wing IDE and learn common mistakes with programming in Python To practice using Python interactively through Python Shell
More informationCS 1110 Final, December 17th, Question Points Score Total: 100
CS 1110 Final, December 17th, 2014 This 150-minute exam has 8 questions worth a total of 100 points. Scan the whole test before starting. Budget your time wisely. Use the back of the pages if you need
More informationComputer Graphics Fundamentals. Jon Macey
Computer Graphics Fundamentals Jon Macey jmacey@bournemouth.ac.uk http://nccastaff.bournemouth.ac.uk/jmacey/ 1 1 What is CG Fundamentals Looking at how Images (and Animations) are actually produced in
More informationFractals and the Chaos Game
Math: Outside the box! Fractals and the Chaos Game Monday February 23, 2009 3:30-4:20 IRMACS theatre, ASB 10900 Randall Pyke Senior Lecturer Department of Mathematics, SFU A Game. Is this a random walk?
More informationCS 1110 Prelim 1 March 15th, 2016
Circle your lab/situation: CS 1110 Prelim 1 March 15th, 2016 ACCEL: Tue 12:20 Tue 1:25 Tue 2:30 Tue 3:35 ACCEL : Wed 10:10 Wed 11:15 Wed 12:20 Wed 1:25 Wed 2:30 Wed 3:35 PHILLIPS : Tue 12:20 Tue 1:25 Wed
More informationFor many years, geometry in the elementary schools was confined to
SHOW 118 PROGRAM SYNOPSIS Segment 1 (1:39) MATHMAN: RECTANGLES Mathman is told to eat only the rectangles that appear on his video game board. He notes that rectangles must have four right angles (and
More informationITERATORS, GENERATORS, GENERIC FUNCTIONS
ITERATORS, GENERATORS, GENERIC FUNCTIONS 9 COMPUTER SCIENCE 61A July 22, 2014 0.1 Warmup What Would Python Output? 1. >>> a = iter(range(2)) >>> a >>> next(a) >>> next(a) >>> next(a) 1 Iterators An iterator
More informationIntroduction Programming Using Python Lecture 8. Dr. Zhang COSC 1437 Fall 2017 Nov 30, 2017
Introduction Programming Using Python Lecture 8 Dr. Zhang COSC 1437 Fall 2017 Nov 30, 2017 Chapter 12 Inheritance and Class Design Review Suppose you will define classes to model circles, rectangles, and
More informationCS 1110 Final, December 8th, Question Points Score Total: 100
CS 1110 Final, December 8th, 2016 This 150-minute exam has 8 questions worth a total of 100 points. Scan the whole test before starting. Budget your time wisely. Use the back of the pages if you need more
More informationCS 100: Computability, Python Lists
CS 100: Computability, Python Lists Chris Kauffman Week 6 Logistics Homework 4 A few Python list exercises Due next Thursday Reading Pattern Ch 5: Algorithms And Heuristics Think Ch 11: Lists (link) Mini-Exam
More informationTest #2 October 8, 2015
CPSC 1040 Name: Test #2 October 8, 2015 Closed notes, closed laptop, calculators OK. Please use a pencil. 100 points, 5 point bonus. Maximum score 105. Weight of each section in parentheses. If you need
More information9. The Disorganized Handyman
9. The Disorganized Handyman A bad handyman always blames his tools. Famous Proverb. What if my hammer is made of paper? Can I blame it then? Author Unknown. Programming constructs and algorithmic paradigms
More informationTextbook. Topic 6: Functions. Motivation. What is a Function? What s a function? How can we use functions to write better software?
Textbook Topic 6: Functions What s a? How can we use s to write better software? Strongly Recommended Exercises The Python Workbook: 85, 86, 98 and 103 Recommended Exercises The Python Workbook: 84, 88,
More information4. Use a loop to print the first 25 Fibonacci numbers. Do you need to store these values in a data structure such as an array or list?
1 Practice problems Here is a collection of some relatively straightforward problems that let you practice simple nuts and bolts of programming. Each problem is intended to be a separate program. 1. Write
More informationCS558 Programming Languages Winter 2013 Lecture 8
OBJECT-ORIENTED PROGRAMMING CS558 Programming Languages Winter 2013 Lecture 8 Object-oriented programs are structured in terms of objects: collections of variables ( fields ) and functions ( methods ).
More informationwww.thestudycampus.com Recursion Recursion is a process for solving problems by subdividing a larger problem into smaller cases of the problem itself and then solving the smaller, more trivial parts. Recursion
More informationChapter 8 Algorithms 1
Chapter 8 Algorithms 1 Objectives After studying this chapter, the student should be able to: Define an algorithm and relate it to problem solving. Define three construct and describe their use in algorithms.
More informationApplications. 44 Stretching and Shrinking
Applications 1. Look for rep-tile patterns in the designs below. For each design, tell whether the small quadrilaterals are similar to the large quadrilateral. Explain. If the quadrilaterals are similar,
More informationUNIT 5A Recursion: Basics. Recursion
UNIT 5A Recursion: Basics 1 Recursion A recursive function is one that calls itself. Infinite loop? Not necessarily. 2 1 Recursive Definitions Every recursive definition includes two parts: Base case (non
More information(Refer Slide Time 03:00)
Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture #30 Visible Surface Detection (Contd ) We continue the discussion on Visible
More informationHere is a sample IDLE window illustrating the use of these two functions:
1 A SLIGHT DETOUR: RANDOM WALKS One way you can do interesting things with a program is to introduce some randomness into the mix. Python, and most programming languages, typically provide a library for
More information34. Recursion. Java. Summer 2008 Instructor: Dr. Masoud Yaghini
34. Recursion Java Summer 2008 Instructor: Dr. Masoud Yaghini Outline Introduction Example: Factorials Example: Fibonacci Numbers Recursion vs. Iteration References Introduction Introduction Recursion
More informationAssignment 3: Due Friday Mar 4 at 6pm on CMS Updates in orange/red; last update 12:10pm Sun Feb 28
CS1110 Spring 2016 Assignment 3: Due Friday Mar 4 at 6pm on CMS Updates in orange/red; last update 12:10pm Sun Feb 28 You must work either on your own or with one partner. If you work with a partner, you
More informationITERATORS, GENERATORS, GENERIC FUNCTIONS
ITERATORS, GENERATORS, GENERIC FUNCTIONS 9 COMPUTER SCIENCE 61A July 22, 2014 0.1 Warmup What Would Python Output? 1. >>> a = iter(range(2)) >>> a >>> next(a) 0 >>> next(a) 1 >>>
More informationCSC 101: Lab Manual#11 Programming Turtle Graphics in Python Lab due date: 5:00pm, day after lab session
CSC 101: Lab Manual#11 Programming Turtle Graphics in Python Lab due date: 5:00pm, day after lab session Purpose: The purpose of this lab is to get a little introduction to the process of computer programming
More informationSubdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts
Subdivision Of Triangular Terrain Mesh Breckon, Chenney, Hobbs, Hoppe, Watts MSc Computer Games and Entertainment Maths & Graphics II 2013 Lecturer(s): FFL (with Gareth Edwards) Fractal Terrain Based on
More information24. Sorting a List. Topics: Selection Sort. Merge Sort
24. Sorting a List Topics: Selection Sort Merge Sort Our examples will highlight the interplay between functions and lists Sorting a List of Numbers Before: x --> 50 40 10 80 20 60 After: x --> 10 20 40
More informationOpenGL Graphics System. 2D Graphics Primitives. Drawing 2D Graphics Primitives. 2D Graphics Primitives. Mathematical 2D Primitives.
D Graphics Primitives Eye sees Displays - CRT/LCD Frame buffer - Addressable pixel array (D) Graphics processor s main function is to map application model (D) by projection on to D primitives: points,
More informationCS195H Homework 5. Due:March 12th, 2015
CS195H Homework 5 Due:March 12th, 2015 As usual, please work in pairs. Math Stuff For us, a surface is a finite collection of triangles (or other polygons, but let s stick with triangles for now) with
More informationDirections: Working with your group, cut out the shapes below and sort them into 3 groups based on similar characteristics.
Directions: Working with your group, cut out the shapes below and sort them into 3 groups based on similar characteristics. 1) In the space below, explain how you grouped your triangles. Label your groups:
More informationMatlab Tutorial 1: Working with variables, arrays, and plotting
Matlab Tutorial 1: Working with variables, arrays, and plotting Setting up Matlab First of all, let's make sure we all have the same layout of the different windows in Matlab. Go to Home Layout Default.
More informationAnnouncements for This Lecture
Lecture 16 Classes Announcements for This Lecture Prelim and Regrades Still have some prelims Apparently were misfiled Pick them up in office hours Regrades in CMS next week Only for MAJOR mistakes We
More informationDivide and Conquer. playing divide and conquer. searching in a sorted list membership in a sorted list
Divide and Conquer 1 Guessing a Secret playing divide and conquer 2 Binary Search searching in a sorted list membership in a sorted list 3 Bisection Search inverting a sampled function bisection search
More information#Think of program main() as the boss. #The boss needs to do some work... and we will use a VERY simple example #to represent the work
2018/01/11 03:09 1/21 Author: V. Rego, Jan 27, 2015 Week 3, Examples 2 #1.py #This program teaches you about functions in a very simple way #Think of program main() as the boss. #The boss needs to do some
More informationAddition and Subtraction
PART Looking Back At: Grade Number and Operations 89 Geometry 9 Fractions 94 Measurement 9 Data 9 Number and Operations 96 Geometry 00 Fractions 0 Measurement 02 Data 0 Looking Forward To: Grade Number
More informationLecture 38: Python. CS 51G Spring 2018 Kim Bruce
Lecture 38: Python CS 51G Spring 2018 Kim Bruce Announcements Test program 2 Academic Honesty Guidelines! Quiz Friday (Strings & Streams) Lecture Friday will be in lab Write searches and sorts in Python
More informationWeek - 04 Lecture - 01 Merge Sort. (Refer Slide Time: 00:02)
Programming, Data Structures and Algorithms in Python Prof. Madhavan Mukund Department of Computer Science and Engineering Indian Institute of Technology, Madras Week - 04 Lecture - 01 Merge Sort (Refer
More informationAbout Finish Line Mathematics 5
Table of COntents About Finish Line Mathematics 5 Unit 1: Big Ideas from Grade 1 7 Lesson 1 1.NBT.2.a c Understanding Tens and Ones [connects to 2.NBT.1.a, b] 8 Lesson 2 1.OA.6 Strategies to Add and Subtract
More informationThis is a tessellation.
This is a tessellation. What shapes do you see? Describe them. How are the shapes alike? How are the shapes different? POM Do the Tessellation P 1 What happens at the corners (vertices) of the shapes?
More informationTeaching Math thru Big Ideas Focusing on Differentiation. Marian Small April 2017 San Diego, CA
Teaching Math thru Big Ideas Focusing on Differentiation Marian Small April 2017 San Diego, CA Our focus today Differentiation by focusing on big ideas Formative assessment/feedback Planning lessons/units
More informationCSc 110, Autumn 2016 Lecture 7: Graphics. Adapted from slides by Marty Stepp and Stuart Reges
CSc 110, Autumn 2016 Lecture 7: Graphics Adapted from slides by Marty Stepp and Stuart Reges Graphical objects We will draw graphics in Python using a new kind of object: DrawingPanel: A window on the
More informationLet s start with occluding contours (or interior and exterior silhouettes), and look at image-space algorithms. A very simple technique is to render
1 There are two major classes of algorithms for extracting most kinds of lines from 3D meshes. First, there are image-space algorithms that render something (such as a depth map or cosine-shaded model),
More informationCSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 22 CLASS MICHAEL GROSSBERG
CSC102 INTRO TO PROGRAMMING WITH PYTHON LECTURE 22 CLASS MICHAEL GROSSBERG TYPES INT BOOLEAN FLOAT COMPLEX STRINGS SETS DICTIONARIES LISTS I WANT MY OWN TYPES! CLASSES = DIY TYPES BASIS OF OBJECT ORIENTED
More informationCS 1110 Prelim 2 April 21, 2015 GRADING GUIDE
CS 1110 Prelim 2 April 21, 2015 GRADING GUIDE Problem 1 15 points Problem 2 15 points Problem 3 15 points Problem 4 20 points Problem 5 20 points Problem 6 15 points Problem Total 20 points 95-100 xxxxxxxxxxxxxxxxxxxxxxxxx
More information15. Functions and Lists
15. Functions and Lists Topics: Subscripting Map Searching a list Example 1: Clouds of points Example 2: Selection Sort Example 1: Computing the Diameter of a Cloud of Points 500 Points. Which two are
More informationJohn Perry. Spring 2016
MAT 305: Repeating a task on a set (or list, or tuple, or...) University of Southern Mississippi Spring 2016 Outline 1 2 3 4 5 6 7 Outline 1 2 3 4 5 6 7 Differential Equations What is y in terms of x?
More informationCMPSCI 119 LAB #2 Greebles / Anime Eyes Professor William T. Verts
CMPSCI 119 LAB #2 Greebles / Anime Eyes Professor William T. Verts The goal of this Python programming assignment is to write your own code inside a provided program framework, with some new graphical
More informationFunctions and Recursion
Functions and Recursion Chapter 5 Prof. Mauro Gaspari: gaspari@cs.unibo.it Example import math def area(radius): temp = math.pi * radius**2 return temp # or def area(radius): return math.pi * radius**2
More informationDM536 Introduction to Programming. Peter Schneider-Kamp.
DM536 Introduction to Programming Peter Schneider-Kamp petersk@imada.sdu.dk! http://imada.sdu.dk/~petersk/dm536/! DEFINING FUNCTIONS 2 Function Definitions functions are defined using the following grammar
More informationCS 1110 Prelim 2 April 21, 2015
CS 1110 Prelim 2 April 21, 2015 (Print Last Name) (Print First Name) (Net ID) Circle Your Lab: ACCEL: Tue 12:20 Tue 1:25 Tue 2:30 Tue 3:35 ACCEL : Wed 10:10 Wed 11:15 Wed 12:20 Wed 1:25 Wed 2:30 Wed 3:35
More informationEXAMINATIONS 2016 TRIMESTER 2
EXAMINATIONS 2016 TRIMESTER 2 CGRA 151 INTRODUCTION TO COMPUTER GRAPHICS Time Allowed: TWO HOURS CLOSED BOOK Permitted materials: Silent non-programmable calculators or silent programmable calculators
More informationIntroduction to Programming in C Department of Computer Science and Engineering. Lecture No. #17. Loops: Break Statement
Introduction to Programming in C Department of Computer Science and Engineering Lecture No. #17 Loops: Break Statement (Refer Slide Time: 00:07) In this session we will see one more feature that is present
More informationScalable Vector Graphics (SVG) vector image World Wide Web Consortium (W3C) defined with XML searched indexed scripted compressed Mozilla Firefox
SVG SVG Scalable Vector Graphics (SVG) is an XML-based vector image format for twodimensional graphics with support for interactivity and animation. The SVG specification is an open standard developed
More informationk-selection Yufei Tao Department of Computer Science and Engineering Chinese University of Hong Kong
Department of Computer Science and Engineering Chinese University of Hong Kong In this lecture, we will put randomization to some real use, by using it to solve a non-trivial problem called k-selection
More informationGMS 8.2 Tutorial Stratigraphy Modeling TIN Surfaces Introduction to the TIN (triangulated irregular network) surface object
v. 8.2 GMS 8.2 Tutorial Introduction to the TIN (triangulated irregular network) surface object Objectives Learn to create, read, alter and manage TIN data from within GMS. Prerequisite Tutorials None
More information2D Drawing Primitives
THE SIERPINSKI GASKET We use as a sample problem the drawing of the Sierpinski gasket an interesting shape that has a long history and is of interest in areas such as fractal geometry. The Sierpinski gasket
More informationCS1 Lecture 27 Mar. 26, 2018
CS1 Lecture 27 Mar. 26, 2018 HW6 due Thurs. Q1: think carefully about overlaps draw pictures Q2 ---------------- Ensure legal moves i.e. if user enters an illegal choice, print something appropriate and
More informationFinding Pi: Applications of Loops, Random Numbers, Booleans CS 8: Introduction to Computer Science, Winter 2018 Lecture #6
Finding Pi: Applications of Loops, Random Numbers, Booleans CS 8: Introduction to Computer Science, Winter 2018 Lecture #6 Ziad Matni Dept. of Computer Science, UCSB Administrative New Homework (#3) is
More informationPython, Part 2 CS 8: Introduction to Computer Science Lecture #4
Python, Part 2 CS 8: Introduction to Computer Science Lecture #4 Ziad Matni Dept. of Computer Science, UCSB A Word About Registration for CS8 This class is currently FULL The waitlist is CLOSED 4/13/17
More informationCS 360: Programming Languages Lecture 12: More Haskell
CS 360: Programming Languages Lecture 12: More Haskell Geoffrey Mainland Drexel University Adapted from Brent Yorgey s course Introduction to Haskell. Section 1 Administrivia Administrivia Homework 5 due
More informationCSC 273 Data Structures
CSC 273 Data Structures Lecture 6 - Faster Sorting Methods Merge Sort Divides an array into halves Sorts the two halves, Then merges them into one sorted array. The algorithm for merge sort is usually
More informationMacroLab Lesson 5 Patterns & Colors: Student Guide
MacroLab Lesson 5 Patterns & Colors: Student Guide You are going to be using Sphero to program patterns. Sphero can be programmed to change colors for different durations. You are going to be creating
More informationTAIL RECURSION, SCOPE, AND PROJECT 4 11
TAIL RECURSION, SCOPE, AND PROJECT 4 11 COMPUTER SCIENCE 61A Noveber 12, 2012 1 Tail Recursion Today we will look at Tail Recursion and Tail Call Optimizations in Scheme, and how they relate to iteration
More informationHave classes that describe the format of objects. Create objects by stating the class of the object to be created.
Class-based model Have classes that describe the format of objects Create objects by stating the class of the object to be created. The created object is called an instance of the class Class-based model
More information15110 Principles of Computing, Carnegie Mellon University - CORTINA. Binary Search. Required: List L of n unique elements.
UNIT 5B Binary Search 1 Binary Search Required: List L of n unique elements. The elements must be sorted in increasing order. Result: The index of a specific element (called the key) or None if the key
More informationIntro. Speed V Growth
Intro Good code is two things. It's elegant, and it's fast. In other words, we got a need for speed. We want to find out what's fast, what's slow, and what we can optimize. First, we'll take a tour of
More informationWriting Functions. Reading: Dawson, Chapter 6. What is a function? Function declaration and parameter passing Return values Objects as parameters
What is a function? Function declaration and parameter passing Return values Objects as parameters Reading: Writing Functions Dawson, Chapter 6 Abstraction Data scoping Encapsulation Modules Recursion
More informationProblem 1 (a): List Operations
Problem 1 (a): List Operations Task 1: Create a list, L1 = [1, 2, 3,.. N] Suppose we want the list to have the elements 1, 2, 10 range(n) creates the list from 0 to N-1 But we want the list to start from
More information20. More Complicated Classes. A Class For Manipulating Fractions. A Class For Manipulating Fractions 4/19/2016. Let s Define a Class to Do This Stuff
4/9/26 2. More Complicated Classes Class For Manipulating Fractions Topics: Example: The class Fraction Operator Overloading Class Invariants Example: The class SimpleDate Class Variables deepcopy You
More informationLecture 11. Asserts and Error Handling
Lecture 11 Asserts and Error Handling Announcements for Today Reading Reread Chapter 3 10.0-10.2, 10.4-10.6 for Thu Prelim, Oct 12 th 7:30-9:00 Material up October 3rd Study guide next week Conflict with
More informationOn a nested refinement of anisotropic tetrahedral grids under Hessian metrics
On a nested refinement of anisotropic tetrahedral grids under Hessian metrics Shangyou Zhang Abstract Anisotropic grids, having drastically different grid sizes in different directions, are efficient and
More information4.2 and 4.6 filled in notes.notebook. December 08, Integration. Copyright Cengage Learning. All rights reserved.
4 Integration Copyright Cengage Learning. All rights reserved. 1 4.2 Area Copyright Cengage Learning. All rights reserved. 2 Objectives Use sigma notation to write and evaluate a sum. Understand the concept
More informationHex Planet Technical Demo Joel Davis
Hex Planet Technical Demo Joel Davis joeld42@yahoo.com Introduction Recently, on the yahoo Gamedesign-l mailing list, there was a discussion of different techniques for tiling a civ-like grid around a
More information4. Modules and Functions
4. Modules and Functions The Usual Idea of a Function Topics Modules Using import Using functions from math A first look at defining functions sqrt 9 3 A factory that has inputs and builds outputs. Why
More informationSTATS 507 Data Analysis in Python. Lecture 2: Functions, Conditionals, Recursion and Iteration
STATS 507 Data Analysis in Python Lecture 2: Functions, Conditionals, Recursion and Iteration Functions in Python We ve already seen examples of functions: e.g., type()and print() Function calls take the
More informationThree-Dimensional Shapes
Lesson 11.1 Three-Dimensional Shapes Three-dimensional objects come in different shapes. sphere cone cylinder rectangular prism cube Circle the objects that match the shape name. 1. rectangular prism 2.
More informationLecture 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 informationCSI33 Data Structures
Outline Department of Mathematics and Computer Science Bronx Community College October 11, 2017 Outline Outline 1 Chapter 6: Recursion Outline Chapter 6: Recursion 1 Chapter 6: Recursion Measuring Complexity
More informationCS 1110 SPRING 2016: LAB 3: PRACTICE FOR A2 (Feb 23-24)
CS 1110 SPRING 2016: LAB 3: PRACTICE FOR A2 (Feb 23-24) http://www.cs.cornell.edu/courses/cs1110/2016sp/labs/lab03/lab03.pdf First Name: Last Name: NetID: The lab assignments are very important. Remember
More information