- Introduction to Probability
-
(Textbook: Fundamentals Of Probability [Saeed Ghahramani] + A First Course in Probability [Sheldon Ross])
- Lecture Note 1
- Lecture Note 2
- Lecture Note 3
- Lecture Note 4
- Lecture Note 5
- Lecture Note 6
- Lecture Note 7
- Lecture Note 8
- Lecture Note 9
- Lecture Note 10
- Lecture Note 11
- Lecture Note 12
- Lecture Note 13
- Lecture Note 14
- Lecture Note 15
- Lecture Note 16
- Lecture Note 17
- Lecture Note 18
- Lecture Note 19
- Lecture Note 20
- Lecture Note 21
- Lecture Note 22
- Lecture Note 23
- Data Structures
-
(Textbook: Introduction to Algorithms [Cormen, Leiserson, Rivest and Stein] -- known as CLRS)
- Lecture Note 1 (introduction, problem, algorithm)
- Lecture Note 2 (insertion sort)
- Lecture Note 3 (divide and conquer paradigm)
- Lecture Note 4 (asymptotic analysis of algorithms)
- Lecture Note 5 (recursive relation)
- Lecture Note 6 (more on master theorem)
- Lecture Note 7a (maximum subarray problem)
- Lecture Note 7b (inversion count algorithm)
- Lecture Note 8 (array randomization)
- Lecture Note 9 (in-place algorithms)
- Lecture Note 10 (quicksort)
- Lecture Note 11 (binary tree, heap)
- Lecture Note 12 (elementary data structures)
- Lecture Note 13a (comparison tree, stability)
- Lecture Note 13b (counting and radix sort)>
- Lecture Note 14 (linked list, bucket sort)
- Lecture Note 15 (RAM and pointer models, lists)
- Lecture Note 16 (order statistics)
- Lecture Note 17 (hashing)
- Lecture Note 18 (universal hashing, BST)
- Lecture Note 19 (BST ctd.)
- Lecture Note 20 (2-3 and RB tree)
- Lecture Note 21 (LLRB tree)
- Introduction to Cryptography
-
(Textbook: Introduction to Modern Cryptography [Katz and Lindell])
- Lecture Note 1
- Lecture Note 2
- Lecture Note 3
- Lecture Note 4
- Lecture Note 5
- Lecture Note 6
- Lecture Note 7
- Lecture Note 8
- Lecture Note 9
- Lecture Note 10
- Lecture Note 11
- Lecture Note 12
- Lecture Note 13
- Lecture Note 14
- Lecture Note 15
- Lecture Note 16
- Lecture Note 17 (draft)
- Lecture Note 18
- Lecture Note 18b (draft)
- Lecture Note 19
- Lecture Note 20
- Lecture Note 21
- Lecture Note 22
- Lecture Note 23 (draft)
- Lecture Note 24
- Advanced Introduction to Cryptography
- Lecture Note 1
- Lecture Note 4
- Lecture Note 5
- Lecture Note 6
- Lecture Note 7
- Lecture Note 8 (NYA)
- Lecture Note 9 (NYA)
- Lecture Note 10
- Lecture Note 11
- Lecture Note 12
- Lecture Note 13
- Lecture Note 14
- Lecture Note 15
- Lecture Note 16
- Lecture Note 17 (NYA)
- Lecture Note 18
- Lecture Note 19 (NYA)
- Lecture Note 20
- Lecture Note 21 (NYA)
- Lecture Note 22 (NYA)
- Theory of Languages and Automata
-
(Textbook: Introduction to Automata Theory, Languages, and Computation [Hopcroft, Motwani, Ullman])
- Lecture Note 1
- Lecture Note 2
- Lecture Note 3
- Lecture Note 4
- Lecture Note 5
- Lecture Note 6
- Lecture Note 7
- Lecture Note 8
- Lecture Note 9
- Lecture Note 10
- Lecture Note 12
- Lecture Note 13
- Lecture Note 14
- Lecture Note 15
- Lecture Note 16
- Lecture Note 17
- Lecture Note 18
- Lecture Note 19
- Lecture Note 20
- Lecture Note 21
- Lecture Note 22 (NYA)
- Lecture Note 23
- Lecture Note 24
- Lecture Note 25
- Lecture Note 26
- Lecture Note 27
- Design and Analysis of Algorithms
-
(Textbook: Algorithms [Dasgupta, Papadimitriou and Vazirani])
- Lecture Note 1
- Lecture Note 2
- Lecture Note 3
- Lecture Note 4
- Lecture Note 5
- Lecture Note 6
- Lecture Note 7 (NYA)
- Lecture Note 8
- Lecture Note 9 (NYA)
- Lecture Note 10
- Lecture Note 11
- Lecture Note 12 (NYA)
- Lecture Note 13
- Lecture Note 14 (NYA)
- Lecture Note 15
- Lecture Note 16
- Lecture Note 17 (NYA)
- Lecture Note 18 (NYA)
- Lecture Note 19
- Lecture Note 20
- Lecture Note 21
- Lecture Note 22 (NYA)