Date degli appelli:
Appello 5: 9 Settembre
Appello 6: (VECCHIA DATA: 20 Settembre, ore 9.30) , NUOVA DATA: 21 Settembre ORE 14.30
06/09/21 - L'appello inizialmente previsto per il 20 mattina viene spostato al 21 pomeriggio per motivi personali.
Vedere qui sotto per informazioni pratiche per l'esame.
Insegnamento per:
Laurea Triennale in INTELLIGENZA ARTIFICIALE E DATA ANALYTICS (SM32);
Laurea Triennale in STATISTICA E INFORMATICA PER L'AZIENDA, LA FINANZA E L'ASSICURAZIONE (EC21), sotto il nome di Elementi di Informatica (mod I).
Docente:
Dr Giulio Caravagna (gcaravagna@units.it). Stanza 332, III piano, edificio H2bis.
Tutors:
Gaia Saveri (gaia.saveri@gmail.com)
Pietro Morichetti (pietro.morichetti@studenti.units.it)
Orario lezioni: Aula 2A e 2B (edificio H3), disponibili in streaming su Teams.
Fino al 30 Ottobre incluso: Martedi e Venerdi, 14-17.
Dal 6 Novembre incluso: Martedi e Venerdi, 14-16.
Ricevimento:
Mercoledi 16-18, online (tramite Google Meet).
NOTA: si prega di mandare una mail in anticipo per organizzare il meeting online.
Accesso alle lezioni in presenza nella aule di H3
Per accedere alla lezione dovete usare la App Safety4all, prenotare la lezione in aula e scannerizzare il QR code all'ingresso della lezione.
Si consiglia anche di installare la App Immuni.
Le sessioni Hands-on di programmazione sono nelle aule 2A e 2B, dove sono installate prese di corrente per tutti. Potete quindi portare il vostro portatile, o programmare su carta e testare da casa i programmi. Si consiglia di usare repl.it come ambiente di programmazione (che verrĂ anche usato parzialmente in sede di esame).
Dovete configurare l'accesso alla rete Eduroam di ateneo (col vostro portatile): istruzioni generali, e specifiche per Windows 8.
Accesso alla lezione su Microsoft Teams:
Prima opzione: con i dati del vostro account units (ds.units.it) seguite la pagina per la "Didattica a distanza", e selezionate "Caravagna" come docente. Entrambi i links (AIDA SM32 e Statistica EC21) puntano alla stanza Teams dove si svolge la lezione.
Seconda opzione: seguite il link di accesso viene riportato qui sotto.
Importante: per gli studenti che non hanno ancora completato l'immatricolazione: per ciascuna lezione potete accedere comunque al Teams ed aspettare che il docente autorizzi il vostro accesso (se arrivate in orario per l'inizio si fa tutto molto velocemente).
Accesso alle registrazioni delle lezioni:
Le lezioni registrate su Teams compaiono direttamente su Microsoft Stream.
Per accedervi accedete su office.com con le vostre credenziali units, selezionate Stream tra le Apps e poi cercate il nome del docente. Oppure seguite il link qui sotto che apre direttamente la lista di tutti i video disponibili sul profilo Stream del docente.
Importante: per gli studenti che non hanno ancora completato l'immatricolazione: senza credenziali di ateneo non potete fare l'accesso su office.com. Per questo motivo, trovate qui sotti i video delle lezioni che potete scaricare.
Se non funzionasse Teams, la registrazione della lezione avverrebbe in locale e sarebbe resa disponibile su questo sito, insieme alle slides.
Materiale didattico:
Slides fornite durante le lezioni (disponibili su questa pagina);
La parte sul C si ispira ad un corso di Programmazione I del Prof Milazzo (UniversitĂ di Pisa).
Registrazioni di ogni lezione (disponibili sia su Teams, che qui).
Materiale di approfondimento:
(C) The C Programming Language. Kernighan and Ritchie (2nd edition). (PDF versione italiana; versione inglese)
(Python) Think python 2e. (PDF versione inglese)
L'esame si basa sugli argomenti del corso, e contiene due tipologie di esercizi (sbarramento e non-sbarramento). Gli esercizi in totale saranno 6, da svolgere in un tempo massimo di 3 ore (da confermare).
Dovete iscrivervi sul portale Esse3 per partecipare: iscrivetevi alla "Prova Parziale" di AIDA o Statistica a seconda del vostro corso di laurea di appartenenza. L'esame figura come Prova Parziale perché tecnicamente diviso in Modulo A (questo corso), e Modulo B (del Prof Manzoni, secondo semestre) - la verbalizzazione vera e propria sul libretto avverrà dopo il completamento di entrambi i moduli.
Alcune informazioni utili che ho gia riportato a lezione e che potete ritrovare nelle registrazioni.
La parte degli esercizi "sbarramento" si focalizza sulla prima parte del programma (programmazione su array in C), utilizzando la libreria che ho mostrate alla fine del corso e che avete usato nell'ultima esercitazione di Dicembre.
Essendo uno sbarramento l'esame viene superato se almeno questa parte e' completamente corretta!
Gli altri esercizi si basano su tutto il resto del programma (modelli della memoria, programmazione avanzata in C, programmazione in Python etc.) e servono per raggiungere punteggi piu alti.
L'orale è necessario per la lode.
Per l'assegnazione del compito d'esame e raccogliere i vostri programmi, useremo il portale Moodle del corso.
Iscrivetevi alla pagina del corso su Moodle (come avete fatto per gli altri corsi).
Durante la simulazione d'esame mostreremo come scaricare il testo dell'esame, caricare i template degli esercizi su Repl.it, e consegnare le soluzioni.
Preparazione pratica e altri consigli
Provate a fare gli esercizi assegnati qui sotto! Se avete svolto gli esercizi assegnati durante le lezioni , l'esame dovrebbe risultarvi semplice.
Essendo un esame di programmazione e' necessario che portiate il vostro computer per programmare, carta e penna.
Non presentatevi senza nulla - se vi serve qualche forma di aiuto, contattatemi con anticipo!
Personalmente non userei un iPad o cellulare, e vi consiglio di controllare in anticipo la configurazione della rete wifi di ateneo.
PARTECIPAZIONE DA REMOTO ALL'ESAME. E' possibile partecipare all'esame da remoto fornendo adeguata motivazione via mail sull'impossibilita a partecipare in aula. In tal caso, ci sarĂ un'integrazione orale obbligatoria.
Introduzione al corso, storia della programmazione, nozioni di base, modello di ambiente e memoria.
Nota: causa malfunzionamento Teams questa lezione Ă© disponibile solamente offline.
Strutture condizionali (if/else) ed iterative (for, while). Repository Repl.it con i programmi mostrati a lezione, e lista di esercizi.
Nota: per gli esercizi forniamo uno scheletro di programma da usare (nella lista di esercizi); per la compilazione di un file "main.c" nel terminale, e la sua esecuzione, usare questi comandi:
> gcc main.c -o main.o
> ./main.o
Modello dello stato con pila di frames, blocchi e chiamate di funzione. Soluzione degli esercizi presentati da Pietro e Gaia, e nuovi esercizi sulle funzioni.
Presentazione del corso di AIDA (Prof Bortolussi). Puntatori, modello ed utilizzo in combinazione con le funzioni. Ulteriori esercizi (sempre sul tema delle funzioni), che estendono quelli assegnati la lezione precedente.
Nota: sono disponibili le slides della presentazione di AIDA, e la registrazione su Stream della sua presentazione;
Esercitazione sulla definizione di funzioni ricorsive (disponibili come Slides), esercizi su puntatori, esercizio sulla memoria.
Array, definizione ed operazioni di base. Per gli esercizi fare riferimento alla nota qui sotto.
Nota: testo degli esercizi presentati su puntatori ed array;
Problem solving su array (specifica di funzione tramite proposizioni logiche, soluzioni componibili).
Nota: il materiale su git presentato dal Dr Luca Manzoni è disponibile come zip;
Memoria dinamica e liste linkate.
Programmazione con liste
Nota: esercizi lasciati a lezione su array, memoria dinamica e liste.
Programmazione con liste (seconda parte).
Nota: soluzioni agli esercizi mostrate a lezione (soluzione alternativa per l'esercizio su array).
Programmazione object-oriented in Python (parte uno).
Nota: esercizi sugli oggetti visti in classe;
Repl.it con esempi di classi e soluzione agli esercizi.
Programmazione object-oriented in Python (parte due).
Repl.it con esempio di funzione.
Esercizi programmazione object-oriented in Python (non ci sono slides in questa lezione; la registrazione si riferisce alla soluzione discussa da Gaia per l'esercizio 1).
Soluzione esercizio numero 1.
Continuazione degli esercizi del 24 novembre (nessuna slide, le soluzioni sono discusse durante la lezione).
Soluzione dell'esercizio sulla agenzia di viaggi.
Costruzione di iteratori per classi Python.
Calcolo completo dell'integrale numerico, con esempio di plot della funzione in input (tramite matplotlib).
Simulazione d'esame, utilizzo di Moodle per il caricamento dei risultati.
La Artificial Intelligence Student Society (AI2S) organizza un mini-corso gratuito sul linguaggio di programmazione Julia.
Il corso presuppone una minima esperienza di programmazione in altri linguaggi e viene tenuto da Luca Manzoni (docente del corso di Programmazione modulo B).
Per chi ha curiosita di vedere Julia, consiglio la partecipazione (anche se siete all'inizio della vostra esperienza di programmazione).
Occorre registrarsi per la partecipazione in presenza, o da remoto.
Maggiori informazioni sul sito di AI2S.
La Artificial Intelligence Student Society (AI2S) organizza un giorno di lezioni sul tema Deep Learning.
Maggiori informazioni sul sito di AI2S.
Come detto durante le lezioni l'orale non e' obbligatorio (a meno che non abbiate partecipato da remoto, o abbiate preso 30 e vogliate la lode). In tutti gli altri casi l'orale e' facoltativo. Vedete le istruzioni nel riquadro grigio per prenotarvi per l'orale, o rifiutare il voto di questo appello (notate la deadline).
Se avete dubbi sulla correzione del vostro compito mandate una mail.
Valgono le stesse considerazioni del primo appello. Siamo stati larghi nella correzione degli obbligatori A1, A2 e A3, sopratutto se il compito conteneva anche un tentativo di risolvere i B1, B2 e B3. Ho aggiunto anche un breve commento per ciascuna soluzione inviata, se non fosse evidente il problema.
Chi intende rinunciare al voto di questo appello mi deve mandare una mail entro VENERDI pomeriggio ore 16.
Se avete dubbi sulla correzione del vostro compito mandate una mail.
Chi ha svolto il compito da remoto deve sostenere l'orale, e le matricole con un (*) annotato devono fornire dei chiarimenti sulla prova consegnata. Si prega di contattare il docente per concordare un orario per il colloquio (possibilmente martedi mattina o pomeriggio).
Chi intende rinunciare al voto di questo appello deve mandare una mail entro MARTEDI pomeriggio ore 16.
Si consiglia di usare il ricevimento per discutere i vostri appelli. Alcune soluzioni denotano incomprensioni anche sul funzionamento della libreria usata per testare i programmi; venire a ricevimento per ricevere le chiarificazioni necessarie!
Chi intende rinunciare al voto di questo appello deve mandare una mail entro VENERDI pomeriggio ore 16.
Chi intende rinunciare al voto di questo appello deve mandare una mail entro VENERDI pomeriggio ore 16.
Chi intende rinunciare al voto di questo appello deve mandare una mail entro VENERDI pomeriggio ore 16.