Informazioni
Questa pagina contiene informazioni riguardo al corso.
Trovate altre informazioni su
Moodle, incluso il link Zoom per partecipare alle lezioni e le lezioni
precedentemente registrate.
Testi di riferimento:
Per il laboratorio su Java, potete anche fare riferimento a questo testo,
ignorando le parti relative all'orientamento agli oggetti.
- Java. A Beginner's Guide. Herbert Schildt. Oracle Press.
Letture avanzate per chi desidera approfondire:
- Introduzione agli algoritmi e strutture dati.
Cormen, Leiserson, Rivest, Stein.
McGraw-Hill Education.
- The formal semantics of programming languages: an introduction.
Winskel.
MIT press. (disponibile anche in Italiano)
Si ricorda che il syllabus del corso è su
ESSE3.
Ricevimento
Il ricevimento viene svolto su appuntamento. Per richiederlo basta
mandarmi una email.
Note
Durante il corso verrà reso disponibile il materiale mostrato a lezione.
Le presentazioni sono in formato Open Document, e leggibili su tutti i principali sistemi operativi
usando per esempio LibreOffice.
Dove questo non sia possibile, le metto a disposizione anche in formato
PDF.
- Parte 1
(PDF)
- introduzione, modalità di esame
- Parte 2
(PDF)
- insiemistica e notazione
- Parte 3
(PDF)
- definizioni ricorsive e punti fissi
- Parte 3b
(PDF)
- ulteriori esempi su definizioni ricorsive
- Parte 4
(PDF)
- programmazione imperativa: sintassi e semantica
- Parte 5
(PDF)
- programmazione imperativa: dimostrazioni di correttezza sui programmi
- Parte 5b
(PDF)
- programmazione imperativa: dimostrazione del teorema di correttezza
- Parte 6
(PDF)
- commenti agli esempi sottostanti di programmi in Java (non richiesto per l'esame)
Esercizi sulla parte di teoria
Le presentazioni di sopra contengono a tratti qualche esercizio sulla parte
di teoria. Durante il corso verranno resi disponibili
ulteriori esercizi teorici.
Contribuire al materiale
Un rappresentante degli studenti ha manifestato il desiderio di alcuni
studenti di contribuire al materiale didattico. Sentitevi liberi di
inviarmi correzioni, migliorie, esempi, o quant'altro vi sembra sia
opportuno. Valuterò l'inclusione del vostro materiale tra quello ufficiale
del corso. Chi volesse modificare le presentazioni deve installare,
oltre a LibreOffice, anche
LaTeX e
TeXMaths.
Nella configurazione di TeXMaths dovete specificare
questo file come file di preambolo LaTeX.
Tutorato e esercizi proposti
Verrà attivato durante il corso il tutorato di Informatica.
I tutor saranno disponibili a dialogare con gli studenti
in un incontro settimanale.
Agli studenti sarà quindi possibile
chiarire eventuali dubbi inerenti alla parte di teoria del corso.
Dopo l'attivazione del tutorato, ogni settimana verranno
proposti alcuni esercizi da svolgere
a casa, in modo da poterli consegnare e verificare assieme ai tutor
durante le ore di tutorato.
Gli esercizi saranno disponibili su
Moodle.
Gli studenti che consegnano le soluzioni di almeno il 58%
dei fogli di esercizi proposti, entro le scadenze, e risolvendoli
correttamente o almeno mostrando un serio tentativo, ricevono un punto
bonus (+1/30) al voto dell'esame scritto (se inferiore a 30/30).
Gli studenti che non possono (o non vogliono) partecipare al tutorato,
ma che vogliono comunque consegnare gli esercizi, possono spedire
una foto leggibile del loro elaborato (con tanto di nome e
matricola) direttamente su
Moodle.
Laboratorio
Durante le esercitazioni in aula PC, seguiremo questi esempi ed esercizi:
Oltre agli esercizi proposti in classe, potete trovare
un elenco di esercizi aggiuntivi su
Project Euler.
Per il ricevimento su argomenti di laboratorio potere chiedere un
appuntamento, oltre a me, anche all'esercitatore
Riccardo Marchesin.
Potete anche accedere anche al materiale fornito negli anni precedenti
(sito del laboratorio AA 2017/18 -
sito del laboratorio AA 2016/17 -
sito AA 2015/16 -
sito AA 2014/15 -
sito AA 2013/14).
Per chi desidera approfindire, mettiamo a disposizione anche
alcuni esempi aggiuntivi di
programmi Java che illustrano alcuni costrutti del linguaggio.
Esami
L'esame è composto da due parti: un progetto e un
esame scritto.
Il progetto deve essere consegnato e valutato positivamente prima
che lo studente possa partecipare allo scritto. Verranno pubblicate
sotto le date entro le quali deve essere fatta la consegna per potere
partecipare (in caso di valutazione positiva) ad ogni appello.
Una volta ottenuta una valutazione positiva per il progetto ad un
appello, si ha accesso allo scritto per tutti e cinque gli appelli
d'esame successivi al corso. Il progetto è lo stesso per
tutti gli appelli dell'anno accademico.
Per esempio, se il primo appello dell'anno
accademico 2013/14 è a giugno 2014, fino al quinto appello di
febbraio 2015 il progetto rimane valido. Se consegnato e valutato
positivamente a giugno 2014, consente di partecipare a tutti e cinque gli scritti.
Se consegnato e valutato positivamente a gennaio 2015, consente solo
di partecipare agli appelli di gennaio e febbraio 2015.
Indicativamente, per uno studente che ha acquisito
dimestichezza con la pratica della programmazione in Java durante le
esercitazioni in laboratorio, dovrebbe richiedere al massimo due/tre
giorni di lavoro.
Lo scritto viene svolto a libro chiuso, e contiene sia domande
di teoria che esercizi. Il voto finale dell'esame è il voto
ottenuto allo scritto.
Il non superamento di uno scritto non comporta il dovere rifare il
progetto: il progetto viene comunque "tenuto buono" per tutti i
cinque appelli d'esame che seguono il corso.
Se sono stati svolti gli esercizi proposti durante il corso,
come descritto sopra, il voto dello
scritto viene aumentato
di un punto (+1/30) se inferiore a 30/30.
Anche senza questo punto bonus, è comunque
possibile raggiungere qualunque punteggio allo scritto, inclusa la lode.
I voti dello scritto vengono comunicati dal sistema ESSE3.
È possibile "rifiutare" il voto su ESSE3, ed in quel caso
il voto viene annullato definitivamente, senza possibilità di
recupero in un appello. A tutti gli effetti, lo scritto
si considera non superato (e non verbalizzato) -- quindi lo studente
dovrà risuperare lo scritto in un appello successivo
(o rifare anche il progetto se terminati i cinque appelli).
Il non superamento di uno scritto non invalida l'eventuale punto bonus
relativo agli esercizi proposti, che continuerà ad applicarsi
a tutti gli scritti successivi fino al quinto appello incluso.
La partecipazione ad uno scritto comporta il rifiuto di un eventuale
voto su ESSE3 di un appello precedente, anche nel caso non
si consegni lo scritto.
In questo caso, è compito dello studente rifiutare il voto
precedente su ESSE3 prima di presentarsi allo scritto.
Gli studenti che hanno superato lo scritto con 30
e che ambiscono alla lode possono richiedere un orale integrativo.
Tale orale contiene domande e/o esercizi volutamente impegnativi,
visto il suo obiettivo -- la lode è intenzionalmente
ardua da ottenere.
L'orale può anche alterare il voto negativamente
se rivela lacune significative, anche se il non raggiungimento della
lode non comporta necessariamente l'abbassamento del voto
(caveat discipulus!).
Non vengono svolti esami orali in altri casi.
Vi ricordo di iscrivervi su ESSE3
per i vari appelli. In caso di problemi su ESSE3 mandatemi una mail per
iscrivervi.
- Appello 1
- Progetto: da consegnare entro il 2024-01-14 (incluso) -
valutazione
- Scritto: previsto per il 2024-01-29 -
soluzioni
- Appello 2
- Progetto: da consegnare entro il 2024-02-04 (incluso) -
valutazione
- Scritto: previsto per il 2024-02-19 -
soluzioni
- Appello 3
- Progetto: da consegnare entro il 2024-06-10 (incluso) -
valutazione
- Scritto: previsto per il 2024-06-24 -
soluzioni
- Appello 4
- Progetto: da consegnare entro il 2024-07-01 (incluso) -
valutazione
- Scritto: previsto per il 2024-07-15 -
soluzioni
- Appello 5
- Progetto: da consegnare entro il 2024-08-26 (incluso) -
valutazione
- Scritto: previsto per il 2024-09-04 -
soluzioni
Non verranno fatti appelli straordinari "su richiesta".
Esami passati
- Appello 1
- Progetto: da consegnare entro il 15 giugno 2014 (incluso) -
valutazione
- Scritto: 2014-06-25 ore 14:30 aula A104 -
soluzioni
- Appello 2
- Progetto: da consegnare entro il 5 luglio 2014 (incluso) -
valutazione
- Scritto: 2014-07-15 ore 14:30 aula A104 -
soluzioni
- Appello 3
- Progetto: da consegnare entro il 31 agosto 2014 (incluso) -
valutazione
- Scritto: 2014-09-10 ore 14:30 aula A104 -
soluzioni
- Appello 4
- Progetto: da consegnare entro il 6 gennaio 2015 (incluso) -
valutazione
- Scritto: 2015-01-16 ore 14:30 aula A207 -
soluzioni
- Appello 5
- Progetto: da consegnare entro il 23 gennaio 2015 (incluso) -
valutazione
- Scritto: 2015-02-02 ore 14:30 aula A207 -
soluzioni
- Appello 1
- Progetto: da consegnare entro il 2015-06-08 (incluso) -
valutazione
- Scritto: previsto per 2015-06-22 ore 14:30 -
soluzioni
- Appello 2
- Progetto: da consegnare entro il 2015-07-01 (incluso) -
valutazione
- Scritto: previsto per 2015-07-13 ore 14:30 -
soluzioni
- Appello 3
- Progetto: da consegnare entro il 2015-08-31 (incluso) -
valutazione
- Scritto: previsto per 2015-09-11 ore 14:30 -
soluzioni
- Appello 4 AA 2014/15 - Appello 1 AA 2015/16
- Appello 5 AA 2014/15 - Appello 2 AA 2015/16
- Appello 3 AA 2015/16
- Progetto: da consegnare entro il 2016-06-06 (incluso) -
valutazione
- Scritto: previsto per 2016-06-20 ore 14:30 -
soluzioni
- Appello 4 AA 2015/16
- Progetto: da consegnare entro il 2016-06-27 (incluso) -
valutazione
- Scritto: previsto per 2016-07-12 ore 14:30 -
soluzioni
- Appello 5 AA 2015/16
- Progetto: da consegnare entro il 2016-08-26 (incluso) -
valutazione
- Scritto: previsto per 2016-09-09 ore 14:30 -
soluzioni
- Appello 1
- Progetto: da consegnare entro il 2017-01-09 (incluso) -
valutazione
- Scritto: previsto per il 2017-01-23 ore 14:30 -
soluzioni
- Appello 2
- Progetto: da consegnare entro il 2017-01-30 (incluso) -
valutazione
- Scritto: previsto per il 2017-02-13 ore 14:30 -
soluzioni
- Appello 3
- Progetto: da consegnare entro il 2017-06-12 (incluso) -
valutazione
- Scritto: previsto per il 2017-06-27 ore 14:30 -
soluzioni
- Appello 4
- Progetto: da consegnare entro il 2017-07-07 (incluso) -
valutazione
- Scritto: previsto per il 2017-07-24 ore 14:30 -
soluzioni
- Appello 5
- Progetto: da consegnare entro il 2017-08-25 (incluso) -
valutazione
- Scritto: previsto per il 2017-09-11 ore 14:30 -
soluzioni
- Appello 1
- Progetto: da consegnare entro il 2018-01-08 (incluso) -
valutazione
- Scritto: previsto per il 2018-01-22 ore 14:30 -
soluzioni
- Appello 2
- Progetto: da consegnare entro il 2018-01-29 (incluso) -
valutazione
- Scritto: previsto per il 2018-02-12 ore 14:30 -
soluzioni
- Appello 3
- Progetto: da consegnare entro il 2018-06-07 (incluso) -
valutazione
- Scritto: previsto per il 2018-06-22 ore 14:30 -
soluzioni
- Appello 4
- Progetto: da consegnare entro il 2018-07-08 (incluso) -
valutazione
- Scritto: previsto per il 2018-07-23 ore 14:30 -
soluzioni
- Appello 5
- Progetto: da consegnare entro il 2018-08-21 (incluso) -
valutazione
- Scritto: previsto per il 2018-09-05 ore 14:30 -
soluzioni
- Appello 1
- Progetto: da consegnare entro il 2019-01-07 (incluso)
- valutazione
- Scritto: previsto per il 2019-01-18 ore 14:30 -
soluzioni
- Appello 2
- Progetto: da consegnare entro il 2019-01-25 (incluso)
- valutazione
- Scritto: previsto per il 2019-02-07 ore 14:30 -
soluzioni
- Appello 3
- Progetto: da consegnare entro il 2019-06-10 (incluso)
- valutazione
- Scritto: previsto per il 2019-06-24 ore 14:30 -
soluzioni
- Appello 4
- Progetto: da consegnare entro il 2019-07-04 (incluso)
- valutazione
- Scritto: previsto per il 2019-07-18 ore 14:30 -
soluzioni
- Appello 5
- Progetto: da consegnare entro il 2019-08-22 (incluso)
- valutazione
- Scritto: previsto per il 2019-09-05 ore 14:30 -
soluzioni
- Appello 1
- Progetto: da consegnare entro il 2020-01-08 (incluso)
- valutazione
- Scritto: previsto per il 2020-01-20 ore 14:30
- soluzioni
- Appello 2
- Progetto: da consegnare entro il 2020-01-27 (incluso)
- valutazione
- Scritto: previsto per il 2020-02-10 ore 14:30
- soluzioni
- Appello 3
- Progetto: da consegnare entro il 2020-06-08 (incluso)
- valutazione
- Scritto: previsto per il 2020-06-22 ore 14:30
- soluzioni
- Appello 4
- Progetto: da consegnare entro il 2020-07-06 (incluso)
- valutazione
- Scritto: previsto per il 2020-07-20 ore 14:30
- soluzioni
- Appello 5
- Progetto: da consegnare entro il 2020-08-31 (incluso)
- valutazione
- Scritto: previsto per il 2020-09-11 ore 14:30
- soluzioni
- Appello 1
- Progetto: da consegnare entro il 2021-01-12 (incluso) -
valutazione
- Scritto: previsto per il 2021-01-27 -
soluzioni
- Appello 2
- Progetto: da consegnare entro il 2021-02-02 (incluso) -
valutazione
- Scritto: previsto per il 2021-02-15 -
soluzioni
- Appello 2bis (appello straordinario causa COVID)
- Progetto: da consegnare entro il 2021-03-21 (incluso) -
valutazione
- Scritto: previsto per il 2021-03-31 -
soluzioni
- Appello 3
- Progetto: da consegnare entro il 2021-06-14 (incluso) -
valutazione
- Scritto: previsto per il 2021-06-28 -
soluzioni
- Appello 4
- Progetto: da consegnare entro il 2021-07-12 (incluso) -
valutazione
- Scritto: previsto per il 2021-07-26 -
soluzioni
- Appello 5
- Progetto: da consegnare entro il 2021-08-23 (incluso) -
valutazione
- Scritto: previsto per il 2021-09-03 -
soluzioni
- Appello 1
- Progetto: da consegnare entro il 2022-01-10 (incluso) -
valutazione
- Scritto: previsto per il 2022-01-24 -
soluzioni
- Appello 2
- Progetto: da consegnare entro il 2022-01-31 (incluso) -
valutazione
- Scritto: previsto per il 2022-02-14 -
soluzioni
- Appello 3
- Progetto: da consegnare entro il 2022-06-10 (incluso) -
valutazione
- Scritto: previsto per il 2022-06-24 -
soluzioni
- Appello 4
- Progetto: da consegnare entro il 2022-07-04 (incluso) -
valutazione
- Scritto: previsto per il 2022-07-18 -
soluzioni
- Appello 5
- Progetto: da consegnare entro il 2022-08-26 (incluso) -
valutazione
- Scritto: previsto per il 2022-09-09 -
soluzioni
- Appello 1
- Progetto: da consegnare entro il 2023-01-09 (incluso) -
valutazione
- Scritto: previsto per il 2023-01-23 -
soluzioni
- Appello 2
- Progetto: da consegnare entro il 2023-01-30 (incluso) -
valutazione
- Scritto: previsto per il 2023-02-13 -
soluzioni
- Appello 3
- Progetto: da consegnare entro il 2023-06-14 (incluso) -
valutazione
- Scritto: previsto per il 2023-06-28 -
soluzioni
- Appello 4
- Progetto: da consegnare entro il 2023-07-10 (incluso) -
valutazione
- Scritto: previsto per il 2023-07-24 -
soluzioni
- Appello 5
- Progetto: da consegnare entro il 2023-08-25 (incluso) -
valutazione
- Scritto: previsto per il 2023-09-08 -
soluzioni
Curiosità: formalizzazioni
Questi file contengono delle formalizzazioni di alcune
delle parti di teoria viste durante il corso.
Sono da considerarsi materiale
avanzato, assolutamente
non necessario ai fini dell'esame.
In questo corso vengono solo proposte come curiosità.
Chi vuole sperimentare con esse può farlo usando il proof assistant Coq,
che si lancia col comando coqide
.
Home -
Teaching
Roberto Zunino, 2020