Vai al contenuto principale
Se prosegui nella navigazione del sito, ne accetti le politiche:
  • Condizioni di utilizzo e trattamento dei dati
Prosegui
x
e-Learning - UNIMIB
  • Home
  • Calendario
  • My Media
  • Altro
Ascolta questa pagina con ReadSpeaker
Italiano ‎(it)‎
English ‎(en)‎ Italiano ‎(it)‎
Ospite
 Login
e-Learning - UNIMIB
Home Calendario My Media
Percorso della pagina
  1. Area di Scienze
  2. Corso di Laurea Triennale
  3. Scienza e Nanotecnologia dei Materiali [ESM02Q - ESM01Q]
  4. Insegnamenti
  5. A.A. 2025-2026
  6. 3° anno
  1. Elementi di Programmazione per la Scienza dei Materiali
  2. Introduzione
Insegnamento Titolo del corso
Elementi di Programmazione per la Scienza dei Materiali
Codice identificativo del corso
2526-3-ESM01Q020
Descrizione del corso SYLLABUS

Syllabus del corso

  • Italiano ‎(it)‎
  • English ‎(en)‎
Esporta

Obiettivi

Il corso ha l’obiettivo di fornire agli studenti una preparazione solida e consapevole nei fondamenti della programmazione in Python, con particolare attenzione alle applicazioni nella Scienza dei Materiali. Oltre alla padronanza della sintassi e della logica della programmazione (Indicatore di Dublino 1: Conoscenza e capacità di comprensione), il corso mira a sviluppare la capacità di progettare e realizzare strumenti personalizzati per l’analisi dei dati, la modellazione numerica e la simulazione di sistemi fisico-chimici complessi (Indicatore di Dublino 2: Capacità di applicare conoscenza e comprensione).

Un ulteriore obiettivo è introdurre l’uso di strumenti di Intelligenza Artificiale per il supporto alla scrittura e ottimizzazione del codice, al fine di rendere più efficiente e versatile lo sviluppo di soluzioni computazionali, anche in contesti di ricerca avanzata. Questo approccio favorisce l'acquisizione di competenze trasversali utili ad affrontare nuove tecnologie in modo critico e selettivo (Indicatore di Dublino 5: Capacità di apprendimento, e 3: Autonomia di giudizio).

Attraverso esempi pratici ed esercizi ispirati a casi reali, il corso promuove uno stile di programmazione orientato alla soluzione autonoma di problemi scientifici, stimolando al contempo la creatività e l’efficacia comunicativa, anche nella presentazione e condivisione del codice e dei risultati ottenuti (Indicatore di Dublino 4: Abilità comunicative).

Contenuti sintetici

Il corso introduce i principi della programmazione, sia imperativa che orientata agli oggetti, partendo dal concetto di algoritmo e di costo computazionale. Verranno presentati i concetti fondamentali come variabili, tipi di dato, strutture di controllo, funzioni e operazioni di input/output.
Sulla base di queste nozioni, gli studenti svilupperanno semplici programmi con applicazioni pratiche alla Scienza dei Materiali, tra cui simulazioni, gestione ed elaborazione di dati, e automazione di compiti ripetitivi.
Nella parte conclusiva, il corso affronterà anche le tecniche di programmazione assistita da strumenti di intelligenza artificiale.
Il linguaggio di programmazione utilizzato è Python.

Programma esteso

  1. Fondamenti di programmazione: introduzione ai concetti base come variabili, tipi di dati, input/output, strutture di controllo e funzioni.
  2. Gestione dei dati: manipolazione di dati tramite liste, dizionari e array. Introduzione a librerie per il calcolo numerico e per l’analisi dei dati.
  3. Visualizzazione dei dati: creazione di grafici e rappresentazioni visive, utili per analizzare risultati sperimentali e simulazioni.
  4. Introduzione alla modellizzazione: basi della simulazione di fenomeni scientifici, come il metodo Monte Carlo e l’implementazione di algoritmi semplici.
  5. Automazione e scripting: creazione di script per automatizzare operazioni ripetitive, come l’elaborazione di grandi dataset o la gestione di strumentazione scientifica.
  6. Programmazione “AI-assisted”: sviluppo di applicazioni con il supporto dell’intelligenza artificiale per la velocizzazione della scrittura del codice.

Prerequisiti

È richiesta una conoscenza di base della matematica. Una buona familiarità con i contenuti dei corsi precedenti di Scienza dei Materiali è utile per comprendere più a fondo il significato dei programmi che verranno sviluppati, ma non è indispensabile. Non sono richieste conoscenze pregresse di programmazione.

Modalità didattica

Didattica erogativa: lezioni frontali (3 CFU, per un totale di 24 ore).
Didattica interattiva: esercitazioni in laboratorio (3 CFU, per un totale di 36 ore).

Il corso è tenuto in italiano.

Materiale didattico

