Ferramentas pessoais

MI - Detalhes das disciplinas

Da Engenharia Informática e Tecnologias da Informação na Universidade de Lisboa, Faculdade de Ciências

Ano lectivo 2009/2010
Animação e Ambientes Virtuais
CódigoSiglaÁrea

425109

AAV

MC

Objectivos

Os estudantes serão capazes de identificar os grandes desafios que se colocam na criação de humanos virtuais em ambientes virtuais e as abordagens concebidas para os resolver.

Os estudantes terão capacidades para criar ambientes virtuais interactivos 3D (usando o X3D) e modelos animados simples de personagens (usando o Blender ou outra ferramenta similar).

Programa de estudos
Componente Teórica

Humanos Virtuais: modelação e animação da face e do corpo.
Simulação de roupa e de cabelo.
Animação comportamental (Behavioral Animation)
Simulação de Multidões
Realidade Virtual

Componente Teórico-prática

Introdução ao X3D.
Introdução ao Blender (ou a outra ferramenta de modelação 3D)

Bibliografia

"Handbook of Virtual Humans" editado por N. Magnenat-Thalmann, D. Thalmann, John Wiley & Sons, 2004

"Virtual Reality Technology", 2ª ed.,G. C. Burdea, P. Coiffet, John Wiley & Sons, 2003

Outros elementos de estudo

Diversos artigos sobre os temas estudados.
Guiões das aulas (escritos em Inglês).

Método de Ensino

Aulas presenciais em sala convencional e em laboratório.

Avaliação

Um trabalho de pesquisa bibliográfica e Exame

ou

Um trabalho de pesquisa bibliográfica e um trabalho de implementação.

Língua de Ensino

Português e, ocasionalmente, Inglês (caso a cadeira seja frequentada por alunos Erasmus com dificuldade em compreender o Português)

Departamento

Dep. de Informática

Precedências
Aplicações na Web
CódigoSiglaÁreaURL

425110

AW

SI

http://mocho.di.fc.ul.pt/p/AW
Objectivos

A disciplina tem como objectivo apresentar, numa perspectiva integrada, vários tópicos relacionados com a arquitectura e desenvolvimento das actuais aplicações web, indo desde a sua arquitectura ao nível de protocolos (HTTP), formatos (XML) e serviços (SOA/REST/SOAP) à web semântica e web 2.0, e técnicas de recuperação de informação.

Programa de estudos
Componente Teórica


- Arquitectura Orientada aos serviços: SOA
- Serviços Web
- Clientes de Serviços Web
- Desenvolvimento de serviços orientados ao recurso
- Aplicações Ajax usando clientes REST
- Web Semântica
- Recuperação de Informação

Componente Teórico-prática

Exemplos concretos de webservices realizados em SOAP e segundo o modelo REST.

Uso e integração de Web services. Exemplos de mashups

Componente Prática

Análise, Desenho e Construção de Webservice REST
Análise, Desenho e Construção de Mashup AJAX.

Bibliografia

SOA Design Patterns, Thomas Erl, Prentice Hall, 2009
RESTful Web Services, Leonard Richardson and Sam Ruby, O'Reilly, 2007
A Semantic Web Primer, Grigoris Antoniou, Frank van Harmelen, The MIT Press, 2010
Introduction to information retrieval, Christopher, D. Manning, Prabhakar Raghavan, Hinrich Schütze, Computers, 2008
Ajax design patterns, Michael Mahemoff, Computers, 2006

Outros elementos de estudo

Desenvolvimento de Sistemas de Informação baseados em PHP e MySQL, Francisco M. Couto, DI-FCUL Learning Object, DOI:10455/3167, 2009
Desenvolvimento de Aplicações na Web baseados em SOA e AJAX, Francisco M. Couto, DI-FCUL Learning Object, DOI:10455/3334, 2010

Método de Ensino

Métodos expositivo, demonstrativo e activo-participativo

Avaliação

Exame e Projecto

Língua de Ensino

Português

Departamento

Dep. de Informática

Precedências
    Nenhuma
Aprendizagem Automática
CódigoSiglaÁreaURL

425216

AP

MC

http://mocho.di.fc.ul.pt/p/AP
Objectivos

Estudo de diferentes paradigmas e métodos de aprendizagem automática.
Após uma introdução geral aos conceitos fundamentais na área e apresentação de métodos clássicos de aprendizagem supervisionada e não supervisionada, abordam-se em particular métodos para aprendizagem de sequências de acções, como a aprendizagem por reforço.
Pretende-se que o aluno adquira a capacidade de desenvolver novas aplicações, envolvendo a programação de algoritmos ou a sua combinação e extensão.

Programa de estudos
Componente Teórica

- Introdução aos diferentes paradigmas de aprendizagem.
- Indução de árvores de decisão.
- Aprendizagem baseada em instâncias.
- Avaliação de Desempenho.
- Agrupamento (Clustering).
- Aprendizagem por reforço.
- Aprendizagem de Séries Temporais
- Aprendizagem de conjuntos de Regras.
- Algoritmos Genéticos e Sistemas de Classificadores

Componente Teórico-prática

Resolução de exercícios sobre a matéria das aulas teóricas.
Uso da biblioteca de algoritmos de aprendizagem Weka.

Bibliografia

- Data Mining - Practical Machine Learning Tools and Techniques with Java Implementations, Second edition, Ian H Witten e Eibe Frank, Morgan Kaufmann, 2005.

- Machine Learning, Tom M. Mitchell, McGraw-Hill, 1997

Outros elementos de estudo

- notas de apoio às aulas teóricas.

- Reinforcement Learning: an Introduction, R. S. Sutton and A. Barto, MIT Press,1998.

- Introduction to Genetic Algorithms, Melanie Mitchell, MIT Press, 1998.

- Introduction to Machine Learning, Ethem Alpaydyn, MIT Press, 2004.

Método de Ensino

Aulas de exposição da matéria, aulas de resolução de exercícios e aulas laboratoriais.

Avaliação

Mini-testes nas aulas teóricas, um projecto de classificação de dados usando o Weka e um projecto de aprendizagem por reforço.

Língua de Ensino

A cadeira é leccionada em Inglês caso estejam inscritos alunos que não dominem a língua portuguesa. Caso contrário é leccionada em português.

Departamento
Precedências
Complementos de Inteligência Artificial
CódigoSiglaÁreaURL

425112

CIA

MC

http://mocho.di.fc.ul.pt/p/CIA
Objectivos

Apresentar resultados e métodos fundamentais no âmbito do estudo e modelação da cognição e da linguagem humanas. Apoiar os alunos na compreensão e prática da Computação como uma das disciplinas da Ciência Cognitiva. Ampliar o âmbito da sua competência e cultura científicas para além da sua área científica e tecnológica específica.
O aluno deve ser capaz de identificar o problema e seleccionar a técnica de planeamento mais adequada para o abordar.
,

Programa de estudos
Componente Teórica

Planeamento em ambientes clássicos, recorrendo a: programação genética, espaço de estados, lógica, grafos e agentes. Planeamento em ambientes dinâmicos e não deterministicos. Planeamento condicional, monitorização e replaneamento. Planeamento baseado em casos e calendarização.

Componente Teórico-prática

Componente Prática

Aplicação das várias abordagens a domínios específicos de planeamento.

Bibliografia
  • Artificial Intelligence: A Modern Approach (2nd Edition)
    by Stuart J. Russell, Peter Norvig.

    * Programming Game AI by Example
    by Mat Buckland.



Outros elementos de estudo
  • http://mc.di.fc.ul.pt/cia

    * Automated Planning : Theory & Practice by Malik Ghallab, Dana Nau, Paolo Traverso

    * Intelligent Techniques for Planning by Ioannis Vlahavas, Dimitris Vrakas

    * http://www.csc.ncsu.edu/faculty/stamant/planning-resources.html

    * http://planet.dfki.de/membership/index.html

    * http://www.isi.edu/~blythe/cs541/
Avaliação

Nota final: 1a) ou 1b) e 2)

1a) Projecto + Apresentação

Desenvolvimento de um projecto prático individual
Tema escolhido de uma lista de possíveis
Apresentação do trabalho efectuado
Relatório final do projecto

1b) Exame + Apresentação

Análise de um artigo dado
Apresentação e comentário das ideias principais
Exame final

2) Presenças + Participação (10%)

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Complementos de Programação
CódigoSiglaÁrea

425202

CPR

CTP

Objectivos

Proporcionar ao aluno uma introdução às técnicas de estruturação de dados no contexto da metodologia de programação centrada em objectos baseada em contratos. Aprofundar o estudo desta metodologia, com ênfase para os princípios de abstracção e modularização, bem como nos mecanismos de correcção e robustez. Introdução às técnicas algorítmicas mais comuns.

Programa de estudos
Componente Teórica

Análise de Algoritmos, Pilhas, Filas, Iteradores, Recursão, Árvores, Conjuntos e Tabelas, Ordenação, Árvores Equilibradas.

Componente Teórico-prática

Bibliografia

Objects, Abstraction, Data Structures and Design Using Java, Version 5.0. Elliot B. Koffman, Paul A.T. Wolfgang. John Wiley & Sons, Inc, 2005.

Outros elementos de estudo
Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Computação Móvel
CódigoSiglaÁreaURL

425113

CM

SI

http://mocho.di.fc.ul.pt/p/CM
Objectivos

A banalização das redes de comunicações sem fios, via satélite, rádio celular ou infra-vermelhos permitirão que a informação fique permanentemente acessível, onde quer que o utilizador se encontre. Para acesso, utilizam-se dispositivos de cada vez menor dimensão e requerendo menor consumo de energia. Esta nova infra-estrutura permitirá a criação de sistemas de informação maciçamente distribuídos e de elevada heterogeneidade, a um nível que a Internet/World-Wide Web dos nossos dias mal deixam antever. O curso apresenta as características dos novos sistemas de comunicações sem fios, examinados de uma perspectiva de infra-estrutura de sistemas de informação e apresenta alguns dos temas de investigação recente no domínio das redes, sistemas distribuídos, bases de dados, interfaces pessoa-máquina e engenharia de software destinados a suportar a computação nestes ambientes, normalmente designados de computação móvel

Programa de estudos
Componente Teórica

  • Introdução à Computação Móvel/Ubíqua/Pervasiva
    * Replicação de Informação e Operação Desconectada
    * Dispositivos, Sistemas Operativos e Arquitecturas
    * Interfaces para Dispositivos Móveis
    * Suporte à mobilidade (sistema)
    * Serviços de Comunicações Móveis
    * Suporte à mobilidade (rede)
    * Descoberta de Serviços e Serviços de Localização
    * Visões do Futuro

Componente Teórico-prática

Apresentação de .NET Compact Framework. Pocket PCs.
Interface com o utilizador - GUI.
Gráficos na Compact Framework.
Armazenamento local de informação.
Acesso a bases de dados remotas.
Sockets. Comunicação Bluetooth. Comunicação IrDA.

Bibliografia

Compilação de artigos

Outros elementos de estudo
Método de Ensino

As aulas teóricas são de exposição e discussão da matéria.

As aulas Teórico-práticas são laboratoriais de apresentação da framework e resolução de exercícios.

Avaliação

Projecto + Exame + Avaliação contínua

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Computação Paralela
CódigoSiglaÁreaURL

425114

CP

OSC

http://mocho.di.fc.ul.pt/p/CP
Objectivos

Pretende-se com esta disciplina que o aluno solidifique noções fundamentais relativas à computação paralela, tais como noções sobre sincronização e comunicação entre processos em sistemas com memória partilhada e em sistemas baseados em troca de mensagens. Pretende-se ainda que estas noções sejam complementadas com outras mais avançadas sobre arquitecturas multi-processador, arquitecturas tipo "cluster” e estratégias para a paralelização de código

Programa de estudos
Componente Teórica

Nas aulas teóricas serão abordados os seguintes tópicos: Programação concorrente vs. sequencial; Processos e a sua concretização; Suporte de linguagem para programação com processos; Utilização da memória partilhada; Coerência dos dados; Mecanismos de sincronização: semáforos, condições, monitores, contadores e sequenciadores; Problemas clássicos: leitores-escritores, o barbeiro adormecido, o jantar dos filósofos; Caixas-do-correio; RPC e rendez-vous; Problema do interbloqueio; Introdução aos sistemas paralelos; Computadores paralelos; Paralelização de código; Bibliotecas de suporte a troca de mensagens; Avaliação de programas paralelos; Computações paralelizáveis; Particionamento; Condutas (pipelines); Computações sincronizadas; Balanceamento de carga; Detecção de terminação; Exemplos de programas paralelos.

Componente Teórico-prática

Na sua componente prática os alunos realizam trabalhos utilizando bibliotecas de suporte à programação concorrente (Pthreads), linguagens com suporte explícito à concorrência (Java) e bibliotecas para programação baseada em troca de mensagens (MPI).

Bibliografia

- Barry Wilkinson and Michael Allen, Parallel Programming, Techniques and Applications Using Networked Workstations and Parallel Computers, Prentice Hall, 2nd Edition, 2004.

Outros elementos de estudo

- Abraham Silberchatz, Peter Galvin and Greg Gagne, Applied Operating System Concepts, John Wiley & Sons, 2000.
- A. Burns and A. Wellings, Real-Time System and Their Programming Languages, 3rd Ed., Addison-Wesley, International Computer Science Series, 2001

Método de Ensino

Aulas teóricas: exposição da matéria em sala de aula, complementada com exemplos e exercícios. Procura-se assim estimular o interesse entre os alunos e a interacção entre docente e discentes.

Aulas teórico-práticas: realização de exercícios teórico-práticos e laboratoriais que fomentam a discussão com os alunos de uma solução base e de possíveis alternativas.

Avaliação

Trabalhos de casa para a componente teórica. Projectos para a componente teórico-prática. Exame final.

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Configuração e Gestão de Sistemas
CódigoSiglaÁreaURL

425115

CGS

OSC

http://mocho.di.fc.ul.pt/p/CGS
Objectivos

Pretende-se complementar as noções obtidas nas cadeiras de sistemas, com uma visão sistemática das funções de configuração de sistemas computacionais, sistemas distribuídos e redes de computadores, e sua gestão e exploração. Pretende-se assim consolidar um conjunto de noções habitualmente díspares, do foro da administração de sistemas e redes, dando-lhe um carácter mais abrangente, de verdadeira gestão estratégica de sistemas

Programa de estudos
Componente Teórica

Gestão de sistemas computacionais. Planeamento de redes. Normas. Administração de redes. Gestão de sistemas distribuídos. Especificação e configuração de sistemas

Componente Teórico-prática

Ferramentas de gestão e configuração. O modelo e protocolo SNMP.

Bibliografia

Paulo Veríssimo e Luís Rodrigues, Distributed Systems For System Architects, Kluwer, 2001.
Network and Distributed Systems Management, M. Sloman editor, Addison-Wesley, 1994.

Outros elementos de estudo

M. Sloman editor, Network and Distributed Systems Management, Addison-Wesley, 1994.

