Paradigmas da Programação
Ano Lectivo: 09/10 (Anual/1º semestre)
Planeamento e Sumário das Aulas
Semana 1 Aula TPb
Tópicos:
- Apresentação geral da disciplina:
- Objectivos e Funcionamento;
- Avaliação e Trabalhos práticos;
- Programa e Bibliografia
Resumo:
Os alunos foram avisados sobre a obrigatoriedade de fazerem os 4 Trabalhos Práticos
que serão propostos ao longo do semestre
e sobre a importância de lerem toda a informação básica sobre a Disciplina,
através da Página WWW.
Fora marcadas as datas dos 4 Testes.
Quanto ao principal objectivo, foi identificado como sendo a caracterização do ciclo de desenvolvimento de software,
a sua modelação (na linguagem UML) e a prototipagem.
Foi clarificado que não se tratava de um curso para ensinar apenas
a usar a linguagem de programação
Prolog, mas que era essencialmente destinado a levar os alunos a compreender
a importância da noção de paradigma de programação
na resolução de um problema por computador.
Semana 2 TPa
Tópicos:
- Introdução à Programação em Lógica e ao Prolog:
- Problemas e Programação
- Linguagens de Programação e paradigmas; imperativo versus declarativo; monolítico versus modular e orientado aos objectos.
- Introdução informal ao conceito de predicado, termo e cláusula; exemplos introdutórios.
Resumo:
Nesta aula os alunos já devem ter adquirido a sensibilidade para distinguir o paradigma imperativo do paradigma declarativo
e devem ter-se apercebido da diferença entre executar no SO um programa compilado, ou interpretar num ambiente de programação um programa declarativo.
Além disso devem ter captado empiricamente a noção de Predicado, Cláusula, Facto e Regra, Variável Lógica e Unificação.
Semana 2 TPb
Tópicos:
- Introdução ao Desenvolvimento de Sistema de Software:
- Caso de trabalho S1: leitura e interpretação do enunciado do problema.
- Discussão introdutória sobre paradigmas e as estruturas de dados (modelos matemáticos) de base
Resumo:
Uma parte da aula foi a relembrar os objectivos da disciplina, sua avaliação e integração das 2 partes.
Depois falou-se bastante de organização (estruturação) de informação e dos principais modelos matemáticos de dados
usados diariamente em programação: conjunto; sequência/lista (com os casos particulares da stack (pilha)
e da queue (fila)); árvore (irregular e regular (binária (de procura))); grafo (orientado e não-orientado).
Foi também referido o conceito de URL e WWW.
Por fim enunciou-se o 1ºcaso de trabalho, um sistema para submissão electrónica de candidaturas de projectos
a financiamentos --- simulada a 1ªreunião de trabalho cliente-programadores, os alunos ficaram de pensar no enunciado
e preparar em casa a próxima reunião de análise (para levantamento de requisitos).
Semana 3 TPa
Não houve aula: Feriado Nacional (Implantação da República).
Semana 3 TPb
Não houve aula: reunião do projecto de cooperação bilateral DSLpc em Maribor (Eslovénia).
Semana 4 TPa
Tópicos:
- Introdução à Programação em Lógica e ao Prolog:
- Primeiros programas em Prolog:
- O SWI Prolog - ambiente de programação. Primeiros predicados.
- Definição de relações familiares sobre uma árvore genealógica.
Resumo:
Nesta aula os alunos iniciaram as primeiras definições de predicados e.g. irmão, avó, tio, etc. Definiram também as primeiras queries e o uso diversificado de um predicado. Exemplo: a relação avó como geradora de netos e de avós. Primeiras noções de execução de uma query sobre um programa. Noção informal de consequência lógica. Primeiros exemplos recursivos: ser da mesma geração de.
Além disso devem ter captado empiricamente, e com a ajuda de exemplos as noções de Variável Lógica e Unificação.
Semana 4 TPb
Não houve aula: participação na sessão de encerramento do EPIA2009 em Aveiro na qualidade de Presidente da APPIA.
Semana 5 TPa
Tópicos:
- Introdução à Programação em Lógica e ao Prolog:
- Árvores de Prova.
- Aritmética em Prolog: o operador 'is'.
- Exemplos: máximo divisor comum, factorial.
Resumo:
Nesta aula foi introduzido o conceito de árvore de prova associado a uma interrogação sobre um programa. Noção informal de unificação e de substituições derivadas pelo processo de unificação. Foram apresentados exemplos de árvores de prova com a noção de ramo de sucesso e de falhanço. Os alunos adquiriram a noção informal de execução de um programa em problema quando exposto a uma query sendo esta usada para expor a noção de 'backtracking' e de derivação de múltiplas respostas. Exemplos recursivos e árvores de prova. Foi apresentado o cálculo de expressões aritméticas em Prolog com o operador 'is'. Exemplos com unificação usando expressões aritméticas incompletas. Os exemplos serviram para expor aos alunos a noção de regra de pesquisa (de cima para baixo no uso das cláusulas) e regra de computação (da esquerda para a direita na execução do corpo de uma regra).
Semana 5 TPb
Tópicos:
- Introdução ao Desenvolvimento de Sistema de Software:
- Introdução ao UML: o paradigma da modelação diagramática de SIs; História; Principais Diagramas UML.
- Caso de trabalho S1 (cont.): leitura e interpretação do enunciado do problema.
Resumo:
Nesta aula foi discutida longamente a história da evolução das linguagens, em particular das linguagens orientadas
a objectos (OOP) de modo a contextualizar a necessidade de linguagens de modelação que abrangessem as componentes
estática e dinâmica dos SIs nas várias fases da análise de um problema e o aparecimento do UML como
linguagem unificadora de várias abordagens à modelação;
filosofia diagramática do UML.
Depois foram vistos os Diagramas UML mais importantes e normalmente usados:
Diagrama de Classes, de Objecto e de Pacotes (diagramas estáticos);
Diagrama de Sequência como caso particular de um Diagrama de Interacção, de Estados (State-Machine) e de Actividades
(diagramas de comportamento, ou dinâmicos);
Diagrama de Casos-de-Uso (Use-Cases).
Por fim foi deixado como trabalho de casa, modelar os CS1 com os diagramas que os grupos acharem mais apropriados.
Semana 6 TPa
Tópicos:
- Introdução à Programação em Lógica e ao Prolog:
- Mais exemplos de aritmética: fib, programa de derivação de funções matemáticas como exemplo de manipulação simbólica em Prolog.
- Listas em Prolog - definição, termos representativos de uma lista: notação Head, Tail. Recursividade e listas. Exemplos.
Resumo:
Nesta aula foi apresentado um pequena programa de derivação matemática. O objectivo é ilustrar o poder da unificação para manipulação simbólica. O programa apresenta-se como uma tradução quase directa das regras de derivação matemática. Foi introduzido a estrutura de dados lista em Prolog. Definição recursiva de lista. Noção de cabeça da lista e cauda. Lista como uma estrutura de dados de elementos polimórficos. Usa da unificação para decompor listas. Acesso a elementos da lista. Noção de variável incógnita (uso do símbolo '_' para identificar variável não usada). Exemplos com cumprimento de lista, acesso ao elemento da n-ésima posição, soma dos elementos da lista, etc.
Semana 6 TPb
Não houve aula: ida à Argentina na qualidade de orientador de Mario Berón para participar no seu doutoramento no âmbito do projecto Alfa-LERNet.
Semana 7 TPa
Tópicos:
- Introdução à Programação em Lógica e ao Prolog:
Resumo:
Esta aula foi usada especificamente para mostrar o tratamento e construção de listas recorrendo às
potencialidades da unificação.
Foram introduzidos detalhes como a noção de variável incógnita ("_") e construção recursiva de listas.
Semana 7 TPb
Tópicos:
- Introdução ao Desenvolvimento de Sistema de Software:
- Introdução ao UML (cont): Apresentação do UML como notação diagramática para especificar sistemas numa abordagem orientada a objectos; Principais Diagramas UML vistos nessa óptica.
- Caso de trabalho S1 (cont.): discussão com os Grupos de Trabalho sobre a modelação deste problema com Use-Cases.
Resumo:
Nesta aula pretendeu-se apresentar a linguagem de modelação UML como uma notação diagramática UML para especificar
sistemas de informação numa óptica orientada a objectos, ou seja, concebendo uma apliacção
informática como um conjunto de objectos concorrentes e cooperantes que interagem para resolver
um problema estimulando-se entre si via troca de mensagens.
Desta forma foram passados em revisão todos os conceitos basilares da Programação Orientada a Objectos (POO):
objecto, formado por atributos (componente estática, para armazenar o seu conhecimento interno) e métodos (componente comportamental, para determinar como responder aos estímulos, ou mensagens);
encapsulamento, para encerrar e proteger os dados específicos de cada objectos;
mensagens dos dois tipos -- "devolve-me esta informação", ou "executa esta operação" -- e seus parâmetros;
classe como mecanismo de abstracção para programar uma só vez todos os objectos da mesma família,
que serão designados por instâncias da classe;
o operador new para instanciar uma classe, criando um novo objecto em memória;
herança e respectivas relações classe / superclasse ou classe / subclasse, como novo
mecanismo de abstracção para melhor estruturar o universo de discurso e optimizar o armazenamento de
dados e a implementação das operações comuns de uma classe,
e o conceito associado de extensão de atributos ou métodos.
Os Diagramas de Classe para descrever a estrutura, ou forma (sintaxe), do universo de discurso,
caracterizando os atributos e métodos de cada classe e as relações entre elas;
os Diagramas de Sequência para descrever o comportamento, ou interacção, entre as classes definindo a dinâmica
do universo de discurso.
Depois desta discussão detalhada, que visou sistematizar conhecimento já adquirido noutras disciplinas,
procedeu-se à discussão, participada por toda a turma, do Diagrama de Use-Cases (e respectivos Actores)
propostos pelo Gr.1 (João e Nelson) para modelar o CS1,
tendo sido provado pragmaticamente a importância da modelação para clarificação dos conceitos
envolvidos nos enunciados/descrições de sistemas de informação (complexos).
Os alunos foram solicitados a enviar por email os modelos propostos para esse mesmo case-study.
Semana 8 TPa
Tópicos:
- Introdução à Programação em Lógica e ao Prolog:
- Exercícios com listas -- Continuação da aula anterior.
Resumo:
Inverter uma lista, remover ocorrências de um elemento numa lista, uso do predicado $append$ para diferentes funções
e.g. retirar último elemento, obter lista sem um determinando elemento, etc.
O predicado $append$
como exemplo das capacidades do Prolog em usar o mesmo procedimento com diferentes configurações de input e output.
Semana 8 TPb
Tópicos:
- Introdução ao Desenvolvimento de Sistema de Software:
- Introdução ao UML (cont): Apresentação do UML como notação diagramática para especificar sistemas numa abordagem orientada a objectos; Principais Diagramas UML vistos nessa óptica.
-
- Modelação de SS em Prolog: modelação de entidades/classes e de relações entre elas através de factos;
uso de regras para modelar restrições ao modelo e para fazer questões que mostrem a correcção o modelo -- exemplos.
- Caso de trabalho S1 (cont.): discussão com os Grupos de Trabalho sobre a modelação deste problema com Use-Cases.
Resumo:
A aula foi particularmente focada a juntar as duas partes da disciplina, programação lógica e modelação
orientada a objectos.
Assim na aula, e para além de se ver e discutir os use-cases do CS1 propostos por um grupo, ocupou-se
grande parte do tempo a modelar um pequeno sistema de informação escolhendo os predicados
que modelam a componente estática (atributiva) das classes em causa (pessoa/7 e boneco/3),
bem como os predicados que relacionam essas classes (possui(pessoa,boneco)).
Depois definiram-se regras de validação que asseguram a cardinalidade das relações (1:1, 1:N, N:1)
de modo a manter a integridade da BF (base-de-factos).
Semana 9 TPa
Tópicos:
- Introdução à Programação em Lógica e ao Prolog:
Resumo:
O quicksort em Prolog. Poda em árvores de prova. O operador cut como um operador de 'commit'.
Regras de uso e 'semântica' do operador nas cláusulas. Exemplos para implementar exclusão mútua.
Exercícios com corte de ramos redundantes da árvore de prova.
Implementação de negação por falhanço à custa do cut.
Uso do 'trace' do Prolog para execuções passo-a-passo e verificação dos cortes obtidos.
Semana 9 TPb
Tópicos:
- Introdução ao Desenvolvimento de Sistema de Software:
- Introdução ao UML (cont): Apresentação do UML como notação diagramática para especificar sistemas numa
abordagem orientada a objectos; Principais Diagramas UML vistos nessa óptica.
- Caso de trabalho S1 (cont.): discussão com os Grupos de Trabalho sobre a modelação deste problema com Use-Cases.
- A pedido de toda a Turma, Foi adiada 1 semana a data do 1ª Teste, passando para 5ªf, dia 03.Dez.2009
(ver em AVISOS).
Resumo:
Usando todas as ideias e trabalho de análise e modelação UML já feito pelos vários grupos (que entretanto foram enviando
os seus contributos), iniciou-se um processo de análise sistemática de modo a termos o modelo da turma
para o S1.
1ªEtape: Identificação dos actores:
- Proponente, só 1 (A1)
- Parceiro, 0 ou mais (A2)
- FCT/Avaliador, 1 ou mais (A3)
- FCT/Decisor, só 1 (A4)
- FCT/Executor, 1 ou mais (A5)
2ªEtape: Identificação dos Cenários de Uso do SI e Diagrama de Estados:
- Carregamento da Candidaturas, estado inicial (Sc1)
- Avaliação/Aprovação das Candidatura, (Sc2)
- Execução das Candidaturas aprovadas, estado final (Sc3)
Diagrama: Sc1 --> Sc2 --> Sc3
3ªEtape: Caracterização dos Cenários:
- Sc1 -- Carregamento:
- Actores: A1, A2
- Funções: Inserir Instituição; (Criar, Editar, Eliminar, Lacrar) Candidatura; Consultar (read-only) Candidatura
- Sc2 -- Avaliação/aprovação:
- Actores: A3, A4
- Funções: Consultar (read-only) Candidatura; Inserir Parecer; Inserir Decisão
- Sc3 -- Execução:
- Actores:A1, A5, ....
- Funções: Enviar Despesas; Reembolsar; Penalizar/Premiar; Medir/aferir resultados (Milestones); Enviar Relatórios; Fechar; Consultar (read-only) status Candidatura
4ªEtape: Identificação dos Classes e Suas Relações:
- Instituição, agrega Proponente e Parceiro
- Candidatura
- Parecer
- Decisão
- Orçamento/Conta-Corrente
- Despesa
- Pagamento
- Resultado
- Auto-aferição
- Premio/Pena
5ªEtape: Desenhar os Diagramas Actores/Funções para cada um dos Cenários de Uso (Use-Cases) tendo
em vista as Classes envolvidas nas Operações: (TPC).
Semana 10 TPa
Tópicos:
- Introdução à Programação em Lógica e ao Prolog:
- Uso de árvores binárias em Prolog.
Resumo:
Introdução à estrutura de dados árvore binária. Conceito e aplicações.
Comportamento e principais operações. Implementação em Prolog.
Representação de árvores usando termos Prolog.
Árvores ordenadas, inserção e pesquisa. Expressões aritméticas representadas por árvores binárias.
Travessias: pré-fixa, in-fixa, pós-fixa. Exercícios.
Semana 10 TPb
Tópicos (aula de substituição dada por PJA):
- Introdução à Programação em Lógica e ao Prolog:
- Uso de árvores binárias em Prolog.
Resumo:
Continuação dos exercícios com estrutura de dados árvore binária e sua implementação em Prolog.
Semana 11 TPa
Tópicos:
- Programação em Lógica e ao Prolog:
- Exercícios com árvores binárias em Prolog.
Resumo:
Inserção ordenada, nível de um nó numa árvore. Árvores equilibradas, etc.
Semana 11 TPb
Tópicos:
- 1º Teste de Avaliação intercalar.
Resumo:
Toda a aula foi ocupada com a resolução do 1ªTeste, cujo enunciado já está afixado na página web da disciplina.
Semana 12 TPa
Tópicos:
- Programação em Lógica e ao Prolog:
- Aplicações de árvores binárias.em Prolog.
Resumo:
Representação de expressões aritméticas. Um pequeno gerador de código para calcular uma expressão aritmética.
Semana 12 TPb
Tópicos:
- Apreciação geral dos relatórios submetidos por cada um dos 9 grupos de trabalho
com a resolução do TP1 (Modelação de um SI em UML/Prolog).
- Lançamento da 2ª folha de Trabalhos Práticos -- jogos tradicionais interactivos ou não.
- Desenvolvimento de Sistema de Software:
- Apresentação do UML como notação diagramática para especificar sistemas numa
abordagem orientada a objectos; Principais Diagramas UML vistos nessa óptica.
- Caso de trabalho S1 (conclusão da 1ª fase, modelação estática/estrutural):
discussão com os grupos de trabalho sobre a elaboração (proposta como TPC) dos Diagramas Actores/Funcões (Use-Cases) para os 3 cenários identificados.
- Caso de trabalho S2 (início da 1ªfase): discussão com os Grupos de Trabalho sobre a modelação deste problema com Diagramas de Classe e Use-Cases.
Resumo:
Em relação ao primeiro tópico foi feita uma análise geral da estrutura e conteúdo de cada relatório
e foram tecidos comentários aos modelos UML e Prolog apresentados.
Na sequência deste trabalho e da discussão tida em torno dele, foi feito um novo desafio:
preparar para o dia 14 de Janeiro mais um estudo, seguindo esta mesma abordagem,
focado num dos outros enunciados disponíveis e ainda não tratado pelos grupos (S3 a S5).
Quanto ao segundo tópico, foram lidos todos os enunciados propostos e relembrado o objectivo essencial de cada jogo,
dando uma ou outra sugestão relativa à estrutura de dados a usar em Prolog para sua implementação.
Relativamente ao terceiro tópico, foi realizada a 5ªetape do processo de modelação do sistema de software S1,
como se mostra a seguir.
5ªEtape: Desenhar os Diagramas Actores/Funções para cada um dos Cenários de Uso (Use-Cases) tendo
em vista as Classes envolvidas nas Operações:
- Sc1 -- Carregamento:
- Actor: A1
- Funções que realiza: Inserir Instituição; (Criar, Editar, Eliminar, Lacrar) Candidatura.
- Entidades que manipula: Instituição.Proponente (W/R); Candidatura (W/R).
- Actores: A2
- Funções que realiza: Inserir Instituição; Consultar Candidatura.
- Entidades que manipula: Instituição.Parceiro (W/R); Candidatura (R).
- Sc2 -- Avaliação/aprovação:
- Actores: A3
- Funções: Consultar Candidatura; Consultar Instituição; Inserir Parecer.
- Entidades que manipula: Instituição (R); Candidatura (R); Parecer (W/R).
- Actores: A4
- Funções: Consultar Candidatura; Consultar Instituição; Consultar Parecer; Inserir Decisão.
- Entidades que manipula: Instituição (R); Candidatura (R); Parecer (R); Decisão (W/R).
- Sc3 -- Execução:
- Actores: A1
- Funções: Enviar Despesas; Enviar Relatórios (Comunicar resultados); Consultar status Candidatura.
- Entidades que manipula: Despesa (W/R); Resultado (W/R); Candidatura (R); Orçamento/Conta-Corrente (R); Pagamento (R); Auto-aferição (R); Premio/Pena (R).
- Actores: A5
- Funções: Consultar Despesas; Reembolsar; Penalizar/Premiar; Medir/aferir resultados (Milestones); Consultar Relatórios; Fechar.
- Entidades que manipula: Instituição (R); Candidatura (W/R); Orçamento/Conta-Corrente (W/R); Pagamento (W/R); Auto-aferição (W/R); Premio/Pena (W/R); Despesa (R); Resultado (R).
Semana 13 TPa
Tópicos:
- Programação em Lógica e ao Prolog:
- Predicados para manusear conjuntos de soluções.
Resumo:
Predicados de sistema para coleccionar conjuntos de respostas a uma query:
O setof, bagof e findall. Exercícios.
Semana 13 TPb
Tópicos:
A aula foi dada pelo professor de Microprocessadores para compensar a do dia 7, em que se irão usar 3h
para receber os trabalhos práticos.
Resumo:
nil.
Semana 14 TPa
Tópicos:
- Programação em Lógica e ao Prolog:
- Programação não-determinista. Aproximação "Generate-and-Test".
Resumo:
Uso das características inerentes ao formalismo relacional do Prolog para produzir soluções "força-bruta"
com pesquisa exaustiva num espaço de soluções.
Uso do não-determinismo do Prolog em programas do estilo "Gerar e Testar".
Optimização destes programas recorrendo à inclusão de certas características dos problemas na componente de "Gerar".
Aplicações a problemas clássicos: O problema das 8 (N) rainhas. O "SEND+MORE=MONEY". Outros exercícios.
Semana 14 TPb
Tópicos:
1ª Avaliação parcial dos Trabalhos Práticos: (P1) modelação de Sistemas de Computação em UML e sua descrição em Prolog.
Resumo:
A aula foi toda reservada para receber, discutir e avaliar o 1º trabalho prático.
Semana 15 TPa
Tópicos:
- Programação em Lógica e ao Prolog:
- (Continuação da aula anterior) Programação não-determinista. Aproximação "Generate-and-Test".
Resumo:
Resolução de vários exercícios que fazem uso da aproximação "gerar e testar".
Semana 15 TPb
Tópicos:
- Modelação de dados: estruturas de dados
- discussão do conceito, aplicação e manipulação de Árvores.
Resumo:
A 1ªparte da aula foi toda devotada a fazer um balanço dos problemas de modelação e prototipagem de
sistemas de informação e dos resultados obtidos no 1ºTrabalho Prático.
Na 2ª parte discutiu-se o conceito de Árvore e da sua aplicação à resolução de problemas reais.
Semana 16 TPa
Tópicos:
- Programação em Lógica e ao Prolog:
- Caso prático de aplicações de desenho de sistemas usando UML e sua implementação em Prolog.
Resumo:
Resolução do problema de "Gestão de submissão de projectos de investigação na FCT".
Uso de predicados de obtenção de conjuntos de soluções e.g. bagof, findall.
Semana 16 TPb
Tópicos:
- Programação em Lógica e Recursividade -- implementação de Jogos em Prolog.
- Avaliação do 2ºTrabalho Prático de alguns Grupos.
Resumo:
A aula toda foi devotada a ver o 2ºTP realizado por alguns grupos e a discutir o uso da
recursividade (e listas) para resolução de Jogos.
A maioria dos alunos faltou à aula (com aviso prévio) para terminar trabalhos
e estudar para outros testes.
Semana 17 TPa
Tópicos:
- Programação em Lógica e ao Prolog:
Resumo:
Revisões da matéria dada. Aula de oportunidade para os alunos esclarecerem
dúvidas sobre partes específicas da matéria dada.
Semana 17 TPb
Tópicos:
- Máquinas de Transição de estados: conceito e aplicações; modelação abstracta, em matemática: Autómato Determinista;
modelação em UML; implementação em Prolog.
- Continuação da Avaliação do 2ºTrabalho Prático de alguns Grupos.
Resumo:
Semana 18 TPa
Tópicos:
Não houve aula pelo facto do Docente estar doente.
Semana 18 TPb
Tópicos:
- Recapitulação da matéria a incluir no 2ºteste e indicação da necessidade de receber/avaliar o TP2;
definição da data para publicação do TP3 sobre Máquinas de Transição de Estados (próxima semana).
- Resumo dos objectivos e modo de funcionamento da Disciplina e de toda a matéria sobre modelação UML já dada.
- Máquinas de Transição de estados: conceito e aplicações; modelação abstracta, em matemática: Autómato Determinista.
Semana 19 TPa
Tópicos:
- Programação em Lógica em Prolog:
- Predicados para manusear listas, árvores e conjuntos de soluções
-- síntese da matéria e esclarecimento de dúvidas.
Semana 19 TPb
Tópicos:
- Recapitulação da matéria a incluir no 2ºteste e indicação da necessidade de receber/avaliar o TP2;
resolução de problema em Prolog para responder a dúvidas dos alunos sobre árvores.
Semana 20 TPa
Tópicos:
- 2º Teste de Avaliação contínua.
Semana 20 TPb
Tópicos:
- Máquinas de Transição de Estados (MTE): modelação abstracta, em matemática: Autómato Determinista.
- Autómatos Deterministas (AD) de estados-finitos: definição formal e algoritmos guiados por ADs;
implementação Prolog (ver esquema standard de AD em Prolog)
e teste de 1 exemplo .
- Autómatos e Expressões Regulares que definem os caminhos possíveis no Grafo que descreve a Função de Transição do AD.
Semana 21 TPa
Tópicos:
- Introdução aos sistemas de Suporte à Decisão.
Resumo:
Sistemas de suporte à decisão. Exemplos. Sistemas Periciais. Implementação em Prolog.
Uso de meta-interpretadores. Respostas a interrogações com explicações.
Implementação de um sistema com justificação da resposta dada.
Semana 21 TPb
Tópicos:
Semana 22 TPa
Tópicos:
Não houve aula pelo docente se encontrar doente.
Semana 22 TPb
Tópicos:
Não houve aula pelo docente estar ausente no estrangeiro nas conferências SAC e ETAPS/LDTA.
Semana 23 TPa
Tópicos:
Não houve aula: Férias de Páscoa.
Semana 23 TPb
Tópicos:
- Máquinas de Transição de Estados (MTE): modelação abstracta, em matemática: Autómato Determinista.
- Autómatos Reactivos (AR) e a Função de Reacção ou Resposta do AR -- uma necessidade para que o
programa, além de reconhecer/aceitar uma sequência de transições (um caminho) realize
acções ao longo do processo: definição formal AR = Q, Alfa: QxT->AS>;
adaptação do algoritmo standard de reconhecimento;
análise cuidada da implementação Prolog e dos 2 exemplos publicados na aula anterior.
Semana 24 TPa
Tópicos:
Resumo:
O utilizador como uma base de conhecimento.
Desenvolvimento de um meta-interpretador com explicações e com interrogações ao utilizador.
Semana 24 TPb
Tópicos:
- Máquinas de Transição de Estados (MTE): modelação abstracta, em matemática: Autómato Determinista.
- Autómatos Reactivos (AR) e a Função de Reacção ou Resposta do AR -- uma necessidade para que o
programa, além de reconhecer/aceitar uma sequência de transições (um caminho) realize
acções ao longo do processo: definição formal AR = Q, Alfa: QxT->AS>;
discussão do modelo desenhado por alguns grupos para resolver o 3ºTrabalho Prático (Problema 1 -- Máquina Calculadora).
- Modelação formal: discussão das vantagens e das características
- Geração automática de Programas (Filtros de Texto) a partir de Modelos (ERs e ARs) --
introdução rápida ao Gerador FLex;
esquema do Filtro Base
e exemplo elementar, um filtro de números
que retira do texto todos os números inteiros.
Semana 25 TPa
Tópicos:
- Sistemas de tabulação em Prolog.
Resumo:
Terminação de programas em Prolog.
Sistemas de "lemma generation" e sua implementação.
Implementação num meta-interpretador. Exemplos.
Semana 25 TPb
Tópicos:
- Máquinas de Transição de Estados (MTE): modelação abstracta, em matemática: Autómato Determinista.
- Autómatos Reactivos (AR) e a Função de Reacção ou Resposta do AR -- uma necessidade para que o
programa, além de reconhecer/aceitar uma sequência de transições (um caminho) realize
acções ao longo do processo: definição formal AR = Q, Alfa: QxT->AS>;
discussão do modelo desenhado por alguns grupos para resolver o 3ºTrabalho Prático (Problema 1 -- Máquina Calculadora).
- Geração automática de Programas (Filtros de Texto) a partir de Modelos (ERs e ARs) --
utilização (passo a passo) do Gerador FLex;
segundo exemplo elementar, um somador de números
que calcula o somatório de todos os números reais.
Semana 26 TPa
Tópicos:
- Sistemas de tabulação em Prolog.
Resumo:
Continuação da aula anterior.
Semana 26 TPb
Tópicos:
- Avaliação do 2º e 3º Trabalhos Práticos: Grupos 1, 2, 3 e 7
- Geração automática de Programas (Filtros de Texto) a partir de Modelos (ERs e ARs) --
utilização (passo a passo) do Gerador FLex;
terceiro exemplo: processador de entrevistas, manipulação das marcas "EU" e "ELE".
Semana 27 TPa
Tópicos:
Resumo:
Docente em missão no estrangeiro.
Semana 27 TPb
Tópicos:
- Avaliação do 2º e 3º Trabalhos Práticos: Grupos 5 e 6
- Geração automática de Programas (Filtros de Texto) a partir de Modelos (ERs e ARs) --
utilização do Gerador FLex;
quarto exemplo: processador (expansor) de abreviaturas de acordo com uma tabela predefinida.
Semana 28 TPa
Tópicos:
- Resolução de incerteza em regras.
O sistema de factores de certeza (certainty factores, CF) do sistema pericial $MYCIN$.
Regras para a combinação de CFs.
Resumo:
Aplicação destes princípios na derivação de respostas com factores de certeza associados.
Semana 28 TPb
Tópicos:
- Avaliação do 2º e 3º Trabalhos Práticos: Grupos 4 e 9
- Geração automática de Programas (Filtros de Texto) a partir de Modelos (ERs e ARs) --
utilização do Gerador FLex;
resumo de tudo o que já foi leccionado sobre uma especificação em FLex.
- Enunciado e discussão muito pormenorizada do 4ºTP.
Semana 29 TPa
Tópicos:
- Programação de jogos em computador; Jogos com dois oponentes.
Exemplos:
O algoritmo MiniMax para derivação automática de jogadas (Game Playing).
Resumo:
Programação do jogo "quatro-em-linha". Computador versus jogador humano.
Estruturas de dados para representação do tabuleiro. Aplicação do algoritmo MiniMax neste jogo específico.
Semana 29 TPb
Tópicos:
- Avaliação do 2º e 3º Trabalhos Práticos: Grupos 8 e 10
- Geração automática de Programas (Filtros de Texto) a partir de Modelos (ERs e ARs) --
utilização do Gerador FLex;
resumo de tudo o que já foi leccionado sobre uma especificação em FLex.
Semana 30 TPa
Tópicos:
- Cont. da aula anterior: Programação de jogos em computador.
Resumo:
Desenvolvimento do programa "quatro-em-linha".
Semana 30 TPb
Tópicos:
- Geração automática de Programas (Filtros de Texto) a partir de Modelos (ERs e ARs) --
utilização do Gerador FLex;
Cont. da resolução de exercícios diversos com start conditions e
esclarecimento de dúvidas no sentido de ajudar a resolução do 4ª TP.
Semana 31 TPa
Tópicos:
Semana 31 TPb
Tópicos:
- Avaliação do 4º Trabalhos Prático (todos os Grupos)
author: prh@di.uminho.pt
Last modified: quarta-feira, Junho 23, 2010 at 07:27