As the sizes of modern datasets grow, many classical polynomial time algorithms become prohibitively expensive, calling for a new set of algorithmic tools for dealing with large datasets. This course is about sublinear algorithms, i.e. algorithms whose resource requirements are substantially smaller than the size of the input that they operate on. We will define mathematical models for computing with constrained resources and cover main algorithmic techniques developed for sublinear data processing.