Schedule
-
EventDateDescriptionCourse Material
-
Session01/08/2024 08:00
MondayHW #1 is out -
Lecture01/08/2024
MondayLecture 1[slides]Assigned Readings:
Lecture recording is on Blackboard.
-
Lecture01/09/2024
TuesdayLecture 2[slides]Assigned Readings:
- Wikipedia on mathematical proof
- Wikipedia on proof by contradiction
- Wikipedia on mathematical induction
- Mathematical review on exponentials and logarithms, factorials, etc.
Lecture recording is on Blackboard.
In CLRS (optional textbook):
Chapter 3.3 Standard notations and common functions
-
Lecture01/15/2024
MondayLecture 3[slides]Assigned Readings:
Lecture recording is on Blackboard.
In CLRS (optional textbook):
Chapter 2.1 Insertion sort Introduce algorithm by the example of insertion sort
Chapter 2.2 analyzing algorithms introduces RAM model and gives an example of analysis of insertion sort
-
Lecture01/16/2024
TuesdayLecture 4[slides]Assigned Readings:
Lecture recording is on Blackboard.
In CLRS (optional textbook):
Chapter 1.3 Characterizing Running Times Asymptotic analysis and Landau notations
-
Session01/22/2024 08:00
MondayHW #2 is out -
Lecture01/22/2024
MondayLecture 5[slides]Assigned Readings:
Lecture recording is on Blackboard.
In CLRS (optional textbook):
Chapter 1.2 Linked Lists
-
Lecture01/23/2024
TuesdayLecture 6[slides]Assigned Readings:
Lecture recording is on Blackboard.
In CLRS (optional textbook):
Chapter 16 Amortized analysis
-
Lecture01/29/2024
MondayLecture 7[slides]Assigned Readings:
Lecture recording is on Blackboard.
-
Lecture01/30/2024
TuesdayLecture 8[slides]Assigned Readings:
Lecture recording is on Blackboard.
Extended Readings
AVL tree is a typical data structure for self-balancing binary search tree. In the next lecture we will disucuess red-black tree which is usually more frequently used because of overall lower balancing cost.
-
Session02/02/2024 08:00
FridayHW #3 and PA#1 is out -
Lecture02/05/2024
MondayLecture 9[slides]Assigned Readings:
Lecture recording is on Blackboard.
Extended Contents There are huge numbers of tree structures for searching. Due to the limited time in class, we cannot go over them.
Trie, or prefix tree, is usually used to store string.
-
Session02/19/2024 08:00
MondayHW #4 -
Lecture02/19/2024
MondayLecture 10Assigned Readings:
Lecture recording is on Blackboard.
Extended Contents There are many heap data structures. We won’t cover the following, but it is useful somtimes to using a more advanced heap.
-
Lecture02/20/2024
TuesdayQuiz 1 and Midterm examSuggestions for the exam preparation:
We do not have past exams for preparation. But there are many useful online resources you can take a look on.
Rutgers U Washington Our midterm has many overalpping with this class. Notice that we do have different topics coverred. For example, we cover red-black tree instead of AVL tree which is taught in the University of Washington class.
DSA Quiz Here are many simple multiple choice problems you might want to take a look. A lot of them can be helpful in general (typical entry level interview questions) even they are not coverred in class so far.
-
Lecture02/27/2024
TuesdayLecture 11-13Assigned Readings:
-
Sorting and order statistics CLRS: You can read Chapter 6, 7, 8 for your reference. We will cover more topics in the lectures than CLRS.
-
Animation of sorting algorithms: You might find it provide an intuitive illustration of different sorting algorithms.
Lecture recording is on Blackboard.
-
-
Session03/01/2024 08:00
FridayPA #2 -
Session03/11/2024 08:00
MondayHW #5 -
Session03/18/2024 08:00
MondayHW #6 -
Lecture03/18/2024
MondayLecture 14[slides]Assigned Readings:
-
Unordered Sets in C++ Standard Template Library: in addition to unordered_set, unordered_map is also usually implemented with hash table.
In Python, dictionary is implemented with hash table data structures.
Lecture recording is on Blackboard.
Extended Readings:
- A lecture on universal and perfect hashing
-
A lecture note on universal and perfect hashing The Youtube video is a good MOOC lecture on universal hashing expected runtime and perfect hashing. Perfect hashing is to get expected O(1) search time. There used be a section about perfect hashing in CLRS edition 3. But it was removed in edition 4.
- Benchmarking on C++ hash maps std::unordered_map is a fine implementation covers daily usuage. But if you really need a huge hash table/map, using some other implementaitons is a good idea.
-
Session03/25/2024 08:00
MondayHW #7 has been posted -
Lecture03/25/2024
MondayLecture 15[slides]Assigned Readings:
Lecture recording is on Blackboard.
Extended Readings:
-
Lecture03/25/2024
MondayLecture 16[slides]Assigned Readings:
Recording is on Blackboard.
Extended Readings:
-
Lecture03/25/2024
MondayLecture 17[slides]Assigned Readings:
- Breadth First Search or BFS for a Graph
- Depth First Search or DFS for a Graph
- Wikipedia on topological sort
Recording is on Blackboard.
-
Session04/08/2024 08:00
MondayHW #8 has been posted -
Lecture04/15/2024
MondayLecture 18[slides]This lecture is coverred in the exam.
Assigned Readings:
-
Lecture04/15/2024
MondayFinal ExamGood luck.