Due libri disponibili gratuitamente per imparare a programmare in Python sono:

  1. "Think Python" di Allen B. Downey (http://greenteapress.com/wp/think-python-2e)

  2. "Automate the Boring Stuff with Python" di Al Sweigart (https://automatetheboringstuff.com si può leggere gratis online o acquistare su Amazon)

Altro materiale verrà reso disponibile dal docente durante il corso.

Periodo di erogazione dell'insegnamento

Secondo semestre.

Modalità di verifica del profitto e valutazione

L’esame consiste in una prova scritta e una prova orale.

La prova scritta prevede la realizzazione di alcuni brevi codici in Python, volti a verificare la padronanza delle nozioni fondamentali di programmazione.

La prova orale consiste nella discussione di un progetto precedentemente concordato con il docente, e in domande relative ai contenuti del corso.

Non sono previste prove intermedie.

Orario di ricevimento

Ogni giorno su appuntamento.

Sustainable Development Goals

ISTRUZIONE DI QUALITÁ
Esporta

Aims

This course aims to provide students with a solid and well-structured foundation in Python programming, with a specific focus on applications in Materials Science. In addition to acquiring proficiency in syntax and programming logic (Dublin Descriptor 1: Knowledge and understanding), students will learn how to design and implement customized tools for data analysis, numerical modeling, and simulation of physico-chemical systems (Dublin Descriptor 2: Applying knowledge and understanding).

An additional goal is to introduce the use of Artificial Intelligence tools to accelerate and optimize code development, improving the efficiency and adaptability of computational solutions. This encourages students to critically engage with emerging technologies and supports the development of independent learning strategies (Dublin Descriptor 5: Learning skills, and 3: Making judgments).

Through real-world-inspired examples and exercises, the course fosters a practical and creative programming mindset, enabling students to tackle complex scientific problems autonomously and to communicate effectively, including in the presentation and documentation of code and results (Dublin Descriptor 4: Communication skills).

Contents

The course introduces the principles of programming, both imperative and object-oriented, starting from the concept of algorithms and computational cost. Core concepts such as variables, data types, control structures, functions, and input/output operations will be presented.
Building on these foundations, students will develop simple programs with practical applications in Materials Science, including simulations, data handling and processing, and the automation of repetitive tasks.
In the final part of the course, AI-assisted programming techniques will also be discussed.
The programming language used throughout the course is Python.

Detailed program

  1. Programming fundamentals: Introduction to core concepts such as variables, data types, input/output operations, control structures, and functions.
  2. Data handling: Manipulation of data using lists, dictionaries, and arrays. Introduction to libraries for numerical computing and data analysis.
  3. Data visualization: Creating plots and visual representations to support the analysis of experimental results and scientific simulations.
  4. Introduction to modeling: Basic principles of scientific simulation, including Monte Carlo methods and the implementation of simple algorithms.
  5. Automation and scripting: Writing scripts to automate repetitive tasks, such as processing large datasets or interfacing with scientific instruments.
  6. AI-assisted programming: Developing code with the support of artificial intelligence tools to accelerate and optimize the coding process.

Prerequisites

A basic knowledge of mathematics is required. While a good understanding of previous Materials Science courses can help in better appreciating the purpose of the programs developed during the course, it is not essential. No prior programming experience is required.

Teaching form

Instructional teaching: Lectures (3 CFU, 24h).
Interactive teaching: Laboratory activity (3 CFU, 36h).

Lectures are given in Italian.

Textbook and teaching resource

Two freely available books for learning to program in Python are:

  1. "Think Python" by Allen B. Downey (http://greenteapress.com/wp/think-python-2e)

  2. "Automate the Boring Stuff with Python" by Al Sweigart (https://automatetheboringstuff.com — available to read online for free or to purchase on Amazon)

Additional materials will be provided during the course.

Semester

Second semester.

Assessment method

The final assessment consists of a written test and an oral exam.

The written test involves writing a few short Python programs, aimed at evaluating the student's grasp of basic programming concepts.

The oral exam includes a discussion of a project previously agreed upon with the instructor, as well as questions on the course content.

No midterm exams are scheduled.

Office hours

Available daily by appointment.

Sustainable Development Goals

QUALITY EDUCATION
Entra

Scheda del corso

Settore disciplinare
FIS/03
CFU
6
Periodo
Secondo Semestre
Tipo di attività
Obbligatorio a scelta
Ore
60
Tipologia CdS
Laurea Triennale
Lingua
Italiano

Staff

    Docente

  • FM
    Francesco Meinardi

Opinione studenti

Vedi valutazione del precedente anno accademico

Bibliografia

Trova i libri per questo corso nella Biblioteca di Ateneo

Metodi di iscrizione

Iscrizione manuale

Obiettivi di sviluppo sostenibile

ISTRUZIONE DI QUALITÁ - Assicurare un'istruzione di qualità, equa ed inclusiva, e promuovere opportunità di apprendimento permanente per tutti
ISTRUZIONE DI QUALITÁ

Ospite (Login)
Politiche
Ottieni l'app mobile
Powered by Moodle
© 2025 Università degli Studi di Milano-Bicocca
  • Privacy
  • Accessibilità
  • Statistiche