CS210 - Data Structures
This course introduces classical data structures and algorithms with emphasis on performance using asymptotic analysis of algorithms and complexity classes. Fundamental data structure includes lists, stacks, queues, heaps, trees, and graphs. The student will learn a variety of algorithms for searching, sorting, traversing and hashing. In addition, the course covers the application of these data structures and algorithms in real-life problems and implementing them in modern programming languages. Students attending the course should demonstrate prowess in programing skills with two programming projects to be completed in class.
Class Schedule:
9.00AM to 10.00AM Everyday except Thursday. Room GB06 Building 105.
11.00AM to 12.00 noon Everyday except Thursday. Room 1A13 Building 105.
Exams Schedule:
Major 1 Exam on Monday, February 19, 2024 at noon.
Major 2 Exam on Monday, April 29, 2024 at noon.
Final Exam TBA.
Important Links: [Syllabus] [This week] [Scores] [Learning Management System] [Github] [Book Companion website] [Video lectures from 193]
Resources: [Java JDK 8] [Java JDK 8 + Netbeans 8 bundle] [Netbeans 16] [IntelliJ IDEA]
Course Materials
Week 2-3
ListsLists [Notes from Goodrich]
Tutorial Statement (2)
Single Linked List Animation
Tutorial Statement (3)
Week 4-5
Asmptotic Analysis of AlgorithmsRecursion [Notes from Goodrich]
Tutorial Statement (4)
Reading: A gentle intro to Algorithm complexity analysis by D.Zindros
Project 1 statement
Tutorial Statement (5)
How to add run-time class path
The Big Oh notation
Recursive Factorial visualization
Recursive reverse string visualization
Week 6-7
Elementary sortsMergesort
Quicksort
Tutorial Statement (6)
Demo: Insertion Sort
Demo: Selection Sort
Demo: MergeSort
Demo: QuickSort
Week 8
Stacks and QueuesTutorial Statement (7)
Visualization of a Stack
Visualization of a Array based Stack
Visualization of Stack & Queue using Linked List
Week 9-11
Trees: Fundamental ConceptsTutorial Statement (8)
Trees: Search Trees (BST)
Tutorial Statement (9)
Trees: Search Trees (AVL)
Tutorial Statement (10)
Trees: A summary
BST visualization
AVL visualization
Week 12-13
Trees: Heaps and Priority QueuesTutorial Statement (11)
Hash-tables
Tutorial Statement (12)
Project 2 statement
Week 14-15
Undirected GraphsTutorial Statement (13)
Dijkastra Algorithm explained!
Project 2 statement
Directed Graphs
Tutorial Statement (14)
Graph Traversal Visualization
Oracle of Bacon
Past Exams
Final Exams
161 Final Exam162 Final Exam
171 Final Exam
172 Final Exam
181 Final Exam
191 Final Exam
201 Final Exam
211 Final Exam
212 Final Exam
221 Final Exam
222 Final Exam
Major 2 Exams
161 Major 2 Exam162 Major 2 Exam solution
171 Major 2 Exam solution
172 Major 2 Exam
181 Major 2 Exam
191 Major 2 Exam
201 Major 2 Exam solution
211 Major 2 Exam
212 Major 2 Exam
Major 1 Exams
161 Major 1 Exam162 Major 1 Exam solution
171 Major 1 Exam solution
172 Major 1 Exam
181 Major 1 Exam solution
191 Major 1 Exam
201 Major 1 Exam solution
212 Major 1 Exam