CODICE 118325 ANNO ACCADEMICO 2025/2026 CFU 3 cfu anno 1 ADVANCED MATERIALS SCIENCE AND TECHNOLOGY 11967 (LM SC.MAT.) - GENOVA SETTORE SCIENTIFICO DISCIPLINARE FIS/03 LINGUA Inglese SEDE GENOVA PERIODO 1° Semestre PRESENTAZIONE L'insegnamento introduce lo studente al computing for material science, fornendogli gli elementi di informatica e programmazione in ambito scientifico. Questo comprende l'acquisizione e utilizzo di risorse hardware e software per raccogliere dati ed elaborarli, anche mediante la progettazione e realizzazione di strumenti quali script o applicazioni in vari linguaggi di ampia diffuzione, che sfruttino eventualmente codice pregresso. OBIETTIVI E CONTENUTI OBIETTIVI FORMATIVI Acquisire familiarità con i concetti fondamentali del computing e programmazione nei sistemi di calcolo piu' diffusi nelle STEM con linguaggi imperativi procedurali e object-oriented e relative librerie, imparando a realizzare piccoli programmi o modificare codice gia' esistente. OBIETTIVI FORMATIVI (DETTAGLIO) E RISULTATI DI APPRENDIMENTO La frequenza alle esercitazioni permettera' allo studente di - acquisire familiarita' con sistemi operativi Windows/Unix based, relativi file system e esecuzione di codice in essi - usare l'appropriato approccio imperativo/strutturale/procedurale/ad oggetti per sviluppare attraverso diversi linguaggi e strumenti via via piu' sofisticati codice adatto al raccoglimento, gestione, analisi e visualizzazione di dati scientifici. - saper discutere il proprio codice e comprendere il codice costruito da terze parti - quali librerie, suggerimenti da parte di AI generative o colleghi di studio/lavoro PREREQUISITI Non sono previsti prerequisiti specifici. MODALITA' DIDATTICHE L'insegnamento si compone di lezioni di laboratorio in cui, dopo una breve introduzione agli argomenti, gli studenti svilupperanno, sotto la guida del docente, su macchine a disposizione oppure sul proprio pc personale, il codice del progetto sotto analisi. PROGRAMMA/CONTENUTO Il programma verra' svolto attraverso progetti di successiva difficolta'. In essi verranno applicati: 1) Principi del pensiero computazionale 2) Introduzione agli ambienti di sviluppo e ai sistemi operativi 3) Introduzione a linguaggi di programmazione imperativi (e.g. C++, Python) 4) Strutturazione dell'execution flow e control flow di un codice 5) suddivisione procedurale di un codice e uso di api di libreria 6) uso di strutture dati sia custom che presenti in librerie terze TESTI/BIBLIOGRAFIA Indicazioni specifiche sulla bibliografia di riferimento verranno fornite dal docente all'inizio delle lezioni. Tutte le slides utilizzate durante le lezioni e altro materiale didattico saranno disponibili su aulaweb del corso. DOCENTI E COMMISSIONI GUIDO GAGLIARDI Ricevimento: Per tutta la durata dell'insegnamento il docente e' a disposizione degli studenti in giorni e orari definiti all'inizio dell'insegnamento ed eventualmente su appuntamento tramite e-mail: guido.gagliardi@ge.infn.it o aulaweb. Al termine del corso il docente e' a disposizione degli studenti su appuntamento via e-mail: guido.gagliardi@ge.infn.it LEZIONI Orari delle lezioni L'orario di questo insegnamento è consultabile all'indirizzo: Portale EasyAcademy ESAMI MODALITA' D'ESAME L'esame consiste nella discussione di una tesina preparata dallo studente su un progetto di programmazione a scelta. MODALITA' DI ACCERTAMENTO Scopo della prova di esame e' valutare la capacita' dello studente di progettare, scrivere, compilare, linkare, eseguire e debuggare un semplice codice, e la capacita' di adattare il proprio codice alle esigenze di persone terze. L'idoneita' verra' verificata in base ai punti elencati. ALTRE INFORMAZIONI Rivolgersi al docente per ulteriori informazioni non comprese nella scheda insegnamento Agenda 2030 Istruzione di qualità Parità di genere Lavoro dignitoso e crescita economica