Course
Title 
Textbook 
Lecture
Notes 
Instructor 
Topics 
Math for Computer Science 
Linear
Algebra Textbook 
Lecture
Notes 
Tara
Holm 

Math
Algebra 
Algebra Lectures
 This series of video lectures from the
University of Idaho offers a thorough review
of algebra;
Linear Algebra
Lectures  A series of video lectures on
linear algebra from MIT. Lectures are
supplemented by video reviews and quizzes.;
Differential Equations
Lectures  More than 30 free video lectures
on differential equations that can be
accessed through MIT; Lectures are
supplemented with assignments, exams and
other study materials;
Business Calculus
Lectures  This streaming video lecture
course from the University of Houston
includes lecture outlines and practice
problems;
Multivariable Calculus
Lectures  A collection of nearly 50 free
video lectures from UC Berkeley's
multivariable calculus course. Each lecture
takes approximately 50 minutes from start to
finish.

Structure and
Interpretation of Computer Programs 
Computer
Program Lectures  This series of free video lectures from
UC Berkeley focuses on the structure and interpretation of
computer programs. Lectures are also available in audio
format. 
Discrete Mathematics 
Josephus problem;
audio,
Manipulating sums;
audio,
General methods,
audio, Floors and ceilings;
audio, mod (video,
audio), divisibility and
primes (video,
audio), relative primality (video,
audio), congruences (video,
audio), basic
identities (video,
audio), generating functions
(video,
audio), Stirling/Harmonic #'s
(video,
audio), Fibonacci numbers (video,
audio), basic maneuvers (video,
audio), solving recurrences (video,
audio), convolutions (video,
audio), exponential g. f. (video,
audio), mean and variance (video,
audio), probability g.
f. (video,
audio), degree sequences
& invariants (video,
audio), trees and
connectivity (video,
audio), Eulerian and
Hamiltonian cycles (video,
audio), planarity (video,
audio), graph coloring (video,
audio), matching (video,
audio), Project presentations
(video,
audio), Project presentation(video,
audio) 
Discrete Mathematics 
Textbook
Lecture
Notes
Shai
Simonson 
Sets, functions and sums
review , Basic arithmetic
,
Solving recurrence equations
,
(cont.) , Mathematical induction
,
Combinations and permutations
,
Counting Problems More,
Counting problems using
combinations, distributions More, , Equivalence Relations
and Partial Orders Euclid's Algorithm
,
Cryptography 
Probabilistic
Systems Analysis and Applied Probability 
Probability Models and Axioms (PDF), Conditioning and Bayes'
Rule (PDF), Independence (PDF), Counting Sections (PDF), Discrete Random Variables; Probability Mass
Functions; Expectations (PDF), Conditional Expectation; Examples (PDF), Multiple Discrete Random Variables (PDF), Continuous Random Variables  I (PDF), Continuous Random Variables  II (PDF), Continuous Random Variables and Derived
Distributions (PDF), More on Continuous Random Variables, Derived
Distributions, Convolution (PDF), Transforms (PDF), Iterated Expectations (PDF), Sum of a Random Number of Random Variables (PDF), Prediction; Covariance and Correlation (PDF), Weak Law of Large Numbers (PDF), Bernoulli Process (PDF), Poisson Process (PDF), Poisson Process Examples (PDF), Markov Chains  I (PDF), Markov Chains  II (PDF), Markov Chains  III (PDF), Central Limit Theorem (PDF), Central Limit Theorem (cont.), Strong Law of
Large Numbers (PDF); Applications: A Simple Radar Example (ZIP) (The ZIP file contains: 3 MatLab (2 .m and 1
.fig) files and 1 .txt file.), A Communication Example:
The Binary Symmetric Channel (Java)::Cumulative Density Functions: Continuous
Uniform Random Variables (WMV);Normal Random Variables (WMV)::Adding Two Independent Random Variables,
Convolution;Discrete Probability Mass Functions (WMV;Uniform Probability Mass Functions (WMV);Normal Probability Mass Functions (WMV)::Sum of a Random Number of Random
Variables::Branching Process Simulation (ZIP) (The ZIP file contains: 2 MatLab (1 .m and 1
.fig) files and 1 .txt file)::Limit Theorems:Die Experiment;Negative Binomial Experiment;Galton Board Experiment::Markov
Chains:Markov Process Demonstration;BirthDeath
Process (Java);Random Walk Experiment (Java);M/M/m Queues (Java) 
Introduction
to Computer Science and Programming 
Goals of the course; what is
computation; introduction to data types, operators, and
variables,
Operators and operands; statements;
branching, conditionals, and iteration,
Common code patterns: iterative
programs,
Decomposition and abstraction
through functions; introduction to recursion,
Floating point numbers, successive
refinement, finding roots,
Bisection methods, Newton/Raphson,
introduction to lists,
Lists and mutability, dictionaries,
pseudocode, introduction to efficiency,
Complexity; log, linear, quadratic,
exponential algorithms,
Binary search, bubble and selection
sorts,
Divide and conquer methods, merge
sort, exceptions,
Testing and debugging,
More about debugging, knapsack
problem, introduction to dynamic programming,
Dynamic programming: overlapping
subproblems, optimal substructure,
Analysis of knapsack problem,
introduction to objectoriented programming,
Abstract data types, classes and
methods,
Encapsulation, inheritance,
shadowing,
Computational models: random walk
simulation,
Presenting simulation results,
Pylab, plotting,
Biased random walks, distributions,
Monte Carlo simulations, estimating
pi,
Validating simulation results, curve
fitting, linear regression,
Normal, uniform, and exponential
distributions; misuse of statistics,
Stock market simulation,
Course overview; what do computer
scientists do? 
Structure
and Interpretation of Computer Programs 
Textbook 
Overview and Introduction to Lisp,
Procedures and Processes;
Substitution Model,
Higherorder Procedures,
Compound Data,
Henderson Escher Example,
Symbolic Differentiation; Quotation,
Pattern Matching and Rulebased
Substitution,
Generic Operators,
Assignment, State, and Sideeffects,
Computational Objects,
Streams I,
Streams II,
Metacircular Evaluator I,
Metacircular Evaluator II,
Logic Programming I,
Logic Programming II,
Register Machines,
Explicitcontrol Evaluator,
Compilation,
Storage Allocation and Garbage
Collection 
How Computers Work 
Textbook
1,
2,
3,4,
5,
6,
7,
8,
9,
10,
11,
12,
13
Gill Pratt 
Introduction to the BETA
ISA, Storage Allocation,
Stack Discipline, Calling Conventions, Unpipelined Beta,
Exceptions, Implementing the ALU,
Implementation of Beta Memorie,
Synchronous Finite State Machines
(FSMs), Flip flops, Asynchronous
FSMs, Dynamic Discipline, Timing, Arbitration and
Metastability, Static Discipline,
Transistorlevel design, Physics of Communication
and Computation, Physics of Computation,
Pipelining, Details of the Pipelined
Beta, Caches, Virtual Memory, Paging 
Computer
System Engineering 
Introduction to systems, Complexity in computer systems,
Abstractions,
Naming,
Fault isolation with clients and
servers,
Virtualization, virtual memory,
Virtual processors: threads and
coordination,
Performance,
Introduction to networks,
Layering and link layer,
Network layer, routing,
Endtoend layer,
Congestion control,
Distributed naming,
Reliability,
Atomicity concepts,
Recoverability,
solation,
Transactions and consistency,
Multisite atomicity,
Security introduction,
Authentication,
Authorization and confidentiality,
Advanced authentication,
Complex, trusted systems, Guest
lecture: Prof. Hal
Abelson

Computer
Language Engineering 
Course
Administration Information and Overview (S) (PDF) (RM) (MP3), Scanner Parser Project (PDF) (Courtesy of Punyashloka Biswal), (RM), (MP3), Overview of Programming Languages (M), Regular
Expressions, Language Specification by Formal Grammars (M)
(PDF), Parse Table Construction (M) (PDF), Topdown Parsing (M) (PDF), Intermediate Representations (M) (PDF), Semantic Analysis (M) (PDF), Unoptimized Code Generation (S) (PDF)(RM)(MP3), Unoptimized Code Generation (cont.) (S) (PDF)(RM)(MP3), Introduction to Program Analysis and
Optimization (M) (PDF), Dataflow Analysis (M) (PDF), Dataflow Optimizations (M) (PDF), Foundations of Dataflow Analysis (M) (PDF), Instruction Scheduling (S) (PDF), (RM)(MP3), Instruction Scheduling (cont.) (S) (PDF), (RM)MP3), Register Allocation (S) (PDF)(RM)(MP3), Putting it all Together (S) (PDF)(RM)(MP3), Compiler Derby (S) 
Objectoriented Program
Design 
Core Java 2, Volume I: Fundamentals
Volume
II: Advanced Features

