# Algorithms are the threads that tie together most of the subfields of computer science.

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Algorithms Algorithms 1 Algorithms are the threads that tie together most of the subfields of computer science. Something magically beautiful happens when a sequence of commands and decisions is able to marshal a collection of data into organized patterns or to discover hidden structure. Donald Knuth

2 Definition effective method (or procedure) Algorithms 2 a procedure that reduces the solution of some class of problems to a series of rote steps which, if followed to the letter, and as far as may be necessary, is bound to: - always give some answer rather than ever give no answer; - always give the right answer and never give a wrong answer; - always be completed in a finite number of steps, rather than in an infinite number; - work for all instances of problems of the class. algorithm an effective method expressed as a finite list of well-defined instructions for calculating a function

3 Properties of an Algorithm Algorithms 3 An algorithm must possess the following properties: finiteness: definiteness: input: output: effectiveness: The algorithm must always terminate after a finite number of steps. Each step must be precisely defined; the actions to be carried out must be rigorously and unambiguously specified for each case. An algorithm has zero or more inputs, taken from a specified set of objects. An algorithm has one or more outputs, which have a specified relation to the inputs. All operations to be performed must be sufficiently basic that they can be done exactly and in finite length. Knuth

4 Problems vs Algorithms vs Programs Algorithms 4 For each problem or class of problems, there may be many different algorithms. For each algorithm, there may be many different implementations (programs). p r o b l e m algorithm 1 algorithm 2. algorithm k program 1 program 2 program n

5 Expressing Algorithms Algorithms 5 An algorithm may be expressed in a number of ways, including: natural language: flow charts: pseudo-code: programming language: usually verbose and ambiguous avoid most (if not all) issues of ambiguity; difficult to modify w/o specialized tools; largely standardized also avoids most issues of ambiguity; vaguely resembles common elements of programming languages; no particular agreement on syntax tend to require expressing low-level details that are not necessary for a high-level understanding

6 Common Elements of Algorithms Algorithms 6 acquire data (input) computation selection iteration some means of reading values from an external source; most algorithms require data values to define the specific problem (e.g., coefficients of a polynomial) some means of performing arithmetic computations, comparisons, testing logical conditions, and so forth... some means of choosing among two or more possible courses of action, based upon initial data, user input and/or computed results some means of repeatedly executing a collection of instructions, for a fixed number of times or until some logical condition holds report results (output) some means of reporting computed results to the user, or requesting additional data from the user

7 pseudo-language Algorithms 7 See the posted notes on pseudo-language notation.

8 Simple Example: Area of a Trapezoid Algorithms 8 algorithm AreaOfTrapezoid takes number Height, number lowerbase, number upperbase # Computes the area of a trapezoid. # Pre: input values must be non-negative real numbers. # number averagewidth, areaoftrapezoid averagewidth := ( upperbase + lowerbase ) / 2 areaoftrapezoid := averagewidth * Height display areaoftrapezoid halt

9 Simple Example: N Factorial Algorithms 9 algorithm Factorial takes number N # Computes N! = 1 * 2 *. * N-1 * N, for N >= 1 # Pre: input value must be a non-negative integer. # number nfactorial nfactorial := 1 while N > 1 nfactorial := nfactorial * N N := N - 1 endwhile display nfactorial halt

10 Example: Finding Longest Run Algorithms 10 algorithm LongestRun takes list number List, number Sz # Given a list of values, finds the length of the longest sequence # of values that are in strictly increasing order. # Pre: input List must contain Sz elements. # number currentposition # specifies list element currently # being examined number maxrunlength # stores length of longest run seen # so far number thisrunlength # stores length of current run if Sz <= 0 # if list is empty, no runs... display 0 halt endif currentposition := 1 # start with first element in list maxrunlength := 1 # it forms a run of length 1 thisrunlength := 1 # continues on next slide...

