220 likes | 422 Views
COP 3530: Data Structures, Algorithms, & Applications. Instructor: Kristian Linn Damkjer. Course Overview. Syllabus Review. What The Course Is About. Applications are developed to solve real-world problems. All programs manipulate data. Programs must represent data in some way.
E N D
COP 3530: Data Structures, Algorithms, & Applications Instructor: Kristian Linn Damkjer
Course Overview Syllabus Review
What The Course Is About • Applications are developed to solve real-world problems. • All programs manipulate data. • Programs must represent data in some way. • Data structures focuses on data representation and manipulation. • Data manipulation requires algorithms. • Algorithms are the fundamental elements in application development.
Prerequisites • Java™ • CIS 3020 or CIS 3022 & CIS 3023 • You should be proficient and self-sufficient • You must be capable of writing programs without the aid of a compiler.
Prerequisites • Asymptotic Complexity • COT 3100 • We will use primarily O notation. • f(n) = O(g(n)): Big Oh notation • f(n) is bounded above by g(n) • You should also be comfortable with Θ and Ω. • f(n) = Θ(g(n)): Big Theta notation • f(n) is asymptotically equivalent to g(n) • f(n) = Ω(g(n)): Big Omega notation • f(n) is bounded below by g(n)
Prerequisites • Strong Mathematical Reasoning • Any of the various flavors of Calculus 2. • At the very least you need to understand: • Sequences • Series • Summations • Integration • Differentiation • Matrices • Vectors
Web Sites • http://www.cise.ufl.edu/~kdamkjer/courses/su05/cop3530/ • Announcements • Syllabus • Handouts • Exercise Solutions • Assignments • TAs and Discussions • http://www.cise.ufl.edu/~sahni/cop3530/ • Text • Source Codes • Past Exams • Past Exam Solutions
Assignments • Assignment guidelines • Submission procedures • Do Assignment 0 by Friday!
Source Codes • Read download and use instructions. • Read download and use instructions. • Must have Java 1.2 or higher • Hopefully you have 1.4.2 or 1.5.0 (5.0) • Review the source code documentation • ProgramIndex.html • AllNames.html • Other HTML files produced by Javadoc
Discussion Sections • Go to either one • TAs will answer your questions on lectures and assignments. • TAs will cover exercises from the text. • Web site lists topics and exercises for each discussion section.
Textbook • It’s not rocket science (really) • It’s computer science • There are three sections to the textbook: • Background (Chapters 1-4) • Data Structures (Chapters 5-17) • Algorithms (Chapters 18-22) • What about Applications? • We’ll cover applications throughout the entire semester along with general theory and other concepts.
Grades • Assignments: 25% • Five Graded Projects • No drops permitted • Each worth 5% • Exams: 75% • Three Exams • No drops permitted • Each worth 25%
Grades • Historic Cutoffs • A ≥ 83% • B+ ≥ 75% • B ≥ 70% • C+ ≥ 65% • C ≥ 60% • D+ ≥ 55% • D ≥ 50%
Classic Problem Sorting
Classic Problem: Sorting • Given a list of comparable elements: • a0, a1, … ,an−1 • Rearrange the list into a specific order • Typically increasing or decreasing order.
Classic Problem: Sorting • Given a list of comparable elements: • a0, a1, … ,an−1 • Rearrange the list into a specific order • Typically increasing or decreasing order. • Objective: • a0 ≤ a1 ≤ … ≤ an−1 • Examples: • 8, 6, 9, 4, 3 3, 4, 6, 8, 9 • 8, 3, 6, 2, 8, 10, 2 2, 2, 3, 6, 8, 8, 10
Sorting Methods • Insertion • Bubble • Selection • Count • Shaker • Shell • Heap • Merge • Quick
Sorting Methods • Insertion • Bubble • Selection • Count • Shaker • Shell • Heap • Merge • Quick
Inserting an Element • Given a sorted list (sequence), insert a new element • Given 3, 6, 9, 14 • Insert 5 • Result 3, 5, 6, 9, 14
Inserting an Element • Insert 5 into the list: 3, 6, 9, 14 • Compare new element (5) and last element in list (14) • Shift 14 right to get 3, 6, 9, , 14 • Shift 9 right to get 3, 6, , 9, 14 • Shift 6 right to get 3, , 6, 9, 14 • Insert 5 to get 3, 5, 6, 9, 14
Inserting an Element // insert t into a[0:i-1] int j; for (j = i – 1; j >= 0 && t < a[j]; j--) a[j + 1] = a[j]; a[j + 1] = t;
Next Time in COP 3530… • Read Chapters 1–4 for review of topics covered today • Performance Analysis and Measurement • We will start the Data Structures portion of this course • Start thinking about different ways to represent data • Read Chapter 5.1–5.2 • Data Structure: Linear Lists