Do ponto de vista dos fundamentos, serão abordados mecanismos gerais de modularidade, parametrização e herança, a sua representação nas linguagens de programação, e dando particular ênfase aos sistemas de tipos associados. Relativamente às metodologias de programação, estudar-se-ão alguns padrões típicos de estruturação de aplicações baseadas em componentes, envolvendo as respectivas técnicas de implementação. Serão também estudados alguns modelos e tecnologias de coordenação e interligação mais relevantes.
Os vários conceitos abordados durante o desenrolar da cadeira serao relacionados, sempre que possivel, com uma sua concretizacao num dos suportes e/ou linguagens ilustrativas (ou caracteristicas) de uma abordagem (SML, Haskell, Modula 3, Java/JavaBeans, CORBA, COM/OLE, .NET, Component Pascal, JavaSpaces, ... ).