Introduction to Scientific Computing

Course Aim

To gain knowledge and skills of computing required in any field of science today

Course Description

The course starts with basic programming using Python, with some notes on other computing frameworks. Students then get acquainted with data manipulation and visualization using “numpy” and “matplotlib.” After learning how to define one’s own function, students learn methods for solving algebraic equations, simulation of differential equations. and stochastic optimization. The course also covers topics of software and data management. Toward the end of the course, each student will pick a problem of one’s interest and apply any of the methods covered in the course to get hands-on experience of how they work (or fail). Successful students will have acquired basic knowledge and skills in programming in Python, data analysis and visualization, simulation, optimization, and management of data and software.
This course targets students from non-computational backgrounds.

Course Contents

1 Introduction to Python
2 Visualization
3 Vectors and matrices
4 Functions and classes
5 Iterative computation
6 Ordinary differential equation
7 Partial differential equation
8 Stochastic methods
9 Optimization
10 Software management
11 Project presentation


Exercise reports (75%): submitted within one week from each exercise session.
Project presentation and report (25%): at the end of the course.

Prerequisites or Prior Knowledge

Basic skills of computer use.
Familiarity with linear algebra and basic differential equations is assumed, but the course aims to help intuitive understanding of such mathematical concepts by computing and visualization.


The Python Tutorial (
Kenji Doya (2023) Introduction to Scientific Computing (

Reference Books

Linge S, Langtangen HP (2016) Programming for Computations – Python. Springer. (
Deisenroth MP, Faisal AA, Ong CS (2020) Mathematics for Machine Learning. Cambridge University Press. (


NEW for AY2024

Research Specialties