1 / 22

COP 3530: Data Structures, Algorithms, & Applications

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.

sumi
Download Presentation

COP 3530: Data Structures, Algorithms, & Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. COP 3530: Data Structures, Algorithms, & Applications Instructor: Kristian Linn Damkjer

  2. Course Overview Syllabus Review

  3. 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.

  4. 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.

  5. 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)

  6. 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

  7. 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

  8. Assignments • Assignment guidelines • Submission procedures • Do Assignment 0 by Friday!

  9. 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

  10. 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.

  11. 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.

  12. Grades • Assignments: 25% • Five Graded Projects • No drops permitted • Each worth 5% • Exams: 75% • Three Exams • No drops permitted • Each worth 25%

  13. Grades • Historic Cutoffs • A ≥ 83% • B+ ≥ 75% • B ≥ 70% • C+ ≥ 65% • C ≥ 60% • D+ ≥ 55% • D ≥ 50%

  14. Classic Problem Sorting

  15. 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.

  16. 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

  17. Sorting Methods • Insertion • Bubble • Selection • Count • Shaker • Shell • Heap • Merge • Quick

  18. Sorting Methods • Insertion • Bubble • Selection • Count • Shaker • Shell • Heap • Merge • Quick

  19. 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

  20. 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

  21. 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;

  22. 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

More Related