Programmazione 1 - Corso B

Corso di Laurea in Informatica

Università di Pisa


News

I RISULTATI dell'appello staordinario sono nella nuova pagina del corso!!!

Visitate la NUOVA PAGINA DEL CORSO di Programmazione 1 e Laboratorio


Descrizione del Corso

Lo scopo del corso è di presentare concetti introduttivi sulla teoria dei linguaggi formali, sulla programmazione imperativa (in C) e sulla programmazione funzionale (in ocaml).

Docenti del corso: Fabio Gadducci (lezioni di settembre-ottobre) e Paolo Milazzo (lezioni di novembre-dicembre)


Orario delle lezioni

  • Lunedì - 09.00-11.00 - Aula C
  • Martedì - 09.00-11.00 - Aula C
  • Giovedì - 09.00-11.00 - Aula C

Esami

Sono disponibili:

I testi delle prove d'esame degli anni precedenti sono disponibili in QUESTA PAGINA

Regole per sostenere l'esame (Corso B):

  • L'esame orale deve essere sostenuto nello stesso appello dello scritto. Sono esclusi da questa regola coloro che hanno superato le verifiche intermedie (entrambe con voto maggiore o uguale a 16) che possono fare l'orale in uno qualsiasi degli appelli della sessione di gennaio-febbraio. Il voto dello scritto, per coloro che hanno superato le verifiche intermedie, si ottiene facendo la media dei due voti.
  • All'esame scritto non è necessario consegnare il compito. Se il compito non viene consegnato, la presenza allo scritto non ha nessuna conseguenza. Se viene consegnato, il voto dello scritto annulla l'eventuale voto precedente (ottenuto con le verifiche intermedie) sia esso maggiore o minore.
  • Uno studente è ammmesso all'esame orale se ha conseguito, nello scritto, un voto maggiore o uguale a 16 ed ha superato la prova di laboratorio.
  • Gli orali si possono fare in uno dei giorni successivi le prove di laboratorio di ogni appello. Le date possibili per sostenere l'orale verranno pubblicate su questa pagina web nei giorni in cui si tengono le prove di laboratorio. E' necessario prenotarsi per sostenere l'orale in uno dei giorni indicati inviando un messaggio email al docente Prof. Milazzo.
  • La prova orale verte principalmente sulla teoria fatta a lezione e consisterà di domande e/o piccoli esercizi da svolgere interagendo con il docente e/o su carta.
  • Se non si supera la prova orale, in un appello successivo si dovrà sostenere di nuovo anche lo scritto. Se l'esame viene ripetuto nella stessa sessione non sarà necessario sostenere nuovamente anche la prova di laboratorio. Nelle sessioni successive sarà invece necessario ripetere scritto, prova di laboratorio e orale.

Date dei prossimi esami (richiesta iscrizione tramite il SITO DEGLI ESAMI di ateneo):

  • PROVE INTERMEDIE
    • 20/12/2016, ore 9.00, aule A,B,C,A1,C1 - Seconda verifica intermedia (per chi ha superato la prima)
    • 09/01/2017 - Prova di laboratorio (riservata a chi ha superato le verifiche intermedie) - maggiori dettagli QUI
    • 12/01/2017 e 17/01/2017 ore 9.30 aula seminari est, Dip. di Informatica, esami orali riservati a chi ha superato le verifiche intermedie e il laboratorio (registrarsi via email).
  • SESSIONE INVERNALE
    • Primo Appello
      • 19/01/2017, ore 14.00, aule A,B,C,A1 - esame scritto
      • 27/01/2017 - prova di laboratorio - maggiori dettagli QUI
      • 01/02/2017 ore 9.30 e 07/02/2017 ore 14.00, aula C - esami orali.
    • Secondo Appello
      • 09/02/2017, ore 14.00, aule A,B,C,A1 - esame scritto
      • 17/01/2017 - prova di laboratorio - maggiori dettagli QUI
      • 24/02/2017 ore 14.00, 27/02/2017 ore 16.00 e 03/03/2017 ore 14.00 aula C1 - esami orali.

Diario (e materiale) delle lezioni

Lezioni di Fabio Gadducci

L'elenco e il materiale delle lezioni tenute da Gadducci nel periodo 19/09 - 27/10 sono disponibili in QUESTA PAGINA

Lezioni di Paolo Milazzo

Le videoregistrazioni delle lezioni sono consultabili alla pagina http://mediateca.unipi.it (accesso con credenziali di ateneo.

Gli appunti delle lezioni (in formato PDF) saranno resi disponibili qui sotto man mano che si procederà con il corso.

Lezione 1 - 07.11.2016 (appunti in PDF)
Correzione della prova in itinere (con Gadducci)
Le liste in C: introduzione
Lezione 2 - 08.11.2016 (appunti in PDF)
Operazioni sulle liste
Lezione 3 - 10.11.2016 (appunti in PDF)
Operazioni sulle liste (cont. lez. prec.)
Introduzione alla semantica formale (di un frammento) del linguaggio C (vedere queste dispense: PARTE 1, PARTE 2 e PARTE 3)
Lezione 4 - 14.11.2016 (appunti in PDF)
Introduzione alla semantica formale (di un frammento) del linguaggio C (cont. lez. prec.)
Lezione 5 - 15.11.2016 (appunti in PDF)
Semantica formale del linguaggio C (cont. lez. prec.)
Lezione 6 - 17.11.2016 (appunti in PDF)
Teoria della programmazione ricorsiva (vedere queste dispense: PARTE 1, PARTE 2)
Lezione 7 - 21.11.2016 (appunti in PDF)
Teorema di ricorsione
Lezione 8 - 22.11.2016 (appunti in PDF)
Teorema di ricorsione e grafico di una funzione (lezione interrotta alle 10.00 per assemblea)
Lezione 9 - 24.11.2016 (appunti in PDF)
Progettazione di funzioni ricorsive
Lezione 10 - 28.11.2016 (appunti in PDF)
Introduzione alla programmazione funzionale in Caml-Light.
(vedere questa dispensa: Programmazione Funzionale)
L'interprete Caml-Light può essere scaricato da QUESTO SITO (attenzione a non scaricare OCaml, ma Caml Light!)
Lezione 11 - 29.11.2016 (appunti in PDF)
Definizione di funzioni per casi, locali e ricorsive in Caml
Lezione 12 - 01.12.2016 (appunti in PDF)
Liste e pattern matching
Lezione 13 - 06.12.2016 (appunti in PDF)
Funzioni ricorsive su liste.
Introduzione alle funzioni di ordine superiore
Lezione 14 - 12.12.2016 (appunti in PDF)
Funzioni di ordine superiore
Lezione 15 - 13.12.2016 (appunti in PDF)
Esercitazione
Lezione 16 - 15.12.2016 (appunti in PDF)
Esercitazione
Alcuni esercizi aggiuntivi sono disponibili qui: ESERCIZI AGGIUNTIVI