Expository materials

Miscellaneous notes

Algorithms

Below are my lecture notes for an introductory algorithms course that I taught at UCLA in Fall 2021 and Winter 2022. The title of each lecture links to the notes for that lecture.

  1. Introduction
  2. Big-Oh notation and time complexity
Introduction Greedy algorithms: Introduction
Big-Oh notation and time complexity Greedy algorithms: More examples and proofs of correctness
Data structures and examples

sakfjk

Preliminaries Introduction
Greedy algorithms Introduction
Divide and conquer Introduction

Below you can find the set of homework assignments from the Winter 2022 version of the course. Many of these problems are taken from the Kleinberg and Tardos and Dasgupta, Papadimitriou and Vazirani textbooks mentioned above, as well as this free online algorithms textbook by Jeff Erickson.

Below are a sample midterm and a sample final exam, both from the Fall 2021 version of the course.

Elementary set theory

Below are my lecture notes for an introductory set theory course that I taught at UCLA in Winter 2022. The title of each lecture links to the notes for that lecture.

Below you can find the set of homework assignments I assigned during the course.

Below are a sample midterm and a sample final exam for the course.

Introduction to Recursion Theory

Below are lecture notes from a 10 hour online introductory recursion theory course I co-taught for the Logic Association of Malaysia. These lecture notes correspond to around 4-5 hours of content; the rest of the course was taught by Jun-Le Goh.