Mark A. Miller, Managing Internetworks with SNMP, 3rd edition, M&T Books, 1999.

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Desenho e Análise de Algoritmos
CódigoSiglaÁrea

425116

DAA

CTP

Objectivos

Adquirir um conjunto avançado de tópicos em algoritmia para complementar o conhecimento padrão de algoritmos e estruturas de dados de um curso de primeiro ciclo em engenharia informática.

Programa de estudos
Componente Teórica

Análise de algoritmos recursivos, Análise Amortizada. (Cormen, caps. 3,4,17)
Ordenação (randomized quicksort, heapsort, linear sorting) e Order Statistics (Cormen, caps. 6-9)
Programação Dinâmica (Cormen, cap. 15)
Algoritmos Gananciosos (Cormen, cap. 16)
Grafos (Cormen, cap. 22-24)
Pesquisa de Soluções - algoritmos exactos e algoritmos aproximados: Backtracking, Branch&Bound, Best-First, Hill Climbing, Tabu Search, Simulated Annealing, Gradient Descent, Grasp, Flood Fill
Conjuntos Disjuntos (Union-Find) (Cormen, caps. 21)
Strings (Cormen, cap. 32)
Árvores (AVL, Splay Trees, Heaps, Treaps, Tries) (Cormen, caps. 12,13)
Skip-Lists
Algoritmos Aleatórios
Algoritmia experimental

Componente Teórico-prática

Análise de algoritmos recursivos, Análise Amortizada. (Cormen, caps. 3,4,17)
Ordenação (randomized quicksort, heapsort, linear sorting) e Order Statistics (Cormen, caps. 6-9)
Programação Dinâmica (Cormen, cap. 15)
Algoritmos Gananciosos (Cormen, cap. 16)
Grafos (Cormen, cap. 22-24)
Pesquisa de Soluções - algoritmos exactos e algoritmos aproximados: Backtracking, Branch&Bound, Best-First, Hill Climbing, Tabu Search, Simulated Annealing, Gradient Descent, Grasp, Flood Fill
Conjuntos Disjuntos (Union-Find) (Cormen, caps. 21)
Strings (Cormen, cap. 32)
Árvores (AVL, Splay Trees, Heaps, Treaps, Tries) (Cormen, caps. 12,13)
Skip-Lists
Algoritmos Aleatórios
Algoritmia experimental

Bibliografia

Cormen et al. - Introduction to Algorithms, 2ºEd. MIT Press, 2003.

Outros elementos de estudo

João Neto, lecture notes, 2006. (in Portuguese)
Ana Respício, lecture notes, 2008. (in Portuguese)
Cormen et al., lecture notes from the Open Course in Introduction to Algorithms, MIT, 2005. (in English)
Several scientific papers.


Método de Ensino

Aulas presenciais.

Avaliação

Projecto de introdução à investigação com artigo de 10 páginas, implementação e produção de resultados para um problema complexo e apresentação pública (20 valores).

Língua de Ensino

Português ou inglês.

Departamento

Dep. de Informática

Precedências
    Nenhuma
Design de Software
CódigoSiglaÁrea

425117

DS

CTP

Objectivos

Apresentar uma breve perspectiva histórica da Engenharia de Software e dar perspectivas de algumas das novas áreas onde têm emergido promissores métodos, técnicas e metolodogias de desenho. Os objectivos mais concretos são os seguintes:

Arquitecturas de Software
Pretende-se familiarizar os alunos com o desenho dos sistemas do ponto de vista arquitectural. Nomeadamente, pretende-se que o aluno:

*fique a conhecer os principais estilos arquitecturais dos sistemas de software existentes;
*se familiarize com linguagens de descrição de arquitecturas;
seja capaz de conceber arquitecturas alternativas para um sistema e avaliá-las face a determinados requisitos;
* seja capaz de construir sistemas em conformidade com um desenho arquitectural

Linhas de Produto de Software
Pretende-se familiarizar os alunos com as técnicas de desenho sistemático de famílias de sistemas de software (SPL), e de uma forma mais geral, dar uma perspectiva relativamente a técnicas que auxiliam a gestão da variabilidade. Nomeadamente, pretende-se que o aluno fique a conhecer:
* os principais desafios e beníficios da SPL;
* o desenho e programação de sistemas baseado em aspectos;
* o desenho de arquitecturas genéricas através de frameworks OO;
técnicas generativas;
* model-driven development.

Programa de estudos
Componente Teórica

Engenharia de Software: contexto e história. O design de software: princípios ; processo e seu contexto; qualidade. Arquitectura de software: vistas, modelo SEI e modelo 4+1; ADLs; estilos arquitecturais; cenários e táticas para atributos de qualidade; método ADD (attribute driven design). Linhas de produto: frameworks; desenho e programação baseada em aspecto; model-driven development.

Componente Teórico-prática

Bibliografia

[SG96] Software Architectures: Perspectives on an Emerging Discipline. Mary Shaw e David Garlan, Prentice Hall, 1996. ISBN: 0131829572.
[BCK03] Software Architecture in Practice. Len Bass, Paul Clements, Rick Kasman , Addison Wesley, 2003. ISBN: 0321154959.
[C03] Documenting Software Architectures: Views and Beyond, Paul Clements et al, Addison Wesley, 2003. ISBN: 0201703726.
[CN02] Software Product Lines: Practices and Patterns. Paul Clements e Linda Northrop, 2002. Addison-Wesley. ISBN: 0-201-70332-7.

Outros elementos de estudo

[PBL05] Software Product Line Engineering, K.Pohl, G.Bockle,F.Lindenm 2005. Springer.
[B03] Software Design. David Budgen, Addiosn-Wesley, 2003. ISBN: 0-201-72219-4.

e artigos disponibilizados na página da disciplina

Avaliação

Trabalhos e Exame

Língua de Ensino
Departamento

Dep. de Informática

Precedências
    Nenhuma
Engenharia de Software Baseada em Agentes
CódigoSiglaÁreaURL

425119

ESBA

MC

http://mocho.di.fc.ul.pt/p/ESBA
Objectivos

Aprendizagem de como as abordagens baseadas em agentes podem ser eficazmente utilizadas no desenvolvimento de software. Ter a capacidade de avaliar a adequação da abordagem a problemas concretos. Aprendizagem de metodologias específicas e utilização de ferramentas para o desenvolvimento de sistemas.

Programa de estudos
Componente Teórica

Introdução aos agentes inteligentes e sistemas multiagente. Níveis micro e macro. Metodologias para análise e desenho de sistemas baseados em agentes (AUML, Gaia, MaSE, FAME, Prometheus-ROADMAP, SODA, etc.). Comunicação e partilha de conhecimento. Programação baseada em agentes. Casos de estudo.

Componente Teórico-prática

Resolução de problemas. Experimentação de ferramentas para a análise, desenho e implementação de sistemas multiagente, como por exemplo o agentTool.

Bibliografia

Agent-Based Software Development. M. Luck, R. Ashri and M. d’Inverno. Artech House, 2004.

Methodologies and Software Engineering for Agent Systems - The Agent-Oriented Software Engineering Handbook. Bergenti, Federico; Gleizes, Marie-Pierre; Zambonelli, Franco (Eds.). Springer, 2004.

Agent-Oriented Methodologies, Brian Henderson-Sellers, Paolo Giorgini, idea Group Publishing, 2005.

Outros elementos de estudo

An Introduction to Multiagent Systems. Michael Wooldridge. John Wiley & Sons, 2002.

Intelligent Agent Software Engineering. Valentina Plekhanova, idea Group Publishing, 2003.

Multiagent Systems: A Modern Approach to Distributed AI. G. Weiss (edt), MIT Press, 2000.

Heterogeneous Agent Systems. V. Subrahmanian, et al, MIT Press, 2000.

Readings in Agents. M. Huhns and M. Singh (edts), Morgan Kaufmann, 1998.

Constructing Intelligent Agents Using Java. J. Bigus, John Wiley and Sons, 2001.

Avaliação

Projecto e exame

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Gestão de Projectos
CódigoSiglaÁreaURL

425122

GP

SI

http://mocho.di.fc.ul.pt/p/GP
Objectivos

Procura-se que o aluno tenha uma exposição a toda a área de gestão de projectos, de acordo com os standards internacionais (PMI). Assim introduzem-se os seguintes assuntos, abordados sequencialmente ao longo do curso: Métodos e Técnicas de planeamento e gestão de projectos; O trabalho de gestão de projectos; o gestor e a equipa; selecção de projectos. Introdução à análise financeira; planeamento de projectos e orçamentação; cálculo de custos e incerteza; calendarização e alocação de recursos usando redes PERT e CPM, simulação, gestão de risco, distribuição de recursos escassos e a cadeia crítica de Goldratt; Monitorização e avaliação de projectos (reporting, sistemas de controle, auditorias e conclusão de projectos).

Tópicos

* Conceitos de Gestão
* Pessoas e Organizações
* Planeamento e Controlo de projectos
* Gestão de configuração, de mudança e de comunicação

Programa de estudos
Componente Teórica

O gestor de projectos. O processo de selecção de projectos. Métodos numéricos e não numéricos.Incerteza e gestão do risco. Métodos de inclusão da incerteza na avaliação de um projecto. O gestor de projectos e as suas características principais. Estratégias de gestão. Planeamento do projecto: O Plano do Projecto, a Estrutura de Divisão do Trabalho (WBS). O Gráfico Linear de Responsabilidades. Gestão de equipas multidisplinares. Coordenação de interfaces, Integração da gestão e engenharia concorrente. Orçamentação e calendarização de projectos. Diagramas PERT/CPM. Caminhos críticos e folgas. Simulação vs métodos estatísticos. Afectação de recursos. 'Rebentar' um projecto. A importância dos recursos na expedição. Carregar e nivelar um projecto. A cadeia comum de eventos e a cadeia crítica de Goldratt. Monitorização e controle de projectos. O ciclo de Planeamento, Monitorização e Controle. Conceito de Valor Ganho e métricas de monitorização. Controle de projectos. Sistemas de controle: tipos e ferramentas. o problema do 'scope creep'. Conclusão de Projectos. Mecanismos de avaliação. Auditorias: tipos e elementos do relatório

Componente Teórico-prática

Análise financeira. Análise de risco. Gestão das organizações e das equipas. Planeamento, orçamentação e gestão de risco. Calendarização. Diagramas PERT/CPM e Gantt. Afectação de recursos e monitorização

Bibliografia

Mantel, SJ, Meredith, J, Shafer, SM, Sutton, MM, 2005 Project Management in Practice. 2nd Edition John Wiley and Sons. ISBN:0-471-22965-2
Stellman, A, Greene, J. 2006, Applied Software Project Management. O'Reilly Media. ISBN:0-596-00948-8

Outros elementos de estudo
Método de Ensino

Aulas teóricas de exposição
Aulas práticas de laboratório com utilização de ferramentas específicas

Avaliação

Elaboração de um projecto
Exame

Língua de Ensino

Português

Departamento

Dep. de Informática

Precedências
    Nenhuma
Gestão do Conhecimento
CódigoSiglaÁreaURL

425123

GC

MC

http://mocho.di.fc.ul.pt/p/GC
Objectivos

Obtenção da capacidade de distinguir os conceitos de dados, informação e conhecimento. Familiarização com o tratamento do conhecimento em sociedade, incluindo sociedades de agentes artificiais, dando especial ênfase ao conhecimento como produto económico. Desenvolvimento de competência na investigação de gestão do conhecimento, nomeadamente através do estudo de casos.

Programa de estudos
Componente Teórica

- dados, informação, conhecimento
- conhecimento tácito/explícito, processos de Nonaka: socialização, externalização, combinação, internalização
- economia do conhecimento
- representação do conhecimento
- conhecimento como ferramenta vs. conhecimento como produto
- hierarquias sociais e fluxo de informação
- aquisição de conhecimento; o projecto CYC
- aspectos da gestão do conhecimento: Identificar, Analisar, Especificar, Rever. Trocas de conhecimento em sociedades de agentes artificiais
- crítica à gestão do conhecimento

Componente Teórico-prática

- trabalhos semanais de resumo crítico da matéria
- trabalho final de aprofundamento de um tema de matéria relacionada com a disciplina

Componente Prática

não tem

Bibliografia

Don Tapscott e Anthony Williams. Wikinomics – A Nova Economia das Multidões Inteligentes. QuidNovi, 2007

Donald Hislop. Knowledge Management In Organizations. Oxford University Press, 2005

António Serrano e Cândido Fialho. Gestão de Conhecimento: O novo paradigma das organizações. FCA - Editora de Informática, 2003

Ricardo Vidigal da Silva e Ana Neves (orgs.). Gestão de Empresas na Era do Conhecimento. Edições Sílabo, 2003

Richard F. Bellaver and John M. Lusa. Knowledge management strategy and technology. Artech House, 2001

Jay Liebowitz. Knowledge Management HandBook. CRC Publishers, 1999

Thomas H. Davenport and Laurence Prusak. Working knowledge: how organizations manage what they know. Harvard Business School Press, 1998

Outros elementos de estudo
Método de Ensino

Aulas teóricas e teórico-práticas
Exposição do trabalho final pelos alunos

Avaliação

60% Trabalho Final + 40% trabalhos semanais

Língua de Ensino

Normalmente em português. Em inglês se necessário

Departamento

Dep. de Informática

Precedências
    Nenhuma
Integração e Processamento Analítico de Informação
CódigoSiglaÁreaURL

425124

IPAI

SI

http://mocho.di.fc.ul.pt/p/IPAI
Objectivos

Os alunos são introduzidos às especificidades da modelação de data warehouses, nomeadamente, pré-processamento e transformação de dados, e modelação multidimensional. São discutidas várias ferramentas e técnicas para processamento analítico (OLAP) e aplicadas técnicas de exploração e prospecção de informação (data-mining) para extracção de conhecimento. É ainda abordada a articulação destas metodologias em sistemas de apoio à decisão para vários domínios de aplicação.

Programa de estudos
Componente Teórica

Pré-processamento e transformação de dados, Data warehousing, modelação multidimensional, ferramentas OLAP, data-marts e cubos de dados, data-mining - técnicas e aplicações, extracção de conhecimento, exploração de informação na web, prospecção de informação proveniente de imagens e de sistemas de informação geográfica, integração em sistemas de apoio à decisão.

Componente Teórico-prática

Técnicas de modelação multidimensional, linguagens de interrogação para OLAP. Metodologias de data mining.

Bibliografia

Kimball, R. Ross, M. 2002. The Data Warehouse Toolkit. 2nd Edition. John Wiley and Sons. New York. ISBN:047120024
Han, J. Kamber, M. 2006. Data Mining Concepts and Techniques 2nd Edition. Morgan Kaufmann Publishers. ISBN:1558609016

Outros elementos de estudo

Informação fornecida pelo docente

Método de Ensino

Aulas teóricas de exposição
Aulas práticas de laboratório com utilização de ferramentas específicas

Avaliação

Trabalho prático
Exame

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Inteligência Artificial em Jogos
CódigoSiglaÁreaURL

425205

IAJ

MC

http://mocho.di.fc.ul.pt/p/IAJ
Objectivos

