This class will cover several topics, including graph clustering, graph partitioning, solving linear systems of equations, page rank algorithm, and large-scale nonlinear optimization. As much as possible, numerical methods will be presented in the context of real-world applications.
Numerical computing is an interconnected combination of computer science and mathematics in which we develop and analyze algorithms for solving important problems in science, engineering, medicine, and business -- for example, simulating an earthquake, choosing a stock portfolio, or detecting cancer tumors in medical images. The students will learn principles and practices of basic numerical computation based on seven to eight mini-projects. This is a key aspect of scientific computation.
A goal of the course is that students will learn principles and practices of basic numerical methods to enable scientific numerical simulations. This goal will be achieved within six to eight mini-projects with a focus on numerical computing. We intend to use Julia for this course, which is a relatively new high-level free and open-source numerical computing language, including a robust set of built-in types and libraries for working with linear algebra and other types of computations, as well as a syntax that appears to be similar to Matlab's.
40% of the grade is determined by mandatory graded projects and 60% is determined by a final written or oral exam during the official examination period.
- Swiss National Supercomputing Centre (Lugano), 12.10.22 - 12.10.22 (Optional)