Paradigmi e Linguaggi di Programmazione
Questa pagina fornisce il materiale didattico e le informazioni relative all'insegnamento di Paradigmi e Linguaggi di Programmazione (6 CFU) per il Corso di Laurea Magistrale in Informatica a partire dall'AA 2016/2017.
News
Ultime news
Le lezioni inizieranno il 25 settembre 2017
Vecchie news
2016/17
La lezione di lunedì 21 novembre 2016 si terrà in aula M2.1 La lezione di lunedì 7 novembre 2016 si terrà in aula M2.1 La lezione di lunedì 17 ottobre 2016 si terrà in aula M2.1 Le lezioni inizieranno il 26 settembre 2016
Informazioni sul docente
Dipartimento di Scienze Fisiche, Informatiche e Matematiche
Università di Modena e Reggio Emilia, Via Campi 213/B - 41125 Modena
Telefono 0592058320 - Fax 0592055216
Orario delle Lezioni
Orario dell'AA 2017/18
Le lezioni dell'AA 2017/18 inizieranno il 25 settembre 2017 con il seguente orario:
- Lunedì dalle 11 alle 13 in aula M2.1 presso Matematica
- Martedì dalle 11 alle 13 in aula M2.4 presso Matematica
Orario dell'AA 2016/17
Le lezioni dell'AA 2016/17 inizieranno il 26 settembre 2016 con il seguente orario:
- Lunedì dalle 11 alle 13 in aula M2.5 presso Matematica
- Martedì dalle 11 alle 13 in aula M2.1 presso Matematica
Obiettivi formativi
Gli obiettivi dell'insegnamento sono:
- Presentare e confrontare i vari paradigmi di programmazione
- Presentare i linguaggi di programmazione per un contesto specifico: il Web
Contenuti dell'insegnamento
Paradigmi di programmazione
- Paradigma imperativo
- Paradigma funzionale
- Paradigma logico
- Java 8 come linguaggio imperativo con costrutti funzionali
- Esempi di linguaggi nei vari paradigmi: LISP, Proglog
Programmazione Web
- Programmazione client: JavaScript
- Programmazione lato server: JEE
- Framework per lo sviluppo di applicazioni Web
Verifica dell'apprendimento
La verifica si componente di due parti. La prima parte consiste nello sviluppo di un progetto, da parte di un singolo studente o di un gruppo. La seconda parte consiste nella presentazione del progetto tramite un report e nella verifica della comprensione dei contenuti tramite domande sul programma svolto.
Sviluppo di un progetto
Progetto sui linguaggi
Questo progetto prevede l'implementazione di un algoritmo tramite 2 linguaggi visti a lezione e relativo confronto. Gli algoritmi che possono essere implementati sono:
- Torre di Hanoi
- 8 regine
- Filosofi a cena
- Altri concordati con il docente
Progetto Web
Per svolgere un progetto Web, accordarsi direttamente con il docente.
Presentazione del progetto e prova orale
Il progetto viene presentato durante l'appello orale. È necessario presentare:
- il codice del software sviluppato
- una relazione sul progetto svolto
La relazione deve riportare un confronto tra l'implementazione con i due (o più) linguaggi, sia quantitativa (ad es. numero di linee di codice, tempo di esecuzione, ...) sia qualitativa (facilità di programmazione, distanza tra soluzione concettuale e codifica, supporto di librerie, ...).
Appelli
Le date degli appelli sono disponibili sul sito ESSE3 (http://www.esse3.unimore.it).
Testi Consigliati
- Maurizio Gabbrielli, Simone Martini, Linguaggi di programmazione - Principi e paradigmi, mcgraw-hill
- Maurizio Gabbrielli, Simone Martini, Programming Languages: Principles and Paradigms, Springer
- Raoul-Gabriel Urma, Mario Fusco, and Alan Mycroft, Java 8 in Action, Manning
Slide dell'insegnamento
In questa pagina sono riportati alcuni lucidi usati a lezione.
Grazie al prof. Enrico Denti dell'Università di Bologna e al prof. Riccardo Lancellotti dell'Università di Modena e Reggio Emilia.
- Concetti generali / General concepts
- Paradigma funzionale / Functional paradigm
- Linguaggio LISP
- Java 8
- Paradigma logico e Prolog / Logic paradigm and Prolog
- JavaScript
- JEE
Seminari
Materiale del seminario su SCALA (Giovanni Simonini, 6/12/2016)
Slide del seminario su Domain Specific Languages (Federico Bergenti, 19/12/2016)
Esercizi presentati a lezione
Strumenti Software
Si indicano di seguito gli strumenti software che si utilizzano durante l'insegnamento e si indica dove e' possibile reperirli.
- Per sviluppare programmi in Java si utilizza il JDK (Java Development Kit). È di pubblico domino e si puo' scaricare dal sito Java at Oracle.
- NOTA: È necessario utilizzare una versione del JDK maggiore o uguale alla 1.8 .
- Come ambiente integrato (IDE) è possibile utilizzare quello che si preferisce. Quello consigliato è Eclipse.
- LISP CLISP, LispWorks, CLISP on Mac
- PROLOG SWI Prolog
- JEE Apache Tomcat