Scientific Computing is about starting with an easy-to-understand problem (e.g., the longest string found in two different genomes) and solving it with more and more elegant methods ... read more
Content:
Scientific Computing is about starting with an easy-to-understand problem (e.g., the longest string found in two different genomes) and solving it with more and more elegant methods until reaching the state of the art. Rather than memorizing derivations of past methods, this course focuses primarily on art of problem solving. The style is designed to put students in the place of the first person to solve the problem. After all, when you yourself come to the limits of what is feasible and what is known, you have to hack something better out yourself; somebody had to invent the things we read on Wikipedia! Topics include memoization, recurrence closed forms, log-transformed arithmetic, string matching, dynamic programming, Bayesian statistics, and fast convolution algorithms.
Prerequisite skills include strong programming ability (C++, Java, or Python) and mathematics (calculus).
Content:
Scientific Computing is about starting with an easy-to-understand problem (e.g., the longest string found in two different genomes) and solving it with more and more elegant methods ... read more