Data Structures and Algorithms Week #1. Data Structures and Algorithms This course represents the foundation of your Computer Science education. This.

Slides:



Advertisements
Similar presentations
COUNTING AND PROBABILITY
Advertisements

Recursively Defined Functions
Induction and recursion
CSC1016 Coursework Clarification Derek Mortimer March 2010.
Kavita Math231 Recursion and Iteration. Kavita Math231 We use Recursion when we have to perform a complex task that can be broken into the several subtasks.
CSE115/ENGR160 Discrete Mathematics 04/17/12
1 Section 3.2 Sequences and Summations. 2 Sequence Function from a subset of Z (usually the set beginning with 1 or 0) to a set S a n denotes the image.
Recursive Definitions Rosen, 3.4 Recursive (or inductive) Definitions Sometimes easier to define an object in terms of itself. This process is called.
1 Section 3.3 Mathematical Induction. 2 Technique used extensively to prove results about large variety of discrete objects Can only be used to prove.
Topic 4 Computer Mathematics and Logic
Real Numbers and the Decimal Number System
Copyright © Cengage Learning. All rights reserved. CHAPTER 11 ANALYSIS OF ALGORITHM EFFICIENCY ANALYSIS OF ALGORITHM EFFICIENCY.
Unit 4: Mathematics Introduce the laws of Logarithms. Aims Objectives
Arithmetic of Positive Integer Exponents © Math As A Second Language All Rights Reserved next #10 Taking the Fear out of Math 2 8 × 2 4.
Basic Concepts of Algebra
Positional Number Systems
Precalculus – MAT 129 Instructor: Rachel Graham Location: BETTS Rm. 107 Time: 8 – 11:20 a.m. MWF.
Chapter Sequences and Series.
Rev.S08 MAC 1140 Module 12 Introduction to Sequences, Counting, The Binomial Theorem, and Mathematical Induction.
Discrete Mathematics CS 2610 March 26, 2009 Skip: structural induction generalized induction Skip section 4.5.
Induction and recursion
Discrete Mathematics, 1st Edition Kevin Ferland
Mathematics Review Exponents Logarithms Series Modular arithmetic Proofs.
Chapter 8. Section 8. 1 Section Summary Introduction Modeling with Recurrence Relations Fibonacci Numbers The Tower of Hanoi Counting Problems Algorithms.
A summary of the algebra concepts. Sequences and Series Some sequences are arithmetic because there is a common difference between terms. We call the.
MATH 224 – Discrete Mathematics
Section 2.4. Section Summary Sequences. Examples: Geometric Progression, Arithmetic Progression Recurrence Relations Example: Fibonacci Sequence Summations.
Data Structures and Algorithms Discrete Math Review.
Slide 7- 1 Copyright © 2006 Pearson Education, Inc. Publishing as Pearson Addison-Wesley.
Michaelmas Term 2004 Discrete Mathematics CSC 141 Discrete Mathematics Dr. Corina Sas and Ms. Nelly Bencomo
Extending the Definition of Exponents © Math As A Second Language All Rights Reserved next #10 Taking the Fear out of Math 2 -8.
Fall 2002CMSC Discrete Structures1 One, two, three, we’re… Counting.
CSE 221: Algorithms and Data Structures Lecture #10 Counting: Easy as 1, 2, C(3,1) Steve Wolfman 2009W1 1.
Dr. Eng. Farag Elnagahy Office Phone: King ABDUL AZIZ University Faculty Of Computing and Information Technology CPCS 222.
Relations, Functions, and Matrices Mathematical Structures for Computer Science Chapter 4 Copyright © 2006 W.H. Freeman & Co.MSCS SlidesFunctions.
Sequences and Summations
CS 103 Discrete Structures Lecture 10 Basic Structures: Sets (1)
P.1 Real Numbers. 2 What You Should Learn Represent and classify real numbers. Order real numbers and use inequalities. Find the absolute values of real.
CHAPTER 10 Sequences, Induction, & Probability Sequences & Summation Notation Objectives –Find particular terms of sequence from the general term.
Section 2.4. Section Summary Sequences. Examples: Geometric Progression, Arithmetic Progression Recurrence Relations Example: Fibonacci Sequence Summations.
11.2 Sets and Compound Inequalities 11.3 Absolute Value Equations 11.4 Absolute Value Inequalities.
Set A formal collection of objects, which can be anything May be finite or infinite Can be defined by: – Listing the elements – Drawing a picture – Writing.
Counting CSC-2259 Discrete Structures Konstantin Busch - LSU1.
Sequences and Summations Section 2.4. Section Summary Sequences. – Examples: Geometric Progression, Arithmetic Progression Recurrence Relations – Example:
Discrete Mathematics R. Johnsonbaugh
MATH 224 – Discrete Mathematics
Data Structures and Algorithm Analysis Introduction Lecturer: Ligang Dong, egan Tel: , Office: SIEE Building.
CompSci 102 Discrete Math for Computer Science March 1, 2012 Prof. Rodger Slides modified from Rosen.
Counting Discrete Mathematics. Basic Counting Principles Counting problems are of the following kind: “How many different 8-letter passwords are there?”
Discrete Mathematics Lecture # 25 Permutation & Combination.
DISCRETE COMPUTATIONAL STRUCTURES CSE 2353 Fall 2010 Most slides modified from Discrete Mathematical Structures: Theory and Applications by D.S. Malik.
CS 103 Discrete Structures Lecture 13 Induction and Recursion (1)
Foundations of Discrete Mathematics Chapters 5 By Dr. Dalia M. Gil, Ph.D.
Sets Definition: A set is an unordered collection of objects, called elements or members of the set. A set is said to contain its elements. We write a.
Mathematical Induction Section 5.1. Climbing an Infinite Ladder Suppose we have an infinite ladder: 1.We can reach the first rung of the ladder. 2.If.
Section 3.2: Sequences and Summations. Def: A sequence is a function from a subset of the set of integers (usually the set of natural numbers) to a set.
Discrete Mathematics Lecture # 22 Recursion.  First of all instead of giving the definition of Recursion we give you an example, you already know the.
CompSci 102 Discrete Math for Computer Science March 13, 2012 Prof. Rodger Slides modified from Rosen.
2/24/20161 One, two, three, we’re… Counting. 2/24/20162 Basic Counting Principles Counting problems are of the following kind: “How many different 8-letter.
Chapter 5. Section 5.1 Climbing an Infinite Ladder Suppose we have an infinite ladder: 1.We can reach the first rung of the ladder. 2.If we can reach.
Chapter 2 1. Chapter Summary Sets The Language of Sets - Sec 2.1 – Lecture 8 Set Operations and Set Identities - Sec 2.2 – Lecture 9 Functions and sequences.
CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis Linda Shapiro Winter 2015.
Lecture # 20 Sequence & Series
COUNTING Discrete Math Team KS MATEMATIKA DISKRIT (DISCRETE MATHEMATICS ) 1.
COCS DISCRETE STRUCTURES
Recursively Defined Functions
Mathematical Induction Recursion
CS100: Discrete structures
Discrete Structures for Computer Science
ICS 253: Discrete Structures I
Presentation transcript:

