CSCI 381.3/780 Randomized Algorithms Prereq. CSCI 323 This is a course about randomization and computation. We will study the use of randomization in the following contexts: (1) design of efficient algorithms: e.g. load-balancing algorithms, namely how to assign jobs to machines so as to minimize the maximum load; Bloom filters and hashing techniques for identifying duplicates and popular items in massive and/or streaming data sets (e.g. human genome sequences and Internet traffic). (2) modeling and quantifying certain "natural processes": e.g. the "birthday paradox" -- in any group of 23 people, it's quite likely that two will have the same birthday; random graph models used in explaining the structure of the Internet and large social networks.