| | | corso | | | | |
Programmazione avanzata (Advanced programming)
Codice: | 301AA | Crediti: | 9 | Semestre: | 1 | Sigla: | PA | |
|
Settore disciplinare: | INF/01 - Informatica |
Docente
Ultima versione disponibile: programma da confermare per l’a.a. 2014/2015
Prerequisiti
Conoscenze di linguaggi di programmazione a oggetti.
Obiettivi di apprendimento
Gli obiettivi del corso sono:
- di fornire agli studenti una conoscenza approfondita di come come concetti e metafore ad alto livello dei linguaggi di programmazione si traducono in sistemi eseguibili e quali siano i loro costi e limiti
- di familiarizzare gli studenti con i moderni principi, le tecniche e le migliori pratiche per la costruzione di software sofisticato
- di introdurre tecniche di programmazione a livelli di astrazione più elevata, in particolare generative programming, component programming e web computing
- di presentare frameworks allo stato dell'arte che incorporano queste tecniche.
Il corso in particolare si focalizza su questioni di qualità relative al progetto dettagliato ed alla codifica, quali l'affidabilità, le prestazioni, l'adattabilità e l'integrabilità in sistemi più ampi.
Descrizione
Il corso ha come obiettivi di:
- fornire agli studenti una comprensione approfondita dei concetti dei linguaggi di programmazione ad alto livello concepts, delle metafore di programmazione e di come questi vengono trasformati in codice eseguibile, e di quali siano i loro costi e limiti
- familiarizzare gli studenti con i oderni pricipi, tecniche e best practices nella costruzione di software sofisticato
- introdurre gli studenti a tecniche di programmazione a livelli di astrazione superiori, in particulare programmazione generativa, programmazione a componenti e programmazione web
English Description
The objectives of this course are:
- to provide the students with a deep understanding of how high level programming concepts and metaphors map into executable systems and which are their costs and limitations
- to acquaint the students with modern principles, techniques, and best practices of sophisticated software construction
- to introduce the students to techniques of programming at higher abstraction levels, in particular generative programming, component programming and web computing
- to present state-of-the-art frameworks incorporating these techniques.
This course focuses on the quality issues pertaining to detailed design and coding, such as reliability, performance, adaptability and integrability into larger systems.
Indicazioni metodologiche
9 crediti (3 su pragmatica dei linguaggi, 3 su metafore di programmazione avanzate, 3 sulla programmazione web).
Programma
- Pragmatica dei Linguaggi di Programmazione
- Supporto Run Time e Ambienti di Esecuzione
- Programmazione Generica
- Librerie di Classi e Framework
- Programmazione Generativa
- Interoperabilità tra Linguaggi
- Programmazione Basata su Componenti
- Web Services
- Web e Application Frameworks
- Linguaggi di Scripting
Bibliografia
- Programming Language Pragmatics, third ed., Michael L. Scott, Morgan-Kaufmann, 2009. Google Books preview.
- Generative Programming: Methods, Tools, and Applications, Krzysztof Czarnecki, Ulrich Eisenecker, Addison-Wesley, 2000.
- Object Thinking, David West, Microsoft Press, 2004.
- jQuery in Action, B. Bibeault, Y. Katz, Manning, 2010.
Modalità di esame
L'esame consiste nella preparazione di elaborato finale scritto, a soluzione di un problema complesso di programmazione.