Nos últimos anos o desenvolvimento de jogos tem-se imposto como uma
das áreas de sucesso da informática. A nível comercial, as receitas
geradas por este tipo de aplicações atingem o nível da indústria
cinematográfica (recentemente o jogo "Halo 3" atingiu um total de 300
milhões de dólares de receitas na semana de lançamento)
A nível técnico, os requisitos de desempenho desta classe de
aplicações obrigam a explorar as máquinas ao limite. A pressão sobre a
indústria para atingir e manter estes níveis é considerável. As
características exigidas em cada novo jogo forçam
inovações ao nível da
interactividade e
dos desafios apresentados para estratégias de jogo.

A disciplina de "Inteligência Artificial em Jogos" permite aos alunos
contactar com técnicas actualmente usadas no desenvolvimento da
componente inteligente dos jogos, nomeadamente em ambientes onde a
acção dos jogadores decorre em tempo real. O objectivo desta
disciplina é dar aos alunos a oportunidade de alargar os conhecimentos
de Inteligência Artificial e aplicá-los em novas situações reais. O
foco central desta disciplina é o estudo e análise de diversas
técnicas de IA aplicadas a jogos comerciais, embora em algumas
situações sejam estudadas outras abordagens que, apesar de
apresentarem resultados promissores, ainda não tiveram aplicação
prática nesta área.

Esta disciplina funciona como complemento às disciplinas obrigatórias
de Inteligência Artificial leccionadas na LEI, por isso alguns
conteúdos já abordados nessas disciplinas não serão aqui
desenvolvidos. Estão nesta situação as técnicas e algoritmos de
procura tradicionalmente usados em jogos de turnos com dois
intervenientes.

Programa de estudos
Componente Teórica

Introdução [1 semana]
Apresentação da disciplina; Evolução da aplicação da IA em jogos;
Situação actual; Os vários campos de aplicação; Macro e micro
gestão;
Representação e comunicação [2 semanas]
Estruturas para representação do ambiente; Características estáticas
e dinâmicas; Objectos e entidades autónomas; Ambientes 2D e 3D;
Comunicação, percepção e acção
Movimentação e Planeamento de trajectos [2 semanas]
Movimentação evitando colisões; Previsão de efeitos físicos;
Movimentação em 3D; Algoritmos de planeamento de trajectos;
Optimização de trajectos; Planeamento hierárquico e contínuo de
trajectos
Arquitecturas e Comportamentos [3 semanas]
Árvores de decisão; Máquinas de estados finitos; Arquitecturas
Fuzzy; Arquitecturas baseadas em eventos; Arquitecturas
baseados em guiões (scripts); Comportamentos orientados por
objectivos; Comportamentos baseados em regras
Técnicas de Planeamento [1.5 semanas]
Determinação da próxima acção; Planeamento clássico; Planeamento
reactivo; Planeamento hierárquico; Planeamento contínuo;
Aprendizagem e Adaptação de Comportamentos [1.5 semanas]
Adaptação de comportamentos; Antecipação dos efeitos de acções;
Aprendizagem por reforço; Modelação do adversário; Aplicação de
redes neuronais e algoritmos genéticos;
Tácticas e Estratégias [2 semanas]
Comportamentos de grupo; Coordenação de acções; Objectivos comuns
Casos Reais [1 semana]
Análise de casos reais; Sucessos e falhas; Grau de autonomia das
entidades; Micro gestão versus macro gestão; Alternativas de
aplicação

Componente Teórico-prática

Componente Prática

Aplicação das técnicas estudas em casos e experiências reais realizadas no computador.

Bibliografia

Ian Millington, Artificial Intelligence for Games, Morgan Kaufman, 2006
Mat Buckland, Programming Game AI by Example, Wordware publishing, 2005
Brian Schawab, AI Game Engine Programming, Charles River Media, 2004
Steve Rabin ed, AI Game Programming Wisdom 3, Charles River Media, 2006
Steve Rabin ed, AI Game Programming Wisdom 2, Charles River Media, 2004
Steve Rabin ed, AI Game Programming Wisdom 1, Charles River Media, 2002
M. Ghallab, D. Nau and P. Traverso, Automated Planning: Theory and Practice, Morgan Kaufmann, 2004
Stuart Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, Prentice Hall, 2003

Outros elementos de estudo

Existem vários motores de jogos de domínio público
que podem ser usados para o desenvolvimento de aplicações (UT, Stratagus ou SCI)
que poderão ser usados em apoio às actividades da
disciplina. Pontualmente para ilustrar pequenos exemplos serão usadas outras
alternativas mais específicas (Player/Stage, Raven ou Webots).

Avaliação

A avaliação terá um equilíbrio entra uma componente prática,
constituída por um conjunto de trabalhos a realizar ao longo do
semestre e uma componente teórica a avaliar em exame. Propõe-se:
Trabalhos práticos (50\%) + Exame teórico (50\%)

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Interação em Linguagem Natural
CódigoSiglaÁrea

425125

ILN

MC

Objectivos

Familiarização com o estado da arte no domínio das tecnologias da linguagem natural e das suas aplicações. Aquisição de conceitos, metodologias e técnicas para a utilização de componentes e recursos para sistemas e agentes com interacção de crescente naturalidade em termos de linguagem natural

Programa de estudos
Componente Teórica

Linguagens naturais, controladas e artificiais. Metodologias de modelação simbólica e quantitativa das linguagens naturais. Classes de aplicações, seu desempenho e usabilidade. Módulos chave no processamento superficial: segmentadores frásicos, lexicais e sintagmáticos, etiquetadores morfo-sintácticos, reconhecedores de entidades nomeadas e analisadores sintácticos superficiais. Processamento linguístico profundo: gramáticas e dicionários computacionais. Processamento de linguagem falada. Análise e representação do significado e tradução automática entre línguas naturais e entre línguas naturais e artificiais. Actos de fala e gestão de actos conversacionais. Sistemas de diálogo e interacção via linguagem natural. Processamento linguístico e recuperação de documentos e de informação. A web semântica: objectivos e principais componentes. Ontologias formais e redes semânticas. Desambiguação de acepções lexicais. Actuais recursos e ferramentas para o processamento da língua portuguesa

Componente Teórico-prática

Bibliografia

Ruslan Mitkov (org.), Handbook of Computational Linguistics, Oxford, OUP, 2002.

Robert Dale, Hermann Moisl e Harold Sommers (orgs.), Handbook of Natural Language Processing, Marcel Dekker, 2000.

D. Jurafsky e L. Martin, Speech and Language Processing, Londres: Prentice Hall, 2000.

Outros elementos de estudo
Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Jogos Interactivos
CódigoSiglaÁrea

425126

JI

SI

Objectivos

Pretende-se que os alunos adquiram as bases fundamentais em desenho e implementação de jogos de computador. São ensinados os fundamentos dos diferentes componentes que constituem um jogo, desde a arquitectura a que um jogo moderno deve obedecer até aos diferentes componentes que o constituem. Estes incluem a parte gráfica, redes, som, inteligência artificial e mecanismos de interacção. São ainda abordados tópicos relativos ao desenvolvimento para consolas e plataformas móveis.

Programa de estudos
Componente Teórica

Esta disciplina visa cobrir os diferentes tópicos relevantes no desenho e desenvolvimento de jogos de computador em todas as suas fases. É constituída por 3 secções programáticas: a) concepção e desenho de jogos; b) implementação de componentes; c) utilização de tecnologias específicas.

1. Concepção e desenho de jogos São abordados os princípios que levam à criação e desenvolvimento de um jogo e elaborados os diferentes factores e componentes que constituem um jogo electrónico. Nesta secção são abordados ainda aspectos referentes à criação de personagens, história e ambiente lúdico. Finalmente abordam-se os apectos referentes à jogabilidade e capacidade de entreter.
2. Implementação de componentes Nesta secção serão cobertos os princípios das tecnologias que estão geralmente associadas ao desenvolvimento de um jogo de computador. Nomeadamente, são abordadas diferentes técnicas e mecanismos de interacção com o utilizador e consequentes experiências de jogo. Discutem-te as principais metoddologias em tecnologias gráficas e de som, bem como os princípios de inteligência artificial necessários. Finalmente, são abordadas as bases de desenvolvimento de jogos distribuídos
3. Utilização de tecnologias específicas. No decorrer desta disciplina será encorajada a utilização de um motor de jogo em software livre. Serão descritos os seus princípios de funcionamento ao nível da parametrização e criação de um jogo simples, bem como uma descrição do interior do sistema. Nesta secção, serão abordados os temas de desenvolvimento para plataformas específicas. Nomeadamente descrevem-se as características e condicionantes no desenvolvimento para ambientes móveis sendo também coberto aspectos referentes ao desenvolvimento para hardware proprietário (consolas).

Componente Teórico-prática

Metodologias de concepção e design de jogos. A estruturação de um jogo. Exercícios de Interacção, programação gráfica em tempor real, Inteligência Artificial e programação em redes. Exercícios de desenvolvimento para consolas

Bibliografia

Fullerton, T, Swain, C., Hoffman, S. 2004. Game Design Workshop - Designing, Prototyping and Playtesting Games. CMPBooks. ISBN 1-57820-222-1
Rabin, S. (Editor) 2005. Introduction to Game Development. Charles River Media. ISBN: 1-5840-377-7

Outros elementos de estudo

Documentação fornecida pelo docente

Método de Ensino

Aulas teóricas de exposição
Aulas práticas de laboratório com utilização de ferramentas específicas

Avaliação

Realização de um projecto de um jogo digital

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Multimédia
CódigoSiglaÁreaURL

425128

MM

SI

http://mocho.di.fc.ul.pt/p/MM
Objectivos

Compreender conceitos e tecnologias subjacentes à construção e interacção com informação multimédia, com ênfase em vídeo digital.

Tópicos: Tipos de média digitais. Compressão e codificação, estrutura e metadata. Processamento e extracção de características. Autoria, aspectos tecnológicos e cognitivos na integração e interacção em ambientes multimédia. Novos paradigmas e aplicações.

Programa de estudos
Componente Teórica

1. Introdução: Conceitos, História, Modelos, Tecnologia, Aplicações, Desafios; 2. Tipos de Media: Representação digital, Digitalização, Informação estática e dinâmica, Texto, Gráficos vectoriais, Imagens bitmap, Vídeo, Animação, Áudio; Formatos, Normas, Compressão, Armazenamento, Distribuição; 3. Autoria: Paradigmas, Ferramentas, Design, Projectos Multimédia; 4. Processamento: Segmentação, Indexação, Metadados, Extracção de características, Recuperação e autoria; 5. Perspectivas: Novos paradigmas e aplicações.

Componente Teórico-prática

Realização de um projecto e resolução de exercícios práticos sobre: Tipos de Media : texto gráficos vectoriais, imagens bitmap, vídeo e técnicas de compressão; Autoria Multimédia: com animações, áudio, e vídeo, em Flash e Smil; Processamento: de imagem e vídeo; Apresentação dos projectos.

Bibliografia

Ze-Nian Li & Mark S.Drew, “Fundamentals of Multimedia“ (International Edition), Pearson Prentice Hall, 2004.
Nigel Chapman & Jenny Chapman, “Digital Multimedia” (2nd.ed), Wiley, 2004.
Tay Vaughan, “Multimedia: Making it Work” (7th.ed), McGraw Hill, 2006.
Nuno Ribeiro, “Multimédia e Tecnologias Interactivas” (2a.ed), FCA Editora de Informática, 2007.

Outros elementos de estudo

Complementares:

Kevin Jeffay, Hong Jiang Zhang (eds.), “Readings in Multimedia Computing and Networking”, Morgan Kaufmann, 2002.
Peter D. Symes, “Video Compression”, McGraw Hill, 1999. [cap:1-3]
J. Gibson, T. Berger, T. Lookabaugh, D. Lindberg, & R. Baker, “Digital Compression for Multimedia: Principles & Standards”, Morgan Kaufmann, 1998.
Artigos, Relatórios e Manuais.

Método de Ensino

aulas teóricas de exposição de matéria
aulas teórico-práticas de exercícios da matéria exposta nas aulas teóricas e apoio ao projecto

Avaliação

projecto
exame
participação

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Neurodinâmica
CódigoSiglaÁrea

425129

ND

CTP

Objectivos

Estudo mais aprofundado de alguns tópicos introduzidos de modo sumário na disciplina de Redes Neuronais. Aplicação prática das redes neuronais a problemas tecnológicos concretos. Ênfase na abordagem dinâmica dos processos neuronais de inspiração biológica, dos algoritmos de aprendizagem e do processamento com redes recorrentes. Delimitação do poder computacional de redes recorrentes e não recorrentes e estimativa da eficiência temporal e espacial dos algoritmos neuronais.

Programa de estudos
Componente Teórica

Revisão dos paradigmas neuronais biológicos - aprendizagem Hebbiana; auto-aprendizagem; exposição a exemplos; tolerância a falhas; computação paralela. Relação entre os neurónios biológicos e os neurónios formais e artificiais utilizados em Computação e em Engenharia. Redes feedforward versus redes recorrentes. Aprendizagem supervisionada versus autónoma. Aspectos estatísticos. Perspectiva dinâmica dos métodos de descida do gradiente. ADALINE. Perceptrão multi-camada. MADALINE. Retropropagação. Redes auto-associativas. Algoritmo de Hopfield e máquinas de Boltzmann; aplicação à implementação de memórias endereçáveis por conteúdo e à resolução aproximada de problemas combinatórios NP-completos. Auto-organização. Competição.

Componente Teórico-prática

Revisão dos paradigmas neuronais biológicos - aprendizagem Hebbiana; auto-aprendizagem; exposição a exemplos; tolerância a falhas; computação paralela. Relação entre os neurónios biológicos e os neurónios formais e artificiais utilizados em Computação e em Engenharia. Redes feedforward versus redes recorrentes. Aprendizagem supervisionada versus autónoma. Aspectos estatísticos. Perspectiva dinâmica dos métodos de descida do gradiente. ADALINE. Perceptrão multi-camada. MADALINE. Retropropagação. Redes auto-associativas. Algoritmo de Hopfield e máquinas de Boltzmann; aplicação à implementação de memórias endereçáveis por conteúdo e à resolução aproximada de problemas combinatórios NP-completos. Auto-organização. Competição.

Bibliografia

J. A. Anderson, An Introduction to Neural Networks, The MIT Press, 1995.

L. Fausett, Fundamentals of Neural Networks - Architectures, Algorithms and Applications, Prentice Hall, 1994.

M. H. Hassoun, Fundamentals of Artificial Neural Networks, The MIT Press, 1995.

S. Haykin, Neural Networks - A Comprehensive Foundation, 2nd edition, Prentice Hall, 1999.

R. Rojas, Neural Networks - A Systematic Introduction, Springer-Verlag, 1996.

J. Hertz, A. Krogh & R. G. Palmer, Introduction to the Theory of Neural Computation, Addison-Wesley, 1991.

D. Patterson, Artificial Neural Networks -- Theory and Applications, Prentice Hall, 1996.

