These notes provides an introduction to mathematical modeling of computational problems. It covers the common algorithms, algorithmic paradigms, and data structures used to solve these problems. These notes emphasizes the relationship between algorithms and programming, and introduces basic performance measures and analysis techniques for these problems.
Introduction and document distance
  • Introduction and document distance
  • More document distance, mergesort
Binary search trees
  • Airplane scheduling, binary search trees
  • Balanced binary search trees
  • Hashing I: chaining, hash functions
  • Hashing II: table doubling, Karp-Rabin
  • Hashing III: open addressing
  • Sorting I: heaps
  • Sorting II: heaps
  • Sorting III: lower bounds, linear-time sorting
  • Sorting IV: stable sorting, radix sort
  • Searching I: graph search, representations, and applications
  • Searching II: breadth-first search and depth-first search
  • Searching III: topological sort and NP-completeness
Shortest paths
  • Shortest paths I: intro
  • Shortest paths II: Bellman-Ford
  • Shortest paths III: Dijkstra
  • Shortest paths IV: Dijkstra speedups

Dynamic programming
  • Dynamic programming I: memoization, Fibonacci, Crazy Eights, guessing
  • Dynamic programming II: longest common subsequence, parent pointers
  • Dynamic programming III: text justification, parenthesization, knapsack, pseudopolynomial time, Tetris training
  • Dynamic programming IV: piano fingering, structural DP (trees), vertex cover, dominating set, and beyond
  • Numerics I
  • Numerics II
Package 1 download link 

Package 2 Contents

Wireless Communication
This textbook takes a unified view of the fundamentals of wireless communication and explains the web of concepts underpinning these advances at a level accessible to an audience with a basic background in probability and digital communication. Topics covered include MIMO (multiple input multiple output) communication, space-time coding, opportunistic communication, OFDM and CDMA. The concepts are illustrated using many examples from  wireless systems such as GSM, IS-95 (CDMA), IS-856(1xEV-DO), Flash OFDM and ArrayComm SDMA systems. Particular emphasis is placed on the interplay between concepts and their implementation in systems. An abundant supply of exercises and figures reinforce the material in the text. This book is intended for use on graduate courses in electrical and computer engineering and will also be of great interest to practicing engineers.

List of notes
  1. Introduction;
  2. The wireless channel;
  3. Point-to-point communication: detection, diversity and channel uncertainty; 
  4. Cellular systems: multiple access and interference management;
  5. Capacity of wireless channels;
  6. Multiuser capacity and opportunistic communication;
  7. MIMO I: spatial multiplexing and channel modeling; 
  8. MIMO II: capacity and multiplexing architectures;
  9. MIMO III: diversity-multiplexing tradeoff and universal space-time codes;
  10. MIMO IV: multiuser communication.
  11. Appendix A: Detection and estimation in additive Gaussian noise;
  12. Appendix B: Information theory from first principles.
  13. References and Index.
Package 2 Download link