2025-Programming

Logo

2025-2026 Programming for Chemistry course at the University of Milan

View the Project on GitHub dceresoli/2025-Programming

Programming for Chemistry

The course introduces students to imperative programming by referring to the Python language. The course is divided in two parts: the first presents Python and its object-oriented features, the second focuses on libraries that can be useful in scientific computation and data analysis, in particular NumPy and SciPy.

Where: Computer room to be announced

When: Tuesdays and Fridays 08:30-10:30

What: 48 hours (24 lab-lectures, 2 hours each)

Who: Dr. Davide Ceresoli, davide.ceresoli@cnr.it

General info

You are free to bring your own laptop. In this case, on first lecture you’ll be required to setup a working Python system with Jupyter or VSCode. If you prefer working in the cloud, you will be requested to setup a Google Colab account.

Text book

There are plenty of Python books/tutorial/course available for free, on many different topics. For example, a good book is How to think like a computer scientist in Python 3

Exam

Because of AI code assistants (ChatGPT, Claude, Gemini, …) the exam will be individual and it will consist in few general questions + coding a simple algorithm.

Course schedule (tentative)

Day Hour Room Topic
Tue 23/09/2025 08:30-10:30 TBA 01: Introduction to Python and tools
Fri 26/09/2025 08:30-10:30 TBA 02: Variables, data types, operators, conditionals, loops
Tue 30/09/2025 08:30-10:30 TBA 03: Functions #1: parameters, scope, return values
Fri 03/10/2025 08:30-10:30 TBA 04: Functions #2: recursion, passing functions to functions
Tue 07/10/2025 08:30-10:30 TBA 05: Strings, lists, tuples, sets, dictionaries
Fri 10/10/2025 08:30-10:30 TBA 06: String processing, comprehensions, sorting, random numbers
Tue 14/10/2025 08:30-10:30 TBA 07: Files I/O, text processing
Fri 17/10/2025 08:30-10:30 TBA 08: Object Oriented Programming #1
Tue 21/10/2025 08:30-10:30 TBA 09: Object Oriented Programming #2
Fri 24/10/2025 08:30-10:30 TBA 10: Object Oriented Programming #3
Tue 28/10/2025 08:30-10:30 TBA 11: Let’s code a game
Fri 31/10/2025 08:30-10:30 TBA 12: Free programming practice #1
Fri 07/11/2025 08:30-10:30 TBA 13: NumPy
Tue 10/11/2025 08:30-10:30 TBA 14: Numpy + Matplotlib
Fri 14/11/2025 08:30-10:30 TBA 15: SciPy
Tue 17/11/2025 08:30-10:30 TBA 16: Applications to chemistry
Fri 21/11/2025 08:30-10:30 TBA 17: SymPy (who needs Mathematica?)
Tue 24/11/2025 08:30-10:30 TBA 18: Image processing
Fri 28/11/2025 08:30-10:30 TBA 19: Fourier series (bring headphones)
Tue 02/12/2025 08:30-10:30 TBA 20: ASE
Fri 05/12/2025 08:30-10:30 TBA 21:
Tue 09/12/2025 08:30-10:30 TBA 22:
Fri 12/12/2025 08:30-10:30 TBA 23:
Tue 16/12/2025 08:30-10:30 TBA 24: Free programming practice #2 & Farewell