Objectivos:

1. Reconhecer as crises de software na programação do séc. XXI e as suas soluções.
2. Compreender aspectos avançados da Programação Orientada por Objectos.
3. Abordar a Metaprogramação e a Programação por Contractos.
4. Estudar a Programação por Padrões.
5. Estudar a Programação por Aspectos e sua aplicação.
6. Prática de alguns dos paradigmas em C# e PostSharp/C# e estudo de exemplos em Eiffel Java e AspectJ.