P. Churchland e T. Sejnowski, The Computational Brain, The MIT Press, 1992.

Outros elementos de estudo

Ligações para informação diversa, disponível na internet.

Método de Ensino

Presencial.

Avaliação

Conjunto de trabalhos práticos propostos aos alunos, ou auto-propostos desde que respeitantes à matéria leccionada.

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Processamento de Linguagem Natural
CódigoSiglaÁrea

425130

PLN

MC

Objectivos

Primeira apresentação de conceitos e métodos fundamentais para a modelação computacional da estrutura e compreensão da linguagem humana natural; Principais aplicações desses métodos; Princípios básicos de sistemas e agentes que executam processamento da linguagem natural ou apresentam formas elaboradas de interacção em linguagem natural

Programa de estudos
Componente Teórica

Chatterbots e avatares: sistemas de padrões e compreensão linguística. Linguagem humana natural vs. linguagens não humanas e linguagens artificiais. Representação e computação do conhecimento linguístico. Análise sintáctica e formalismo DCG. Modelação de relações sintácticas chave: constituência, concordância, subcategorização e dependências de longa distância. Codificação de ambiguidade lexical e estrutural. Sobregeração e selecção de resultados. Análise semântica. Representação do significado: LPO, formalismo lambda e LQG. Codificação de ambiguidade de âmbito de quantificadores. Aplicações chave: Interfaces em linguagem natural. Tradução automática e aplicações de apoio à tradução. Modelos de gramática, formalismos de descrição linguística e escalabilidade. Algoritmos de parsing descendente, ascendente, pelo canto esquerdo, tabular e algoritmo de Earley. Interfaces com a fala e a cognição. Complexidade computacional das línguas naturais

Componente Teórico-prática

Utilização da linguagem Prolog para desenvolvimento de sistemas de padrões e de palavra chave. Análise sintáctica com DCGs. Utilização avançada de DCGs. Construção de representações semânticas. Definição e programação de gramáticas de unificação.
Algoritmos de análise sintáctica descendente, ascendente, canto-esquerdo, Earley.
Projecto final envolvendo a definição e utilização de uma gramática que cubra um maior conjunto de fenómenos linguísticos.

Bibliografia

Daniel. Jurafsky e James Martin, Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics and Speech Recognition, New Jersey: Prentice Hall, 2000.
Michael. Covington, Natural Language Processing for Prolog Programmers, Londres: Prentice Hall, 1994

Outros elementos de estudo

Mitkov, R. The Oxford Handbook of Computational Linguistics, Oxford University Press, 2003.
James Allen, Natural Language Understanding, Redwood: The Benjamin/Cummings,1995

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Programação em Sistemas Distribuidos
CódigoSiglaÁrea

425132

PSD

OSC

Objectivos

Pretende-se que os alunos obtenham uma visão de conjunto acerca das arquitecturas e modelos para a construção e programação de sistemas distribuídos, interiorizando conceitos, paradigmas e serviços fundamentais dos SDs, adquirindo capacidades para decidir da aplicabilidade das principais arquitecturas e modelos de SDS e dominando as principais técnicas de programação em SDs.

Programa de estudos
Componente Teórica

