- Docente: Paolo Felli
- Crediti formativi: 6
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Bologna
- Corso: Laurea in Scienza dei materiali (cod. 6830)
Conoscenze e abilità da conseguire
Al termine del corso lo studente possiede una necessaria conoscenza della struttura del calcolatore ed una appropriata conoscenza dei linguaggi di programmazione moderni, in particolare di Python. Tali conoscenze sono adeguate e sufficienti per affrontare e risolvere semplici problemi di natura scientifica mediante la progettazione e l’implementazione di idonei algoritmi e strutture dati. L'attività laboratoriale lo introduce ai primi esempi di metodi e modelli applicati.
Contenuti
Il corso introduce i concetti principali dell'informatica, del problem solving e delle macchine astratte. Si approfondisce poi la programmazione in Python, con particolare attenzione a:
- Macchina python
- Nomi e loro visibilità
- Funzioni
- Oggetti modificabili e non modificabili
- Tipi di dato base (numeri, stringhe, liste, dizionari, etc..)
- Tipi di dato astratti (alberi binari)
Vengono poi presentate alcune classi di algoritmi (es. ordinamento), con cenni di complessità computazionale. Vengono discusse le limitazioni dei procedimenti effettivi e l'esistenza di problemi non risolubili per via algoritmica.
E' prevista attività di laboratorio per comprendere e applicare i concetti appresi durante le lezioni.
Testi/Bibliografia
John V. Guttag: Introduzione alla programmazione con python, Egea, 2021 (traduzione italiana ridotta di: Introduction to Computation and Programming Using Python Third Edition: With Application to Computational Modeling and Understanding Data, MIT Press, 2021)
Altre letture:
Allen B. Downey: How to Think Like a Computer Scientist: Learning with Python. Online interactive edition: https://runestone.academy/ns/books/published/thinkcspy/index.html
Allen B. Downey: Think Python 2e, O'Reilly Media, 2012. ISBN 978-1449330729. https://greenteapress.com/wp/think-python-2e/
Jessen Havill: Discovering Computer Science: Interdisciplinary Problems, Principles, and Python Programming. Chapman and Hall/CRC. ISBN 9781482254143
Metodi didattici
Lezioni in aula ed esercizi di laboratorio.
Modalità di verifica e valutazione dell'apprendimento
Il corso prevede lo svolgimento di un progetto individuale o di gruppo relativo alla realizzazione di un'applicazione python e nella discussione delle scelte progettuali e di realizzazione di questo in una sessione di esame orale. Durante la sessione orale, inoltre, il docente si accerterà, tramite domande specifiche, che lo studente abbia interiorizzato i concetti discussi nel corso.
Strumenti a supporto della didattica
Tutte le informazioni e il materiale sul corso saranno reperibili, durante il corso, sulla piattaforma virtuale.unibo.it.
Orario di ricevimento
Consulta il sito web di Paolo Felli