Programação 1

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



Aula 1 (dia 15/10/99)

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.



Aula 2 (dia 22/10/99)

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.



Aula 3 (dia 29/10/99)

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.



Aula 4 (dia 5/11/99)

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.



Aula 5 (dia 12/11/99)

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:.



Aula 6 (dia 19/11/99)

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.



Aula 7 (dia 26/11/99)

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.



Aula 8 (dia 10/12/99)

Sumário: Classes  SortedCollection Dictionary e seus principais métodos. Aplicações práticas.



Aula 9 (dia 17/12/99)

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:.