Data Structures and Algorithms Week #1

Data Structures and Algorithms This course represents the foundation of your Computer Science education. This will be a challenging course 6 Programming projects of increasing difficulty. I am here to guide and help you succeed in a difficult subject. I am not here to teach you programming. I can teach you how to cook but I cannot teach you good programming skills. Learning C++ is an individual journey that takes time and practice.

Data Structures and Algorithms The key to your professional reputation A much more dramatic effect can be made on the performance of a program by changing to a better algorithm than by hacking converting to assembler Keep your text for long-term reference! Professional software engineers have algorithms text(s) on their shelves Hackers have user manuals for the latest software package  Which they’ll have to throw away next year anyway!

Data Structures and Algorithms If you don't understand anything, ASK! I do my best but I can't read your mind I'll always assume that if you don't ask than you understood everything and know the subject The skills that you learn here will not only help you the Data Structures Comp Exam, they will follow you throughout your career. For these reasons you should try your best to do well in this course if you want have success in this field. Meet the challenge head on and…. Enjoy!

Data Structures and Algorithms Exams and Coursework 3 Exams (45% of final grade) - EG Exam 1: September 23 rd (30% of EG) Exam 2: November 4 th (30% of EG) Final Exam: December 11 th (40% of EG) 6 Projects (50% of final grade) - PG Project 1: September 11 th (1/6 th of PG) Project 2: September 25 th (1/6 th of PG) Project 3: October 16 th (1/6 th of PG) Project 4: October 30 th (1/6 th of PG) Project 5: November 13 th (1/6 th of PG) Project 6: November 27 th (1/6 th of PG) 5% for attendance and participation in class - PAG