11 Example: Finding Longest Run Algorithms 11 #...continued from previous slide while currentposition < Sz if ( List[currentPosition] < List[currentPosition + 1] ) thisrunlength := thisrunlength + 1 else if ( thisrunlength > maxrunlength ) maxrunlength := thisrunlength endif thisrunlength := 1 endif currentposition := currentposition + 1 endwhile display maxrunlength halt QTP: is this algorithm correct?

12 Testing Correctness Algorithms 12 How do we know whether an algorithm is actually correct? First, the logical analysis of the problem we performed in order to design the algorithm should give us confidence that we have identified a valid procedure for finding a solution. Second, we can test the algorithm by choosing different sets of input values, carrying out the algorithm, and checking to see if the resulting solution does, in fact, work. BUT no matter how much testing we do, unless there are only a finite number of possible input values for the algorithm to consider, testing can never prove that the algorithm produces correct results in all cases.

13 Proving Correctness Algorithms 13 We can attempt to construct a formal, mathematical proof that, if the algorithm is given valid input values then the results obtained from the algorithm must be a solution to the problem. We should expect that such a proof be provided for every algorithm. In the absence of such a proof, we should view the purported algorithm as nothing more than a heuristic procedure, which may or may not yield the expected results.

14 Measuring Performance Algorithms 14 How can we talk precisely about the "cost" of running an algorithm? What does "cost" mean? Time? Space? Both? Something else? And, if we settle on one thing to measure, how do we actually obtain a measurement that makes sense? This is primarily a topic for a course in algorithms, like CS 3114 or CS 4104.

### Chapter 2: Algorithm Discovery and Design. Invitation to Computer Science, C++ Version, Third Edition

Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition Objectives In this chapter, you will learn about: Representing algorithms Examples of algorithmic problem

### 8 Algorithms. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, students should be able to:

8 Algorithms 8.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, students should be able to: Define an algorithm and relate it to problem solving. Define

### PROGRAM-SOLVING AND PROGRAM DESIGN

PROGRAM-SOLVING AND PROGRAM DESIGN Objective One Outline the steps in problem-solving A problem may be defined as a situation or task that needs to be solved. Problem-Solving is a process which involves

### Section IV.1: Recursive Algorithms and Recursion Trees

Section IV.1: Recursive Algorithms and Recursion Trees Definition IV.1.1: A recursive algorithm is an algorithm that solves a problem by (1) reducing it to an instance of the same problem with smaller

### For example, consider the problem of determining whether the value 55 occurs in:

Linear Search Divide and Conquer 1 Problem: Given a list of N values, determine whether a given value X occurs in the list. For example, consider the problem of determining whether the value 55 occurs

### Binary Number System. 16. Binary Numbers. Base 10 digits: 0 1 2 3 4 5 6 7 8 9. Base 2 digits: 0 1

Binary Number System 1 Base 10 digits: 0 1 2 3 4 5 6 7 8 9 Base 2 digits: 0 1 Recall that in base 10, the digits of a number are just coefficients of powers of the base (10): 417 = 4 * 10 2 + 1 * 10 1

### REPETITION WITH PYTHON

REPETITION WITH PYTHON José M. Garrido Department of Computer Science May 2015 College of Computing and Software Engineering Kennesaw State University c 2015, J. M. Garrido Repetition with Python 2 Repetition

### - Wikipedia Commons. Intro Problem Solving in Computer Science 2011 McQuain

Recursion Recursion 1 Around the year 1900 the illustration of the "nurse" appeared on Droste's cocoa tins. This is most probably invented by the commercial artist Jan (Johannes) Musset, who had been inspired

### Induction. Mathematical Induction. Induction. Induction. Induction. Induction. 29 Sept 2015

Mathematical If we have a propositional function P(n), and we want to prove that P(n) is true for any natural number n, we do the following: Show that P(0) is true. (basis step) We could also start at