1) Introdução à Programação em Sistemas Distribuídos: Revisão dos Fundamentos dos SDs; Propriedades não-funcionais dos SDs; Enquadramentos e estratégias para a programação em SDs; 2) Complementos de Paradigmas dos SDs: Tempo e relógios; Sincronismo; Ordenação; Coerência; Concorrência e Atomicidade; 3) Serviços Evoluídos de SDs: Sistemas de ficheiros distribuídos; Serviços de tempo; Serviços de directório; Brokers; 4) Modelos de programação em ambientes distribuídos: Classes de actividades distribuídas; Modelo de cliente-servidor RPC revisto; Modelo orientado para grupos; Modelo baseado em eventos; Modelo de transacções atómicas; 5) Sistemas e plataformas distribuídas: Plataformas baseadas em RPC (DCE) e Brokers (CORBA) e plataformas baseadas na Web; Sistemas orientados para grupos (ISIS/Horus, Appia); Sistemas de transacções distribuídas (TUXEDO); 6) Estudo de caso (Sistema VP'63). Na componente prática os alunos realizam um trabalho de laboratório, dividido em duas partes, que serão essencialmente feitas usando ONC RPC e CORBA (ORBacus, programação em Java).

Componente Teórico-prática

1) Introdução à Programação em Sistemas Distribuídos: Revisão dos Fundamentos dos SDs; Propriedades não-funcionais dos SDs; Enquadramentos e estratégias para a programação em SDs; 2) Complementos de Paradigmas dos SDs: Tempo e relógios; Sincronismo; Ordenação; Coerência; Concorrência e Atomicidade; 3) Serviços Evoluídos de SDs: Sistemas de ficheiros distribuídos; Serviços de tempo; Serviços de directório; Brokers; 4) Modelos de programação em ambientes distribuídos: Classes de actividades distribuídas; Modelo de cliente-servidor RPC revisto; Modelo orientado para grupos; Modelo baseado em eventos; Modelo de transacções atómicas; 5) Sistemas e plataformas distribuídas: Plataformas baseadas em RPC (DCE) e Brokers (CORBA) e plataformas baseadas na Web; Sistemas orientados para grupos (ISIS/Horus, Appia); Sistemas de transacções distribuídas (TUXEDO); 6) Estudo de caso (Sistema VP'63). Na componente prática os alunos realizam um trabalho de laboratório, dividido em duas partes, que serão essencialmente feitas usando ONC RPC e CORBA (ORBacus, programação em Java).

Bibliografia

P. Veríssimo and L. Rodrigues, Distributed Systems for System Architects, Kluwer Academic Publishers, 2001.
G. Coulouris, J. Dollimore and T. Kindberg, Distributed Systems - Concepts and Design, 3rd Ed., Addison-Wesley, 2002

Outros elementos de estudo

Distributed Systems, 2nd Ed., Sape Mullender Ed., Addison-Wesley, 1993
# Building Secure and Reliable Network Applications, Kenneth Birman, Manning - P. Hall, 1996.
# OSF DCE: Guide to Developing Distributed Applications, H. Lockhart, IEEE CS, 1994.
# Advanced Concepts in Operating Systems, Mukesh Singhal, Niranjan Shivarafri, McGraw Hill
# Manuais do AFS
# The TUXEDO System, J. Andrade et al., Addison-Wesley, 1996.
# Java Programming with CORBA, 3rd Ed, G. Brose, A. Vogel, K Duddy, OMG Press, 2001.
# Teach Yourself CORBA in 14 Days, Jeremy Rosenberger, Sams Publishing, 1998.
# The Java Tutorial, M. Campione, K. Walrath, Sun, 1997.
# Manual do ORBacus

Avaliação

10% - TPCs
40% - Projecto & Participação nas aulas
50% - Exame final

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Programação Por Objectos
CódigoSiglaÁrea

425189

PPO

CTP

Objectivos

Pretende-se que o aluno adquira os conceitos e as técnicas fundamentais da programação centrada em objectos, com ênfase na abstracção em classes, herança, polimorfismo e excepções; pretende-se igualmente que o aluno aprenda a manusear a linguagem de programação Java.

Assume-se que o aluno tenha tido um ano de aulas de programação.

Programa de estudos
Componente Teórica

Classes Java enquanto tipos com implementação, configuração e comportamento das classes (Atributos, métodos), criação de objectos. Noção de cliente e fornecedor, encapsulamento de informação. Abstracção e interfaces. Herança e Polimorfismo. Excepções. Asserções e programação por contrato. Noções de programação por eventos. Classes genéricas.

Componente Teórico-prática

Bibliografia

Programação, Algoritmos e Estruturas de Dados, 2ed. João Pedro Neto. Escolar Editora 2008 ISBN 9725922163.

Outros elementos de estudo
  1. Introduction to Programming Using Java, David J. Eck, 2006.
    # Programação por Contrato na Disciplina de Introdução à Programação, Isabel Nunes, 2004.
    # Uma Questão de Estilo, Elementos de Estilo Java, Vasco T. Vasconcelos, 2004.
    # Linguagem gráfica comum para descrever o estado de objectos, Vasco T. Vasconcelos, 2005.
Método de Ensino

Aulas teóricas de exposição da matéria e aulas teórico-práticas de resolução de exercícios.

Avaliação

Projecto de programação: 4 valores.
Exame final: 16 valores

Língua de Ensino

Português

Departamento

Dep. de Informática

Precedências
    Nenhuma
Prospecção e Descoberta de Informação
CódigoSiglaÁreaURL

425133

PDI

MC

http://mocho.di.fc.ul.pt/p/PDI
Objectivos

A capacidade actualmente existente para coligir e armazenar dados ultrapassa largamente a nossa capacidade para os analisar, resumir e extrair daí manualmente conhecimento útil, previamente desconhecido mas implicitamente contido nos dados analisados. A Prospecção e Descoberta de Informação ("Data Mining and Knowledge Discovery") é a disciplina científica que permite extrair, de forma automática, informação útil de grandes colecções de dados. Nesta cadeira pretende-se dotar o aluno de conhecimentos específicos nessa área, através do estudo das várias etapas da prospecção de informação, com ênfase no estudo de métodos e algoritmos de aprendizagem automática, originados nas áreas de Inteligência Artificial, Estatística e Análise de Dados, e sua aplicação à descoberta de modelos e padrões interessantes em colecções de dados.

Programa de estudos
Componente Teórica

- Introdução e Conceitos Gerais: Tarefas e problemas de Data Mining, Visualização e exploração de dados, Métodos supervisionados e não supervisionados
- Indução de árvores de decisão
- Regras de associação
- Aprendizagem Bayesiana
- Agrupamento ("Clustering") e Algoritmo EM (Expectation-Maximization)
- Pré-processamento dos dados
- Avaliação e combinação de resultados
- Modelos para Regressão
- Máquinas de Vectores de Suporte

Componente Teórico-prática

Resolução de exercícios sobre a matéria teórica.
Aulas em laboratório de demonstração do uso das bibliotecas de algoritmos de prospecção de dados associadas à linguagem R; aplicação de algoritmos a pequenos conjuntos de dados.
Discussão de artigos ciêntíficos.

Bibliografia

- Principles of Data Mining, David Hand, Heikki Mannila e Padhraic Smyth, MIT Press, 2001.

- Modern Applied Statistics with S - 4th Edition, W. N. Venables, B. D. Ripley, Springler, 2002.

Outros elementos de estudo

- notas de apoio às aulas teóricas

- leituras sugeridas: lista de artigos científicos de vários autores para aprofundamento dos tópicos abordados

Método de Ensino

Aulas de exposição da matéria e aulas em laboratorio para aplicação de bibliotecas de algoritmos.
Leitura de artigos científicos sugeridos, seguida de síntese oral e discussão dos mesmos pelos alunos.

Avaliação

Resolução de exercícios, apresentação e discussão de um artigo e projecto

Língua de Ensino

A cadeira é leccionada em Inglês caso estejam inscritos alunos que não dominem a língua portuguesa. Caso contrário é leccionada em português.

Departamento

Dep. de Informática

Precedências
Protocolos em Redes de Dados
CódigoSiglaÁreaURL

425134

PRD

OSC

http://mocho.di.fc.ul.pt/p/PRD
Objectivos

Pretende-se que os alunos possam aprofundar os conhecimentos na área das redes IP, com particular ênfase aos algoritmos de encaminhamento usados na Internet. Deste modo são apresentados algoritmos de encaminhamento: interior, exterior, baseados em restrições e com suporte para qualidade de serviço, encaminhamento com engenharia de trágefo, encaminhamento com suporte para difusão e mobilidade e encaminhamento em redes ad hoc.

Programa de estudos
Componente Teórica

Arquitecturas de comunicação. A arquitectura IP. A Internet hoje (sistemas autónomos, redes-espinha, fornecedores de serviço). O endereçamento na Internet. Protocolos interiores: RIP; OSPF. Protocolos exteriores: BGP. MPLS. Serviços integrados e serviços diferenciados. Engenharia de tráfego. IP Multicast. IP móvel. Encaminhamento em redes ad hoc.

Componente Teórico-prática

Configuração de componentes de rede (máquinas, comutadores, encaminhadores).

Bibliografia

C. Huitema, Routing in the Internet, second edition Prentice-Hall 2000

Outros elementos de estudo

Jeff Doyle, Routing TCP/IP, Volume I (CCIE Professional Development), Cisco Press.
Jeff Doyle and Jennifer Carroll, Routing TCP/IP, Volume II (CCIE Professional Development), Cisco Press.

Avaliação

Exame e Trabalhos

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Qualidade de Software
CódigoSiglaÁreaURL

425135

QS

SI

http://mocho.di.fc.ul.pt/p/QS
Objectivos

No final deste curso os alunos deverão conseguir:
Caracterizar qualidade em software de um modo objectivo (modelos e métricas), conhecer as componentes de um sistema de gestão da qualidade (SGQ) e compreender as principais técnicas de controlo de qualidade de software, com especial ênfase nas normas existentes para assegurar a qualidade em processos de desenvolvimento de software (CMM, ISO 9001 e ISO/IEC 15504).

Programa de estudos
Componente Teórica

Os objectivos e princípios associados à gestão da qualidade
Factores da qualidade de software: modelos McCall and ISO/IEC 9126
Componentes de um sistema de gestão da qualidade
Componentes pré-projecto
Componentes no ciclo de vida do projecto
Componentes de infraestrutura
Componentes de gestão
Componente humana
Normas e sistemas de certificação. Processo de acreditação e certificação. Organismos envolvidos no desenvolvimento de normas. Normas que contribuem para a SQA: ISO 9001, CMM, ISO/IEC 15504, IEEE/EIA 12207, PSP
Casos de estudo
Seminários com casos reais da indústria

Componente Teórico-prática

Personal Software Process: objectivos e motivação; missão do profissional de software; processo genérico de melhoria de qualidade.
Gestão de tempo;
Planeamento de produto e de período;
Planeamento de produto e registos de tarefas.
Métricas no planeamento de produto;
Gestão de tempo;
Planeamento do tempo disponível;
Gestão de compromissos;

Bibliografia

Daniel Galin, Software Quality Assurance, Addison Wesley, 2004, ISBN 0201709457.
Watts Humphrey, Introduction to the Personal Software Process,
Addison Wesley, 1997, ISBN 0201548097.

Outros elementos de estudo

Sami Zahran, Software Process Improvement: Practical Guidelines for Business Success, Addison Wesley, 1998, ISBN n.º 020117782X.
Stephen H. Kan, Metrics and Models in Software Quality Engineering, Addison Wesley, 1995, ISBN n.º 0201633396.
Mark Paulk, Charles Weber e outros, The Capability Maturity Model: Guidelines for Improving the Software Process, Addison Wesley, 1995, ISBN n.º 0201546647.

Método de Ensino

As aulas teóricas são usadas para exposição e discussão da matéria, após um período de leitura da matéria por parte dos alunos (artigos ou excertos de capítulos).
As aulas teóricas são usadas também para exposição de casos reais atarvés de seminários com convidados da indústria de software.
As aulas teórico-práticas são usadas para o estudo dos processos individuais de melhoria de qualidade no desenvolvimento de software.
Os alunos realizarão ainda um projecto sobre um tema relacionado com a disciplina.

Avaliação

projecto (50%) + questões de aula/exame (30%) + PSP (20%)

Língua de Ensino

Português

Departamento

Dep. de Informática

Precedências
    Nenhuma
Reconhecimento de Padrões Multimedia
CódigoSiglaÁrea

425136

RPM

SI

Objectivos

Dotar os alunos de meios para a abordagem de problemas que envolvem grande quantidade de dados não anotados, com particular enfâse para os sinais de audio, imagem e vídeo.

Programa de estudos
Componente Teórica

Extracção de características.
Métodos de classificação supervisionada e não supervisionada, paramétricos e não paramétricos.
Classificação de sequências.
Avaliação do desempenho.

Componente Teórico-prática

Laboratórios:
Extracção de características.
Métodos de classificação supervisionada e não supervisionada, paramétricos e não paramétricos.
Classificação de sequências.
Avaliação do desempenho.

Componente Prática

projecto

Bibliografia


Pattern Classification, Second Edition, R. Duda, P. Hart, D. Stork, John Wiley & Sons (October 2000).

Outros elementos de estudo

Reconhecimento de Padrões: Métodos Estatísticos e Neuronais, Jorge Salvador Marques, IST PRESS, (1999).
* An introduction to MCMC for machine learning, C. Andrieu, N. de Freitas, A. Doucet, and M. I. Jordan, Machine Learning, vol. 50, pp. 5--43, (Jan. - Feb. 2003).
* Statistical Pattern Recognition, 2nd Edition Andrew R. Webb, John Wiley & Sons; 2 edition (October 15, 2002).
* Pattern Recognition in Speech and Language Processing, Wu Chou, CRC Press (February 26, 2003).


Método de Ensino

Aulas teóricas.
Discussão de fases do projecto.
Labs

Avaliação

projecto

Língua de Ensino

Português ou inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Reconhecimento e Síntese de Fala
CódigoSiglaÁrea

425137

RSF

SI

Objectivos

Explorar a interacção pessoa-máquina com recurso ao áudio, com ênfase no processamento de fala. Propõe-se uma exposição de um modelo conceptual que permita ao aluno compreender as expectativas e limitações das tecnologias de processamento da fala e, paralelamente, estudar as suas múltiplas aplicações nos sistemas de informação.

Programa de estudos
Componente Teórica

  1. Níveis de representação da fala (acústico, fonético, fonológico, morfológico, sintáctico, semântico e pragmático).
    # Mecanismos de produção, audição e percepção.
    # Algoritmos fundamentais de processamento de fala.
    # Sistemas de codificação.
    # Síntese.
    # Reconhecimento.
    # Sistemas de diálogo.
    # Avaliação de sistemas de processamento de fala.
    # Exploração do universo de aplicações.
    # Utilização de sistemas baseados em VoiceXML.

Componente Teórico-prática

Avaliação de sistemas de processamento de fala.
Utilização de sistemas baseados em VoiceXML.

Componente Prática

projecto

Bibliografia

Livro: X. Huang, A. Acero, H. Hon (2001), Spoken Language Processing: A Guide to Theory, Algorithm and System Development (Prentice-Hall).

Outros elementos de estudo

Acetatos das aulas teóricas
Guias das aulas de laboratório

Método de Ensino

aulas teóricas + discussão de fases do projecto + Laboratórios

Avaliação

Projecto

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Recuperação e Prospecção de Textos
CódigoSiglaÁrea

425138

RPT

SI

Objectivos

Ensino aprofundado dos métodos mais importantes usados em Recuperação de Informação (Information Retrieval). e de prospecção de texto (Text Mining). A disciplina destina-se primariamente a alunos de 3º ciclo (doutoramento) em Informática.

Programa de estudos
Componente Teórica

1. Os textos essenciais e os próximos desafios em RPT.
2. Recuperação de Informação: modelos, avaliação e sistemas.
3. Reformulação de interrogações
4. Interfaces e visualização em RI
5. Indexação e compressão de textos
6. RI em ambientes paralelos e distribuídos
7. Web: caracterização, recolha e arquivo; ranking
8. Recuperação de documentos estruturados e documentos multimédia
9. Extracção de informação. Construção de tesauros e ontologias.
10. Classificação e agrupamento de documentos
11. Sistemas de recomendação
12. Análise de sentimentos
13. Resposta a perguntas

Componente Teórico-prática

Bibliografia

Colectânea de artigos científicos seleccionados pelo responsável pela disciplina.

Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze, Introduction to Information Retrieval, Cambridge University Press. 2007.

Ronen Feldman, James Sanger. The Text Mining Handbook: Advanced Approaches in Analyzing Unstructured Data, Cambridge University Press. 2007

Outros elementos de estudo
Avaliação

Elaboração e apresentação de três recensões sobre artigos científicos sobre 3 temas distintos do curso. As recensões serão apresentadas nas aulas práticas, ao longo do semestre. A nota final incide sobre as recensões (participação+apresentações+textos) + teste final. Cada elemento a entregar conta 25%.

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Redes Móveis
CódigoSiglaÁreaURL

425207

RM

OSC

http://mocho.di.fc.ul.pt/p/RM
Objectivos

Com esta disciplina pretende-se que os alunos adquiram conhecimentos na área das redes sem fios e das redes móveis que lhes permitam identificar os principais desafios e oportunidades apresentados por estas redes. Apesar de serem apresentadas as principais características do nível físico das redes sem fios, esta disciplina foca-se nos protocolos de acesso múltiplo e nos protocolos dos níveis rede e transporte.

Programa de estudos
Componente Teórica

Caracterização do meio físico. Protocolos de acesso múltiplo. Redes locais sem fios (IEEE 802.11). Redes pessoais sem fios (IEEE 802.15). Redes metropolitanas sem fios. Redes celulares. Comunicação por satélite. Internet sem fios: IP móvel e TCP. Redes ad-hoc. Redes Mesh. Redes de sensores. Segurança.

Componente Teórico-prática

Trabalho de avaliação das áreas de cobertura em redes sem fios.
Desenvolvimento protótipos de aplicações em redes ad-hoc.

Bibliografia

William Stallings. Wireless Communications and Networks, 2nd Edition, Prentice Hall, 2004.
C.Siva Ram Murthy and B.S.Manoj. Ad Hoc Wireless Networks - Architectures and Protocols, Prentice Hall, 2004.

Outros elementos de estudo
Avaliação

Exame e trabalhos

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Redes Neuronais
CódigoSiglaÁreaURL

425140

RN

MC

http://mocho.di.fc.ul.pt/p/RN
Objectivos

Apreensão dos conceitos básicos das Redes Neuronais e dos principais modelos existentes. Esta apreensão deve traduzir-se quer no conhecimento dos conceitos teóricos e condições de aplicação quer na demonstração de capacidades de utilização e configuração de ferramentas de redes neuronais para a resolução de casos práticos.

Programa de estudos
Componente Teórica

Conceitos básicos - modelos de neurónio biológico e artificial. Processos de Aprendizagem. Perceptrão simples. Perceptrão multi-camada e algoritmo de retro-propagação. Redes de Função de Base Radial. Máquinas de Vector de Suporte. Máquinas compostas. Mapas Auto-Organizados. Modelos Estocásticos. Processamento temporal. Redes com realimentação. Neurónios de resposta impulsiva.

Componente Teórico-prática

Resolução de pequenos problemas e de trabalhos com ferramentas de RNs

Componente Prática

não aplicável

Bibliografia

Simon Haykin, Neural Networks - a comprehensive foundation, 2nd edition, Prentice-Hall, 1999
W. Gerstner, W. M. Kistler, Spiking Neuron Models, Cambridge University Press 2002.

Outros elementos de estudo

software de RN e respectivos manuais

Método de Ensino

Aulas teóricas para exposição da matéria; Aulas teórico-práticas de acompanhamento de trabalhos dirigidos; Trabalho autónomo, fora das aulas

Avaliação

Trabalhos dirigidos (feitos nas T/P) + Trabalho autónomo + Exame

Língua de Ensino

Português ou Inglês, caso necessário

Departamento

Dep. de Informática

Precedências
    Nenhuma
Robôs Móveis
CódigoSiglaÁreaURL

425208

ROBM

MC

http://mocho.di.fc.ul.pt/p/ROBM
Objectivos

Pretende-se proporcionar ao aluno um alargamento da sua formação em informática à análise e programação de dispositivos corporizados com uma interacção mecânica com o ambiente e com mobilidade nesse mesmo ambiente. Este tipo de interacção tem especificidades significativas,
e a aquisição desse tipo de conhecimento espera-se que possa enriquecer a visão do estudante sobre interacção da informática com o mundo real.

Programa de estudos
Componente Teórica

Historial da área; Componentes de um robô móvel; Morfologia
Mecanismos de locomoção nos diferentes meios; Armazenamento e consumo energético
Medição de grandezas físicas, passiva e activamente e respectivos tipos de sensores; processamento de dados sensoriais; integração sensorial
Actuação do robô em função dos estímulos sensoriais; estabilização do robô; controlo de decisão
Arquitecturas comportamentais de controlo de decisão; comparação com arquitecturas funcionais; arquitecturas híbridas; reflexos; padrões de acção fixa; programas motor; autonomia do robô
Tipos de simulação de robôs móveis; limitações e realismo das simulações; simulação para depuração de programas para robôs reais
Representação e levantamento autónomo de mapas; ambientes estáticos e dinâmicos; planeamento de rotas
Equipas de robôs; interferência; cooperação emergente; equipas de robôs e humanos

Componente Teórico-prática

não aplicável

Componente Prática

Programação de robôs reais, em tarefas simples. Ensaios de interacção do robô móvel com ambientes não estruturados e com outros agentes móveis, em particular humanos e robôs similares.

Bibliografia

R.C. Arkin, Behavior-Based Robotics, MIT Press, 1998.
George A. Bekey, Autonomous robots from biological inspiration to implementation and control, MIT Press, 2005.
Roland Y. Siegwart and Illah Reza Nourbakhsh, Introduction to Autonomous Mobile Robots (Intelligent Robotics & Autonomous Agents), Bradford Books, 2004.
Steven M. LaValle, Planning Algorithms, Cambridge University Press, 2006.
V. Braitenberg, Vehicles, MIT Press, 1984.
Rodney A. Brooks, Cambrian intelligence: the early history of the new AI, MIT Press, 1999.
Rodney A. Brooks, Flesh and machines: how robots will change us, Vintage Books, 2002.
Stefano Nolfi and Dario Floreano, Evolutionary Robotics - The Biology, Intelligence, and Technology of Self-Organizing Machines, MIT Press, 2004.
Tucker Balch and Lynne E. Parker (eds.), Robot Teams: From Diversity to Polymorphism, AK Peters, Ltd., 2002.

Outros elementos de estudo

Artigos diversos; Manuais de robôs

Método de Ensino

Exposição de matérias, nas aulas teóricas.
Orientação para a programação de robôs, e análise e discussão de soluções, nas aulas práticas.

Avaliação

80% Trabalho prático + 20% Teste de escolha múltipla

Língua de Ensino

Português ou Inglês, se necessário

Departamento

Dep. de Informática

Precedências
Segurança de Software
CódigoSiglaÁreaURL

425141

SeS

OSC

http://mocho.di.fc.ul.pt/p/SeS
Objectivos

O número de ataques informáticos registados nos últimos anos tem tido um crescimento aproximadamente exponencial (CERT - http://www.cert.org/stats/ ). Sob o ponto de vista da integridade dos sistemas e da confidencialidade dos dados é cada vez mais claro que o elo fraco é a segurança do computador, não a segurança da comunicação (v. The Inevitability of Failure...). Por exemplo, a comunicação de algumas aplicações de comércio electrónico ou homebanking é eficazmente protegida pelo protocolo SSL enquanto as máquinas dos clientes são atacadas por worms que roubam as passwords de acesso (por ex., o Bugbear).

O tema desta disciplina é a segurança da máquina, nomeadamente do seu software, por contraposição à segurança da rede/comunicação. A cadeira pretende abordar os principais temas necessários para compreender o problema, incluindo também a discussão de alguns tópicos mais avançados que se encontram actualmente no domínio da investigação.

Programa de estudos
Componente Teórica

- Segurança e Desenvolvimento de Software
- Protecção em Sistemas Operativos Convencionais
- Buffer Overflows
- Validação de Input (Web e BDs)
- Condições de Corrida
- Testes de Segurança (Injecção de Ataques e Análise Estática)

Componente Teórico-prática

Aulas hands-on sobre os seguintes temas:
- Segurança e Desenvolvimento de Software
- Protecção em Sistemas Operativos Convencionais
- Buffer Overflows
- Validação de Input (Web e BDs)
- Condições de Corrida
- Testes de Segurança (Injecção de Ataques e Análise Estática)

Bibliografia
  • J. Viega, G. McGraw, Building Secure Software, Addison-Wesley, 2002.
    * M. Howard, D. LeBlanc, Writing Secure Code, 2nd edition, Microsoft Press, 2003.
Outros elementos de estudo
  • C. Pfleeger, S. L. Pfleeger, Security in Computing, 3rd ed., Prentice Hall, 2003.
    * M. Dowd, J. McDonald J. Schuh, The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities, Addison-Wesley, 2006.
    * C. Wysopal, L. Nelson, D. Zovi, E. Dustin, The Art of Software Security Testing, Addison-Wesley, 2006.
    * B. Chess, J. West, Secure Programming with Static Analysis, Addison-Wesley, 2007.
    * G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, Addison-Wesley, 2004.
    * M. Gasser, Building a Secure Computer System, Van Nostrand Reinhold, 1988.
    * S. Garfinkel, G. Spafford, A. Schwartz, Practical Unix & Internet Security, 3rd ed., O'Reilly, 2003.
    * David A. Wheeler, Secure Programming for Linux and Unix HOWTO, v3.010, 3 March 2003
    * P. Maher and A. Mackman, The Developer Highway Code. Microsoft Corp, 2006.
    * D. Bovet, M. Cesati, Understanding the Linux Kernel, 1st ed., O’Reilly, 2000
    * OWASP Foundation. OWASP Top 10 - the ten most critical web application security vulnerabilities (2007 update). 2007
Avaliação
  • (10%) Através de 5 exercícios (tipo TPC) a serem publicados quinzenalmente ao longo do semestre e entregues na aula teórica na semana seguinte. Existe um 6º TPC virtual cuja nota depende do número de TPCs entregues. Cada TPC entregue soma 4 valores à nota do TPC virtual. A nota final desta componente de avaliação corresponde à média dos 6 TPCs.
    * (40%) Pelas impressões do professor nas aulas teórico-práticas e a apreciação e discussão individual dos resultados e relatórios dos projectos;
    * Notas publicadas após a conclusão de todas as discussões, por questões de harmonização de critérios.
    * (50%) Exame final.
Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Simulação Social
CódigoSiglaÁreaURL

425143

SS

MC

http://mocho.di.fc.ul.pt/p/SS
Objectivos

Estabelecer contacto com ferramentas e metodologias orientadas para a simulação de sistemas com múltiplos agentes, heterogéneos e autónomos; instalar bancadas e desenvolver projectos de simulação social; colocar problemas e reunir os meios para os atacar; adquirir práticas de experimentação científica orientada pela exploração; contactar com a realidade das ciências sociais e estabelecer paralelos com a inteligência artificial

Programa de estudos
Componente Teórica

Colocação dos agentes no seu contexto, permitindo uma abordagem mais realista da complexidade associada à dinâmica das interacções. O computador como ferramenta e a simulação exploratória como metodologia que permitem ao cientista social testar modelos, ensaiar experiências, colocar hipóteses, descobrir novas conjecturas.

Sistemas Multiagente: decisão e racionalidade; autonomia; especificação de agentes e sociedades; desenvolvimento de programas e experimentação.

Noções de Ciências Sociais: objecto e metodologias; técnicas de análise de dados e resultados experimentais; simulação e empirismo; simulação computacional.

Metodologias de trabalho experimental: a simulação exploratória como outra forma de fazer ciência; problemas metodológicos na análise de resultados; metáforas e conjecturas como objectos científicos.

Componente Teórico-prática

Desenvolvimento de pequenas experiências: desenvolvimento de programas e utilização de bancadas de simulação; análise crítica dos resultados; confrontação com resultados empíricos

Bibliografia

Nigel Gilbert and Klaus Troitzsch (1999). Simulation for the Social Scientist. Open University Press, UK.

Vanessa Stevens Collella, Eric Klopfer and Mitchell Resnick, Adventures in Modeling. Teachers College Press, New York, USA.

Outros elementos de estudo
Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Sistemas Embebidos e de Tempo-Real
CódigoSiglaÁreaURL

425209

SETR

OSC

http://mocho.di.fc.ul.pt/p/SETR
Objectivos

Pretende-se com esta cadeira que o aluno adquira uma formação sobre os problemas específicos dos sistemas embebidos e de tempo-real, com especial ênfase nos modelos de computação distribuída em sistemas industriais. Os aspectos arquitecturais, a especificidade das redes a dos sistemas operacionais e as aplicações típicas de sistemas embebidas serão algumas das questões abordadas.

Programa de estudos
Componente Teórica

1) Paradigmas para sistemas embebidos e de tempo-real: fundamentos da confiabilidade e do tempo-real; ordem e tempo em sistemas de tempo-real; comunicação fiável em tempo-real; escalonamento; sincronização de relógios; observação e actuação; modelos de sistemas tempo-real; modelos com qualidade de serviço e adaptativos; 2) Tecnologias e Arquitecturas: sistemas embebidos; núcleos multitarefa tempo-real; mecatrónica, sensores e actuadores; redes industriais e de instrumentação; protocolos industriais ; sistemas SCADA; 3) Estudo de Casos.