Data Structures and Algorithms Grading Table gradeLetter Equivalent A B C D F

Data Structures and Algorithms Books Required Algorithms in C++ Robert Sedgewick Addison-Wesley Recommended Any programming language book as reference for example: The C++ Programming Language Stroustrup, B Addison-Wesley

Data Structures and Algorithms General Policies For detailed information see policy sheet Late programming projects will be accepted based on the following policy: 1 day late: less 25% 2 days late: less 50% 3 days late: less 75% 4 days late: not accepted All days count (including Saturday, Sunday and bank holidays) Projects are submitted in class (hard copy and floppy). Refer to the policy sheet for more details Submissions using are not accepted

Data Structures and Algorithms General Policies Cheating will not be tolerated. If caught, disciplinary actions will be taken. It's OK to help some of your friends who may have problems in their projects but it is not OK to share code or answers. If they need, help them but never show your answers All projects should be done individually Mid Term Exam will be 75 minutes long; Final will be 120 minutes long. All exams are accumulative

Discrete Math review Sets Logarithmic Functions Logic Induction Counting

Sets A set is a collection of individual elements in the domain D. The universal set U contains every element in D. The null set  contains no element. If A is a set in the domain D, A must be a subset of the universal set U, denoted as A  U. If A consists of some but not all elements, A is then called a proper subset of U, denoted as A  U.

Sets A set is a collection of definite and separate objects. The cardinality of a set is the number of elements in the set. A subset of a set is a set comprised of a sub- collection of the elements of the original set. Example: Consider the set S = {2, 5, 7}. The subsets of S are the sets {2}, {5}, {7}, {2,5}, {2,7}, {5,7}, {2, 5, 7}and {} (the empty set). Fact: If a set has cardinality = n, then the number of subsets = 2 n.

Sets A proper subset of a set is a set comprised of a sub-collection of some, but not all, of the elements of the original set. Example: Consider the set S = {2, 5, 7}. The proper subsets of S are the sets {2}, {5}, {7}, {2,5}, {2,7}, {5,7} and {} (the empty set). S = cardinality of 3  2 3  7 ?

Sets There are only two different types of sets: An Infinite Set is a set that can always be placed in a one-to-one correspondence to a proper subset of itself. The Basic Infinite Set is the set of positive whole numbers {1, 2, 3, 4, 5,……}. New Notation: The Basic Infinite Set has cardinality =. A Finite Set is a set that cannot be placed in a one-to-one correspondence to a proper subset of itself. Something to think about….2 subsets ?

Logarithmic Functions Logarithms were invented about 1614 by John Napier. The word logarithm was derived from two Greek words, logos, which means "ratio," and arithmos, which means "number." Before calculators and computers were available, common logarithms were used to do certain kinds of calculations Growth and decay Big O notation growth of computational complexity

Logarithmic Functions Logarithms are exponents A logarithmic function is the inverse of an exponential function One way to describe a logarithmic function is to interchange variables in the equation y = a x Thus, x = a y is logarithmic

Logarithmic Functions For logarithmic functions we use the notation log a x Therefore, The following are equivalent. 1. x = a y ; and 2. y = log a x

Logarithmic Functions Definition of Logarithm Suppose b> 0 and. For n > 0, there is a number p such that log b n = p if and only if b p = n. log = ?  2 p = 256 log = ?  10 p = 1000 log = ?  7 p = 2401

