65094 - ADVANCED PROGRAMMING

Academic Year 2023/2024

  • Teaching Mode: Traditional lectures
  • Campus: Bologna
  • Corso: Second cycle degree programme (LM) in Science of Climate (cod. 5895)

Learning outcomes

This course will be devoted to complete the preparation by giving the student all elements of programming with modern languages: e.g. python, object-oriented programming.

Course contents

The Python programming language: from basics to advanced programming for scientific computing. The first part includes a quick overview over variables, data types, operators, control structures, functions, lists, tuples, dictionaries, file handling. Within the second part the student will start exploring the versatility and power for scientific computing, learning how to unleash the potential of Python by mastering essential libraries such as NumPy, SciPy, Pandas, Matplotlib and Scikit-Learn. These libraries will be the tools for efficiently managing, analyzing, and visualizing large datasets commonly encountered in scientific research.

The student will apply the learned skills in the resolution of simple physical equations (ex. D’alembert equations, heat equation, transport equation) with the help of basic numerical modeling, in the extraction of major statistical properties from physical datasets and comparison with theoretical predictions, in the visualization and graphical representation of datasets and their properties.

The course will introduce to some basics of shell commands to optimize and automate workflows and series of codes.

Readings/Bibliography

- Notes of the teacher.

- How to Think Like a Computer Scientist: Learning with Python, di Allen Downey, Jeff Elkner e Chris Meyers. Gree Tea Press (available at: https://media.readthedocs.org/pdf/howtothink/latest/howtothink.pdf)

- Python in Earth Science, a brief introduction by Sujan Koirala and Jake Nelson (Max Planck Institute for Biogeochemistry, Jena, Germany) (http://hydro.iis.u-tokyo.ac.jp/~sujan/docs/PythonInEarthScience.pdf )

Teaching methods

Frontal lectures with practical examples and computer exercises

Assessment methods

The assessment will be an oral interview focusing on the topics covered in the course.

During the interview, students will be asked to discuss a code they developed throughout the course, applying the methodologies and skills they have acquired. Additionally, they will be presented with practical problems and situations related to the course's themes, and they will be expected to provide solutions and insights based on their knowledge and understanding.

Teaching tools

Frontal lectures with practical examples and computer exercises

Office hours

See the website of Enrico Baglione