CS210 Advanced Data Structures & Algorithms
Fall 2020

Instructor:

Dr. Young Park (Email & FacultyPage)
Professor
Dept. of Computer Science & Information Systems

 

Office Hours:

BR175

T & T, 10:30 a.m. – 12::00 p.m. & 1:30 p.m. - 3:00 p.m. or by appointment.

Walk-ins with short questions are encouraged anytime!

 

Syllabus:

Syllabus

Please address any special needs or special accommodations with me at the beginning of the semester. Those seeking accommodations based on documented disabilities should register with Student Access Services. The Office is located at 100 Heitz Hall and the phone number is (309) 677-3654. More information is also available at the Student Access Services website.

Course Materials:

 

ü Lecture Notes:

 

o  Foundations:

v  Algorithms: Efficiency and Analysis (Chapter 1 & Appendix A & B)

o  Advanced Data Structures:

v  Advanced Linked Lists: Skip lists & Self-organizing lists

v  Graphs

v  Advanced Heaps: Leftist heaps & Skew heaps

v  Advanced Binary Search Trees: AVL trees & Splay trees

v  Advanced Multi-way Search Trees: 2-3 trees, 2-3-4 trees, RB Trees & B-trees

o  Algorithm Paradigms:

v  Divide-and-Conquer (Chapter 2)

v  Dynamic Programming (Chapter 3)

v  Greedy Approach (Chapter 4)

v  Backtracking (Chapter 5)

v  Branch-and-Bound (Chapter 6)

o  Computational Complexity of Problems (Lower Bound & Intractability):

v  Computational Complexity: The Sorting Problem (Chapter 7)

v  The Selection Problem & Algorithms (Chapter 8)

v  Computational Complexity: The Searching Problem (Chapter 8)

v  Computational Intractability: P, NP & NP-Complete Problems (Chapter 9)

 

 

ü Textbook Readings:



Foundations of Algorithms, 5th ed., R. Neapolitan, Johns and Bartlett, 2015.

 

 

v  Chapter 1: 1.1, 1.2, 1.3 (1.3.1 & 1.3.2 only), 1.4 (1.4.1 & 1.4.2 only), 1.5

v  Chapter 2: 2.1, 2.2, 2.3, 2.4, 2.5, 2.8

v  Chapter 3: 3.1, 3.2, 3.3, 3.4, 3.6

v  Chapter 4: 4.1, 4.2, 4.3, 4.5 (4.5.1, 4.5.2 & 4.5.3 only)

v  Chapter 5: 5.1, 5.2, 5.5, 5.7

v  Chapter 6: 6.1

v  Chapter 7: 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8 (7.8.1 & 7.8.2 only)

v  Chapter 8: 8.1 (8.1.1 only), 8.3, 8.5 (8.5.1, 8.5.2, 8.5.3 & 8.5.4 only)

v  Chapter 9: 9.1, 9.3, 9.4

v  Appendix A: A.1, A.5

v  Appendix B: B.3

 

 

 

ü Homework Assignments:

·       HW #1

·       HW #2

·       HW #3

 

 

ü Advanced Data Structures & Algorithms Visualization:

·        Skip List

·         Graph - DFS

·         Graph - BFS

·        Leftist Heap

·        Skew Heap

·        AVL Tree

·        Splay Tree

·         Red-Black Tree

·         2-3 Tree

·         2-3-4 Tree

·         B-Tree



·         Dynamic Programming: Fibonacci

·         Dynamic Programming: APSP – Floyd & Warshall  (All Pairs Shortest Path Algorithm)

·        Greedy Approach: SSSP – Dijkstra (Single Source Shortest Path Algorithm)

·        Greedy Approach: MSP – Prim  (Minimum cost Spanning Tree Algorithm)

·         Greedy Approach: MSP – Kruskal  (Minimum cost Spanning Tree Algorithm)

·         Backtracking: N-Queen Problem

·        Binary Heap &Heap Building

·         Heap Sort  

·        Comparison-Based Sorting

 

           ü Programming Resources:

·         C++ Reference

·         MS Visual Studio C++

·         Pair Programming  

·         Fun with Pair Programming

 

 

 

Course Contents & Schedule: (Tentative and subject to change)

 

 

 

Date

Learning

TOPICS

 

(Before-Class Activity)

 

READINGS

 (Lecture Notes

&

Textbook)

 

 

 

(Before-Class Activity)

 

Lecture

VIDEO

 

 

(In-Class Activity)

 

Lecture

REVIEW

&

QUIZ

 

(After-Class Activity)

 

HW

8/27

Course Introduction

9/1

9/3

LESSON 1:

Algorithms: Efficiency & Analysis

 

 

Algorithms: Efficiency and Analysis 

 

Chapter 1: 1.1, 1.2, 1.3 (1.3.1 & 1.3.2 only), 1.4 (1.4.1 & 1.4.2 only), 1.5

 

 Appendix A: A.1, A.5 &

