CS2201/SC2211 Data Structure And Algorithms

Course Description

A study of the analysis of complexity of algorithms, various data structures including array, string, stack, queue, tree, graph, set and heap. The course also emphasize on the applications and analysis of algorithms developed employing the data structures mentioned above including time and memory requirement analysis of various searching, sorting algorithms.

Resources and Discussion

Join Slack: AUCS-Students

Contents

Week Topic Worksheet
01 Introduction Introw01.01, w01.02,
w01.03, w01.04
02 Algorithms
Math Foundation
Notes
w02
03 Recursion
Divide and Conquer
w03
04 Heap
Priority Queue
w04
05 Quick sort
Linear time sort
w05
06 Algorithm Implementation w07
Microsoft Jupyter Notebook
Assignment 1
InsertionSort (Jupyter, PY)
07 Advanced Data Structure
08 Red Black Trees h08a, h08b, w08
09 Heaps and Priority Queues h09a, h09b, h09c
10  Binomial Heaps
Data Structures for Disjoint Sets
 h10a, h10b
w10a, w10b
11 Elementary Graph Algorithm
Adjacency List, BFS
 h11a, h11b, 
w11
12 Elementary Graph Algorithm (cont’d)
DFS, Topology Sort
h12
w12
13 Minimum Spanning Trees h13
w13
14 Shortest Path  h14
w14
15 Additional Materials h15a, w15a
h15b, h15c, h15d

Term Projects 2/2017

Term Projects 1/2017