### Algorithms 2/17/2015. Double Summations. Enough Mathematical Appetizers! Algorithms. Algorithms. Algorithm Examples. Algorithm Examples

Double Summations Table 2 in 4 th Edition: Section 1.7 5 th Edition: Section.2 6 th and 7 th Edition: Section 2.4 contains some very useful formulas for calculating sums. Enough Mathematical Appetizers!

### Clicker Question. Theorems/Proofs and Computational Problems/Algorithms MC215: MATHEMATICAL REASONING AND DISCRETE STRUCTURES

MC215: MATHEMATICAL REASONING AND DISCRETE STRUCTURES Tuesday, 1/21/14 General course Information Sets Reading: [J] 1.1 Optional: [H] 1.1-1.7 Exercises: Do before next class; not to hand in [J] pp. 12-14:

### [Refer Slide Time: 05:10]

Principles of Programming Languages Prof: S. Arun Kumar Department of Computer Science and Engineering Indian Institute of Technology Delhi Lecture no 7 Lecture Title: Syntactic Classes Welcome to lecture

### Reading 7 : Program Correctness

CS/Math 240: Introduction to Discrete Mathematics Fall 2015 Instructors: Beck Hasti, Gautam Prakriya Reading 7 : Program Correctness 7.1 Program Correctness Showing that a program is correct means that

### Why? A central concept in Computer Science. Algorithms are ubiquitous.

