Computation has long been an important tool for scientists, but the past two decades have seen a true revolution in the practice of science. Computation, in the form of both simulation and analysis, has joined theory and experimentation as the oft-quoted “third pillar” of science.
This is an applications course highlighting the use of computers in solving scientific problems. You will be exposed to fundamental computer science concepts such as computer architectures, data structures, algorithms, and parallel computing. You will learn the fundamentals of scientific computing including abstract thinking, algorithmic development, and assessment of computational approaches. And you will use a series of open source tools and libraries for data analysis, modeling, and visualization of real scientific problems. A big emphasis in the course is on parallel programming and “parallel thinking.”