1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21 
Dave
Goddeau 
IntroI,
IntroII, ClassesI,
ClassesII,
Inheritance & PolymorphismI,
II,
InterfacesI,
II, OOP Design & Design
Process, Exceptions & Error
Handling, I/O, Window Systems &
Graphics, Eventbased programming,
GUI (widgets), Threads,
Network Programming,
Software Design Cycle,
OOP in C & C++, Layouts, Packages, &
Jar files, Java on the web,
Component Object Models,
Overview of Software Patterns,
Persistence & Databases &
etc., I18N, L10N & Review

Introduction
to Algorithms 
Administrivia  Introduction 
Analysis of Algorithms, Insertion Sort, Mergesort,
Asymptotic Notation  Recurrences 
Substitution, Master Method,
DivideandConquer: Strassen,
Fibonacci, Polynomial Multiplication,
Quicksort, Randomized Algorithms,
Lineartime Sorting: Lower Bounds,
Counting Sort, Radix Sort,
Order Statistics, Median,
Hashing, Hash Functions,
Universal Hashing, Perfect Hashing,
Relation of BSTs to Quicksort 
Analysis of Random BST,
Redblack Trees, Rotations,
Insertions, Deletions,
Augmenting Data Structures, Dynamic
Order Statistics, Interval Trees,
Skip Lists,
Amortized Algorithms, Table
Doubling, Potential Method,
Competitive Analysis:
Selforganizing Lists,
Dynamic Programming, Longest Common
Subsequence,
Greedy Algorithms, Minimum Spanning
Trees,
Shortest Paths I: Properties,
Dijkstra's Algorithm, Breadthfirst Search,
Shortest Paths II: BellmanFord,
Linear Programming, Difference Constraints,
Shortest Paths III: Allpairs
Shortest Paths, Matrix Multiplication, FloydWarshall,
Johnson,
Advanced TopicsI,
Advanced TopicsII,
Advanced TopicsIII,
Advanced TopicsIV 
Algorithms

