Paradigmi e Linguaggi di Programmazione

From Agentgroup

Jump to: navigation, search

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.


Contents

News

Ultime news

 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

Vecchie news

Informazioni sul docente

Docente.png

Prof. Giacomo Cabri

Dipartimento di Scienze Fisiche, Informatiche e Matematiche

Università di Modena e Reggio Emilia, Via Campi 213/B - 41125 Modena

Telefono 0592058320 - Fax 0592055216

giacomo.cabri@unimore.it

Orario delle Lezioni

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

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

Iscrizione.png

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

Lucidi.png

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.

  1. Concetti generali / General concepts
  2. Paradigma funzionale / Functional paradigm
  3. Linguaggio LISP
  4. Java 8
  5. Paradigma logico e Prolog / Logic paradigm and Prolog
  6. JavaScript
  7. 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

EserciziLezione.png
  1. LISP exercises (solutions)
  2. Java 8 exercises (solutions)
  3. Prolog exercises (solutions)

Strumenti Software

Strumenti.png

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

Esercitazioni di laboratorio

Personal tools
Pagine riservate ai CdS di Ing. Informatica