spring2016_datastructures.pdf
TRANSCRIPT
EE 231 Data Structures
Lecture Schedule See the Time Table Semester 4th, Spring 2016 (Session 2014)
Credit Hours Three Pre-requisite Introduction to Computing EE 230- Programming
Fundamentals.
Instructor(s) Dr Kashif Javed Ms Ifrah Saeed Contact [email protected]
Office Room # 210, first floor Office Hours TBA
Teaching Assistant(s)
N/A Lab Schedule See the Timetable
Course Description
The course will cover: Algorithm analyses in terms of their computing time. Various data structures and their strengths and weaknesses. Various sorting techniques. Graphs. Shortest-Path algorithms.
Expected Outcomes
Upon completion of this course, students will be able to: to analyze and compare algorithms in terms of their computing time. to pick and choose among various data structures, the correct one according
to their application requirement analyze applications based on Graphs
Textbooks
REQUIRED: Mark Allen Weiss, "Data Structures and Algorithm Analysis in C", Addison- Wesley OPTIONAL/REFRENCES: 1. Robert Sedgewick, “Algorithms in C”, 3rd Edition, Pearson Education 2. Cormen, Leiserson, Rivest, Stein, “Introduction to Algorithms”, McGraw-Hill
Grading Policy
Class Participation: 10 Quizzes: 20 Mid Term: 30 Final Term: 40 Total: 100
Lecture Plan
Lecture
No. Course Contents Textbook Ref. Week*
1 Introduction to Data Structures, Goals and Aims of the course Ch.1 1
2 Mathematical Review, Review of Induction and Recursion Ch.1 1
3 Asymptotic Analysis for analyzing Algorithms, Big –Oh, Big-theta and other asymptotic notations Ch.2 2
4 Calculating the relative growth rate of two functions, Running Time Calculations. Ch.2 2
5 Max-Subsequence Problem, Analysis of Running Time. Ch.2 3
6 Max-Subsequence Problem (continued), Binary Search Algorithm, Analysis of Running Time. Ch.2 3
7 Euclidean GCD Algorithm, Exponentiation Algorithm, Analysis of Running time. Ch.2 4
8 Abstract Data Types (ADT), The List ADT, Comparison of Arrays and Linked Lists. Applications. Ch.3 4
Quiz-1 4
9 Programming Implementation of The List ADT using Arrays. Ch. 3 5
10 Programming Implementation of The List ADT using Linked Lists. Ch. 3 5
11 The Stack ADT and its implementation using Arrays. Ch. 3 6
12 The Stack ADT and its implementation using Linked Lists. Stack Applications Ch. 3 6
13 The Queue ADT, its implementation and applications Ch. 3 7
14 Discussion of End Problems Ch. 3 7
Mid Term Examination 8
15 Trees and their Traversals, Binary Trees. Ch. 4 9
16 Binary Trees and their applications Ch. 4 9
17 The Search ADT and its implementation Ch. 4 10
18 Hashing, Hash Tables, their working and applications. Ch. 5 10
19 Separate Chaining, Open Addressing with linear probing. Ch. 5 11
20 Open Addressing with quadratic probing, Rehashing and Extendible Hashing. Ch. 5 11
21 Open Addressing with quadratic probing, Rehashing and Extendible Hashing. (continued) Ch. 5 12
22 Discussion of End Problems Ch. 5 12
Quiz-2 12
23 Priority Queues and their applications. Ch. 6 13
24 Binary Heaps and their applications. Ch. 6 13
25 Sorting Algorithms, Insertion Sort. Ch. 7 14
26 Shell Sort and it variants Ch. 7 14
27 Merge Sort, Quick Sort. Ch. 7 15
28 Graphs and their applications. Breadth First Search. Ch. 9 15
29 Minimum Spanning Trees and shortest-path Algorithms. Ch. 9 16
30 Discussion 16
Final Term Examination
Lab Schedule
Exp. No. Description Week
1 Introduction to Microsoft Visual Studio/Eclipse and Revision of C concepts 1
2 Learning how to debug C programs 2
3 Measuring the running time empirically 3
4 Working with Lists 4
Lab Exam 1 5
5 Working with Stacks 6
6 Working with Queues 7
Mid Break 8
7 Working with Binary Trees 9
Lab Exam 2 10
8 Working with Binary Search Trees 11
9 Working with Hash Tables 12
10 Working with Sorting Algorithms 13
Lab Exam 3 14