Welcome to Data Structures & Algorithms
Instructor: Dr. Ken Cosh
Schedule: Tu/Th 8:3010:00
Course Description:
An understanding of data structures and algorithm analysis will be presented in the following topics: stacks queues, recursion, linked lists, trees, graphs, sorting and searching. This will serve as the basis for further studies in information systems and approaches using an application perspective. Case Studies are required.
Course Objectives:
1 Perform complexity analysis of algorithms using BigO notation.
2 Use and understand the following data structures;
Linked Lists
Stacks and Queues
Binary and Multiway Trees
Graphs
3 Understand and use recursion in conjunction with recursive data structures.
4 Analyse and use different sorting algorithms such as shell sort, quick sort and heap sort.
5 Understand what hashing means and create good hash functions.
6 Understand what data compression is and use some common algorithms to perform compression.
7 Understand what garbage collection is.
References:
1 (Compulsary) Adam Drozdek, 3^{rd} edition, Data Structures and Algorithms in C++, Thomson Course Technology, 2005. ISBN: 0534491820
Materials:
Week  Content  Exercise  Hours(Lect/Lab) 
1  Object Oriented Programming Using C++

* Case: Random Access File  3 (30) 
2  Complexity Analysis

3 (30)  
3  Linked Lists

*Case: A Library  3 (30) 
4  Stacks and Queues

Case: Exiting a Maze  3 (30) 
5  Recursion

Case: A Recursive Descent Interpreter  3 (30) 
6  Binary Trees

Case: Computing Word Frequencies  3 (30) 
7  Multiway Trees

Case: Spell Checker  3 (30) 
89  Graphs

Case: Distinct Representatives  6 (60) 
10  Sorting

Case: Adding Polynomials  3 (30) 
11  Hashing

Case: Hashing with Buckets  3 (30) 
12  Data Compression

Case: Huffman Method with RunLength Encoding  3 (30) 
13  Memory Management

Case: An in Place Garbage Collector  3 (30) 
14  String Matching

Case: Longest Common Substring  3 (30) 
15  Review  3 (30) 