07276 - INFORMATICA

Scheda insegnamento

  • Docente Simone Martini

  • Crediti formativi 8

  • SSD INF/01

  • Modalità didattica Convenzionale - Lezioni in presenza

  • Lingua di insegnamento Italiano

  • Campus di Bologna

  • Corso Laurea in Matematica (cod. 8010)

    Valido anche per Laurea Magistrale in Scienze filosofiche (cod. 8773)

SDGs

L'insegnamento contribuisce al perseguimento degli Obiettivi di Sviluppo Sostenibile dell'Agenda 2030 dell'ONU.

Istruzione di qualità

Anno Accademico 2022/2023

Conoscenze e abilità da conseguire

Al termine del corso, lo studente possiede il necessario background informatico ed una appropriata conoscenza dei linguaggi di programmazione. Sa utilizzare le conoscenze acquisite per progettare autonomamente algoritmi e strutture dati. Sa lavorare in modo autonomo, ma anche inserirsi in un gruppo di lavoro.

Contenuti

Informatica e problem solving. Macchine astratte. La macchina Python. Programmazione in Python: nomi e loro visibilità, funzioni, oggetti modificabili e non modificabili, tipi di base (numeri, stringhe, ennuple, liste, dizionari) e loro uso nella risoluzione di problemi di media difficoltà. Tipi di dato astratti: albero binario. 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:

Allen B. Downey
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 se la situazione pandemica lo renderà possibile. Durante il laboratorio, il docente è affiancato 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:

  1. 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.

  2. la seconda parte consiste nella redazione di alcuni programmi Python, che saranno corretti e valutati manualmente 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; ovviamente 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 delle due viene assegnato un voto compreso tra 0 e 24, con sufficienza a 13. L'eventuale insufficienza della prova (meno di 13) rende necessario sostenere di nuovo anche la 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 (per i quali l'esame è di sei crediti): l'esame non comprende la prima parte della prova di programmazione (ma gli studenti sono benvenuti a tutte le lezioni di lab)

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, se in presenza, 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.

Tutto il materiale di lab è disponibile sulla piattaforma Moodle del corso: lab-info-mat.cs.unibo.it/moodle/
Per accedere, usare il bottone "Credenziali istituzionali di Ateneo" (e non "Login"), inserire username e password. La prima volta occorre iscriversi al corso, password: "cremona", tutta minuscolo.


La piattaforma deve essere utilizzata anche per inviare gli esercizi per casa assegnati durante il lab.

Orario di ricevimento

Consulta il sito web di Simone Martini