Data Structures and Algorithms

March 7th, 2020

Please Note: This page is kept here as an archive, and for self-study students to follow.

If you wish to add to it or if you have any comment please email me at:



Core Lecture: Data Structures and Algorithms 


The course consists of oral lectures, 2*90 minutes per week, as well as exercises that will be supervised in discussion groups (60 minutes/week).

Males: Lectures will be held Sundays, and Tuesdays 12:30–14:00, in K512 .
Females: Lectures will be held Sundays, and Tuesdays 14:00–15:30, in L303 .

Tutorials will be supervised by Abdallah Al-Azzami, and Abeer Al-Aydi

Males: Discussion sessions will be held Mondays 8:00–9:00, in K104.
Females: Discussion sessions will be held Mondays 10:00-11:00 in ??

I will make lecture slides and material available for download here, i.e., on this web page.


This course explores key concepts of Data Structures and Algorithms, including Designing algorithms, Analyzing algorithms, Asymptotic notation, Fundamental data structures, Graphs, Trees, Sorting, Searching, and others. in conjunction with learning how to code and use them in Java.


Exercises will involve applying the introduced concepts and algorithms to examples and writing simple programs. Solutions must be submitted individually by every enrolled student. Passing exercises with an average score 60% is necessary to pass the course.

Exams and final grade

There will be a written final exam at the end of the course, a midterm exam, written assignments, coding assignments, and discussion sessions. The final grade will be determined based on the performance in all 5 of them.

Tutors Abdallah and Abeer can also give bonuses for outstanding performance, or deduct points from those who make trouble.

Course Material

lecture topic will be noted in the table below at least one day before the lecture sessions on each chapter, slides will be available directly after we finish a chapter.

Most of the course follows the standard Data Structures and Algorithms in Java textbook by Goodrich, Tamassia, and Goldwasser [G]. HOWEVER, in some chapters, we will NOT follow that book one-to-one.

Next to the main book, we will make use of  some knowledge from:

  • Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein [C]
  • Algorithm Design by Kleinberg, and Tardos [K]
  • Introduction to the Design and Analysis of Algorithms by Anany Levitin [L]

Course Overview. The provisional outline of the course is specified in the following table:





Sunday, 8-Sep Introduction, Algorithm Design Example DSaA_L0  
Tuesday, 10-Sep Pseudocode, More Algorithm Design DSaA_L1 ClosingtheLoop
Sunday, 15-Sep Fundamental Data Structures DSaA_L2 Code from textbook
Tuesday, 17-Sep Algorithm Analysis & Asymptotic Notations DSaA_L3  
Sunday, 22-Sep Algorithm Analysis & Asymptotic Notations 2   course part1
Tuesday, 24-Sep Recursion DSaA_L4  
Sunday, 29-Sep Recursion 2 & intro to Algorithm Design    
Tuesday, 1-Oct Brute Force and Exhaustive Search DSaA_L5  
Sunday, 6-Oct Decrease and Conquer DSaA_L6  
Tuesday, 8-Oct Divide and Conquer DSaA_L7 demo
Sunday, 13-Oct Sorting DSaA_L8 printable_L8
Tuesday, 15-Oct More about Sorting   course part 2
Sunday, 20-Oct Stacks, Queues, and Deques DSaA_L9 course part 3
Tuesday, 22-Oct List and Iterator ADTs DSaA_L10  
Sunday, 27-Oct Review    
Tuesday, 29-Oct Review Midterm-Results  
Sunday, 3-Nov Midterm Exams Week    
Tuesday, 5-Nov Midterm Exams Week    
Sunday, 10-Nov  – – –    
Tuesday, 12-Nov  – – –    
Sunday, 17-Nov Trees DSaA_L11  
Tuesday, 19-Nov Trees    
Sunday, 24-Nov Priority Queues & Heaps DSaA_L12 course part 4
Tuesday, 26-Nov Maps, Hash Tables, and Skip Lists DSaA_L13  
Sunday, 1-Dec Maps, Hash Tables, and Skip Lists   course part 5
Tuesday, 3-Dec Search Trees DSaA_L14  
Sunday, 8-Dec Search Trees   course part 6
Tuesday, 10-Dec Graphs DSaA_L15  
Sunday, 15-Dec Graph Algorithms   course part 7
Tuesday, 17-Dec Graph Algorithms    
Sunday, 22-Dec Graph Algorithms DSaA_L16 course part 8
Tuesday, 24-Dec Graph Algorithms    
Saturday, 11-Jan Final Exam Blank Final  

This is one of the most important (and fun) courses you will take.

تمنياتي لكم بالتوفيق