Large-scale process fluctuations in nano-scale IC technologies motivate a paradigm shift in today's design methodology. In this course, we discuss a number of techniques and methodologies that facilitate the bold move from deterministic IC design to statistical and probabilistic design. We focus on three key questions: (1) What are the physical sources of process variations and how do we model them? (2) How do we estimate circuit performance distribution and parametric yield? (3) How do we modify a circuit design to improve parametric yield? To answer these questions, we will present various numerical computation and optimization algorithms and, most importantly, apply them to solve practical robust IC design problems. This course involves both mathematic theories and practical applications.