Analysis of Algorithms: A Brief Introduction Why? A central concept in Computer Science. Algorithms are ubiquitous. Using the Internet (sending email, transferring files, use of search engines, online

### Mathematical Induction

Chapter 2 Mathematical Induction 2.1 First Examples Suppose we want to find a simple formula for the sum of the first n odd numbers: 1 + 3 + 5 +... + (2n 1) = n (2k 1). How might we proceed? The most natural

### a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21 x 1 + a 22 x 2 + + a 2n x n = b 2.

Chapter 1 LINEAR EQUATIONS 1.1 Introduction to linear equations A linear equation in n unknowns x 1, x,, x n is an equation of the form a 1 x 1 + a x + + a n x n = b, where a 1, a,..., a n, b are given

### Introduction to Programming (in C++) Conclusions. Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC

Introduction to Programming (in C++) Conclusions Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC Why is programming hard? Part of the difficulty is that we have many requirements.

### MODULAR ARITHMETIC. a smallest member. It is equivalent to the Principle of Mathematical Induction.

MODULAR ARITHMETIC 1 Working With Integers The usual arithmetic operations of addition, subtraction and multiplication can be performed on integers, and the result is always another integer Division, on

### Recursion as a Problem- Solving Technique CS102 Sections 51 and 52 Marc Smith and Jim Ten Eyck Spring 2008

Chapter 6 Recursion as a Problem- Solving Technique CS102 Sections 51 and 52 Marc Smith and Jim Ten Eyck Spring 2008 Backtracking Backtracking A strategy for guessing at a solution and backing up when

### CS 4310 HOMEWORK SET 1

CS 4310 HOMEWORK SET 1 PAUL MILLER Section 2.1 Exercises Exercise 2.1-1. Using Figure 2.2 as a model, illustrate the operation of INSERTION-SORT on the array A = 31, 41, 59, 26, 41, 58. Solution: Assume

### Common and Uncommon Standard Number Sets

Common and Uncommon Standard Number Sets W. Blaine Dowler July 8, 2010 Abstract There are a number of important (and interesting unimportant) sets in mathematics. Sixteen of those sets are detailed here.

### GROUPS SUBGROUPS. Definition 1: An operation on a set G is a function : G G G.

Definition 1: GROUPS An operation on a set G is a function : G G G. Definition 2: A group is a set G which is equipped with an operation and a special element e G, called the identity, such that (i) the

### Algorithms, Integers

CHAPTER 3 Algorithms, Integers 3.1. Algorithms Consider the following list of instructions to find the maximum of three numbers a, b, c: 1. Assign variable x the value of a. 2. If b > x then assign x the

### 3 Does the Simplex Algorithm Work?

Does the Simplex Algorithm Work? In this section we carefully examine the simplex algorithm introduced in the previous chapter. Our goal is to either prove that it works, or to determine those circumstances

### Moving from CS 61A Scheme to CS 61B Java

Moving from CS 61A Scheme to CS 61B Java Introduction Java is an object-oriented language. This document describes some of the differences between object-oriented programming in Scheme (which we hope you

### Lecture 1: Elementary Number Theory

Lecture 1: Elementary Number Theory The integers are the simplest and most fundamental objects in discrete mathematics. All calculations by computers are based on the arithmetical operations with integers

### CS 103X: Discrete Structures Homework Assignment 3 Solutions

CS 103X: Discrete Structures Homework Assignment 3 s Exercise 1 (20 points). On well-ordering and induction: (a) Prove the induction principle from the well-ordering principle. (b) Prove the well-ordering

### Set Theory Basic Concepts and Definitions

Set Theory Basic Concepts and Definitions The Importance of Set Theory One striking feature of humans is their inherent need and ability to group objects according to specific criteria. Our prehistoric

### The Undecidability of the Generalized Collatz Problem

The Undecidability of the Generalized Collatz Problem Stuart A. Kurtz Department of Computer Science The University of Chicago Janos Simon Department of Computer Science The University of Chicago December

### Algorithms. CS 2233 Discrete Mathematical Structures Algorithms 1

Algorithms On two occasions I have been asked, Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?... I am not able rightly to apprehend the kind of confusion

### CS60003 Algorithm Design and Analysis, Autumn

CS60003 Algorithm Design and Analysis, Autumn 2010 11 Class test 1 Maximum marks: 40 Time: 07 08 09 10 Duration: 1 + ǫ hour Roll no: Name: [ Write your answers in the question paper itself. Be brief and

### CmSc 175 Discrete Mathematics Lesson 10: SETS A B, A B

CmSc 175 Discrete Mathematics Lesson 10: SETS Sets: finite, infinite, : empty set, U : universal set Describing a set: Enumeration = {a, b, c} Predicates = {x P(x)} Recursive definition, e.g. sequences

### Specimen 2015 am/pm Time allowed: 1hr 30mins

SPECIMEN MATERIAL GCSE COMPUTER SCIENCE 8520/1 Paper 1 Specimen 2015 am/pm Time allowed: 1hr 30mins Materials There are no additional materials required for this paper. Instructions Use black ink or black

### 8 Primes and Modular Arithmetic

8 Primes and Modular Arithmetic 8.1 Primes and Factors Over two millennia ago already, people all over the world were considering the properties of numbers. One of the simplest concepts is prime numbers.

### Today s Topics. Primes & Greatest Common Divisors

Today s Topics Primes & Greatest Common Divisors Prime representations Important theorems about primality Greatest Common Divisors Least Common Multiples Euclid s algorithm Once and for all, what are prime

### Approximation Errors in Computer Arithmetic (Chapters 3 and 4)

Approximation Errors in Computer Arithmetic (Chapters 3 and 4) Outline: Positional notation binary representation of numbers Computer representation of integers Floating point representation IEEE standard

### The Goldberg Rao Algorithm for the Maximum Flow Problem

The Goldberg Rao Algorithm for the Maximum Flow Problem COS 528 class notes October 18, 2006 Scribe: Dávid Papp Main idea: use of the blocking flow paradigm to achieve essentially O(min{m 2/3, n 1/2 }

### CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)

### Efficiency of algorithms. Algorithms. Efficiency of algorithms. Binary search and linear search. Best, worst and average case.

Algorithms Efficiency of algorithms Computational resources: time and space Best, worst and average case performance How to compare algorithms: machine-independent measure of efficiency Growth rate Complexity

### ALGORITHM AND FLOW CHART

ALGORITHM AND FLOW CHART 1.1 Introduction 1.2 Problem Solving 1.3 Algorithm 1.3.1 Examples of Algorithm 1.3.2 Properties of an Algorithm 1.4 Flow Chart 1.4.1 Flow Chart Symbols 1.4.2 Some Flowchart Examples

### Lecture 3. Mathematical Induction

Lecture 3 Mathematical Induction Induction is a fundamental reasoning process in which general conclusion is based on particular cases It contrasts with deduction, the reasoning process in which conclusion

### Factoring & Primality

Factoring & Primality Lecturer: Dimitris Papadopoulos In this lecture we will discuss the problem of integer factorization and primality testing, two problems that have been the focus of a great amount

### Recall that in base 10, the digits of a number are just coefficients of powers of the base (10):

Binary Number System 1 Base 10 digits: 0 1 2 3 4 5 6 7 8 9 Base 2 digits: 0 1 Recall that in base 10, the digits of a number are just coefficients of powers of the base (10): 417 = 4 * 10 2 + 1 * 10 1

### 3.1 Algorithms. Pseudocode. Searching Algorithms.

3.1 Algorithms. Pseudocode. Searching Algorithms. Outline: What is an Algorithm? Pseudocode Search Problems Sorting Problems (next) 1 3.1 Algorithms. Pseudocode. Searching Algorithms. Examples of Mathematical

### Chapter One Introduction to Programming

Chapter One Introduction to Programming 1-1 Algorithm and Flowchart Algorithm is a step-by-step procedure for calculation. More precisely, algorithm is an effective method expressed as a finite list of

### Python Programming: An Introduction to Computer Science

Python Programming: An Introduction to Computer Science Chapter 1 Computers and Programs 1 Objectives To understand the respective roles of hardware and software in a computing system. To learn what computer

### Cubic Functions: Global Analysis

Chapter 14 Cubic Functions: Global Analysis The Essential Question, 231 Concavity-sign, 232 Slope-sign, 234 Extremum, 235 Height-sign, 236 0-Concavity Location, 237 0-Slope Location, 239 Extremum Location,

### Discrete Mathematics, Chapter 5: Induction and Recursion

Discrete Mathematics, Chapter 5: Induction and Recursion Richard Mayr University of Edinburgh, UK Richard Mayr (University of Edinburgh, UK) Discrete Mathematics. Chapter 5 1 / 20 Outline 1 Well-founded

### CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Linda Shapiro Winter 2015

CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis Linda Shapiro Today Registration should be done. Homework 1 due 11:59 pm next Wednesday, January 14 Review math essential

### Solution of Linear Systems

Chapter 3 Solution of Linear Systems In this chapter we study algorithms for possibly the most commonly occurring problem in scientific computing, the solution of linear systems of equations. We start

### The Factor Theorem and a corollary of the Fundamental Theorem of Algebra

Math 421 Fall 2010 The Factor Theorem and a corollary of the Fundamental Theorem of Algebra 27 August 2010 Copyright 2006 2010 by Murray Eisenberg. All rights reserved. Prerequisites Mathematica Aside

### Name: Class: Date: 9. The compiler ignores all comments they are there strictly for the convenience of anyone reading the program.

Name: Class: Date: Exam #1 - Prep True/False Indicate whether the statement is true or false. 1. Programming is the process of writing a computer program in a language that the computer can respond to

### The Epsilon-Delta Limit Definition:

The Epsilon-Delta Limit Definition: A Few Examples Nick Rauh 1. Prove that lim x a x 2 = a 2. (Since we leave a arbitrary, this is the same as showing x 2 is continuous.) Proof: Let > 0. We wish to find

### Induction and Recursion

Induction and Recursion Winter 2010 Mathematical Induction Mathematical Induction Principle (of Mathematical Induction) Suppose you want to prove that a statement about an integer n is true for every positive

### ON THE FIBONACCI NUMBERS

ON THE FIBONACCI NUMBERS Prepared by Kei Nakamura The Fibonacci numbers are terms of the sequence defined in a quite simple recursive fashion. However, despite its simplicity, they have some curious properties

### PROG0101 Fundamentals of Programming PROG0101 FUNDAMENTALS OF PROGRAMMING. Chapter 3 Algorithms

PROG0101 FUNDAMENTALS OF PROGRAMMING Chapter 3 1 Introduction to A sequence of instructions. A procedure or formula for solving a problem. It was created mathematician, Mohammed ibn-musa al-khwarizmi.

### Pseudo code Tutorial and Exercises Teacher s Version

Pseudo code Tutorial and Exercises Teacher s Version Pseudo-code is an informal way to express the design of a computer program or an algorithm in 1.45. The aim is to get the idea quickly and also easy

### 1 Solving LPs: The Simplex Algorithm of George Dantzig

Solving LPs: The Simplex Algorithm of George Dantzig. Simplex Pivoting: Dictionary Format We illustrate a general solution procedure, called the simplex algorithm, by implementing it on a very simple example.

### Algorithm & Flowchart & Pseudo code. Staff Incharge: S.Sasirekha

Algorithm & Flowchart & Pseudo code Staff Incharge: S.Sasirekha Computer Programming and Languages Computers work on a set of instructions called computer program, which clearly specify the ways to carry

### 8.7 Mathematical Induction

8.7. MATHEMATICAL INDUCTION 8-135 8.7 Mathematical Induction Objective Prove a statement by mathematical induction Many mathematical facts are established by first observing a pattern, then making a conjecture

### Sequences and Mathematical Induction. CSE 215, Foundations of Computer Science Stony Brook University

Sequences and Mathematical Induction CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.edu/~cse215 Sequences A sequence is a function whose domain is all the integers

### CS103X: Discrete Structures Homework Assignment 2: Solutions

CS103X: Discrete Structures Homework Assignment 2: Solutions Due February 1, 2008 Exercise 1 (10 Points). Prove or give a counterexample for the following: Use the Fundamental Theorem of Arithmetic to

### How to prove an algorithm is correct?

How to prove an algorithm is correct? To prove the incorrectness of an algorithm, one counter-example is enough. Proving the correctness of an algorithm is similar to proving a mathematical theorem; fundamentally,

### Theorem 2. If x Q and y R \ Q, then. (a) x + y R \ Q, and. (b) xy Q.

Math 305 Fall 011 The Density of Q in R The following two theorems tell us what happens when we add and multiply by rational numbers. For the first one, we see that if we add or multiply two rational numbers

### Models of Sequential Computation

Models of Sequential Computation 13 C H A P T E R Programming is often considered as an art, but it raises mostly practical questions like which language should I choose, which algorithm is adequate, and

### TECHNICAL UNIVERSITY OF CRETE DATA STRUCTURES FILE STRUCTURES

TECHNICAL UNIVERSITY OF CRETE DEPT OF ELECTRONIC AND COMPUTER ENGINEERING DATA STRUCTURES AND FILE STRUCTURES Euripides G.M. Petrakis http://www.intelligence.tuc.gr/~petrakis Chania, 2007 E.G.M. Petrakis

### Gödel s Theorem: An Incomplete Guide to Its Use and Abuse

Gödel s Theorem: An Incomplete Guide to Its Use and Abuse by Torkel Franzén Summary by Xavier Noria August 2006 fxn@hashref.com This unique exposition of Kurt Gödel s stunning incompleteness theorems for

### FORMAL LANGUAGES, AUTOMATA AND COMPUTATION

FORMAL LANGUAGES, AUTOMATA AND COMPUTATION REDUCIBILITY ( LECTURE 16) SLIDES FOR 15-453 SPRING 2011 1 / 20 THE LANDSCAPE OF THE CHOMSKY HIERARCHY ( LECTURE 16) SLIDES FOR 15-453 SPRING 2011 2 / 20 REDUCIBILITY

### Verification of Imperative Programs in Theorema

Verification of Imperative Programs in Theorema Laura Ildikó Kovács, Nikolaj Popov, Tudor Jebelean 1 Research Institute for Symbolic Computation, Johannes Kepler University, A-4040 Linz, Austria Institute

### ALGORITHMS AND FLOWCHARTS

ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: Problem solving phase produce an ordered sequence of steps that describe solution of problem this sequence of steps

### HOMEWORK 5 SOLUTIONS. n!f n (1) lim. ln x n! + xn x. 1 = G n 1 (x). (2) k + 1 n. (n 1)!

Math 7 Fall 205 HOMEWORK 5 SOLUTIONS Problem. 2008 B2 Let F 0 x = ln x. For n 0 and x > 0, let F n+ x = 0 F ntdt. Evaluate n!f n lim n ln n. By directly computing F n x for small n s, we obtain the following

### Discrete Mathematics and Probability Theory Fall 2009 Satish Rao, David Tse Note 20

CS 70 Discrete Mathematics and Probability Theory Fall 009 Satish Rao, David Tse Note 0 Infinity and Countability Consider a function (or mapping) f that maps elements of a set A (called the domain of

### Computer Programming. Course Details An Introduction to Computational Tools. Prof. Mauro Gaspari: mauro.gaspari@unibo.it

Computer Programming Course Details An Introduction to Computational Tools Prof. Mauro Gaspari: mauro.gaspari@unibo.it Road map for today The skills that we would like you to acquire: to think like a computer

### We give a basic overview of the mathematical background required for this course.

1 Background We give a basic overview of the mathematical background required for this course. 1.1 Set Theory We introduce some concepts from naive set theory (as opposed to axiomatic set theory). The

### Steven Skiena. skiena

Lecture 3: Recurrence Relations (1997) Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Argue the solution to T(n) =

### 5. Factoring by the QF method

5. Factoring by the QF method 5.0 Preliminaries 5.1 The QF view of factorability 5.2 Illustration of the QF view of factorability 5.3 The QF approach to factorization 5.4 Alternative factorization by the

### Compiling Scheme to a Micro 2 computer

Massachusetts Institute of Technology Course Notes 7 6.844, Spring 03: Computability Theory of and with Scheme April 22 Prof. Albert Meyer revised April 22, 2003, 1115 minutes Compiling Scheme to a Micro

### Algebraic and Transcendental Numbers

Pondicherry University July 2000 Algebraic and Transcendental Numbers Stéphane Fischler This text is meant to be an introduction to algebraic and transcendental numbers. For a detailed (though elementary)

### A simple criterion on degree sequences of graphs

Discrete Applied Mathematics 156 (2008) 3513 3517 Contents lists available at ScienceDirect Discrete Applied Mathematics journal homepage: www.elsevier.com/locate/dam Note A simple criterion on degree

### Flowchart Techniques

C H A P T E R 1 Flowchart Techniques 1.1 Programming Aids Programmers use different kinds of tools or aids which help them in developing programs faster and better. Such aids are studied in the following

### Fundamentals of Python: First Programs. Chapter 3: Control Statements modifications by Mr. Dave Clausen

Fundamentals of Python: First Programs Chapter 3: Control Statements modifications by Mr. Dave Clausen Objectives After completing this chapter, you will be able to: Write a loop to repeat a sequence of

### Introducing Formal Methods. Software Engineering and Formal Methods

Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended

### Practical Guide to the Simplex Method of Linear Programming

Practical Guide to the Simplex Method of Linear Programming Marcel Oliver Revised: April, 0 The basic steps of the simplex algorithm Step : Write the linear programming problem in standard form Linear

### 10CS35: Data Structures Using C

CS35: Data Structures Using C QUESTION BANK REVIEW OF STRUCTURES AND POINTERS, INTRODUCTION TO SPECIAL FEATURES OF C OBJECTIVE: Learn : Usage of structures, unions - a conventional tool for handling a

### Recursive Algorithms. Recursion. Motivating Example Factorial Recall the factorial function. { 1 if n = 1 n! = n (n 1)! if n > 1

Recursion Slides by Christopher M Bourke Instructor: Berthe Y Choueiry Fall 007 Computer Science & Engineering 35 Introduction to Discrete Mathematics Sections 71-7 of Rosen cse35@cseunledu Recursive Algorithms

### Elementary Number Theory We begin with a bit of elementary number theory, which is concerned

CONSTRUCTION OF THE FINITE FIELDS Z p S. R. DOTY Elementary Number Theory We begin with a bit of elementary number theory, which is concerned solely with questions about the set of integers Z = {0, ±1,

### Theory of Computation Prof. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras

Theory of Computation Prof. Kamala Krithivasan Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture No. # 31 Recursive Sets, Recursively Innumerable Sets, Encoding

### 13 Infinite Sets. 13.1 Injections, Surjections, and Bijections. mcs-ftl 2010/9/8 0:40 page 379 #385

mcs-ftl 2010/9/8 0:40 page 379 #385 13 Infinite Sets So you might be wondering how much is there to say about an infinite set other than, well, it has an infinite number of elements. Of course, an infinite

### Taylor Polynomials and Taylor Series Math 126

Taylor Polynomials and Taylor Series Math 26 In many problems in science and engineering we have a function f(x) which is too complicated to answer the questions we d like to ask. In this chapter, we will

### Software development and programming. Software

CHAPTER 15 15 Software Software development and programming Syllabus outcomes 5.2.1 Describes and applies problem-solving processes when creating solutions. 5.2.2 Designs, produces and evaluates appropriate

### Regular Languages and Finite Automata

Regular Languages and Finite Automata 1 Introduction Hing Leung Department of Computer Science New Mexico State University Sep 16, 2010 In 1943, McCulloch and Pitts [4] published a pioneering work on a

### PART II Algorithms for Message- Passing Systems. Section 7 Introduction Model Basic Graph Algorithms

PART II Algorithms for Message- Passing Systems Section 7 Introduction Model Basic Graph Algorithms 1 Formal Model for Message-Passing Systems There are n processes in the system: p 0,.., p n-1 Each process

### FACTORING. n = 2 25 + 1. fall in the arithmetic sequence

FACTORING The claim that factorization is harder than primality testing (or primality certification) is not currently substantiated rigorously. As some sort of backward evidence that factoring is hard,

### Algorithms and Flowcharts Week 2

Algorithms and Flowcharts Week 2 1 Principles of Programming The program or set of programs in a computer that helps in processing the information is called SOFTWARE. Software is a detailed writing of

### 1 Approximating Set Cover

CS 05: Algorithms (Grad) Feb 2-24, 2005 Approximating Set Cover. Definition An Instance (X, F ) of the set-covering problem consists of a finite set X and a family F of subset of X, such that every elemennt

### Elementary Number Theory and Methods of Proof. CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.

Elementary Number Theory and Methods of Proof CSE 215, Foundations of Computer Science Stony Brook University http://www.cs.stonybrook.edu/~cse215 1 Number theory Properties: 2 Properties of integers (whole

### Software Development Method

Software Development Method Problem Analysis - (Correct Problem) Identify data objects Goal to model properties Determine Input / Output data Constraints on the problem Design Decompose into smaller problems

### 1 Die hard, once and for all

ENGG 2440A: Discrete Mathematics for Engineers Lecture 4 The Chinese University of Hong Kong, Fall 2014 6 and 7 October 2014 Number theory is the branch of mathematics that studies properties of the integers.