COMP171 Data Structures and Algorithm

Section L2, L3 Spring 2009

 

 

 

 

 

Schedule and Notes:

 

Week

 Date

Topic

Slides

Readings

Assignment Schedule

1

Feb 2

Programming paradigms,

intro.ppt,

procedural.ppt

oop.ppt

generic.ppt

 Weiss 1

 

 

dynamic objects in C++, linked lists

pointerDynamic.ppt  

listLinkedList.ppt

 

 

2

Feb 9

Class,

 

 Weiss 1.5

¡¡

 

Abstract Data Type,

abstractDataType.ppt and summary ADT.ppt

 Weiss 1.1 1.2

¡¡

3

 

Feb 16

(Templates).

dynamicClass.ppt

 Weiss 3

 

 

Linear structures:

List, Stack, and Queue

Induction and  recursion (brief review)

stackQueue.ppt

mathRecursion.ppt

 Weiss 3

 Weiss 2

 

 

Algorithm Analysis and Asymptotic Notations

analysis.ppt

 Weiss 2

¡¡

4

Feb 23

 

 

 

 

 

Sorting Analysis :

Merge sort, insertion sort

insertionMergesort.ppt

 Chapter 7.2, 7.2.3Chapter 7.6

 

5

Mar 2

quick sort

quicksort.ppt

Weiss 7.7

 

 

radix sort

radixsort.ppt

Weiss 7.5

 

6

 Mar 9

Trees and Binary Search Trees

bst.ppt

Weiss 4.3 but 4.3.6 is optional

 

 

Heaps and heap sort.

heapsort.ppt

 Weiss 7.5

 

7

 Mar 16

AVL Trees

avl1.ppt

 Weiss 4.4, Weiss 4.7

 

 

 

avl2.ppt

 Weiss 4.7

Some Practice

¡¡

8

Mar 23

B+ Trees

btree1.ppt

 

 

 

 

 

btree2.ppt

 

¡¡

¡¡

9

Mar 30

Midterm Review

Past Exam Sample pdf

Past Exam Sample Solution pdf

 

Midterm Review Slides

 

 

 

 

Midterm exam: April 12, 7-9h pm, LTA and B.

 

 

 

 

10

Apr 5,

Graph, Breadth-first search

 

graphBfs1.ppt , bfs2

 

Weiss 9.1 9.3

 

 

 

 

Weiss 9.3.1

 

11

 Apr 20

Depth-first search

dfs.ppt

 

¡¡

 

Connected Components

Connectivity-directed_graph.ppt

 

 

12

 Apr 27

 

 

 

 

 

Topological Sort

 

 

¡¡

13

 

 May 4

 

Hashing

 hashging.ppt

Weiss 5.1 ¨C 5.4

¡¡

 

 

 

 

 

14

May 11

Review for Final Exam

 

Review checklist

A sample final exam with solutions

 

 

 

 

 

 

 

 

 

Tutorials:  See TA's Tutorial Page

 

Course Description: (From the HKUST course catalog)

Asymptotic notations. Performance measurement. Sorting and searching: algorithms and lower bound. Abstract data types and classes. Data structures: heaps, search trees, tries, and hashing. Graphs: representation, depth-first-search, and breadth-first-search. 

Textbook (available at the HKUST bookstore and on reserve in the library):

References:

  • Data Structures, Algorithms, and Applications in C++, Sahni (McGraw-Hill)
  • Data Structures and Algorithms in C++, Goodrich, Tamassia, and Mount (John Wiley & Sons)
  • Data Structures and the Standard Template Library, Collins (McGraw-Hill)
  • Introduction to Algorithms, Thomas H. Cormen, Charles Leiserson, Ronald Rivest (McGraw-Hill)
  • Thinking in C++ 2nd Edition by Bruce Eckel

Grading Scheme:

  • Two (2) Written Assignments 8% (4% each)
  • Three (3)  Lab Assignments 27% (9% each)
  • Midterm Exam 25%
  • Final Exam 40% (schedule: to be announced)

Assignments will be collected at the beginning of the class. We will use CASS - Course Assignment Submission System