Skip to main content
Link
Menu
Expand
(external link)
Document
Search
Copy
Copied
OCW & Course Notes
Home
MIT 6.006 - Introduction to Algorithms (Spring 2020)
Lecture 1 - Algorithms and Computation
Lecture 2 - Data Structures and Dynamic Arrays
Lecture 3 - Sets and Sorting
Problem Session 1
Lecture 4 - Hashing
MIT 6.006 - Introduction to Algorithms
Lecture 1 - Algorithmic Thinking, Peak Finding
Lecture 2 - Models of Computation, Document Distance
Lecture 3 - Insertion Sort, Merge Sort
Lecture 4 - Heaps and Heap Sort
Lecture 5 - Binary Search Trees, BST Sort
Lecture 6 - AVL Trees, AVL Sort
Lecture 7 - Counting Sort, Radix Sort, Sorting Lower Bounds
Lecture 8 - Hashing with Chaining
Lecture 9 - Table Doubling, Karp Rabin
Lecture 10 - Open Addressing, Cryptographic Hashing
Lecture 16 - Dijkstra
Lecture 17 - Bellman-Form Algorithm
Lecture 18 - Speeding Up Dijkstra
Lecture 19 - Dynamic Programming 1
MIT 6.045J - Automata, Computability, Complexity
Lecture 1 - Introduction
Lecture 2 - Logic, Circuits, and Gates
Lecture 3 - Finite State Automata & Regular Languages
Lecture 4 - Regular Expressions, Context-Free Grammars
Lecture 5 - Turing Machines
Lecture 6 - Decidability
Lecture 7 - Turing Recognizability, Oracles
Lecture 8 - Turing Degrees, Dovetailing, Godel
MIT 6.046 - Design & Analysis of Algorithms
Lecture 1 - Interval Scheduling
Lecture 2 - Convex Hull, Median Finding
Lecture 3 - FFT: Divide & Conquer
CMU 15-445 - Database Systems
Lecture 1 - Introduction & Relational Model
Lecture 2 - Advanced SQL
Lecture 3 - Database Storage 1
Lecture 4 - Database Storage 2
Lecture 5 - Locks vs. Latches
Lecture 7 - B-Trees and Indexes
UCB CS 162 - Operating Systems and Systems Programming
Lecture 1 - What is an Operating System?
Lecture 2 - Four Fundamental OS Concepts
Lecture 3 - Abstractions 1: Threads and Processes
Lecture 4 - Abstractions 2: Files and I/O
Lecture 5 - Abstractions 3: IPC, Sockets
Lecture 6 - Synchronization 1: Concurrency, Mutual Exclusion
Lecture 7 - Synchronization 2: Semaphores, Lock Implementation
Lecture 8 - Synchronization 3: Atomic Instructions, Monitors, Readers/Writers
Lecture 10 - Scheduling 1: Concepts & Classic Policies
Lecture 11 - Scheduling 2: Case Studies, Real Time, Forward Progress
Lecture 12 - Scheduling 3: Deadlock
Lecture 13 - Memory 1: Address Translation and Virtual Memory
Lecture 14 - Memory 2: Virtual Memory, Caching and TLBs
Lecture 15 - Memory 3: Caching & TLBs, Demand Paging
Lecture 16 - Memory 4: Demand Paging Policies
Lecture 17 - Demand Paging, General I/O, Storage Devices
Lecture 18 - General I/O, Storage Devices, Performance
Lecture 19 - Filesystems 1: Performance, Queueing Theory, Filesystem Design
Lecture 20 - Filesystems 2: Filesystem Design, Case Studies
Lecture 21 - Filesystems 3: Case Studies, Buffering, Reliability, Transactions
Lecture 22 - Transactions, End-to-End Arguments, Distributed Decision Making
Lecture 23 - Distributed Decision Making, Networking, TCP/IP
MIT 6.858 - Computer Systems Security
Lecture 1 - Introduction
Lecture 2 - Security Architecture
Lecture 3 - User Authentication
Lecture 4 - Buffer Overflows
Lecture 5 - Privilege Separation
Recitation 1 - Linux Containers
MIT 6.042J - Mathematics For Computer Science (Google Doc)
MIT 6.046 - Design and Analysis of Algorithms (Google Doc)
MIT 6.004 - Computation Structures (Google Doc)
View on GitHub
Improve These Notes
View on GitHub
MIT 6.006 - Introduction to Algorithms (Spring 2020)
Lecture 4 - Hashing
Lecture 4 - Hashing