Instructor: prof. dr. Federico Cluni

(brochure)

Course description

The course aims to provide skills for the use of the Python programming language in the scientific field. In the first part, the students will learn the basics of the language (data types and structures, syntax, control flow tools, input and output, classes); in the second part, 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.

At the end of the course the students are required to develop an app aimed at solving a scientific problem (in is possible to work in a team).

 

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

Lecture plan:

Day 1: Wednesday, 19 April, 8:30-11:30, 3 hours, Room F

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

Day 2: Thursday, 20 April, 16:30-19:30, 3 hours, Room 16

Advanced functionality: class and object programming.

Day 3: Wednesday, 26 April, 8:30-11:30, 3 hours, Room F

Notebooks for research sharing: creation, interactivity, sharing.

Day 4: Thursday, 27 April, 8:30-11:30, 3 hours, Room 17

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

Day 5: Wednesday, 3 May, 8:30-11: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.

Day 6: Friday, 5 May, 8:30-11:30, 3 hours, Room 17

Introduction to problem solving: Optimization, Integration, Equation solving, Signal processing.

Day 7: Wednesday, 10 May 8:30-11:30, 3 hours, Room F

Introduction to problem solving (cont’d): ODE solving, Statistics, Machine learning.

Day 8: Friday, 12 May, 8:30-11:30, 3 hours, Room 17

Performance enhancement with Numba.

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

Day 9: Wednesday, 17 May 8:30-11:30, 3 hours, Room F

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

Day 10: Friday, 19 May, 8:30-11:30, 3 hours, Room 17

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

Ms Teams virtual room [link]