In this course, you will learn how to design and analyse algorithms in the streaming and property testing models of computation. The algorithms will be analysed mathematically, so it is intended for a mathematically mature audience with prior knowledge of algorithm design and basic probability theory.
Traditional algorithms work well when the input data fits entirely within memory. In many modern application contexts, however, the size of the input data is too large to fit within memory. In some cases, data is stored in large data centres or clouds and specific parts of it can be accessed via queries. In some other application contexts, very large volume of data may stream through a computer one item at a time. So the algorithm will get to see the data typically as a single pass, but will not be able to store the data for future reference. In this course, we will introduce computational models, algorithms and analysis techniques aimed at addressing such big data contexts.