2025-2026 Programming for Chemistry course at the University of Milan
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
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.
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
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.
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 |