Pseudorandomness II

This is the second volume of a 2-part survey on pseudorandomness, the theory of efficiently generating objects that “look random” despite being constructed using little or no randomness. The survey places particular emphasis on the intimate connections that have been discovered between a variety of fundamental “pseudorandom objects” that at first seem very different in nature: expander graphs, randomness extractors, list-decodable error-correcting codes, samplers, and pseudorandom generators. The survey also illustrates the significance the theory of pseudorandomness has for the study of computational complexity, algorithms, cryptography, combinatorics, and communications. The structure of the presentation is meant to be suitable for teaching in a graduate-level course, with exercises accompanying each chapter.