Logic Examples: Boolean functions: NOT, AND, OR, XOR,... a NOT( a)

Logic Examples: Boolean functions: NOT, AND, OR a NOT( a) a b AND( a, b) a b OR( a, b)

Logic Examples: Boolean functions: XOR, XNOR, NOR a b XOR( a, b) a b XNOR( a, b) a b NOR( a, b)

Logic Boolean Simplification Express F in terms of A and B A B F F = AB + AB  A ( B + B ) = F Using the uniting theorem

The P word….Induction The Principle of Mathematical Induction Suppose we have an assertion P(n) about the positive integers. Then if we show both of (i) and (ii) below, then P(n) is true for all n >= 1. (i). P(1) is true (ii). For each k >= 1: If P(k) is true, then P(k+1) is true.

The P word….Induction Prove that …+ n = Prove that …+ n = n(n+1) 2 Prove that …+ (2n – 1) = n 2

Series Arithmetic One common type of series is the arithmetic series (also called an arithmetic progression). Each new term in an arithmetic series is the previous term plus a given number. For example this is an arithmetic series: In this case each term is the previous term plus 3. The difference between each term (the 3 in this case) is called the "common difference" and is generally denoted by the letter d. There are many arithmetic series that have d=3. To specify which series we mean, we need to know one more piece of information: the value of the first term (usually called "a").

Series Arithmetic If we're given a and d, then, that specifies a unique arithmetic series. All arithmetic series therefore have the following form: a+(a+d)+(a+2d)+(a+3d)+.... So in general we can say that the value of the nth term is a+(n-1)d

Series Geometric Another common type of series is the geometric series (also called a geometric progression). In this case, each term is the previous term multiplied by a given number. Here's a geometric series, for example: In this case, each term is the previous term multiplied by 3. The number you multiply by (in this case 3) is called the "common ratio" and is generally denoted by r. There are many geometric series that have r=3. To specify which series we mean, again we need to know one more piece of information: the value of the first term (usually called "a").

Series Geometric A geometric series is uniquely specified by the values of a and r. Every geometric series has the following form: a+ar+ar 2 +ar Writing the series in this way we can see the formula for working out the value of any term. The first term is just a. The second term is a multiplied by r once. The third term is a multiplied by r twice, and so on. So the nth term must be a multiplied by r (n-1) times, that's ar n-1.

Series Are there others?

Counting Product Rule: n ways to do m tasks = nm ways. How many different bit strings are there of length 7?

Counting Pigenhole Principle: If N objects are placed into k boxes, then there is at least one box containing at least [N/k] objects. Ten persons were born on the 1 st, 11 th and the 27 th of the months of May, August and November. How many share the exact same birthday? Tells us nothing of the date. Asserts only that one exists!

Counting Permutations and Combinations Permutations: Given that position is important, if one has 4 different objects (e.g. A, B, C and D), how many unique ways can they be placed in 3 positions (e.g. ABD, ACD, BDA, DBA, BAD, ADB, ADC, DCA, DAC, CDA etc.) An ordered arrandement of r elements of a set is called a r-permutation. n! (n – r)! P( n, r )=

Counting Permutations and Combinations Combinations: If one has 4 different objects (e.g. A, B, C and D) how many ways can they be grouped as 2 objects when position does not matter (e.g. AB, AC, AD are correct but DA is not ok as is equal to AD.) An r-combination is simply a subset of the set with r elements. C ( n, r ) = n! r! ( n-r )!

Base Conversion The base value of a number system is the number of different values the set has before repeating itself. For example, decimal has a base of ten values, 0 to 9. Binary = 2 (0, 1) Octal = 8 (0 - 7) Decimal = 10 (0 - 9) Duodecimal = 12 (used for some purposes by the Romans) Hexadecimal = 16 (0 - 9, A-F) Vigesimal = 20 (used by the Mayans) Sexagesimal = 60 (used by the Babylonians)

Base Conversion Successive Division base 6 37/6 = 6 r 1 6/6 = 1 r 0 1/6 = 0 r 1  base 6 = 101

Base Conversion base 10 1x6 0 +0x6 1 +1x6 2 = = base base13