“Python for Numerical Computing and Development of Scientific Application”

 

Prof. Federico Cluni

 

Course description

The course aims to provide skills for the use of the Python programming language in the scientific field. The students will learn how to use tools dedicated to the management and processing of scientific data. Particular attention will be paid to possible applications in civil and environmental engineering research and to the acquisition of the skills necessary to share the results of research by means of stand-alone applications or web apps.

 

The overall length of the course is 30 hours (5CFU).

(brochure)

 

Lecture Plan

Thursday, May 5, 2022 at 14:30 (3 hours), Room A

Introduction and base functionality: interaction, data types, syntax, exceptions, functions.

Friday, May 6, 2022 at 14:30 (3 hours), Room F

Advanced functionality: class and object programming.

Tuesday, May 10, 2022 at 14:30 (3 hours), Room F

Notebooks for research sharing: creation, interactivity, sharing.

Thursday, May 12, 2022 at 14:30 (3 hours), Room A

Base packages. Tools for numerical computing: numerical array, linear algebra, MATLAB-like operativity with Numpy/Sympy.

Tuesday, May 17, 2022 at 14:30 (3 hours), Room F

Tools for numerical computing (cont’d): time series management with Pandas, plot and visualization with Matplotlib, data input and output.

Thursday, May 19, 2022 at 14:30 (3 hours), Room A

Introduction to problem solving: optimization, integration, equation solving, signal processing.

Friday, May 20, 2022 at 14:30 (3 hours), Room F

Introduction to problem solving (cont’d): ODE solving, statistics and probability, machine learning.

Tuesday, May 24, 2022 at 14:30 (3 hours), Room F

Performance enhancement with Numba.

Extendibility and interoperability: Fortran, C++, Excel.

Thursday, May 26, 2022 at 14:30 (3 hours), Room A

GUI creation: base concepts for creation of graphic user interface with Tkinter.

Friday, May 27, 2022 at 14:30 (3 hours), Room F

Web App Development: base concepts for creation of web app with Flask.

(Teaching material: 1, 2, 3, 3-scripts, 4, 5, 6, 6-scripts, 7, 7-scripts, 8, 8-scripts, 9, 9-scripts, 10, 10-webapp)