28040 - INFORMATICA (1) (LM)

Anno Accademico 2020/2021

  • Docente: Simone Martini
  • Crediti formativi: 6
  • SSD: INF/01
  • Lingua di insegnamento: Italiano
  • Modalità didattica: Convenzionale - Lezioni in presenza
  • Campus: Bologna
  • Corso: Laurea Magistrale in Scienze filosofiche (cod. 8773)

    Valido anche per Laurea in Matematica (cod. 8010)

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, strutture dati di base (stringhe, ennuple, liste, dizionari) e loro uso nella risoluzione di problemi di media difficoltà. Tipi di dato astratti: coda, pila, albero binario; algoritmi ricorsivi su di essi. 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 un tutor e da studenti di laurea magistrale che fanno assistenza.

Testi/Bibliografia

Allen B. Downey
Think Python 2e.
O'Reilly Media, 2012. ISBN 978-1449330729.
Manoscritto disponibile on-line: si veda http://www.cs.unibo.it/~martini/MATH/index.html

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, il docente è affiancato da tre 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


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 in laboratorio, che consiste nella redazione di alcuni programmi Python, con correzione automatica su dati di prova; (ii) una prova scritta (non è consentita la consultazione di appunti o testi).

La prova di lab, se sufficiente rimane valida all'interno della stessa sessione (giugno-luglio; gennaio-febbraio; a settembre c'è comunque un solo appello). "Rimane valida" vuol dire che si può "riusare" per più di uno scritto. Ma anche che non si può rifiutare (per rifiutarla bisogna farla scadere e andare alla sessione seguente). Se un lab è insufficiente si può ritentare alla prima prova disponibile. 

Alla prova di laboratorio viene assegnato un voto compreso da 0 e 10, con sufficienza a 5. Una prova insufficiente deve essere sostenuta ancora ad un appello successivo. È necessario superare la prova di laboratorio prima di sedere allo scritto. Alla prova scritta è assegnato un voto compreso tra 0 e 24, con sufficienza a 13. Il voto finale è determinato sommando il voto (sufficiente) della prova di laboratorio, dello scritto (sufficiente), e l'eventuale bonus. Se il risultato è maggiore o uguale a 32, il voto è 30Lode.e 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 prova di laboratorio (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.

Link ad altre eventuali informazioni

http://www.cs.unibo.it/~martini/MATH/index.html

Orario di ricevimento

Consulta il sito web di Simone Martini

SDGs

Istruzione di qualità

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