Linguaggi di programmazione (2006/2007)

Corso a esaurimento

Codice insegnamento
4S00042
Docente
Maria Paola Bonacina
crediti
5
Altri corsi di studio in cui è offerto
Settore disciplinare
INF/01 - INFORMATICA
Lingua di erogazione
Italiano
Periodo
1° Q dal 2-ott-2006 al 1-dic-2006.
Pagina Web
http://profs.sci.univr.it/~bonacina/teachingUniVR/LingProg2006-07.html

Orario lezioni

1° Q
Giorno Ora Tipo Luogo Note
lunedì 9.30 - 11.30 lezione Aula C  
martedì 9.30 - 11.30 lezione Aula C  
giovedì 10.30 - 11.30 lezione Aula C  

Obiettivi formativi

Il corso insegna i concetti fondamentali dei linguaggi di programmazione, quali funzioni, tipi, gestione della memoria, e controllo. L'obbiettivo è dare agli studenti una comprensione approfondita dei problemi e dei compromessi che si incontrano nella progettazione di linguaggi di programmazione. Questa comprensione permette agli studenti di cogliere vantaggi e svantaggi dei linguaggi che usano, in modo da saper valutare la scelta del linguaggio di programmazione rispetto all'applicazione che si vuole realizzare. Prerequisiti: qualche conoscenza di almeno un linguaggio di programmazione a oggetti (e.g., Java), qualche conoscenza di almeno un linguaggio di programmazione procedurale (e.g., C), qualche esperienza con semplici analisi di algoritmi e strutture di dati.

Programma

Funzioni. Un esempio storico: cenni al linguaggio Lisp. Macchine astratte: interpreti e compilatori. Descrizione di un linguaggio di programmazione: sintassi e semantica. Semantica operazionale strutturata: sistemi di transizione. Il linguaggio ML. Ambiente: nomi, tipi, inferenza di tipo e polimorfismo in ML. Gestione della memoria: regole di "scope", funzioni e procedure, regole per il passaggio di parametri. Controllo: strutturazione ed astrazione, eccezioni in ML. Dati: astrazione e modularità, moduli in ML. Approfondimenti del paradigma orientato a oggetti (opzionale). Cenni di programmazione concorrente e distribuita in ML o Java (opzionale).

Testi di riferimento
Autore Titolo Casa editrice Anno ISBN Note
John C. Mitchell Concepts in Programming Languages (Edizione 1) Cambridge University Press 2003 0-521-7809 Testo adottato
Jeffrey D. Ullman Elements of ML Programming (Edizione 2) Prentice Hall 1998 0-13-79038 Riferimento principale per il linguaggio ML
Maurizio Gabbrielli, Simone Martini Linguaggi di programmazione: principi e paradigmi (Edizione 2) McGraw Hill 2011 88-386-626 Testo di ulteriore riferimento generale
Lawrence C. Paulson ML for the Working Programmer (Edizione 2) Cambridge University Press 1996 0-521-5654 Altro libro per il linguaggio ML
Guy Cousineau, Michel Mauny The functional approach to programming (Edizione 1) Cambridge University Press 1998 0-521-5768 Per il linguaggio OCAML

Modalità d'esame

Esame mediante prove parziali: questa modalità vale solo per il primo appello dopo la fine delle lezioni, ovvero per la sessione di dicembre 2006, essendo il corso nel I quadrimestre. In questa modalità, l'esame consta di due compiti in classe di due ore ciascuno (C1 e C2) ed alcuni compiti a casa (A). Il voto d'esame è dato da: 40% C1 + 40% C2 + 20% A. Passato il primo appello dopo la fine delle lezioni, le prove parziali (compiti in classe e compiti a casa) non valgono più nulla. Chi sostiene l'esame mediante prove parziali deve iscriversi all'esame della sessione di dicembre 2006.

Esame senza prove parziali: in questa modalità, l'esame consta di un unico compito scritto (E), di difficoltà tale da uguagliare C1 + C2 + A, il cui voto determina il voto d'esame. Questa modalità vale per tutti gli appelli, incluso il primo dopo la fine delle lezioni. Tuttavia, se uno studente sostenesse C1 + C2 + A e poi anche E, perderebbe il voto maturato con 40% C1 + 40% C2 + 20% A. In altre parole, non è permesso sostenere sia C1 + C2 + A che E e poi scegliere il voto migliore.

Nota: i compiti a casa saranno assegnati a lezione insieme con la data a cui consegnarli; il primo compito in classe (C1) si terrà il 31 ottobre 2006; il secondo compito in classe (C2) si terrà nella stessa data, ora e luogo dell'esame E della sessione di dicembre (naturalmente contenuto e durata di C2 ed E saranno diversi).

Registrazione: a ogni sessione la data dell'esame è la data dello scritto (E); per registrare il voto basta iscriversi allo scritto. La data per la registrazione del voto sarà annunciata negli avvisi per studenti. Poichè i voti si registrano sul registro anche in assenza degli studenti, tutti i voti saranno registrati.

Regolamento: tutti gli elaborati sono individuali; è severamente vietato copiare e scambiare, passare o condividere codice. Tutti gli elaborati che mostrano di essere stati copiati ricevono voto 0, senza distinzione tra chi copia e chi fa copiare.

Statistiche per i requisiti di trasparenza (Attuazione Art. 2 del D.M. 31/10/2007, n. 544)

Statistiche esiti
Esiti Esami Esiti Percentuali Media voti Deviazione Standard
Positivi 78.50% 26 3
Respinti 1.86%
Assenti 16.82%
Ritirati 1.86%
Annullati 0.93%
Distribuzione degli esiti positivi
18 19 20 21 22 23 24 25 26 27 28 29 30 30 e Lode
1.1% 4.7% 1.1% 2.3% 4.7% 5.9% 7.1% 11.9% 10.7% 13.0% 11.9% 13.0% 8.3% 3.5%

Valori relativi all'AA 2006/2007 calcolati su un totale di 107 iscritti. I valori in percentuale sono arrotondati al numero intero più vicino.