Download presentation
Presentation is loading. Please wait.
Published byNeil Davis Modified over 9 years ago
1
Data Structures and Algorithms Week #1
2
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.
3
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!
4
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!
5
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
6
Data Structures and Algorithms Grading Table 0 - 100 gradeLetter Equivalent 0 - 59 60 - 70 70 - 80 80 - 90 90 - 100 A B C D F
7
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
8
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 email are not accepted
9
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
10
Discrete Math review Sets Logarithmic Functions Logic Induction Counting
11
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.
12
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.
13
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 ?
14
Sets There are only two different types of sets: 1. 1. 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 ?
15
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
16
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
17
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
18
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 256 = ? 2 p = 256 log 10 1000 = ? 10 p = 1000 log 7 2401 = ? 7 p = 2401
19
Logic Examples: Boolean functions: NOT, AND, OR, XOR,... a NOT( a) 0 1 1 0
20
Logic Examples: Boolean functions: NOT, AND, OR a NOT( a) 0 1 1 0 a b AND( a, b) 0 0 0 0 1 0 1 0 0 1 1 1 a b OR( a, b) 0 0 0 0 1 1 1 0 1 1 1 1
21
Logic Examples: Boolean functions: XOR, XNOR, NOR a b XOR( a, b) 0 0 0 0 1 1 1 0 1 1 1 0 a b XNOR( a, b) 0 0 1 0 1 0 1 0 0 1 1 1 a b NOR( a, b) 0 0 1 0 1 0 1 0 0 1 1 0
22
Logic Boolean Simplification Express F in terms of A and B A B F 0 1 0 1 0 1 1 1 1 F = AB + AB A ( B + B ) = F Using the uniting theorem
23
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.
24
The P word….Induction Prove that 1+2+3+…+ n = Prove that 1+2+3+…+ n = n(n+1) 2 Prove that 1+3+5+…+ (2n – 1) = n 2
25
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: 1+4+7+10+13+.... 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").
26
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
27
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: 2+6+18+54+... 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").
28
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 3 +....... 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.
29
Series Are there others?
30
Counting Product Rule: n ways to do m tasks = nm ways. How many different bit strings are there of length 7?
31
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!
32
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 )=
33
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 )!
34
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)
35
Base Conversion Successive Division 37 10 base 6 37/6 = 6 r 1 6/6 = 1 r 0 1/6 = 0 r 1 37 10 base 6 = 101
36
Base Conversion 101 6 base 10 1x6 0 +0x6 1 +1x6 2 = 1+0+36 = 37 58 10 base4 111 10 base13
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.