Download presentation
Presentation is loading. Please wait.
Published byPaul Lindsey Modified over 9 years ago
1
ITEC 2620M Introduction to Data Structures Instructor: Prof. Z. Yang Course Website: http://people.math.yorku.ca/~zyang/it ec2620m.htm Office: Tel 3049
2
2 Course Objective Course is about concepts –what you can program, not how Traditionally, second course in computer science –still separates top third of programmers –not taught in any known college diploma program Learn and use efficient programming patterns –“an efficient programmer can often produce programs that run five times faster than an inefficient programmer”
3
3 Textbooks “A Practical Introduction to Data Structures and Algorithm Analysis – Java Edition” by Clifford A. Shaffer Lecture notes and announcements will be made available at: http://people.math.yorku.ca/~zyang/it ec2620m.htm
4
4 Marking Scheme Assignment 1: 10% Midterm: 30% –about 1/3 code, 2/3 concepts Final: 60% –about 1/3 code, 2/3 concepts Late Policy –The assignment is optional. Late assignments will NOT be accepted. If you miss it, the weight will be added to the weight of the TWO PROGRAMMING QUESTIONS in the final exam. No medical note is required. A make-up midterm will NOT be provided. If you miss the midterm, the weight will be added to the weight of the final exam.
5
5 Schedule LectureTopic 1aIntroduction 1bSearching 2aSorting – non-recursive algorithms 2bEstimation and Complexity analysis – non-recursive algorithms 3aMore complexity analysis, Complexity estimation – non-recursive algorithms 3bLinked lists 4aDoubly linked lists and Binary trees 4bRecursion and Binary tree operations
6
6 Schedule (Cont’d) Lecture Topic 5aSorting – recursive algorithms 5bLink list and BST operations 6aComplexity estimation – recursive algorithms 6b Midterm review 7aMIDTERM 7bEstimation of recursive algorithm, abstract data types and Stacks 8aStack based recursion, Queues, Priority Queues 8bMidterm solution discussion
7
7 Schedule (Cont’d) LectureTopic 9aHeaps and Heapsort 9bGraphs and Graph algorithm 10a Hashing 10b2-3 trees 11aB-trees 11bB+trees 12aReview 12bReview
8
8 Course Organization Key concepts first –searching, sorting, complexity analysis, linked structures Concrete to concept –searching sorting complexity analysis –binary tree recursion
9
Chapter 1 Introduction
10
10 Need for Data Structure Computer –Store and retrieve information –Perform calculation Costs and benefits –A data structure requires a certain amount of space for each data item it stores, a certain amount of time to perform a single basic operation, and a certain amount of programming effort.
11
11 Problem, Algorithms and Programs Problem: a task to be performed Algorithm: a method or a process followed to solve a problem Program: an instance, or concrete representation, of an algorithm in some programming language.
12
12 Algorithm Efficiency Design goals: –Design an algorithm that is easy to understand, code, and debug. –Design an algorithm that makes efficient use of the computer’s resources. Algorithm analysis
13
13 Three keys to programming Algorithm Design –Sequence, branching, looping – flowcharts and pseudocode –Efficiency and time-space tradeoffs (linkages between algorithms and data structures) Data Organization –objects and classes –data structures Modularization –methods (modularization of algorithms) –classes and inheritance (modularization of data/objects)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.