Ano lectivo 1999/00 (semestre ímpar)
Sumários das aulas teóricas
Aula: 1,2,3,4,5,6,7,8,9,10,11,12,13,14
Sumário: Apresentação do docente e da disciplina.
Breve descrição dos objectivos e programa da disciplina.
Introdução às noções de algoritmo, programa
e linguagem de programação. Descrição sumária
de diferentes paradigmas de programação: imperativa, declarativa,
funcional. Introdução a conceitos fundamentais de Programação
Orientada por Objectos: objectos, métodos, mensagens, classes e
instâncias, hierarquia de classes, herança e polimorfismo.
Sumário: Primeiro contacto com o SmallTalk. Transcript
e envio de mensagens a objectos. Números como objectos aos quais
se enviam mensagens, e que respondem a mensagens. Principais métodos
definidos para "números" (quer unários, operadores ou keywords).
Prioridade de mensagens. Uso de class, superclass e isKindOf:
para "descobrir" a hierarquia de classes associada a números. Classes
Boolean,
Character,
Fraction,
Float
e seus principais métodos. Inspeccção (inspect)
de objectos.
Sumário: Introdução às colecções
(Collections) em SmallTalk. Classes String, Symbol
e Array e seus principais métodos. Objectos mutáveis
e imutáveis.
Sumário: Nomes em Smalltalk: literais e variáveis.
Declaração de variáveis, escopo da declaração:
variáveis locais e globais. Instrução de afectação.
Criação de novas classes e definição de métodos
simples (de instância e de classe) para elas.
Sumário: Uso de conceitos já ensinados para criação
de uma nova classe de "temperaturas" e respectivos métodos (para
converter temperaturas em várias escalas; fazer operações
aritméticas sobre temperaturas; imprimir temperaturas numa escala
por defeito - escala essa dada numa variável de classe). Selector
ifTrue:
e ifFalse:.
Sumário: Conceito de Container no SmallTalk. Classe
OrderedCollection
e seus principais métodos: size,
add:, remove:,
at:
e
includes:. Iterações sobre colecções:
método do:.
Exemplificação na programação de classes
sobre contas bancárias, onde se guarda o histórico dos cheques
levantados, incluindo métodos para calcular o total dos valores
dos cheques de uma conta, total de cheques passados a um dado destinatário
e valor médio passado por cheque.
Sumário: Classe Array e seus principais métodos.
Iteradores no Smalltalk (to:do:, timesRepeat:, whileTrue:)
Uso dos iteradores na programação de métodos simples
(média de elementos de um vector, factorial, função
de Fibonacci e máximo divisor comum segundo o algoritmo de Euclides).
Programação alternativa destes métodos usando recursão
em vez de iteração.
Sumário: Classes SortedCollection e
Dictionary e seus principais métodos. Aplicações
práticas.
Sumário: Objectos com informação explícita
ou implícita sobre outros objectos. Referências cruzadas entre
objectos. Exemplificação com classe Banco e classe
Conta onde cada conta deverá ter informação
explícita sobre o banco a que pertence e um banco deverá
ter informação explícita sobre quais as suas contas.
Métodos select: e collect:.