SWAP - Semantic Web Access and Personalization Research Group

Linguaggi di Programmazione
CdL in Informatica e Comunicazione Digitale - Sede di TARANTO
A.A. 2010-11



Docente: Marco de Gemmis










Avvisi

  • [28 febbraio 2012] Per poter sostenere l'appello di marzo 2012 è necessario prenotarsi mediante l'apposito servizio previsto dall'Area Riservata agli Studenti del sito dei Corsi di Studio in Informatica. Inoltre, va comunicato al docente mediante posta elettronica in quale anno accademico si è seguito il corso, al fine di poter organizzare al meglio le prove.
  • [20 gennaio 2011] Pubblicati risultati delle prove in itinere
  • [18 gennaio 2011] Le lezioni sono terminate.
  • [13 gennaio 2011] Pubblicato calendario della II prova in itinere
  • [10 gennaio 2011] Le lezioni riprenderanno domani secondo calendario.
  • [23 dicembre 2010] Pubblicata dispensa di esercizi per la preparazione alla II prova in itinere.
  • [22 dicembre 2010] Le lezioni riprenderanno il giorno 11 gennaio 2010.
  • [22 dicembre 2010] Pubblicati risultati della I prova in itinere.
  • [15 dicembre 2010] La prossima esercitazione di laboratorio è fissata per il giorno 21 dicembre.
  • [15 dicembre 2010] La seconda prova in itinere si terrà in due turni: primo turno il giorno 18 gennaio alle ore 9,30, secondo turno stesso giorno alle ore 11,30. La prenotazione si effettua durante le lezioni.
  • [29 novembre 2010] La prima prova in itinere si terrà in due turni: primo turno il giorno 1 dicembre alle ore 9,30, secondo turno il giorno 7 dicembre alle ore 9,30. Entrambe le prove saranno seguite dalla regolare lezione.
  • [23 novembre 2010] Il laboratorio inizia domani. Da mercoledì 1 dicembre è prevista anche una sessione pomeridiana (massimo fino alle 16,30).
  • [08 novembre 2010] La lezione del 10 novembre è posticipata al giorno 11 novembre
  • [22 ottobre 2010] Inizio del corso: 26 ottobre 2010









Diario

  • [18 gennaio 11] II prova in itinere.
  • [12 gennaio 11] La tabella dei simboli. Evoluzione dei linguaggi ad alto livello. Esercizi di preparazione alla II prova in itinere.
  • [11 gennaio 11] Il modello di compilatore. L'analizzatore lessicale. Esercizi di preparazione alla II prova in itinere.
  • [22 dicembre 10] Esercizi su linguaggi regolari (Cap. 7). Discussione I prova in itinere.
  • [21 dicembre 10] Pumping lemma per linguaggi regolari. Esercizi su linguaggi regolari (Cap. 7). Laboratorio: Grammar Reader in C++.
  • [15 dicembre 10] Linguaggi regolari, espressioni regolari, teorema di Kleene (Cap. 7). Laboratorio: Grammar Reader in C++.
  • [14 dicembre 10] Automi a stati finiti deterministici. Automi a stati finiti non deterministici. Esercizi (Cap. 6).
  • [7 dicembre 10] Prima prova in itinere (turno 2). Grammatiche e macchine: altri teoremi di chiusura. Esercizi. Revisione degli esercizi oggetto della prova in itinere.
  • [1 dicembre 10] Prima prova in itinere (turno 1). Grammatiche e macchine: dimostrazione teoremi di chiusura. Introduzione alla programmazione orientata agli oggetti (Parte 2). Esercitazioni guidate #2 e #3.
  • [30 novembre 10] Grammatiche e macchine: Gerarchia di Chomsky, operazioni sui linguaggi, teoremi di chiusura (Cap. 5).
  • [24 novembre 10] Introduzione alla programmazione orientata agli oggetti (Parte 1). Esercitazione guidata #1.
  • [23 novembre 10] Esercizi di preparazione alla 1a prova in itinere.
  • [17 novembre 10] Esercizi di preparazione alla 1a prova in itinere. Ambiguità di grammatiche context-free (Cap 4).
  • [16 novembre 10] Esercizi (Cap. 4).
  • [11 novembre 10] Linguaggi liberi da contesto: dimostrazione del pumping lemma + esercizi (Cap. 4).
  • [09 novembre 10] Linguaggi liberi da contesto: alberi di derivazione, pumping lemma (Cap. 4).
  • [03 novembre 10] Grammatiche e linguaggi (seconda parte, cap. 2). Esercizi. Linguaggi liberi da contesto e linguaggi dipendenti dal contesto (cap. 3).
  • [02 novembre 10] Grammatiche e linguaggi (prima parte, cap. 2).
  • [26 ottobre 10] Presentazione del Corso. Macchine astratte e implementazione dei linguaggi di programmazione. Introduzione alla teoria dei linguaggi formali. Linguaggi di programmazione e linguaggio naturale. Elementi di base sulle tecniche di elaborazione del linguaggio naturale. Applicazioni ai sistemi di information filtering.





