BIM213 - PowerPoint PPT Presentation

1 / 24
About This Presentation
Title:

BIM213

Description:

Title: BIM213: Data Structures and Algorithms Last modified by: Muzaffer Do an Created Date: 11/19/1999 5:16:32 PM Document presentation format – PowerPoint PPT presentation

Number of Views:44
Avg rating:3.0/5.0
Slides: 25
Provided by: cengAnad
Category:
Tags: bim213 | conquer | divide

less

Transcript and Presenter's Notes

Title: BIM213


1
BIM213 Data Structures and Algorithms
  • Introduction

2
Contents
  • Information about the course
  • Data Structures
  • Algorithms

3
Course Information
4
About the course
Lecturer Muzaffer DOGAN
Office Phone 6562
E-mail Address muzafferd_at_anadolu.edu.tr
Web Page http//ceng.anadolu.edu.tr/muzafferd/
Teaching Assistant Emin Talip DEMIRKIRAN
Course Web Page http//ceng.anadolu.edu.tr/Ders.aspx?dersId40
Class Hours and Location 0900-1200, FRI on B7
Office Hours 1400-1700, TUE
Prerequisites - BIM101 Computer Programming I - BIM102 Computer Programming II
Textbooks Data Structures Problem Solving Using Java, Mark Allen Weiss, 4th Edition, Pearson, 2010.
5
Course Outline
  • Iterative algorithms and their analysis
  • Case Study Iterative Sorting Algorithms
  • Recursive algorithm design analysis
  • Lists ArrayList LinkedList
  • Stacks, Queues
  • Trees
  • Search Trees
  • Binary Search Trees
  • AVL Trees
  • Splay Trees
  • Tries Hash Tables

6
Course Contents
Week 1 Introduction, Algorithm Analysis and Asymptotic (Big-O, Omega, Theta) Notations
Week 2 Iterative Sorting Algorithms Bubble Sort, Selection Sort, Insertion Sort
Week 3 Introduction to Divide-and-Conquer (Recursive) Algorithms
Week 4 Lists and Array Implementation ArrayList
Week 5 Religional Holliday
Week 6 First Midterm
Week 7 Linked Lists
7
Course Contents (continued)
Week 8 Stacks and Queues
Week 9 Trees
Week 10 Binary Search Trees
Week 11 AVL Trees
Week 12 Second Midterm
Week 13 Splay Trees, Lower Bound on Comparison Based Search
Week 14 Hash Tables
Week 15 Review Course Recap
Week 16 Final Exam
8
Grading Plan
  • 1st MT 20, 2nd MT 20, Homework 20, Final
    40.
  • Curve will be applied to the grades
  • If your grade is below 80, you cannot get the
    grade AA, but it is not certain that if you pass
    80 then you get AA.
  • If your grade is below 35, you certainly fail,
    but this does not mean that youll get at least
    DD if you pass 35.

9
Sample Grading Plan
Grade Letter Grade
80 AA
75 AB
70 BA
65 BB
60 BC
Grade Letter Grade
55 CB
50 CC
45 CD
40 DC
35 DD
lt 35 FF
10
Attendances
  • You dont have to attend the classes but recent
    experiences show that the students who attend the
    classes are more successful
  • All students are responsible for visiting the
    website of the course at least two times in each
    week
  • Announcements, assignments, grades, and project
    subjects will be published on the website.

11
Data StructuresAlgorithms
12
Whats this course about?
  • An algorithm (program) is a well-defined
    computational procedure that
  • takes some values (data) as input
  • produces some result as output
  • Programs receive, manipulate, and output data
  • Need to organize data according to problem being
    solved
  • Data structures are methods for organizing data

13
Data Structures (DS) What, How, and Why?
  • Data structures are methods for organizing data
  • Formal definition of DS Abstract Data Type (ADT)
  • A toolkit of operations for manipulating data
  • E.g. A list with operations insert and delete
  • E.g. A stack with operations push and pop
  • E.g. A queue with operations enqueue and dequeue

14
Data Structures (DS) What, How, and Why?
  • Program design depends crucially on data
    organization, i.e., how data is structured for
    use by the program
  • Implementation of some operations becomes easier
    or harder
  • Speed of program may dramatically decrease or
    increase
  • Memory used may increase or decrease
  • We will see examples of these throughout the
    course

15
Course Goals for Data Structures
  • Study different implementation techniques for
    some fundamental ADTs
  • Learn how to choose the best one
  • Learn how to modify standard ADTs for specific
    problems, and create new ADTs

16
Data Structures are used
  • Everywhere
  • Systems (Operating Systems, Computer Networks)
  • Graphics
  • Databases
  • Theory
  • Artificial Intelligence
  • Information Retrieval
  • Maybe the most important class in your curriculum
    ?
  • Guaranteed good and important stuff

17
E.g. 1 Tree of Files and Folders
/
games
docs
Program Files
classes
hw1.txt
hw2.txt
BIM213
BIM201
PPT
Project1
  • Nodes Files/folders
  • Edges contains

main.cpp
project.sln
18
E.g. 2 Queue of People
Queue of people waiting to pay bills
Rear of the queue Next person will join the
queue from the rear
Front of the queue Next person to be served
19
E.g. 3 Representing Expressions
a
  • a xy w-z



-
z
w
x
y
  • Nodes Symbols/Operators
  • Edges Relationships

20
E.g. 4 Balanced Search Trees
20
10
30
Index
35
25
5
15
Ayse ID 35 GPA 2.9
Veli ID 5 GPA 2.0
Hasan ID 20 GPA 2.8
Mehmet ID 25 GPA 3.4
Taner ID 30 GPA 3.2
Ali ID 10 GPA 3.0
Cem ID 15 GPA 2.5
  • Nodes (Key/Value) pairs, Edges Relationships

21
E.g. 5 Transportation Networks
Sakarya
70
Polatli
Bilecik
Inegol
60
30
60
Sivrihisar
50
Bozuyuk
Bursa
40
90
Eskisehir
50
90
130
80
Afyon
  • Nodes Cities
  • Edges Roads

100
Kutahya
22
Algorithms and their Analysis
  • What is an algorithm?
  • A sequence of steps (a program) that
    accomplishes a task
  • Independent of Programming Language
  • Many different algorithms may correctly solve a
    given task
  • But choice of a particular algorithm may have
    enormous impact on time and memory used
  • Time versus space tradeoffs are very common

23
Types of Algorithms
  • Iterative Algorithms
  • Recursive (Divide Conquer) Algorithms
  • Randomized Algorithms
  • Dynamic Programming
  • Greedy Algorithms
  • Approximation Algorithms
  • Genetic Algorithms

24
Course Goals for Algorithms
  • Understand the mathematical fundamentals needed
    to analyze algorithms
  • Learn how to compare the efficiency of different
    algorithms in terms of running time and memory
    usage
  • Study a number of standard algorithms for data
    manipulation and learn to use them for solving
    new problems
Write a Comment
User Comments (0)
About PowerShow.com