Teacher: Giuseppe Attardi
Assistant: Haoyuan Li
Master (Laurea Magistrale): Informatics and Networking and Informatics.
| Schedule | ||
|---|---|---|
| Day | Hour | Room |
| Wednesday | 9-11 | B, Polo Fibonacci |
| Thursday | 14-16 | E, Polo Fibonacci |
| Friday | 9-11 | A, Polo Fibonacci |
The class hours of December 16th and 17th, will be dedicated to programming practice excercises in preparation for the Final Term. The schedule is as follows:
| Day | Hour | Room |
|---|---|---|
| Wednesday Dec. 16 | 9-11 | Room O |
| Thursday Dec. 17 | 14-16 | Room R1 |
The evolution of software systems towards Web Computing involves a variety of complex techniques and tools, from object-oriented programming, to component-based programming, to Web Service programming. A deep understanding of these techniques and their capabilities is required in order to fully exploit their potential.
The objectives of this course are:
This course will provide a deep understanding of modern software technologies, so that the students will be able to evaluate the effects of each design choice through all levels of a software architecture, in terms of performance, reliability, adaptability and integrability into larger systems.
The course is a required course for the Laurea Magistrale in Informatica as well of the Laurea Magistrale in Informatica e Networking, and contributes to prepare professionals for the role of software architect.
| Date | Deadline | Test |
|---|---|---|
| 23/12/2009 | 5/2/2010 | Final Term |
| 07/11/2009 | 14/11/2009 | Mid Term |
| Date | Lecture | Notes |
|---|---|---|
| 23/09/2009 | Introduction to the course | Intro.ppt |
| 24/09/2009 | Presentation of the course syllabus | |
| 25/09/2009 | Syntax: Context-free Grammars | Parsing.ppt |
| 1/10/2009 | Ambiguity, LL(1) Grammars, Regular Grammars | |
| 2/10/2009 | Parsing: recursive descent, scanner | |
| 7/10/2009 | Binding. Object Lifetime | Names, scopes, bindings |
| 8/10/2009 | Memory Allocation: static, stack, heap | |
| 9/10/2009 | Malloc and free | Malloc |
| 14/10/2009 | Garbage Collection | GC Overview |
| 15/10/2009 | Traversing trees without extra memory | |
| 16/10/2009 | Building a runnable program | BuildingRunnableProgram.pdf |
| 21/10/2009 | Parameter Passing | ParameterPassing.pdf |
| 22/10/2009 | Linking | |
| 23/10/2009 | Dynamic Linking | |
| 28/10/2009 | COM Architecture | COM Fundamentals(1) |
| 29/10/2009 | COM Architecture | COM FUndamentals (2) |
| 30/10/2009 | Virtual Machines | JVM.pdf |
| 5/11/2009 | Generic Programming | Generic Programming |
| 6/11/2009 | Generic Programming | Generic Programming |
| 11/11/2009 | Common Language Runtime | CLI+CLR.pdf |
| 12/11/2009 | .Net Overview | DotNet.pdf |
| 13/11/2009 | Web Services | WebServices.pdf |
| 18/11/2009 | Building Web Services | WebServices.pdf |
| 19/11/2009 | Web Application Frameworks Architecture | ASP .NET |
| 20/11/2009 | Event Handling in Web Applications | ASP .NET |
| 25/11/2009 | Generative Programming | |
| 26/11/2009 | C++ Template Metaprogramming. Aspect Oriented Programming | Template Metaprogramming, Aspect-Oriented Programming with AspectJ |
| 27/11/2009 | Reflection | |
| 2/12/2009 | Reflection. MidTerm Solution | |
| 3/12/2009 | Generators, Linq | Generators and Linq |
| 4/12/2009 | Scripting | Computer Language Benchmark |
| 9/12/2009 | ADO.Net | |
| 10/12/2009 | AJAX, Jason, Rest | |
| 11/12/2009 | YUI | |
| 16/12/2009 | GWT | |
| 17/12/2009 | Mashup and SOA | |
| 18/12/2009 | Future Directions |
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.