- Docente: Simone Martini
- Crediti formativi: 8
- SSD: INF/01
- Lingua di insegnamento: Italiano
- Modalità didattica: Convenzionale - Lezioni in presenza
- Campus: Bologna
-
Corso:
Laurea in
Matematica (cod. 6061)
Valido anche per Laurea Magistrale in Scienze filosofiche (cod. 8773)
-
dal 17/02/2025 al 29/05/2025
Conoscenze e abilità da conseguire
Al termine del corso, lo studente conosce un linguaggio di programmazione di alto livello e alcuni concetti fondamentali dell’informatica, quali algoritmo, complessità computazionale, macchina astratta, tipo di dato, e alcuni algoritmi notevoli. Lo studente è in grado di analizzare e progettare algoritmi, che sa realizzare nel linguaggio di programmazione studiato.
Contenuti
Macchine astratte. La macchina Python. Programmazione in Python: nomi e loro visibilità, funzioni, oggetti modificabili e non modificabili, tipi di base e loro uso nella risoluzione di problemi di media difficoltà. Classi e oggetti. Tipi di dato astratti come classi. Algoritmi di ordinamento. Cenni di complessità computazionale. Limitazioni dei procedimenti effettivi: esistenza di problemi non risolubili per via algoritmica.
Il corso ha un'intensa attività di laboratorio, in cui il docente è affiancato da tutor.
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 per il principiante assoluto:
Allen B. Downey
Pensare in Python (nuova edizione 2025)
Egea, 2025
(traduzione italiana di:
Think Python 2e.
O'Reilly Media, 2012. ISBN 978-1449330729.
On-line manuscript: see 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, nella stessa aula dove si tiene lezione, con i portatili degli studenti: un PC ogni due studenti, in pair programming. Durante il laboratorio, i docenti sono affiancati dai tutor.
Il corso è tenuto nel secondo semestre (da febbraio a maggio).
Per i soli studenti della LM in Scienze Filosofiche: il corso è mutuato dal CdL in Matematica e quindi si tiene da febbraio a maggio, anche se la LM di Scienze Filosofiche lo mutua per soli 6 CFU.
In considerazione della tipologia di attività e dei metodi didattici adottati, la frequenza di questa attività formativa richiede la preventiva partecipazione di tutti gli studenti ai moduli 1 e 2 di formazione sulla sicurezza nei luoghi di studio, in modalità e-learning
Modalità di verifica e valutazione dell'apprendimento
Il corso ha sia lezioni tradizionali che lezioni di laboratorio, con un unico esame. Ogni settimana saranno proposti in laboratorio alcuni test di autovalutazione: non sono necessari per l'esame, ma costituiscono un importante strumento per la sua preparazione. La consegna di tutti gli assegnamenti durante l'anno dà diritto ad un bonus di 1 punto.
L'esame è costituito da due parti: (i) una prova di programmazione (durata: 2.5 ore); (ii) una prova scritta su carta (1 ora, non è consentita la consultazione di appunti o testi). Le due prove sono tenute in giorni successivi e devono essere sostenute nello stesso appello, senza eccezioni.
Prova di programmazione: La prova si svolge sulla piattaforma online su cui si svolge anche il laboratorio, in un'aula attrezzata con PC. Quindi lo studente dovrà usare il PC d'aula e non il proprio portatile. Di durata complessiva di 2.5 ore, è a sua volta costituita da due parti:
-
una prima parte consiste nella redazione di alcuni programmi Python, con correzione automatica su dati di prova; a questa parte, al momento della consegna viene immediatamente assegnato un voto compreso tra 0 e 10, con sufficienza a 5. Se questa parte è insufficiente, l'esame termina ed è globalmente insufficiente. Se la valutazione è compresa tra 5 e 10 lo studente ha accesso alla seconda parte e alla prova scritta del giorno successivo.
-
la seconda parte consiste nella redazione di alcuni programmi Python, che saranno corretti e valutati dal docente assieme alla prova scritta. Anche questa parte viene erogata attraverso la piattaforma di laboratorio e propone dei test automatici, ma tali test non sono definitivi per la valutazione finale.
Il tempo complessivo di 2.5 ore viene amministrato autonomamente dallo studente; una volta consegnata la prima parte, questa è definitiva.
Prova scritta: Della durata di 1 ora, è un esame scritto tradizionale, senza appunti, su carta. Viene valutato dal docente insieme alla seconda parte della prova di programmazione. All'insieme della seconda prova di programmazione e della prova scritta viene assegnato un voto compreso tra 0 e 24, con sufficienza a 13 (per la sufficienza è necessario che gli esercizi della seconda parte di programmazione siano sufficienti). L'eventuale insufficienza della prova (meno di 13) rende necessario sostenere di nuovo anche l'intera prova di programmazione, ad un appello successivo.
Il voto finale è determinato sommando il voto (sufficiente) della prima parte della prova di programmazione (5-10), dello scritto (sufficiente: 13-24), e l'eventuale bonus (0-1). Se il risultato è maggiore o uguale a 32, il voto è 30Lode.
Per gli studenti della LM in Scienze filosofiche (o di altri insegnamenti per i quali l'esame è di sei crediti): l'esame non comprende la prima parte della prova di programmazione, ma solo la seconda parte di programmazione e lo scritto. Quindi gli studenti devono iscriversi regolarmente alla prova di Programmazione: il sistema presenterà loro solo la seconda parte.
Studenti con disabilità e DSA
Le persone con disabilità o disturbi specifici dell’apprendimento hanno diritto a speciali adattamenti in relazione alla loro condizione, previa valutazione del Servizio d’ateneo per le studentesse e gli studenti con disabilità e DSA. Si prega di non rivolgersi al docente, ma di contattare il Servizio per un appuntamento. Sarà cura del Servizio stabilire quali adattamenti si rendono opportuni. Maggiori informazioni alla pagina site.unibo.it/studenti-con-disabilita-e-dsa/it/per-studenti .
Strumenti a supporto della didattica
Tutte le informazioni e il materiale sul corso sono reperibili a partire dalla pagina: www.cs.unibo.it/~martini/MATH/ e, durante il corso, sulla piattaforma virtuale.unibo.it
Il laboratorio si svolge nella stessa aula dove si tiene lezione, 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.
La piattaforma piattaforma virtuale.unibo.it deve essere utilizzata anche per inviare gli esercizi per casa assegnati durante il lab.
Orario di ricevimento
Consulta il sito web di Simone Martini