Appendix B: B.3

 

 

 

 

 

 

Video1

 

 

 

 

 

 

Quiz1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HW#1

9/8

9/10

 

 

LESSON 2:

Advanced Linked Lists – Skip lists & Self-organizing lists

 

LESSON 3:

Graphs & Graph Problems

 

AdvancedLinkedLists

 

 

 

Graphs

 

 

 

Video2

 

 

 

Video3

 

 

 

 

 

 

Quiz2

 

 

 

Quiz3

 

9/15

9/17

 

LESSON 4:

Divide-and-Conquer Paradigm

 

Divide-and-Conquer

 

Chapter 2: 2.1, 2.2, 2.3, 2.4, 2.5, 2.8

 

 

 

Video4

 

 

 

 

Quiz4

 

 

 

 

 

9/22

9/24

 

LESSON 5:

Dynamic Programming Paradigm

 

 

Dynamic Programming

 

Chapter 3: 3.1, 3.2, 3.3, 3.4, 3.6

 

 

 

 

 

Video5

 

 

 

 

Quiz5

9/24

 

In-Class Exercises & Review for Test#1

 

9/29

 

Test #1

 

10/1

10/6

 

 

LESSON 6:

Advanced Heaps – Leftist heaps & Skew heaps

 

 

AdvancedHeaps

 

 

 

Video6

 

 

 

 

Quiz6

 

HW#2

10/8

10/13

LESSON 7:

Greedy Approach

 

Greedy Approach

 

Chapter 4: 4.1, 4.2, 4.3, 4.5 (4.5.1, 4.5.2 & 4.5.3 only)

 

 

 

Video7

 

 

 

Quiz7

 

10/15

10/20

LESSON 8:

Backtracking

 

 

 

 

LESSON 9:

Branch-and-Bound

 

 

Backtracking

 

Chapter 5: 5.1, 5.2, 5.5, 5.7

 

 

Branch-and-Bound

 

Chapter 6: 6.1

 

 

 

Video8

 

 

 

 

Video9

 

 

 

Quiz8

 

 

 

 

Quiz9

10/22

10/27

 

 

LESSON 10:

Computational Complexity: The Sorting Problem

 

 

 

Computational Complexity: Sorting

 

Chapter 7: 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.7, 7.8 (7.8.1 & 7.8.2 only)

 

 

 

Video10

 

 

 

Quiz10

10/27

 

In-Class Exercises & Review for Test#2

 

10/29

 

Test #2

 

11/3

11/5

 

 

LESSON 11:

Advanced Binary Search Trees – AVL trees & Splay trees

 

 

AdvancedBSTs

 

 

 

Video11

 

 

 

Quiz11

 

HW#3

11/10

11/12

LESSON 12:

The Selection Problem & Algorithms

 

The Selection Problem & Algorithms

 

Chapter 8: 8.5 (8.5.1, 8.5.2, 8.5.3 & 8.5.4 only)

 

 

 

Video12

 

 

 

Quiz12

11/12

11/17

 

 

LESSON 13:

Advanced Multi-way Search Trees – 2-3 trees, 2-3-4 trees RB Trees & B-trees

 

 

 

LESSON 14:

Computational Complexity: The Searching Problem 

 

 

AdvancedMSTs

 

 

 

Computational Complexity: Searching

 

Chapter 8: 8.1 (8.1.1 only), 8.3

 

 

 

Video13

 

 

 

 

Video14

 

 

 

Quiz13

 

 

 

 

Quiz14

11/19

12/1

LESSON 15:

Intractability: P, NP & NP-Complete problems

 

Intractability: P, NP & NP-Complete

 

Chapter 9: 9.1, 9.3, 9.4

 

 

 

Video15

 

 

 

Quiz15

12/1

 

In-Class Exercises & Review for Test#3

 

12/3

 

Test #3

 

12/8

 

Course Review for Final Exam

 

 

12/12

(SAT)

 

(9:00am

- 11:00am)

 

 

 

Final Exam

 

 

Course Grading: (This course uses the following absolute grading system.)

 

·        Grading Items: (Total Numeric Score: 1000 points = 100 pts + 300 pts + 300 pts + 300 pts)

        Class Preparation, Attendance & Participation, Review Quiz and Team Homework Participation & Contribution: 100 points (= 45 points/CPAP + 45 points/RQ + 10 points/THPC)

        Three Homework assignments: 300 points (= 3 x 100 points/ each HW)

        Three Midterm Tests: 300 points (= 3 x 100 points/ each Midterm Test)

        Final Exam: 300 points



·        Letter Grades: The final letter grade will be determined from the total numeric score based on the following conversion rule:

 

Letter Grade

TOTAL NUMERIC Score Range

A

900 < raw-score £ 1000

B

800 < raw-score £ 900

C

700 < raw-score £ 800

D

600 < raw-score £ 700

F

0 £ raw-score £ 600