cs210

  • Home
  • About
  • Teaching
  • Research
  • Resources
  • Contact

cs210 - Data Structures and Algorithms

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 1A15 Building 105.

Exams Schedule:
Major 1 Exam on Monday, February 3, 2025 at noon.
Major 2 Exam on Monday, April 21, 2025 at noon.
Final Exam: May 25, 2025 at 12.30.


Important Links: [Syllabus] [This week] [Scores] [Past Exams] [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 1

Review of Fundamental Java Concepts

Linked Objects

Tutorial Statement (1)

Week 2-3

Lists

Lists [Notes from Goodrich]

Tutorial Statement (2)
Single Linked List Animation

Tutorial Statement (3)


Week 4-5

Asmptotic Analysis of Algorithms
Recursion [Notes from Goodrich]
Tutorial Statement (4)

Reading: A gentle intro to Algorithm complexity analysis by D.Zindros


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 sorts
Mergesort
Quicksort
Tutorial Statement (6)

Demo: Insertion Sort
Demo: Selection Sort
Demo: MergeSort
Demo: QuickSort


Week 8

Stacks and Queues
Tutorial Statement (7)

Visualization of a Stack
Visualization of a Array based Stack
Visualization of Stack & Queue using Linked List


Week 9-11

Trees: Fundamental Concepts
Tutorial Statement (8)

Trees: Search Trees (BST)
Tutorial Statement (9)

Project statement


Trees: Search Trees (AVL)
Tutorial Statement (10)


Trees: A summary


BST visualization
AVL visualization


Week 12-13


Trees: Heaps and Priority Queues
Tutorial Statement (11)



Hash-tables
Tutorial Statement (12)







Week 14-15

Undirected Graphs
Tutorial Statement (13)

Dijkastra Algorithm explained!


Directed Graphs
Tutorial Statement (14)

Graph Traversal Visualization
Oracle of Bacon



Past Exams

Major 1 Exams

161 Major 1 Exam
162 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
231 Major 1 Exam
232 Major 1 Exam solution
241 Major 1 Exam

Major 2 Exams

161 Major 2 Exam
162 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
231 Major 2 Exam
232 Major 2 Exam solution
241 Major 2 Exam

Final Exams

161 Final Exam
162 Final Exam
171 Final Exam
172 Final Exam
181 Final Exam
191 Final Exam
201 Final Exam
202 Final Exam
211 Final Exam
212 Final Exam
221 Final Exam
222 Final Exam
231 Final Exam
232 Final Exam

2025 © Copyright by Basit Qureshi. All Rights Reserved.