- Docente: Luca Sciullo
- 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. 5940)
-
dal 26/02/2025 al 15/05/2025
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 un'intensa attività di laboratorio durante la quale il docente è affiancato da tutor, che supporta gli studenti nel 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 consigliate:
Allen B. Downey
How to Think Like a Computer Scientist: Learning with Python
Online interactive edition
Allen B. Downey
Think Python 2e.
O'Reilly Media, 2012. ISBN 978-1449330729.
On-line manuscript: 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.
Esercitazioni di laboratorio che possono tenersi nella stessa aula dove si tiene lezione con i portatili degli studenti o in laboratorio di informatica: un PC ogni due studenti, in pair programming . Durante il laboratorio, il docente è affiancato dai tutor.
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 a partire dalla pagina personale del docente e, durante il corso, sulla piattaforma virtuale.unibo.it
ll laboratorio, se nella stessa aula dove si tiene lezione, si tiene con i portatili degli studenti. È necessario installare sul portatile una versione del linguaggio di programmazione Python: si suggerisce Thonny, un ambiente di programmazione auto-contenuto per Python 3, che sarà utilizzato durante le lezioni.
Orario di ricevimento
Consulta il sito web di Luca Sciullo