Introduction to Algorithms, Cormen,
Rivest, Leiserson. Reference:
Computers and Intractability, Garey
and Johnson.
Shai
Simonson

Overview, Sorting,
Sorting II, Searching & Data
Structures, RedBlack Trees,
Graph Algorithms I  Topological
Sorting, Prim's Algorithm, Graph Algorithms II 
DFS, BFS, Kruskal's Algorithm, Union Find Data Structure,
Graph Algorithms III: Shortest Path,
Graph Alg. IV: Intro to geometric
algorithms, Geometric Algorithms:
Graham & Jarvis, Dynamic Programming I,
Dynamic programming II,
Parsing, Knapsack, Bandwidth Min.
Intro: Greedy Algs., Greedy Algs. II &
Intro to NP Completeness, NP Completeness II &
Reductions, NP Completeness III 
More Reductions, NP Completeness IV,
Approximation Algs.,
Alternate Models of Computation

Algorithms 
Introduction
to Algorithms(video,
audio,
slides), Asymptotic Notation(video,
audio,
slides), Modeling / Logarithms(video,
audio,
slides), Modeling / Logarithms(video,
audio,
slides), Elementary Data
Structures(video,
audio,
slides), Dictionary data
structures / Trees(video,
audio,slides), Sorting(video,
audio,
slides), Heapsort/Priority
Queues(video,
audio,
slides), Quicksort(video,
audio,
slides), Linear Sorting(video,audio,slides), Graph Data Structures(video,audio,
slides), Breadth/DepthFirst
Search(video,
audio,
slides), Topological Sort /
Connectivity(video,
audio,
slides), Minimum Spanning Trees(video,
audio,
slides), Shortest Path(video,
audio,
slides), AllPairs Shortest
Paths(video,
audio,
slides), Combinatorial Search(video,
audio,
slides), Program optimization (video,
audio,
slides), Introduction to Dynamic
Programming(video,
audio,
slides) Examples of Dynamic
Programming, More Examples of Dynamic Programming, Divide
and Conquer, Recurrence Relations (video,
audio,
slides), Introduction to
NPcompleteness(video,
slides), Reductions(video,
slides), More Reductions(video,
slides), Cook's Theorem / Harder
Reduction(video,
slides), The NPcompleteness
challenge (video,
slides, Approximation
Algorithms(video,
slides), Heuristic Methods. 
Algorithms 
Analysis (pdf) (keynote), Elementary Sorting (pdf) (keynote), Efficient Sorts (pdf) (keynote), Advanced Topics in
Sorting (pdf) (keynote), Binary Search Trees (pdf) (keynote), Balanced Trees (pdf) (keynote), Hashing (pdf) (keynote) 
Analysis
of Algorithms 
Analysis of Algorithms I (doc) (ppt), Analysis of Algorithms II (doc) (ppt), Exploring Algorithms (doc) (ppt) 
Systems 
Luis
Rodriguez 
Operating
Systems 
Operating
Systems Lectures  Eleven free video
lectures from New Jersey's Science and Technology
University. 
Nonlinear
Programming 
Nonlinear Programming Lectures  Three
video lectures taken from one of MIT's nonlinear programming
courses. Video topics include Newton's method, duality
theory and semidefinite optimization 
Java
Programming 
Java Programming Lectures  This
collection of 16 video lectures from UC Berkeley offers an
introduction to Java programming. Students also learn about
data structures and programming methodology. 
Web Applications 
Philip
Greenspun 
Theory of Computation 
Introduction to the Theory of
Computation, Michael Sipser, Reference:
Introduction to Automata Theory,
Languages and Computation, Hopcroft, Motwani and
Ullman
Lecture Notes.
Shai
Simonson 
Finite State Machines, Closure and
Nondeterminism, The Pumping Lemma,
Minimizing FSMs, Context Free Languages,
CFLs and compilers, Pushdown Machines,
CFGs and NPDMs, More lemmas, CYK,
Undecidability and CFLs,
The Bullseye, Turing Machines,
The Halting Problem,
Decidability, Complexity Theory,
Quantified Boolean Formula, Savitch's Theorem, Space
Hierarchy, Decidability/Complexity
Relationship, Recursion Theorem 
Artificial Intelligence 
Artificial Intelligence, Patrick
Winston
Patrick
Winston

Rulebased systems and
Knowledge Engineering, Searching and Coloring,
Nearest Neighbors, Identification
Trees, Neural Nets, Back
Propagation, Support Vector Machines 
Unix Workshop 

Introduction to
Information Retrieval 
Textbook:
HTML
edition;
PDF
of the book for online viewing (with nice hyperlink
features;
PDF
of the book for printing; PDFs of individual chapters;
slides;
discussion
forums; a moodle with interactive exercises;
exercises

Front matter (incl. table of
notations) pdf
Boolean retrieval pdf
html
The term vocabulary & postings
lists pdf
html
Dictionaries and tolerant retrieval
pdf
html Index construction pdf
html Index compression pdf
html Scoring, term weighting & the vector
space model pdf
html Computing scores in a complete search
system pdf
html Evaluation in information retrieval pdf
html Relevance feedback & query expansion
pdf
html XML retrieval pdf
html Probabilistic information retrieval pdf
html Language models for information
retrieval pdf
html Text classification & Naive Bayes
pdf
html Vector space classification pdf
html Support vector machines & machine
learning on documents pdf
html Flat clustering pdf
html,
html Hierarchical clustering pdf
html Matrix decompositions & latent
semantic indexing pdf
html Web search basics pdf
html Web crawling and indexes pdf
html Link analysis pdf
html Bibliography & Index pdf
bibtex file bib 
Database Management
Systems 
Database Management Systems,
Ramakrishnan and Gehrke
Ravi
Jasuja

Overview, Query
Processing,
Embeddedef="ftp://ftp.aduni.org/videos/10_lect_02.rm"
class=r>Relational Algebra, Relational Calculus, Entity Relationship
Diagrams, RDBMS Memory and Disk
Storage, RAID, Buffer Management, Unordered/Sorted/Hashed
Files, Indexes, Index Sequential Access
Method, B+ Trees, Static and Dynamic Hash
Indexing, External Sorting, Merge
Sort, Double Buffering, Replacement Sort,
Query Optimizers, Query Evaluation,
Normal Forms, Query Analysis and
Optimizing in Oracle 
Applied Probability 
Fundamentals of Applied Probability
Theory, Al Drake.
Tina
Kapur

Introduction, Algebra of
Events, Conditional Probability, Independence, Bayes
Theorem, Probability Mass Functions, Conditional PMFs,
Probability Density Functions, PDFs and Image Guided
Surgery, Bayesian Segmentation of
MRI Images. 
Web Programming 
The Internet and World Wide Web,
Hypertext Markup Language (HTML),
Cascading Style Sheets (CSS),
Page Layout with CSS,
JavaScript
HTML User Interface Controls,
JavaScript Events,
Document Object Model (DOM),
Asynchronous Javascript + XML (Ajax),
Extensible Markup Language (XML),
Debugging,
Multimedia,
Google Ajax Search API,
HTML Forms,
PHP,
HTML Tables,
SQL,
Cookies and Sessions,
Taking a Website Live,
Web Design and Usability,
What's Next? 
What Every
Web Programmer Needs To Know About Security 
Security Goals
Secure Systems Design
Secure
Design Principles
Exercises
Worms and Other Malware
Buffer
Overflows
ClientState Manipulation
SQL
Injection
Password Security
CrossDomain Security in Web
Applications
Exercises
Symmetric Key Cryptography
Asymmetric
Key Cryptography
Key Management & Exchange
MACs
and Signatures
Exercises for
All slides 
Programming
Languages 

Web
Software and Security 
Web Software and Security Lectures  Two great
video lectures from Google Code University. 
Computer
Science Overview 

Concurrency in C++ 
Introduction, Coroutine,
Concurrency, Lock
Abstraction, Concurrent
Errors, Indirect
Communications, Direct
Communications, Other
Approaches 
Multicore
Programming Primer 
Course introduction (part 1),
Course introduction (part 2),
Introduction to Cell processor,
Introduction to parallel
architectures,
Introduction to concurrent
programming,
Parallel programming concepts,
Design patterns for parallel
programming I,
Design patterns for parallel
programming II,
StreamIt language,
Debugging parallel programs,
Performance monitoring and
optimizations,
Parallelizing compilers,
StreamIt parallelizing compiler,
StarP,
Synthesizing parallel programs,
Cilk,
Introduction to game development,
The Raw experience,
The future;
Getting to know Cell,
Takehome lab,
Cell programming handson,
Cell debugging tools,
Cell profiling tools,SIMD
programming on Cell:: Useful Information: Cell programming
minireference (PDF); How to
install Cell
SDK 2.0 with YDL (Yellow
Dog Linux) (PDF); How to
get X to work on the PLAYSTATION�3 console (PDF);Using
the PLAYSTATION
3 Framebuffer for Graphics, Vsync example 