Introduction to Scientific Computing

Course Aim

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

Student Learning Outcomes

Upon successful completion of this course, students will be able to:

Write basic Python programs using variables, control structures, functions, and classes to solve scientific problems.

Manipulate and visualize data using libraries such as numpy and matplotlib, and interpret results in the context of scientific inquiry.

Apply numerical methods to solve algebraic equations, simulate differential equations, and perform stochastic optimization.

Design and implement computational solutions to scientific problems, including project-based applications of simulation and data analysis.

Demonstrate effective practices in software and data management, including version control and reproducibility.

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

Assessment

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.

Textbooks

The Python Tutorial (https://docs.python.org/3/tutorial)
Kenji Doya (2023) Introduction to Scientific Computing (https://oist.github.io/iSciComp)

Reference Books

Linge S, Langtangen HP (2016) Programming for Computations – Python. Springer. (https://doi.org/10.1007/978-3-319-32428-9)
Deisenroth MP, Faisal AA, Ong CS (2020) Mathematics for Machine Learning. Cambridge University Press. (https://mml-book.com/)

Research Specialties