Programmazione Avanzata Primo Semestre 2002/2003 |
Professore |
Assistente |
mail: attardi@di.unipi.it |
mail: cisterni@di.unipi.it |
Ufficio: 292 |
Ufficio: 383 |
Ricevimento: martedì ore 10:30 |
Ricevimento: mercoledì ore 10:30 |
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.
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.
Giorno |
Ora |
Aula |
Lunedì |
14-16 |
C |
Martedì |
14-16 |
C |
Giovedì |
16-18 |
C |
Venerdì |
16-18 |
C |
Data |
Materiale |
Argomento |
30/09 |
Introduzione al corso |
|
1/10 |
|
|
3/10 |
Gestione memoria: statica, automatica, dinamica |
|
4/10 |
|
Discussione: il futuro del C++ |
7/10 |
Tipi, Classificazione, Tipi Composti, Equivalenza, Conversione, Cast, Ereditarietà, Inferenza, Layout memoria struct e union |
|
8/10 |
|
Moduli, Abstract Data Type, Classi, Oggetti, Late-binding, Ereditarietà singola/multipla/mixin, Implementazione vtable |
10/10 |
|
Homework: Implementazione malloc/free, reference-count |
11/10 |
|
Tecniche di Garbage Collection |
14/10 |
Linking/loading (COFF) |
|
15/10 |
Introduzione alle Virtual Machines, CLR Type System |
|
17/10 |
|
Sorgenti Rotor: organizzazione
del codice e come navigare |
21/10 |
Delegates. Estensione CLR con istruzione ldhw. |
|
22/10 |
Polymorphism: subtype. |
|
24/10 |
|
Homework: Disegnare una classe di albero i cui elementi foglia siano specializzabili |
25/10 |
|
Introduzione a XML |
28/10 |
Parametric Polymorphism. C++ templates |
|
29/10 |
Bounded Polymorphism: GJ, C# |
|
31/10 |
|
Correzione Homework. Bounded Polymorphism |
7/11 |
|
Correzione Homework. Assegnato MidTerm Paper |
8/11 |
C++ Standard Template Library |
|
11/11 |
Generative Programming |
|
12/11 |
Template Metaprogramming |
|
14/11 |
|
Raccolta MidTerm Paper |
18/11 |
Reflection |
|
19/11 |
Reflection |
|
21/11 |
Esercizi di metaprogrammazione: serializzazione |
|
22/11 |
Software Components: cosa sono? |
|
25/11 |
Consegna MidTerm e correzione |
|
26/11 |
Correzione MidTerm |
|
28/11 |
Correzione Homework su parser |
|
29/11 |
COM Fundamentals, by Don Box |
|
2/12 |
COM Applications |
|
3/12 |
Mapping COM to Java. Marshalling: by value, by reference |
|
5/12 |
Web Services |
|
6/12 |
|
Enterprise Application Integrations vs Web Services |
9/12 |
Web Services: client side |
|
10/12 |
Tratti delle architetture a componenti: esprimere COM in Java/C#. Esempio dell'interprete che usa la reflection per creare ed usare oggetti Java. |
|
12/12 |
Correzione homework: contare le occorrenze delle parole in un testo. |
|
13/12 |
Seminario di Diego Colombo sulla compilazione usando le librerie Intel. |
|
16/12 |
ASP.NET e Web Services: under the hood. |
|
17/12 |
|
Assegnazione final term paper. Per chi non lo avesse fatto, il mid-term paper verrà pubblicato il 3/2/2003 per essere consegnato il 10/2/2003. |
3/2/03 |
|
Assegnazione MidTerm paper per chi non lo ha fatto o lo vuole rifare. Consegna il 10/2/2003. |
7/06/03 |
|
Assegnazione final term paper per l'appello del 7/7/03. |
18/09/03 |
|
Assegnazione final term paper per l'appello del 18/9/03. |
Programming
Language Pragmatics, Michael
L. Scott, Morgan-Kaufmann, 2000.
Shared
Source CLI Essentials, David Stutz, Geoff Shilling, Ted Neward, O’Reilly, 2003.
Generative
Programming: Methods, Tools, and Applications, Krzysztof
Czarnecki, Ulrich
Eisenecker, Addison-Wesley, 2000.
Applied Microsoft .NET Framework Programming, Jeffrey Richter, Microsoft Press, 2002.
Rotor Sorgenti di Rotor
Java2C# Introduzione a C# per programmatori Java
· Lunedì e Martedì: presentazione di argomenti
· Giovedì: We will issue a set of questions to guide your exploration. At the following meeting, a group of people will present their findings for the class and a general discussion will follow.
· Venerdì: seminari o discussione
Formulazione del voto:
Homework, seminari, discussioni: 20%
MidTerm Paper: 30%
Term Paper: 50%