MAC 441 -- História
Un resumo do conteúdo das aulas, e soluções aos exercicios sugeridos de
programação.
- [12/Ago] histôria das linguagems de objetos; motivação: encapsulamento; processo de
Eng.SW com objetos; visião para o curso;
- [17/Ago] admin: calendârio, avaliação, datas; conceitos: encapsulamento,
objeto, métodos, atributos; vocabulârio: classe, instância, identidade; C++: intro,
classes; primeiro exercicio do C++ (executar assim), com as 4 classes Pessoa, Trabalhador,
Estudante e Monitor escritas separadamente;
- [19/Ago] encapsulamento: método/atributo, visibilidade; classe: conjunto, depósito de
métodos/variáveis, métodos/vars de classe, fábricas de objetos; construtores em C++;
sutileças de C++: os 4 "static", ámbito do "this"; wrap: O-BP;
modelagem (intuitiva): intro, Pessoa+, cardinalidade, Curso+; segundo
exercicio do C++ (executar assim), com
construtores;
- [24/Ago] C++: construtores com argumentos; modelagem (UML): entidade, agregação
(parte-de, controle de existencia), associação, herânça; refinamento (intuitivo)
UML-C++: classe, referência, array, subclasse (privada); {agregação vs. herânça;} terceiro exercicio do C++ (executar assim);
- [26/Ago] Quiz #1 (com respostas [PDF,11KB] [PS,28KB])
e côdigo C++ da pergunta #2); C++ as super-C: tipos fortes,
parâmetros in/out/in-out (combo "const" e referências), operadores;
- [31/Ago] problema de "classe dinámica"; alternativas: classes dinámicas, papéis
(sem herânça); "lollypops" (UML); {ex: Pessoa como Estudante, etc.;} problema
de atributos em asociações: normalização em BD, reificação em classe ad-hoc
("linked class");
- [2/Sep] Smalltalk (intro): classe Empressa; herânca (subclasse); primeiro exemplo de Smalltalk (preparado em VisualWave (ver instruções do VWave aquí));
- [14/Sep] Smalltalk: repaso post-ferias; geração de instâncias: "new";
{lead} classes como objetos, meta-classes; imagem, interpretação, só objetos no fundo;
referências (escopo, coleta de lixo); o catâlogo de classes; segundo
exemplo de Smalltalk, com criação de instâncias (Pessoa);
- [16/Sep] {EP #1 [PDF,24KB] [PS-ZIPed,20KB]}
{Quiz #2 (com respostas) [PDF,19KB] [PS,53KB]} instância versus objeto (predicado/identidade, objetos sem
classes, instância como papel); dualidade realidade/representação (Smalltalk:
classe/objeto, associação/atributo); Exercicio #1 (com
Pessoa+);
- [21/Sep] refinamento: mecanismo/política; escolha de mecanismo (modelo,
mecanismos, linguagem); refinamento UML-Smalltalk: herânça-classe; atributo-var.inst.;
associação-referência (invariantes-método); agregação-coleção
(invariantes-método);
- [23/Sep] Smalltalk: ferramentas (VWave): browsers, transcript, etc; programação:
estruturas de controle, coleções, blocos; pragmática: escolha de coleção;
- [28/Sep] {entrega EP#1;} coleções (review); enumeradores; {ex} escolha de coleções
para modelo no EP #1; pontos de vista no modelo: estático, dinámico, estados,
propriedades;
- [30/Sep] {EP #2 [PDF,24KB] [PS
ZIP-ed,43KB]} {Quiz #3 [PDF,15KB] [PS,49KB]} tipo como conjunto; interface ==
métodos/atributos públicos; visibilidade (review): grau (pública, subclasse, privada) e
ámbito (objeto, classe, módulo, sistema); tipo como extensão de interface; subtipo:
semântica sub-conjunto/super-interface, extensão+intenção; semântica do
"é": subtipo; refinamento de tipo: classe; diferência classe/tipo e
subclasse/subtipo;
- [5/Out] {cont. e review;} substitutabilidade; {mais exemplos (refinamentos
alternativos);} refinamentos do "é": herânça (reuso de côdigo) vs.
inclusão/delegação; tipos: explícitos vs. implícitos (declaração), fortes vs.
fracos (checking), estáticos vs. dinámicos (validação); rant: ambigüedade do termo
"herânça";
- [7/Out] invariantes: semânticas estrita/relaixada, transientes; identidade: sistémica
vs. atributo ad-hoc; refinamento de papéis: subtipos, subclasses, inclusão+delegação;
- [12/Out] --FERIADO--
- [14/Out] Quiz #4+5 (Provona) [PDF,10K] [PS,64K];
- [19/Out] (Hernán na OOPSLA) Alan: "patterns"
- [21/Out] (Hernán na OOPSLA) Alan: "patterns"
- [26/Out] aula perdida
- [28/Out] modelagem dinâmica; colaboração/seqüência (UML);
- [09/Nov] {ex modelagem: invariantes/transientes -> tempo} {ex: matrícula + semestre}
{EP#3 [PDF,25K] [PS
ZIPed,53K] com classes exemplo e instruções de execução}
- [11/Nov] Quiz #6 [PDF,9K] [PS,32K];
Last modified: Tue Sep 22 11:13:47 EST 1998 by Hernán Astudillo
URL: http://www.ime.usp.br/~ha/mac441/historia.html