Componente Teórico-prática

1) Sistemas embebidos e de tempo-real:
- redes de instrumentação--- CAN, FlexRay
- sistemas multitarefa tempo-real--- RTAI, RTEMS
- sistemas SCADA--- LabView

2) Trabalhos de Laboratório
- Estão previstos 2 trabalhos de laboratório. O primeiro será feito usando o simulador Cheddar, e o segundo será feito com o sistema multitarefa tempo-real RTAI.

Bibliografia

- P. Veríssimo and L. Rodrigues, Distributed Systems for System Architects, Kluwer Academic Publishers, 2001.

Outros elementos de estudo

- H. Kopetz, Real-Time Systems, Kluwer Academic Publishers, 1997.
- Distributed Systems, 2nd Ed., Sape Mullender Ed., Addison-Wesley, 1993

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Sistemas Hipermédia
CódigoSiglaÁreaURL

425144

SH

SI

http://mocho.di.fc.ul.pt/p/SH
Objectivos

A cadeira pretende transmitir conhecimentos sobre as áreas designadas Hipertexto e Hipermédia. Os sistemas e aplicações hipermédia podem ser considerados actualmente quer como tecnologia genérica complementando a funcionalidade dos mais variados sistemas computacionais (sistemas de ajuda, mecanismos de interligação de documentos, complemento a estruturas de representação de conhecimento), quer como entidades funcionalmente completas (produção de documentos electrónicos multimédia, ensino assistido por computador, ferramentas de gestão e manipulação interactiva de informação heterogénea). A gama de problemas e desafios conceptuais/teóricos que se abordam na cadeira, e assim a justificam em termos científicos, inclui: Modelos de dados para sistemas hipermédia; Arquitecturas abertas de sistemas hipermédia; Concepção e realização do armazenamento; Paradigmas de interfaces hipermédia; Ferramentas de navegação; Ambientes hipermédia de suporte aos processos cognitivo e multiutilizador. A cadeira oferece assim um conjunto de conhecimentos aglutinadores das bases científicas e técnicas obtidas em cadeiras de licenciatura.

Programa de estudos
Componente Teórica

Hipertexto e Hipermédia, Engenharia de Sistemas Hipermédia, Métodos de Desenho e Desenvolvimento de Sistemas Hipermédia, Arquitecturas e Modelos de Dados Hipermédia, Navegação, Avaliação de Sistemas Hipermédia, Hipermédia Adaptativa, Hipermédia e Multimédia, Hipermédia e Cognição, Hipermédia e Trabalho Cooperativo.

Componente Teórico-prática

Projecto e desenvolvimento de um sistema Hipermédia, de acordo com uma das metodologias aprendidas. O sistema deve ser caracterizado por uma estrutura de informação complexa e heterogénea, aplicada a uma tarefa, um contexto de utilização e um grupo de utilizadores específicos.

Bibliografia

Gerti Kappel, Birgit Pröll, Siegfried Reich, Werner Retschitzegger, "Web Engineering", Wiley, 2006.
Jakob Nielsen, Designing Web Usability", New Riders Publishing, 2000.
David Lowe, Wendy Hall, "Hypermedia & the Web: An Engineering Approach", Wiley, 1999.
Jakob Nielsen, "Multimedia and Hypertext", Academic Press, 1995.
Selecção de artigos científicos.

Outros elementos de estudo

Apresentações das aulas teóricas

Avaliação

Realização de um trabalho prático, e sua apresentação oral.
Estudo, apresentação e argumentação de artigos científicos relevantes.

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Sistemas Multi-Agente
CódigoSiglaÁreaURL

425146

SMA

MC

http://mocho.di.fc.ul.pt/p/SMA
Objectivos

Agentes, uma metáfora da computação como interacção. Simulação de agentes no ataque à complexidade. Tecnologias, ferramentas e técnicas: nível organizacional, auto-organização e complexidade, confiança e reputação, coordenação, negociação e comunicação, modelos e arquitecturas de agentes, infra-estruturas e oficinas, engenharia da programação baseada em agentes, métodos formais e interfaces. Instituições e comunidades electrónicas. Aplicações actuais e emergentes: sistemas autónomos, semantic web, ambientes inteligentes, computação orientada aos serviços na Internet, computação em grelha, computação peer-to-peer.

Programa de estudos
Componente Teórica

Apresentação da disciplina no contexto das Ciências da Computação e da Complexidade: Sistemas Multi-Agente (SMA). Situação na Inteligência Artificial (IA): IA Distribuída e Computação Baseada em Agentes. Panorâmica global da área. Programação das aulas. Método de ensino, aprendizagem e avaliação. Referências. {FCUL: ICC, C3, LabMAg e GIA}.

Noções nucleares. Dimensões de um agente. Propriedades dos agentes. Modo de estudo da SMA. Exemplo de um seminário (como ler um artigo).

Teorias dinâmicas e estáticas dos agentes. Exemplo da teoria de (Corrêa e Coelho, 1998).

Modelos e Arquitecturas dos agentes. Exemplos de trabalhos do GIA/FCUL: ambientes de aprendizagem (Eusébio, 1995) e bancadas de desenvolvimento de (Moniz, 1993) e (Fernandes, 1993).

Aspectos sociais e Sistemas Multi-Agente. Exemplo de uma bancada para experimentação social (David, 1998).

Emoções em agentes, linha de I&DE dirigida pela professora Graça Gaspar.

Demonstrações. RoboSoccer: Campeonato do Mundo e campeonatos nacionais e regionais.

Rede de Excelência Europeia AgentLink. Panorâmica sobre os 5 SIGs. Transferência tecnológica da universidade para a indústria. Modo de avaliação de um artigo científico.

Simulação social em impostos com NetLogo pelo professor João Balsa.

Aplicações tecnológicas: situação actual e tendências futuras. Seminário baseado em leitura de artigos e consulta a outras fontes (WWW).

Aplicações tecnológicas: situação actual e tendências futuras. Seminário baseado em leitura de artigos e consulta a outras fontes (WWW).

Aplicações tecnológicas: situação actual e tendências futuras. Seminário baseado em leitura de artigos e consulta a outras fontes (WWW).

Aplicações tecnológicas: situação actual e tendências futuras. Seminário baseado em leitura de artigos e consulta a outras fontes (WWW).

Aplicações tecnológicas: situação actual e tendências futuras. Seminário baseado em leitura de artigos e consulta a outras fontes (WWW).

Componente Teórico-prática

Componente Prática

Ambientes para suporte a multiagentes. Bancadas restritivas e bancadas abertas. Agentes homogeneos. Exemplos de aplicação (Einstein, NetLogo).
Exercício prático utilizando o NetLogo. Construção de Agentes baseados em comportamentos.
Bancadas para suporte a agentes heterogeneos e mais complexos. Exemplos com Aglets e OAA.
Exercício prático utilizando o OAA. Agentes cognitivos. Comunicação entre agente com base em KQML/ICL/ACL.
Exercício com OAA. Manipulação de estados mentais dos agentes. Construção de agentes com base nas arquiotecturas do Milton ou Nilsson.
A plataforma JADE e a compatibilidade FIPA. Pequenos exemplos de funcionamento.
Exercícios com JADE. Construção de uma aplicação de agentes distribuida.
Exercícios com JADE. Mobilidade e agentes na Net. Agentes no mundo real.
Recurso a agentes como componentes de controle de outras entidades em sistemas externos. Exemplo de Player/Stage e Jogos.
Exercícios com agentes no mundo real. Construção de agentes para controlo de robos reais e simulados.
Simulação em grande escala. Competição entre agentes. Desempenho versus arquitecturas. Exemplos com MicroRato, Robosoccer e RoboRescue.
Exercícico recorrendo a um sistema de simulação.
Metodologias de desenvolvimento de software baseado em agentes.

Bibliografia

Bradshaw, J. M. (ed.) - Software Agents, AAAI Press/The MIT Press, 1998.

Brenner, W., Zarnekow, R. e Wittig, H. - Intelligent Software Agents, Foundations and Applications, Springer-Verlag, 1998.

Coelho, H. - Inteligência Artificial em 25 Lições, Fundação Calouste Gulbenkian, 1995.

Coelho, H. - Teoria da Agência: Arquitectura e Cenografia, Edição do Autor, 2008.
Ferber, J. - Les Systèmes Multi-Agents, Vers une Intelligence Collective, InterEditions, 1995.