Modalità d'Esame

L'esame consta di tre prove: prova di laboratorio, prova scritta, colloquio orale.

  • Prova di laboratorio - Si consegna obbligatoriamente il codice C++ (sorgente+eseguibile) del Grammar Reader. Vanno sviluppate obbligatoriamente le funzioni di controllo del tipo della grammatica (context-sensitive, context-free, lineare destra). E' facoltativa la consegna dell'automa a stati finiti che accetta il linguaggio dei numeri in notazione scientifica. Il codice va inviato per posta elettronica al docente entro la data della prova di laboratorio che si intende sostenere. In sede di colloquio orale va prodotta una copia cartacea del codice inviato.
  • Prova scritta - E' richiesta la soluzione di esercizi sulla teoria dei linguaggi formali, l'enunciazione di definizioni e la la dimostrazione di teoremi della teoria dei linguaggi formali.
  • Colloquio orale - Discussione della prova di laboratorio e colloquio su tutto il programma svolto durante il corso.



Materiale utilizzabile durante le prove

Solo durante la prova scritta è consentita la consultazione di: tavola relativa alle proprietà di chiusura dei linguaggi ed elenco delle proprietà delle espressioni regolari.

Valutazione ed esito delle prove

  • Prova di laboratorio - La prova di laboratorio è oggetto di discussione e valutazione solo ed esclusivamente durante la prova orale. La consegna è unica e resta valida per tutti gli appelli da gennaio a novembre di un anno accademico.
  • Prova scritta - La valutazione della prova è in trentesimi. La prova è superata con un minimo di 18/30. Il superamento della prova scritta consente l'accesso al colloquio orale.
  • Colloquio orale - La valutazione della prova è in trentesimi. La prova è superata con un minimo di 18/30.
  • La valutazione finale è un giudizio complessivo sulle tre prove.



Validità delle prove

  • Prova di laboratorio - La prova è valida per gli appelli da gennaio a novembre di un anno accademico. Una volta consegnata, la prova non può essere sostituita prima dell'inizio degli appelli di un nuovo anno accademico.
  • Prova scritta - La prova superata è valida solo per l'appello sostenuto (ovvero se si supera la prova scritta, il colloquio orale va sostenuto nello stesso appello). Solo la prova in itinere è valida da gennaio a settembre di un anno accademico.



Prenotazioni

Per sostenere le prove di ciascun appello occorre OBBLIGATORIAMENTE prenotarsi. Le prenotazioni all'esame (bisogna prenotarsi ad ogni prova) avvengono OBBLIGATORIAMENTE mediante l'apposito servizio previsto dall'Area Riservata agli Studenti del sito dei Corsi di Studio in Informatica. Se e solo se tale servizio risulta inaccessibile o malfunzionante, si prega di contattare il docente. Ci si può prenotare ad una prova fino a tre giorni prima della data prevista per la prova stessa.







Materiale Didattico



Trasparenze utilizzate a lezione

Saranno rese disponibili SOLO le trasparenze che non fanno riferimento al testo principale del corso.

Materiale Laboratorio

Grammar Reader

Linguaggi di Programmazione e Compilatori



Strumenti di Sviluppo









Esercizi & Tracce d'Esame

  • Tracce esercizi su grammatiche libere da contesto e pumping lemma per linguaggi liberi da contesto (download) (Aggiornato il 15 novembre 2010)

  • Tracce esercizi su automi, linguaggi regolari, operazioni sui linguaggi (download) (Aggiornato il 23 dicembre 2010)









Risultati delle Prove

Risultati I prova in itinere (Pubblicato il 22 Dicembre 2010)









Link Utili