elenco   
        corso   

Programmazione avanzata

Codice: AA033Crediti: 12Semestre: 1Sigla: PA 
 
Settore disciplinare: INF/01 - Informatica

Docente

Giuseppe Attardi   attardi@di.unipi.it  Home Page di Giuseppe Attardi  Stanza 292  Tel. 0502212744

Prerequisiti

conoscenza ed esperienza di programmazione in un linguaggio a oggetti (Java, C++)

Obiettivi di apprendimento

L'evoluzione dei sistemi software verso il Web Computing coinvolge una varietà di tecniche e strumenti articolati e complessi, dalla programmazione a oggetti, alla programmazione a componenti, alla programmazione di Web Services. Per poter sfruttare a pieno le potenzialità di queste tecniche, occorre avere una comprensione approfondita della loro struttura e del loro funzionamento.

Descrizione

Il corso presenta i modelli di esecuzione, le tecniche e gli strumenti di programmazione avanzati. Si pone particolare attenzione al supporto necessario per il funzionamento di questi strumenti, in modo che lo studente abbia una visione chiara delle conseguenze che le scelte di design possono comportare a tutti i livelli del sistema. Il corso è tra i fondamentali della Laurea Specialistica in Tecnologie Informatiche.

English Description

Software systems are evolving towards Web Computing, which involves a variety of techniques from object-oriented programming to component programming and Web Serivices. The course presents advanced programming techniques, such as templates, generic programming, object-oriented design, design patterns, generative programming and large-scale software design.

Programma

Rassegna concetti di base di LP

  1. Syntax (Regular Expressions, Context Free Grammars)
  2. Scope
  3. Parameter Passing
  4. Stack, Heap
  5. Runtime
  6. Type Systems (System F, Kind)

RunTime

  1. Memory Management
  2. Execution Engine
  3. Verification
  4. Interoperability
  5. Link/Load
  6. Thread
  7. PAL
  8. Inheritance, Polymorphism, Virtual Functions, Overloading
  9. JIT
  10. Delegates, Closures

Generic Programming

  1. C++ templates
  2. Java Pizza
  3. Generics C#

Class Libraries and Frameworks

  1. .NET Framework Class Library
  2. Java Class Library

Generative Programming

  1. MetaProgramming
  2. Reflection
  3. Template C++
  4. Aspect Oriented Programming, Subject Oriented Programming
  5. Intentional Programming
  6. Generators

Interoperability

  1. socket
  2. linguaggio: CORBA/IDL
  3. oggetti: COM+

Componenti

  1. COM
  2. JavaBeans
  3. .NET (Assembly, Reflection, Interfaces, Attributes)

Web Services

Transaction Server (EJB, MTS)

Scripting

  1. Perl, Python, Jscript, PHP, Guile, Rebol
     

Bibliografia

Modalità di esame

Prova intermedia, Term paper finale e prova orale

Ulteriore pagina web del corso: http://medialab.di.unipi.it/web/AP/


home


email