Gilbert, D. et al. - The Role of Intelligent Agents in the Information Infrastructure, IBM, 1995. {http://activist.gpl.ibm.com:81/WhitePaper/ptc2.htm}

Green, S. e Hurst, L. - Software Agents: A Review, {http://www.cs.tcd.ie/research_group/aig/iag/}

Huhns, M. N. e Singh, M. P. - Readings in Agents, Morgan Kaufmann, 1998.

Jennings, N. R. - Cooperation in Industrial Multi-Agent Systems, World Scientific, 1994.

Jennings, N. R. e Wooldridge, M. - Agent Technology, Foundations, Applications and Markets, Springer-Verlag, 1998.

Labrou, Y. e Finn, T. - A Proposal for a new KQML Specification, Technical Report CS-97-03, February 1997. {http://www.cs.umbc.edu/kqml/}

Müller, J. P. - The design of Intelligent Agents, Springer-Verlag, 1997.

Nilsson, N. - Artificial Intelligence, A New Synthesis, Morgan Kaufmann, 1998.

O’Hare, G. M. P. e Jennings, N. R. - Foundations of Distributed Artificial Intelligence, John Wiley, 1996.

Russell, S. e Norvig, P. - Artificial Intelligence, a Modern Approach, Prentice-Hall, 1995.

Tecuci, G. - Building Intelligent Agents, An Apprenticeship Multistrategy Learning Theory, Methodology, Tool and Case Studies, Academic Press, 1998.

Wooldridge, M. – An Introduction to Multiagent Systems, John Wiley, 2002.

Outros elementos de estudo
Avaliação

Prova escrita individual
Projecto de desenvolvimento
Participação e Presenças

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Sistemas Socio-Técnicos
CódigoSiglaÁreaURL

425147

SST

SI

http://mocho.di.fc.ul.pt/p/SST
Objectivos

O Erro Humano tem um papel muito significativo em muitos acidentes envolvendo sistemas socio-técnicos complexos, caracterizados por múltiplos factores de risco, sejam eles técnicos, humanos ou organizacionais. O desenvolvimento deste tipo de sistemas tem de adoptar metodologias específicas que permitam identificar e gerir os factores de risco, mitigar as suas consequências quando ocorrem acidentes, e cumprir com os requisitos e padrões estabelecidos. Esta disciplina tem como objectivo fundamental entender a natureza e complexidade dos sistemas socio-técnicos, adquirir conhecimentos fundamentais sobre erro humano, acidentes e interacções complexas que levam à ocorrência de acidentes. São analisadas e discutidas diversas abordagens desenvolvidas na área da engenharia para gerir o impacto dos factores humanos na ocorrência de acidentes em sistemas complexos. A disciplina baseia-se no estudo de acidentes em diversos sistemas socio-técnicos, como por exemplo os sistemas de produção de energia nuclear ou os sistemas de votação electrónica. Numa perspectiva mais aplicada, a disciplina conduz os alunos a aplicarem estes conhecimentos no desenvolvimento de um sistema socio-técnico complexo.

Programa de estudos
Componente Teórica

Definição e exemplos de sistemas socio-técnicos complexos. Erro humano e incidentes e acidentes. Acidentes de sistema. Interacção e acoplamento. Interacções lineares e complexas. Elementos do sistema. Defesas barreiras e salvaguardas. Tipos e modos de erro humano. Gestão de acidentes. Análise retrospectiva e análise prospectiva de sistemas. Auditorias de segurança. Metodologias de gestão do risco humano. Metodologia HERMES. Modelos de cognição e suas relações com erro humano. Abordagens etnográficas. Análise cognitiva de tarefas. Abordagens ecológicas. Análise de causas raiz.

Componente Teórico-prática

Bibliografia

P. Cacciabue, 2004, Guide to Applying Human Factors Methods, Springer. Redmill, F. and J. Rajan, 1997, Human Factors in Safety-Critical Systems, Oxford, UK, Butterworth Heinemann. Reason, J., 2008, The Human Contribution: Unsafe Acts, Accidents and Heroic Recoveries, Surrey, England, Ashgate. Perrow, C., 1999, Normal Accidents, Living with High-Risk Technologies, Princeton, New Jersey, Princeton University Press. Vicente, K., 2004, The Human Factor: Revolutionizing the Way People Live with Technology. New York, Routledge. Hollnagel, E., D. Woods and N. Levenson, 2006, Resilience Engineering: Concepts and Precepts. Hampshire, England, Hashgate.

Outros elementos de estudo
Avaliação

Projecto

Língua de Ensino

Pt/En

Departamento

Dep. de Informática

Precedências
    Nenhuma
Software Fiável
CódigoSiglaÁreaURL

425149

SF

CTP

http://mocho.di.fc.ul.pt/p/SF
Objectivos

Pretende-se que o aluno fique a conhecer as principais técnicas sistemáticas (métodos formais) e ferramentas que, correntemente, podem ser usadas no processo de desenvolvimento de software de forma a aumentar a fiabilidade dos sistemas desenvolvidos. A ênfase será essencialmente em instrumentos que permitem verificar a correcção dos sistemas desenvolvidos relativamente aos requisitos para os quais foram concebidos. Pretende-se ainda que o aluno seja capaz de utilizar as seguintes ferramentas: JML, ESC/Java2, Spin.

Programa de estudos
Componente Teórica

1. Fiabilidade de sistemas de software: problemas, desafios e soluções.
2. Verificação dedutiva de programas: cálculo de Hoare.
3. JML: The Java Modeling Language.
4. ESC/Java2: The Extended Static Checker for Java.
5. Verificação automática de modelos.

Componente Teórico-prática

Bibliografia

Doron Peled, Software Reliability Methods, Springer, 2001.
Mordechai Ben-Ari, Principles of the Spin Model Checker, Springer 2008
Gerard Holzmann, Spin Model Checker: Primer and Reference Manual, Addison Wesley, 2003

Outros elementos de estudo

Overview research papers on JML and ESC/Java

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Técnicas de Interacção Avançada
CódigoSiglaÁreaURL

425151

TIA

SI

http://mocho.di.fc.ul.pt/p/TIA
Objectivos

O objectivo fundamental desta cadeira é apresentar os conceitos e a tecnologia usados em formas não tradicionais de interacção com os computadores. É veiculado conhecimento relativo diferentes modos de interacção disponíveis, por exemplo, a interacção por gesto, voz, cérebro, tacto, cheiro, etc., sobre os conceitos subjacentes a esses modos, as arquitecturas e tecnologia que os suportam e a sua aplicação como forma de desacoplar e aumentar a comunicação entre as pessoas e as máquinas. Os aspectos teóricos e práticos da combinação de modalidades, na criação de interfaces multimodais, são apresentados e discutidos, tal como as vantagens e desvantagens da diversidade que introduzem. Considera-se a utilização de modalidades em alternativa e em cooperação como forma de resolver problemas de comunicação, aproximando à comunicação entre humanos, e estuda-se a sua aplicação como formar de suprir as dificuldades inerentes à interacção de pessoas com necessidades especiais ou em situações e ambientes de uso restritivos ou críticos. Nesta vertente de combinação de modalidades a adaptação das características de apresentação ou interacção ao contexto toma especial relevo sendo, naturalmente, assunto de estudo. São providenciados e debatidos exemplos de aplicação a jogos, particularmente de interacção física (do género Wii/Eye-toy), e a software educativo e orientado para a saúde, sendo os estudantes encorajados a criar aplicações nestes domínios.

Programa de estudos
Componente Teórica

Interfaces Multimodais, Inteligentes e Adaptativos; Arquitecturas para Interacção Avançada; Consciência de Contexto na Interacção; Interacção Universal e Acessibilidade; Interacção Ubíqua; Aplicações de Interacção não Usual; Jogos e Aplicações de Interacção Física e Fisiológica.

Componente Teórico-prática

Sistemas de interacção por reconhecimento e síntese de fala; As aplicações da visão por computador na interacção; O reconhecimento de gestos, movimento, expressões faciais; Interacção cérebro – computador; A utilização do tacto e da força; Interacção nasal e outros sensores; Ambientes de Realidade Aumentada; Sistemas de interacção ubíqua e interfaces perceptuais, multimodais e adaptativos; Multimodalidades na Web; Interacção e os Jogos. Sistemas críticos interactivos. Sistemas interactivos para idosos, crianças e indivíduos com necessidades especiais.

Bibliografia

Maybury Wahlster. Intelligent User Interfaces, 2nd Edition. Sage, 1998;
John M. Carroll (Eds) Human-Computer Interaction in the New Millennium, ACM Press, 2001;
Proceedings of the IEEE, Special Issue on Human–Computer Multimodal Interface, Vol. 91, N. 9, Setembro de 2003;
Communications of the ACM, Março de 2000 e de 2003.

Outros elementos de estudo

José del R. Millán, "ADAPTIVE BRAIN INTERFACES", COMMUNICATIONS OF THE ACM March 2003/Vol. 46, No. 3;
Tracy Westeyn, Helene Brashear, Amin Atrash, and Thad Starner. Georgia Tech Gesture Toolkit: Supporting Experiments in Gesture Recognition. ICMI’03, November 5–7, 2003, Vancouver, British Columbia, Canada;
John Paulin Hansen, Kristian Tørning, Anders Sewerin Johansen, Kenji Itoh, Hirotaka Aoki. Gaze typing compared with input by head and hand. Proceedings of the Eye tracking research & applications symposium on Eye tracking research & applications. March 2004;
W.K. Teo, Liyanage C De Silva and Prahlad Vadakkepat. "Facial Expression Detection and Recognition System". Journal of The Institution of Engineers, Singapore. Vol. 44 Issue 3 2004 ;
...

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Tecnologia de Bases de Dados
CódigoSiglaÁreaURL

425152

TBD

SI

http://mocho.di.fc.ul.pt/p/TBD
Objectivos

A disciplina tem como objectivo apresentar os conceitos e tecnologias que constituem as fundações dos sistemas de
gestão de bases de dados, incidindo nos sistemas de gestão de bases de dados relacionais. Os sistemas de bases de dados são dos mais complexos e abrangentes da Informática. Muitas das técnicas utilizadas são largamente empregues no desenvolvimento de muitos outros sistemas e aplicações. Ao fazer uma dissecação dos sistemas
de bases de dados modernos, o curso ilustra o seu funcionamento à luz das noções adquiridas nas disciplinas básicas da formação em informática, desde a lógica e algoritmos aos sistemas operativos e engenharia da programação.

Programa de estudos
Componente Teórica

Organização física dos dados e métodos de acesso.
Processamento de interrogações sua optimização.
Conceitos de transacção, controlo de concorrência, integridade e recuperação.
Segurança da informação em sistemas de bases de dados.
Arquitectura e metodologias de realização de aplicações cliente-servidor.
Afinação do desempenho.
dados distribuídas e paralelas.

Componente Teórico-prática

Bibliografia

Raghu Ramakrishan e Gehrke J., Database Management Systems, McGraw-Hill, 3ª edição, ISBN 0072465638

Outros elementos de estudo

[Gray] Jim Gray e Andreas Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufmann, 1993, ISBN 1558601902;
[Steven] Steven Feuerstein, Oracle PL/SQL Programming, O'Reilly, 3ª edição, 2002, ISBN 0596003811;
[Gurry] Mark Gurry e Peter Corrigan, Oracle Performance Tuning, O'Reilly, 2ª edição, 1996, ISBN 1565922379;
[Navathe] Shamkant B. Navathe e Ramez E. Elmasri, Fundamentals of Database Systems, Addison Wesley, 3ª edição, 1999, ISBN 0201542633;
[Melton] Jim Melton e Alan R. Simon, Understanding the New SQL: a Complete Guide, Morgan Kaufmann, 1992, ISBN 1558602453;

Método de Ensino

Um servidor de base de dados genérico é dissecado ao longo do semestre nas aulas teóricas.

Nas aulas práticas, constrói-se e afina-se o desempenho de uma aplicação desenvolvida pelos alunos para uma carga prédefinida.

Avaliação

Projecto (35%) + 2 testes (27,5% + 27,5%) + participação (10%)

ou


Projecto (35%) + exame (55%) + participação (10%)

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Tecnologias de Middleware
CódigoSiglaÁreaURL

425153

TM

OSC

http://mocho.di.fc.ul.pt/p/TM
Objectivos

O Middleware é a designação genérica utilizada para referir os sistemas de software que se executam entre as aplicações e os sistemas operativos. O objectivo do Middleware é facilitar o desenvolvimento de aplicações, tipicamente aplicações distribuídas, assim como facilitar a integração de sistemas legados ou desenvolvidos de forma não integrada.

A cadeira apresenta diferentes algoritmos, protocolos e plataformas que têm vindo a ser utilizados ao nível do middleware. São cobertas tecnologias para diferentes tipos de aplicações (ponto-a-ponto, difusão ou difusão selectiva) e em ambientes de execução diversos (redes fixas, móveis e híbridas).

Programa de estudos
Componente Teórica

Estudo de diferentes tecnologias de middleware como redes entre pares, tabelas de dispersão distribuídas, difusão epidémica, plataformas de suporte à composição, publicador-subscritor, descoberta de serviços e web services. Sempre que possível, será discutida a problemática de cada uma destas tecnologias para redes fixas e móveis.

Componente Teórico-prática

Estudo de plataformas de middleware concretas. Desenvolvimento de aplicações utilizando tecnologias de middleware.

Bibliografia

Artigos e capítulos de livros disponibilizados pelo docente na página web da cadeira.

Outros elementos de estudo
Método de Ensino

Aulas teóricas: exposição de matéria da cadeira utilizando preferencialmente o método interrogativo. Apresentações de alunos de artigos seleccionados.
Aulas teórico-práticas: método interactivo, com recurso ao estudo de documentação e experimentação laboratorial.

Avaliação

Apresentação dos alunos, projecto de desenvolvimento de protótipo utilizando plataforma de desenvolvimento, relatórios escritos. Em alternativa: exame final.

Língua de Ensino

A cadeira é leccionada em Inglês caso estejam inscritos alunos que não dominem a língua portuguesa. Caso contrário é leccionado em português

Departamento

Dep. de Informática

Precedências
    Nenhuma
Tecnologias de Segurança
CódigoSiglaÁreaURL

425154

TS

OSC

http://mocho.di.fc.ul.pt/p/TS
Objectivos

Esta cadeira aborda um conjunto de tópicos avançados relacionados com o desenvolvimento de sistemas distribuídos seguros.

Hoje em dia, num mercado globalizado, as organizações e indivíduos necessitam de estar interligados pela Internet, de maneira a que seja possível fornecer informação e serviços aos utilizadores, criar relações entre parceiros e fazer negócios. Neste ambiente aberto, vários tipos de ameaças existem, executadas por diversos tipos de indíviudos.

A disciplina vai focar tecnologias e soluções actuais para a concretização de sistemas distribuídos capazes de conduzir operações seguras neste ambiente potencialmente adverso.

Programa de estudos
Componente Teórica

  1. Algoritmos de criptografia simétrica e assimétrica & algoritmos de hashing (AES,DES,MD5,RSA)
    # Mecanismos e formas de autenticação (Kerberos, RADIUS)
    # Infra-estrutura de chave pública (PKI)
    # Comunicação segura em sistemas abertos (IPsec, SSL/TLS, S/http, IEEE 802.11 e Bluetooth);
    # Correio electrónico seguro (Secure MIME, PGP)
    # Transacções eletrónicas seguras (SET, E-Cash, Millicent)
    # Arquitecturas seguras e seus componentes: Sistemas de detecção de intrusões, Programas maliciosos e sistemas de detecção de vírus

Componente Teórico-prática

  1. Algoritmos de criptografia simétrica e assimétrica & algoritmos de hashing (AES,DES,MD5,RSA)
    # Mecanismos e formas de autenticação (Kerberos, RADIUS)
    # Infra-estrutura de chave pública (PKI)
    # Comunicação segura em sistemas abertos (IPsec, SSL/TLS, S/http, IEEE 802.11 e Bluetooth);
    # Correio electrónico seguro (Secure MIME, PGP)
    # Transacções eletrónicas seguras (SET, E-Cash, Millicent)
    # Arquitecturas seguras e seus componentes: Sistemas de detecção de intrusões, Programas maliciosos e sistemas de detecção de vírus

Bibliografia
  1. W. Stallings, Cryptography and Network Security, Principles and Practice (Fourth Edition), Prentice Hall, November 2005
    # D. R. Stinson, Cryptography, Theory and Practice (Third Edition), Chapman & Hall/CRC, 2006
    # C. Kaufman, R. Perlman, M. Speciner, Network Security: Private Communication in a Public World (Second Edition), Prentice Hall, April, 2002.
Outros elementos de estudo
  1. B. Schneier, Applied Cryptography (Second Edition), John Wiley & Sons, 1996
    # C. Adams, S. Lloyd, Understanding Public-Key Infrastructure: Concepts, Standards, and Deployment Considerations (Second Edition), MacMillan Technical Publishing, November, 2002
    # D. O´Mahony, M. Peirce, H. Tewari, Electronic Payment Systems for E-Commerce (Second Edition), Artech House Computer Security Series, 2001
    # S. Northcutt, Network Intrusion Detection: An Analyst’s Handbook, New Riders Publishing, 1999
    # S. Northcutt et al, Inside Network Perimeter Security, News Riders Publishing, 2003
Avaliação
  • (10%) Através de 5 exercícios (tipo TPC) a serem publicados quinzenalmente ao longo do semestre e entregues na aula teórica na semana seguinte. Existe um 6º TPC virtual cuja nota depende do número de TPCs entregues. Cada TPC entregue soma 4 valores à nota do TPC virtual. A nota final desta componente de avaliação corresponde à média dos 6 TPCs.

    * (40%) Pelas impressões do professor nas aulas teórico-práticas e a apreciação e discussão individual dos resultados e relatórios dos projectos;
    * Notas publicadas após a conclusão de todas as discussões, por questões de harmonização de critérios.

    * (50%) Exame final.
Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Tecnologias para Ambientes Inteligentes e Dinâmicos
CódigoSiglaÁrea

425211

TAID

OSC

Objectivos

Esta disciplina aborda a criação de ambientes de computação inteligentes e adaptáveis dinâmicamente ao contexto em que se desenvolvem, ou seja aquilo que é normalmente designado por computação ubíqua: utilização omnipresente de recursos computacionais com acesso a informação e serviços pela generalidade dos utilizadores em qualquer lugar e a qualquer instante.

Para além de uma abordagem genérica de conceitos fundamentais a disciplina aprofundará em concreto as facetas mais tecnológicas da criação dos ambientes inteligentes adaptáveis dinâmicamente, nomeadamente: plataformas computacionais e dispositivos embebidos, sistemas operativos, redes, redes de sensores, dispositivos de identificação, etc.

Programa de estudos
Componente Teórica

Conceitos fundamentais de computação em ambientes inteligentes: descentralização; diversidade; conectividade. Paradigmas e modelos para adaptação em ambientes inteligentes: percepção e contextualização. Tecnologias para sistemas de computação inteligentes. Plataformas e dispositivos embebidos. Dispositivos de identificação. Sensores e actuadores. Sistemas Operativos. Segurança e gestão de energia. Tecnologias de comunicação e de localização. Redes sem fios e redes de sensores. Serviços. Serviços baseados em posicionamento e localização. Percepção de contextos e adaptação. Integração com redes de informação.

Componente Teórico-prática

Tecnologias para sistemas de computação inteligentes. Plataformas e dispositivos embebidos. Dispositivos de identificação. Sensores e actuadores. Sistemas Operativos. Segurança e gestão de energia. Tecnologias de comunicação e de localização. Redes sem fios e redes de sensores.

Bibliografia

Pervasive Computing: The Mobile World U. Hansmann, L. Merk, M.S. Nicklous, T. Stober. 2nd ed., 2003, Springer Professional Computing. ISBN: 978-3-540-00218-5

Outros elementos de estudo

Ambient Intelligence W. Weber; J.M. Rabaey; E. Aarts, E. (Eds.) 2005, Springer. ISBN: 978-3-540-23867-6
Ambient Intelligence: Impact on Embedded System Design T. Basten; M. Geilen; H. Groot (Eds.) 2004, Springer. ISBN: 978-1-4020-7668-8

Método de Ensino

Aulas teóricas: exposição da matéria em sala de aula, complementada quando apropriado com outros elementos pedagógicos, como por exemplo, projecção de pequenos vídeos relacionados com os temas leccionados, etc. Procura-se assim estimular o interesse entre os alunos e a interacção entre docente e discentes.

Aulas teórico-práticas e de laboratório: realização de exercícios teórico-práticos e laboratoriais segundo um guião publicado antecipadamente. Utilização de métodos interactivos que fomentam a discussão com os alunos de uma solução base e de possíveis alternativas.

Avaliação

Trabalhos/projectos semestrais. Exame final.

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Teoria da Informação e Sistemas Dinâmicos
CódigoSiglaÁrea

425156

TISD

CTP

Objectivos

O aluno é exposto ao paradigma dinâmico na descrição dos sistemas, sobretudo no que respeita à produção de informação. Através de uma abordagem dinâmica-probabilística, o aluno deverá ser capaz de aplicar os conceitos da Teoria da Informação ao processamento eficiente de mensagens e ficheiros. O aluno é ainda motivado para o estudo de comportamentos complexos em sistemas naturais e artificiais.

Programa de estudos
Componente Teórica

Os conceitos de entropia e informação; símbolos e significado; aspectos estatísticos de modelos teóricos e de linguagens naturais; fontes de informação ergódicas. Capacidade de um canal; redundância; transmissão de informação em sistemas com falhas. Codificação e suas aplicações à compressão de mensagens e à recuperação de erros.
Noção de sistema dinâmico; espaço de fases; sistemas dinâmicos discretos e contínuos. Soluções invariantes; estabilidade de estados; teoria de bifurcações; atractores. Aplicações do intervalo; dinâmica simbólica; caos.
Auto-organização versus controle por programa central; comportamentos emergentes; autómatos celulares; problemas de computabilidade e de complexidade; autómatos auto-reprodutores.

Componente Teórico-prática

Os conceitos de entropia e informação; símbolos e significado; aspectos estatísticos de modelos teóricos e de linguagens naturais; fontes de informação ergódicas. Capacidade de um canal; redundância; transmissão de informação em sistemas com falhas. Codificação e suas aplicações à compressão de mensagens e à recuperação de erros.
Noção de sistema dinâmico; espaço de fases; sistemas dinâmicos discretos e contínuos. Soluções invariantes; estabilidade de estados; teoria de bifurcações; atractores. Aplicações do intervalo; dinâmica simbólica; caos.
Auto-organização versus controle por programa central; comportamentos emergentes; autómatos celulares; problemas de computabilidade e de complexidade; autómatos auto-reprodutores.

Bibliografia

J. R. Pierce, An Introduction to Information Theory -- Symbols, Signals and Noise, Dover, 1980.

C. E. Shannon & W. Weaver, The Mathematical Theory of Communication, University of Illinois Press, 1963.

D. Kaplan & L. Glass, Understanding Nonlinear Dynamics, Springer-Verlag, 1995.

D. Peak & M. Frame, Chaos Under Control, Freeman, 1994.

R. L. Devaney, A First Course in Chaotic Dynamical Systems, Addison-Wesley, 1992.

S. Kauffman, At Home in the Universe -- The Search for Laws of Complexity, Oxford University Press, 1995.

T. M. Cover & J. A. Thomas, Elements of Information Theory, John Wiley & Sons, 1991.

K. Sayood, Introduction to Data Compression, Morgan Kaufman, 2000.

Outros elementos de estudo

C. Lourenço, cópias dos acetatos das aulas teóricas.

C. Lourenço, séries de exercícios para as aulas teórico-práticas.

Método de Ensino

Ensino presencial.

Avaliação

Exame final e/ou projecto em computador.

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Tolerância a Faltas Distribuida
CódigoSiglaÁreaURL

425157

TFD

OSC

http://mocho.di.fc.ul.pt/p/TFD
Objectivos

A utilização crescente dos sistemas distribuídos numa multitude de áreas de actividade (vide o exemplo das aplicações sobre a Internet) levanta duas questões: i)o maior número de componentes do sistema requer preocupação com a sua fiabilidade; ii) a distribuição geográfica oferece possibilidades atraentes de replicar componentes em diversas máquinas.
Esta cadeira introduz a área da tolerância a faltas distribuída, que tira partido da existência de um conjunto de máquinas interligadas em rede, para replicar componentes de software nessas máquinas de modo mais versátil e menos dispendioso do que utilizando sistemas da hardware dedicado. Assim, serão abordados conceitos, metodologias e mecanismos (técnicas de programação, protocolos) para a construção de sistemas confiáveis (i.e. cuja probabilidade de falha é muito menor que a de um sistema "normal") em rede.

Programa de estudos
Componente Teórica

Abstracções básicas de sistemas distribuídos. Conceito de processo, computação distribuída, canal de comunicação e abstracções temporais. Modelos de sistemas distribuídos. Algoritmos de difusão fiável. Algoritmos de memória partilhada. Acordo distribuído e aplicações.

Componente Teórico-prática

Desenvolvimento de aplicações tolerantes a faltas utilizando plataformas de suporte. Aplicações práticas e desenvolvimento de variantes dos algoritmos estudados nas aulas teóricas.

Bibliografia

Introduction to Reliable Distributed Programming
Guerraoui, Rachid, Rodrigues, Luís
2006. ISBN: 978-3-540-28845-9

Outros elementos de estudo

Manuais da moldura de suporte ao desenvolvimento de aplicações tolerantes a faltas Appia. Guiões das aulas teórico-práticas dispnibilizados na página web.

Método de Ensino

Aulas teóricas: método predominantemente expositivo e interrogativo, estimulando o envolvimento dos alunos na elaboração de algoritmos que resolvam os problemas apresentados nas aulas.
Aulas teórico-práticas: método predominantemente interactivo, onde os alunos propõem a resolução de exercícios apresentados pelo docente. Aplicação prática por trabalho de laboratório.

Avaliação

Exame final que avalia a componente teórica. A análise crítica é estimulada solicitando aos alunos que avaliem um relatório entregue pelos colegas. Desenvolvimento de uma aplicação tolerante a faltas.

Língua de Ensino

A cadeira é leccionada em Inglês caso estejam inscritos alunos que não dominem a língua portuguesa. Caso contrário é leccionado em português

Departamento

Dep. de Informática

Precedências
    Nenhuma
Trabalho Cooperativo
CódigoSiglaÁrea

425158

TCO

SI

Objectivos

Esta disciplina pretende transmitir conhecimentos de carácter teórico e prático sobre a área científica e tecnológica designada por CSCW (Computer Supported Cooperative Work). O tipo de sistemas que é abordado incorpora e exercita noções fundamentais das áreas de sistemas distribuidos, sistemas multimédia e interacção humano-computador, pelo que se conseguem sinergias com outros temas da Licenciatura. A disciplina está organizada nos seguintes blocos temáticos: propriedades genéricas dos sistemas cooperativos, tecnologias de suporte, coordenação de tarefas, processos de trabalho e processos de decisão.

Programa de estudos
Componente Teórica

CSCW. Interacção em grupo. Partilha de informação. Arquitecturas cooperativas. Coordenação e Colaboração. Sistemas de fluxos de trabalho. Suporte a decisão. Suporte a Negociação. Reuniões electrónicas.

Componente Teórico-prática

Técnicas para Interfaces Multiutilizador. Sofware para Interacção em Grupo, Coordenação e Colaboração. Sistemas de Workflow, Tomada de decisão e Negociação em Grupo.

Bibliografia

P. Antunes, Groupware: Conceitos Fundamentais e Caracterização dos Principais Blocos Construtivos, Faculdade de Ciências da Universidade de Lisboa, DI-FCUL-TR-02-16, 2002.
Michel Beaudoin-Lafon. Computer Supported Co-operative Work. Wiley, 1999.



Outros elementos de estudo

S. Khoshafian, M. Buckiewicz. Introduction to Groupware, Workflow and Wourkgroup Computing, John Wiley & Sons, 1995.
U. Borghoff, J. Schlichter. Computer Supportted Cooperative Work. Springer, 2000.
I. Greif (ed.). Computer Supported Cooperative Work: A Book of Readings. Morgan Kaufmann Publishers Inc, 1988.
R. baecker (ed.), Readings in Groupware and CSCW, Morgan Kaufmann Publishers Inc, 1993.

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
Verificação e Validação de Software
CódigoSiglaÁrea

425159

VVS

CTP

Objectivos

Saber conceber, analisar, e executar planos de verificação e validação (V&V) de um projecto de software, incluindo o exame das condicionantes do projecto, o planeamento de uma estratégia de V&V que inclua uma selecção de diferentes técnicas, o acompanhamento do progresso da actividade de V&V, a avaliação da eficácia das técnicas utilizadas e do plano de V&V em geral.

Programa de estudos
Componente Teórica

1. Testing como uma actividade de engenharia
2. Panorâmica geral e fundamentos
3. Defeitos, hipóteses e testes
4. Análise da especificação e do software (caixa preta)
5. Análise do código e estruturais (caixa branca)
6. Níveis de teste
7. Objectivos, políticas, planos e documentação
8. Organização dos testes
9. Controle e monitorização do processo de teste
10. A inspecção como uma actividade de teste

Componente Teórico-prática

1. Testing como uma actividade de engenharia
2. Panorâmica geral e fundamentos
3. Defeitos, hipóteses e testes
4. Análise da especificação e do software (caixa preta)
5. Análise do código e estruturais (caixa branca)
6. Níveis de teste
7. Objectivos, políticas, planos e documentação
8. Organização dos testes
9. Controle e monitorização do processo de teste
10. A inspecção como uma actividade de teste

Bibliografia

Practical Software Testing. Ilene Burnstein. Springer 2003. ISBN: 0-387-95131-8.

Outros elementos de estudo

Software Testing, second edition. Ron Patton. Sams Publishing 2006. ISBN 0-672-32798-8

Avaliação

Três trabalhos práticos: 7,5 valores.
Exame: 12,5 valores

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma
Vida Artificial
CódigoSiglaÁreaURL

425160

VA

MC

http://mocho.di.fc.ul.pt/p/VA
Objectivos

Aquisição de conhecimentos nas principais técnicas de processamento da informação baseadas em multi-componentes com propriedades emergentes, nomeadamente inspiradas em modelos de sistemas biológicos. Ganhar a capacidade de encarar modelos auto-organizados como uma solução para problemas complexos

Programa de estudos
Componente Teórica

Introdução à Vida Artificial e aos Sistemas Auto-Organizados. Sistemas Dinâmicos Complexos. Autómatos Celulares. Algoritmos Evolucionários. Redes Imunulógicas Artificiais. Algoritmos de Enxame. Simulação de Comportamento Adaptativo - Robôs Móveis, Multi-Agentes simples.
Outros tópicos – Vírus e minhocas, Sistemas de reescrita e Morfogénese, Química Algorítmica. Modelação Evolucionária de Sistemas Socio-Económicos

Componente Teórico-prática

não aplicável

Componente Prática

Problemas e discussão em aulas. Trabalho extra aula

Bibliografia

Christopher Langton ed., Artificial Life: An Overview, MIT Press, 1995.
Mitchell, M., An Introduction to Genetic Algorithms, MIT Press, 1996.
R.C. Arkin, Behavior-Based Robotics, MIT Press, 1998
Leandro N. de Castro and Jonathan Timmis. Artificial Immune Systems: A New Computational Intelligence Approach, Springer, 2002
Correia, L., Vida Artificial, monografia, 2005

Outros elementos de estudo

indicados elementos específicos para cada capítulo da cadeira

Método de Ensino

Exposição nas aulas teóricas.
Apresentação de demonstrações e discussão, nas aulas práticas.
Pequenos trabalhos de investigação sobre tópicos específicos, extra-aulas.

Avaliação

80% Trabalho final + 20% Teste relâmpago (20 perguntas em 20 minutos, escolha múltipla)

Língua de Ensino

Português ou Inglês, conforme necessidades

Departamento

Dep. de Informática

Precedências
    Nenhuma
Visualização
CódigoSiglaÁreaURL

425161

VIS

MC

http://mocho.di.fc.ul.pt/p/VIS
Objectivos

Estudo dos fundamentos da visualização gráfica de informação, nas duas vertentes que tradicionalmente são consideradas: visualização de dados com referência espacial própria e visualização de informação abstracta. Através da componente prática, onde são utilizados vários programas, os alunos tomam contacto com diferentes abordagens ao desenvolvimento de ferramentas de visualização

Programa de estudos
Componente Teórica

Estruturas de dados para visualização. Grelhas e sua tipificação. Algoritmos para a visualização de dados escalares, vectoriais e tensoriais. Visualização de estruturas lineares e hierárquicas. Interfaces gráficas para selecção de informação. Selecção, zoom e simplificação de representações. Detalhe e visão de conjunto. Funções de grau de interesse

Componente Teórico-prática

Utilização dos programas Autocad Map 3D e Vtk em aulas de laboratório e em projectos de avaliação.

Bibliografia

Will Schroeder, Ken Martin and Bill Lorensen, The Visualization Toolkit, 3rd edition, Kitware, 2004
S. Card, J. Mackinlay, B. Shneiderman, Readings in Information Visualization - Using Vision to think, Morgan Kaufmann, 1999
Robert Spence “Information Visualization: design for interaction”, 2007

Outros elementos de estudo

guiões das aulas

Método de Ensino

Aulas presenciais em sala convencional e em laboratório.

Avaliação

Dois projectos e exame final ou 2 testes em alternativa ao exame

Língua de Ensino

Português ou Inglês

Departamento

Dep. de Informática

Precedências
    Nenhuma