Engenharia Informática Descrição: Qualificação e Título – Licenciatura em Engenharia Informática, Licenciado. Duração oficial - 3 anos/6 semestres/40 semanas de estudo a tempo inteiro por ano/180 créditos ECTS. Requisitos de acesso – O ingresso no curso pode ser efectuado através do Concurso Nacional de Acesso ao Ensino Superior, dos Regimes Especiais, dos Concursos Especiais de Acesso ou dos Regimes de Reingresso, Mudança de Curso e Transferência. Para se candidatarem ao ensino superior através do Concurso Nacional de Acesso, os estudantes devem satisfazer as condições descritas em DGES/Acesso ao Ensino Superior. Requisitos do programa de estudos - A Licenciatura em Engenharia Informática tem por objectivo preparar engenheiros informáticos, aptos em todas as fases actualmente reconhecidas no rigoroso processo de análise, concepção e implementação de soluções informáticas. Os seus licenciados devem adquirir durante o curso grande experiência teórica e prática na análise de sistemas a informatizar, na especificação dos requisitos desses mesmos sistemas, nas técnicas de construção de protótipos e em todas as fases da sua instalação, na gestão de projectos informáticos, no teste e manutenção de aplicações informáticas, e, consequentemente, dos sistemas ou redes que as suportam. Acesso a um nível de estudos superior - O grau de Licenciado permite a candidatura a estudos pós-graduados, nos termos descritos em DGES/Reconhecimento+Académico/Suplemento+ao+Diploma/. Estatuto e Saídas profissionais – O licenciado em Engenharia Informática tem capacidade e conhecimento suficiente para se integrar em inúmeros domínios profissionais. O seu perfil tecnológico, associado com a experiência teórico-prática adquirida ao longo do curso, permite-lhes projectar e implementar sistemas e aplicações informáticas em empresas que desenvolvam as suas actividades em áreas como o desenvolvimento de software, a banca, os seguros, os transportes, o retalho, a saúde, as finanças, as telecomunicações, a Internet, ou o desenvolvimento de aplicações para a Web. Local Funcionamento: Campus de Gualtar, Braga Director: Orlando Manuel Oliveira Belo Manuel Alcino Pereira da Cunha Coordenadores ECTS: Paulo Jorge Sousa Azevedo Ano Código Nome Regime ECTS 1 8201N1 Álgebra Linear S1 5 1 8201N2 Cálculo I S1 5 1 8201N5 Elementos de Engenharia de Sistemas S1 5 1 8201N6 Laboratórios de Informática I S1 5 1 8201N4 Programação Funcional S1 5 1 8201N3 Tópicos de Matemática Discreta S1 5 1 8202N2 Cálculo II S2 5 1 8202N6 Laboratórios de Informática II S2 5 1 8202N4 Lógica S2 5 1 8202N5 Programação Imperativa S2 5 1 8202N1 Sistemas de Computação S2 5 1 8202N3 Tópicos de Física Moderna S2 5 2 8203N6 Algoritmos e Complexidade S1 5 2 8203N4 Arquitectura de Computadores S1 5 2 8203N5 Comunicação de Dados S1 5 2 8203N3 Engenharia Económica S1 5 2 8203N2 Estatística Aplicada S1 5 2 8203N1 Introdução aos Sistemas Dinâmicos S1 5 2 8204N4 Análise de Custos S2 5 2 8204N5 Cálculo de Programas S2 5 2 8204N3 Electromagnetismo S2 5 2 8204N6 Laboratórios de Informática III S2 5 2 8204N2 Programação Orientada aos Objectos S2 5 2 8204N1 Sistemas Operativos S2 5 3 8205N1 Bases de Dados S1 5 3 8205N2 Desenvolvimento de Sistemas de Software S1 5 3 8205N6 Métodos Numéricos S1 5 3 8205N3 Modelos Determinísticos de Investigação Operacional S1 5 3 8205N5 Redes de Computadores S1 5 3 8205N4 Sistemas Distribuídos S1 5 3 8206N2 Computação Gráfica S2 5 3 8206N4 Comunicações por Computador S2 5 3 8206N6 Laboratórios de Informática IV S2 5 3 8206N3 Modelos Estocásticos de Investigação Operacional S2 5 3 8206N5 Processamento de Linguagens S2 5 3 8206N1 Sistemas de Representação de Conhecimento e Raciocínio S2 5 8201N1 - Álgebra Linear Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: aulas teóricas e teórico-práticas. Programa: Matrizes: álgebra de matrizes; matrizes invertíveis; matrizes elementares; característica. Sistemas de equações lineares; classificação e resolução de sistemas, eliminação de Guass. Determinantes: Cálculo do determinante, regra de Cramer, matriz adjunta. Valores e vectores próprios: definições básicas e algumas propriedades. Espaços vectoriais reais: definições, subespaços, dependência e independência linear; base e dimensão de um espaço. Aplicações lineares; núcleo e imagem; isomorfismos; matriz de uma aplicação linear; matrizes semelhantes. Métodos de Avaliação: Avaliação periódica / Exame final escrito. Pré-requisitos: Nenhuns. Resultados de Aprendizagem: Com a aprovação na disciplina, o estudante deverá ser capaz de: Operar com matrizes. Classificar e resolver sistemas de equações lineares. Calcular o determinante de uma matriz e calcular os valores e vectores próprios de uma matriz. Estruturar e redigir demonstrações de resultados básicos que envolvam espaços vectoriais e aplicações lineares. Bibliografia: 1.Título: Introdução à álgebra linear Autores: M. Raquel Valença Ano: 2003 2. Title: Curso de Álgebra Linear e Geometria Analítica Authors: Maria Paula Marques Smith; Emília Giraldes; Victor Hugo Fernandes Year: 1995 Docentes: Zhang Yulin 8201N2 - Cálculo I Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: 2 horas/semana - aulas teóricas. 2 horas/semana - teórico-práticas. Programa: Tópicos sobre o corpo dos números reais. Limites e continuidade de funções reais de variável real. Funções trigonométricas, trigonométricas inversas, hiperbólicas e hiperbólicas inversas. Derivadas, aproximação polinomial, primitivas e integrais. Métodos de Avaliação: Avaliação periódica e exame final. Pré-requisitos: Nenhuns Resultados de Aprendizagem: Com a aprovação na disciplina, o estudante deverá ser capaz de: - dominar noções topológicas no conjunto dos números reais fundamentais para introduzir a noção de limite, como por exemplo ponto interior, ponto aderente, ponto de acumulação e ponto isolado; - entender a noção de limite, do ponto de vista geométrico e analítico. Calcular limites de funções; - aplicar resultados de continuidade de funções, da composição de funções e da função inversa; - calcular derivadas de funções e interpretar geometricamente o resultado. - calcular o polinómio de Taylor de uma função; - conhecer e aplicar algumas técnicas de primitivação; - relacionar as noções de integral e de primitiva; - aplicar integrais para o cálculo de áreas e de comprimentos de curvas. Bibliografia: Fernando Miranda e Lisa Santos, Introdução à Análise Real, Departamento de Matemática, Universidade do Minho, 2004 Lisa Santos, Tópicos de Análise Real, Departamento de Matemática, Universidade do Minho, 2004 Tom Apostol, Cálculo, Editora Réverté, 1991 Elon Lages Lima, Curso de Análise, Vol. 1, IMPA, Projecto Euclides. 1992 Docentes: Fernando Miranda 8201N5 - Elementos de Engenharia de Sistemas Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas, aulas práticas e aulas tutórias. Programa: Introdução a Engenharia de Sistemas. Enquadramentos metodológicos da Engenharia de Sistemas. Estruturação de problemas e análise de alternativas. Introdução a modelos matemáticos e modelos de simulação. Introdução à tomada de decisão. Métodos para gestão de sistemas. Estudo de casos. Utilização de software. Introdução a Sistemas. Definições de Sistemas. A abordagem sistémica de situações problema. Metodologias de Engenharia de Sistemas. Estruturação de problemas e análise de alternativas. Modelação de Sistemas. Tipos de modelos. Construção de modelos. Modelos de Simulação. Tópicos elementares sobre Teoria das Filas de Espera. Modelação e optimização de sistemas em rede. Gestão de projectos. Aplicações e utilização de software (Arena, folhas de cálculo e “solvers” de programação linear em folhas de cálculo). Métodos de Avaliação: Exame escrito, participação nas aulas e realização de trabalhos práticos. e avaliação contínua. Pré-requisitos: Sem Pré-Requisitos. Resultados de Aprendizagem: Definir e descrever abordagens metodológicas da Engenharia de Sistemas. Aplicar princípios de ES na estruturação de problemas e análise de alternativas e abordar problemas simples com auxílio de ferramentas informáticas. Distinguir e utilizar diferentes tipos de modelos. Aplicar métodos básicos de gestão de sistemas. Aplicar métodos básicos de gestão de projectos. Bibliografia: A.P. Sage, J.E. Armstrong Jr., “Introduction to Systems Engineering”, John Wiley and Sons, 2000. H.G. Daellenbach, D.C. McNickle, “Management Science - Decision making through systems thinking”, Palgrave MacMillan, 2005. W.D. Kelton, R.P. Sadowski, D.T. Sturrock, “Simulation with Arena”, McGraw-Hill, 2004. F. Alvelos, “Diapositivos sobre Elementos de Engenharia de Sistemas”, 2006. Docentes: Filipe Pereira Pinto Cunha Alvelos Luís Miguel Silva Dias 8201N6 - Laboratórios de Informática I Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 30 Créditos: 5 Métodos de Ensino: Aulas de laboratório. Programa: Utilização de editores de texto (Vi e Emacs). Utilização do LaTeX na elaboração de relatórios e outros documentos. Prática de programação na linguagem Haskell. Métodos de Avaliação: Testes práticos no computador. Pré-requisitos: Nenhuns. Resultados de Aprendizagem: - Redigir relatórios técnicos em LaTeX. - Compreender e utilizar a recursividade na resolução de pequenos problemas de programação. - Definir tipos algébricos para representar os dados de um problema. - Utilizar funções de ordem superior e polimorfismo ad-hoc com classes para abstrair padrões comuns de programação. Bibliografia: - T. Oetiker, H. Partl, I. Hyna, and E. Schlegl. The not so short introduction to LaTeX2e. - José Manuel Valença e José Bernardo Barros. Fundamentos da Computação, Livro II: Programação Funcional. Universidade do Minho, 1998. - Richard Bird. Introduction to Functional Programming using Haskell. Prentice-Hall, 1998. Docentes: José Bernardo Barros Olga Pacheco Manuel Bernardo Barros 8201N4 - Programação Funcional Regime: S1 Tipo: Obrigatória Língua de Instrução: Carga Total: 60 Créditos: 5 Métodos de Ensino: 2 horas/semana - aulas teóricas; 2 hora/semana - aulas teórico-práticas. Programa: O paradigma funcional da computação; a linguagem de programação Haskell. Expressões, valores e redução. Tipos básicos, tipos algébricos, indução e recursividade. Programação funcional de ordem superior. Polimorfismo, classes, tipos principais. Modularidade. Métodos de Avaliação: Prova individual escrita (teste final) e trabalho prático. Pré-requisitos: Nenhuns Resultados de Aprendizagem: No final desta disciplina, o aluno deverá ser capaz de: Escrever programas numa linguagem de programação funcional (Haskell). Compreender o conceito de tipo indutivo e de recursividade. Definir tipos algébricos para modelar problemas, e programar com esses tipos. Compreender a noção de tipo principal e de polimorfismo. Usar funções de ordem superior. Bibliografia: - Fundamentos da Computação, Livro II: Programação Funcional, José Manuel Valença e José Bernardo Barros, Universidade do Minho, 1998. - Introduction to Functional Programming, Richard Bird and Philip Wadler, PrenticeHall, 1988 - Introduction to Functional Programming using Haskell, Richard Bird, Prentice-Hall, 1998 - The Craft of Functional Programming, Simon Thompson, Addison-Wesley, 1996. Docentes: José Bernardo Barros Maria João Gomes Frade Luís Soares Barbosa 8201N3 - Tópicos de Matemática Discreta Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: 2 horas/semana - aulas teóricas. 2 horas/semana - teórico-práticas. Programa: Introdução ao cálculo proposicional: conectivos, fórmulas, valores de verdade, valorações, tautologias, equivalências lógicas. Quantificação existencial e quantificação universal. Introdução à teoria elementar de conjuntos: noção intuitiva de conjunto, a relação "pertence", representação de conjuntos, igualdade de conjuntos, o conjunto vazio, inclusão de conjuntos operações de união, intersecção e complementação de conjuntos; conjunto potência, pares ordenados e produto cartesiano de conjuntos, famílias de conjuntos. Princípio de indução e princípio de indução completa. Relações binárias, aplicações, relações de equivalência, conjuntos quociente. Conjuntos parcialmente ordenados: elementos especiais, conjuntos bem ordenados. Elementos de teoria de grafos: definições e conceitos básicos, subgrafos, grafos isomorfos, algumas classes de grafos. Métodos de Avaliação: Avaliação periódica / Exame final escrito. Pré-requisitos: Nenhuns. Resultados de Aprendizagem: Com a aprovação na disciplina, o estudante deverá ser capaz de: - aplicar propriedades das operações lógicas proposicionais e de quantificação; - operar com conjuntos; - aplicar a indução como método de prova; - construir exemplos de relações de equivalência e relações de ordem, identificando os seus elementos particulares (máximo, mínimo, etc.); - reconhecer funções injectivas, sobrejectivas e bijectivas; - reconhecer e caracterizar as componentes de um grafo e algumas classes de grafos. Bibliografia: Fejer, P.A., Simovici, D.A., Mathematical Foundations of Computer Science (Springer Verlag, 1991). Bloch, E., Proofs and Fundamentals (Birkhauser, 2000). Lipschutz, S., Teoria de Conjuntos (McGraw Hill, 1972), Chetwynd, A. e Diggle, P., Discrete Mathematics (Edward Arnold, 1995). Docentes: Maria Cláudia Freitas Sousa Mendes Araújo 8202N2 - Cálculo II Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Sessões teóricas e sessões teórico-práticas; acompanhamento tutorial. Programa: Funções reais de várias variáveis reais (campos escalares e campos vectoriais): aspectos analítico, geométrico/gráfico e computacional. Limites e Continuidade. Diferenciabilidade e Gradientes. Integrais Múltiplos. Integrais de Linha. Métodos de Avaliação: Avaliação contínua: Projectos semanais (orais e escritos, em grupo e individual) + 2 testes escritos. Exame final (escrito ou escrito+oral) Pré-requisitos: Conhecimentos básicos ao nível do Cálculo Infinitesimal para funções reais de uma variável real. Resultados de Aprendizagem: O aluno deverá ser capaz de compreender quer os aspectos conceituais quer os procedimentos do Cálculo de funções reais de várias variáveis reais. Em especial, deverá - analisar problemas com várias variáveis e identificar os elementos significativos; - desenvolver competências específicas na selecção e na utilização de uma ou mais estratégias de resolução de problemas matemáticos; - demonstrar capacidade para o trabalho individual e para o trabalho cooperativo, na resolução de problemas matemáticos; - desenhar (recorrendo às novas tecnologias), esboçar e analisar gráficos de funções reais de várias variáveis reais, apresentadas explícita, implícita ou parametricamente; - discutir e distinguir o conceito de Limite de uma função real de várias variáveis reais, num ponto e conhecer a notação correspondente; - calcular (analítica, gráfica e numericamente) o limite de uma função real de várias variáveis reais; - inferir se uma função real de várias variáveis reais é (ou não) contínua num determinado domínio; - definir e calcular derivadas parciais e direccionais, bem como gradientes de funções reais de várias variáveis reais; - projectar, organizar e justificar problemas de optimização (aplicações de pontos estacionários); - definir e calcular integrais duplos, triplos e de linha; - interpretar e testar os conceitos do Cálculo Integral a problemas do quotidiano de áreas científicas afins (física, química, medicina, engenharia(s) e economia). Bibliografia: Hughes-Hallett & al. Calculus (single and multivariable), 2002. Larson & al. Cálculo (volume 2), 2006. Docentes: Maria Elfrida Ramos Matos Ralha Maria do Rosário Fernandes 8202N6 - Laboratórios de Informática II Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 30 Créditos: 5 Métodos de Ensino: A disciplina, que pretende integrar os conhecimentos que são transmitidos a nível das restantes disciplinas do semestre corrente e do anterior (do 1º ano do curso), privilegia o método dito de ensino orientado ao projecto. Assim toda a aprendizagem será feita através do desenvolvimento de um projecto, que requer: a análise do enunciado; a concepção e o desenho da resolução; a implementação completa do software que realiza o sistema projectado. Para realizar essas tarefas será usado o tempo lectivo em laboratório de informática, com o acompanhamento permanente de 1 docente, o qual irá discutindo com os grupos as alternativas (para os ajudar a fazer as opções técnicas), irá guiando as actividades dos grupos, bem como esclarecendo dúvidas que os alunos coloquem. Além desse período lectivo, espera-se que os grupos desenvolvam algum trabalho extra aulas. Programa: Nenhum. Métodos de Avaliação: A disciplina é avaliada em várias etapas pela qualidade do projecto elaborado assim como pelos relatórios submetidos. Pré-requisitos: Nenhum Resultados de Aprendizagem: a capacidade de trabalho em grupo e respectiva comunicação efectiva e eficiente entre os elementos do grupo a capacidade de comunicação escrita e oral na apresentação e discussão dos processos usados e resultados obtidos a capacidade de aplicar os conceitos leccionados nas várias disciplinas do segundo semestre num projecto de índole prática a capacidade de analisar um problema e de desenvolver um algoritmo e as estruturas de dados necessários para o resolver e codificá-lo numa linguagem imperativa Bibliografia: Kernighan e Ritchie, "The C Programming Language (ANSI C)", 2.nd edition, Prentice Hall Software series, 1988 P. Guerreiro, "Elementos de Programação com C", FCA -- Editora de Informática Lda, série Tecnologias de Informação, 2ªEdição, 2001 L. Damas, "Linguagem C", FCA -- Editora de Informática Lda, 1999 I. Sampaio e A. Sampaio, "Fundamental da Programação em C", FCA -- Editora de Informática Lda, 1998 R. Barbosa, "Domine a 100% a Programação em C", volumes I e II, FCA -- editora de Informática Lda, 1997 Leendert Ammeraal, "Programas e Estruturas de Dados em C", Editora Presença, 1994 Docentes: José Manuel Machado Jorge Gustavo Rocha Miguel Pereira Rocha Rui Mendes 8202N4 - Lógica Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: 2 horas/semana – aulas teóricas. 2 horas/semana – aulas teórico-práticas. Programa: Cálculo Proposicional e Lógica de 1ª ordem: Sintaxe, Semântica e Sistemas Dedutivos. Métodos de Avaliação: Exame final escrito e trabalho teórico-prático intermédio. Pré-requisitos: Noções elementares de Teoria de Conjuntos. Resultados de Aprendizagem: Com a aprovação na disciplina, o aluno deverá ser capaz de: 1. definir funções por recursão estrutural e fazer demonstrações por indução estrutural; 2. manipular sintaxe formal da lógica proposicional e lógica de 1ª ordem; 3. usar fórmulas da lógica de 1ª ordem para representar frases em linguagem natural; 4. dar significado a fórmulas e decidir o seu valor lógica, no contexto de uma interpretação; 5. explicar e construir demonstrações formais em dedução natural; 6. descrever algumas das consequências dos teoremas da correcção e completude. Bibliografia: 1. Logic and structure, van Dalen, Springer 2. Language, Proof and Logic, Barwise and Etchemendy, CSLI Publications Docentes: Luís Filipe Ribeiro Pinto João Manuel Caramalho Melo Domingues 8202N5 - Programação Imperativa Regime: S2 Tipo: Obrigatória Língua de Instrução: Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas e de resolução de problemas. Programa: Conceitos fundamentais da Programação Imperativa: estado (variáveis), atribuições, sequenciação. Manipulação de arrays: algoritmos de ordenação, operações com matrizes. Implementação de estruturas de dados standard e algoritmos associados: listas ligadas e duplamente ligadas, stacks e queues, árvores binárias e árvores binárias de procura. Métodos de Avaliação: A avaliação tem duas componentes obrigatórias: [70%] realização de um teste individual escrito, no final do semestre(nota mínima de 9,5), [30%] realização de 3 provas laboratoriais (em grupo) em ambiente. Serão dispensados de exame os alunos que obtenham 10.0 na média ponderada dos factores acima. Serão admitidos a exame os alunos que tenham realizado as três provas laboratoriais. O exame consiste numa única prova individual escrita e a nota final é a media ponderada com as notas das provas laboratoriais (70%, 30%) Pré-requisitos: Não aplicável. Resultados de Aprendizagem: - Compreender os conceitos fundamentais da Programação Imperativa: estado (variáveis), atribuições, sequenciação. - Utilizar correctamente as estruturas de controlo de fluxo em linguagens imperativas, nomeadamente as construções condicionais e iterativas. - Manipular arrays, por exemplo em algoritmos de ordenação e operações com matrizes. - Compreender e utilizar correctamente apontadores. - Reconhecer estruturas de dados standard e algoritmos associados: listas ligadas e duplamente ligadas, stacks e queues, árvores binárias e árvores binárias de procura. Bibliografia: The C Programming Language, Brian W. Kernighan, Dennis M. Ritchie, Prentice Hall Software Series (ISBN 0-13-110362-8). Docentes: José Bernardo Barros Manuel Bernardo Barbosa 8202N1 - Sistemas de Computação Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas, de resolução de problemas e laboratoriais. Programa: Fundamentos tecnológicos dos computadores e da computação organização e estrutura de um sistema de computação; representação da informação, incluindo texto, imagens, inteiros, reais norma IEEE 754 e o instruction set dum CPU; análise ao nível do assembly, da execução de programas codificados numa linguagem imperativa; análise ao nível dos sistemas digitais, do CPU, memória, barramentos e controlador de periféricos. Métodos de Avaliação: Testes, Trabalhos Práticos e Exame. Pré-requisitos: Nenhuns. Resultados de Aprendizagem: 1. Descrever e analisar informação (textos, imagens, números inteiros/reais e instruções de CPU), em diferentes bases de representação numérica 2. Descrever a estrutura e organização de um sistema de computação, as funcionalidades dos seus componentes e as relações entre os níveis de abstracção 3. Identificar as características mais relevantes do conjunto de instruções de um CPU e descrever o funcionamento de instruções de um ISA tipo 4. Analisar e modificar código assembly de um CPU típico gerado por um compilador, incluindo estruturas de controlo/dados e invocação de procedimentos/funções 5. Descrever técnicas actuais de realização física ao nível da hierarquia de memória e da execução paralela de instruções, e seu impacto no desempenho do sistema Bibliografia: Computer Organization and Architecture - Designing for Performance, William Stallings, Prentice Hall, 6th Ed., 2002 Computer Systems: A Programmer's Perspective (CS:APP), Randal Bryant and David O'Hallaron, Prentice Hall, 2003 Docentes: João Miguel Lobo Fernandes Alberto José Gonçalves Carvalho Proença 8202N3 - Tópicos de Física Moderna Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Presencial: aulas teóricas (2 horas/semana) e aulas teórico-práticas (2 horas/semana). Programa: 1 Unidades e análise dimensional 1.1 Sistema Internacional 1.2 Conversão de unidades 1.3 Análise dimensional e estimativas 2 Relatividade restrita 2.1 Espaço-Tempo 2.2 Referenciais 2.3 O princípio da relatividade 2.4 Transformações de Lorentz 2.5 Contracção do espaço e dilatação do tempo. 2.6 O mapa do Espaço-Tempo 2.7 Regiões do Espaço-Tempo 2.8 Momento-Energia 2.9 Colisões 2.10 Espaço-Tempo curvo 3 Física Quântica: um mundo irreal? 3.1 Ondas: propriedades e fenómenos ondulatórios 3.2 Ondas de Matéria e as relações de incerteza 3.3 Spin 3.4 Indiscernibilidade 3.5 Correlação e entrelaçamento quântico 3.6 Criptografia quântica 3.7 Teleportação quântica 3.8 Computação quântica 4 Física Geral 4.1 As fases da matéria 4.2 radiação do Corpo Negro 4.3 As moléculas e o estado sólido. 4.4 A estrutura atómica 4.5 O átomo de Bohr 4.6 O núcleo atómico 4.7 Olhar mais além, até ao limite! 4.8 As partículas elementares 4.9 As interacções fundamentais 4.10 Cosmologia Métodos de Avaliação: 6 testes ao longo do semestre Pré-requisitos: Sem pré-requisitos Resultados de Aprendizagem: Efectuar conversão de unidades e dominar o conceito de análise dimensional. Efectuar a transformação de Lorentz de coordenadas e velocidades entre referenciais inerciais. Aplicar os conceitos de “dilatação de tempo”, “contracção de espaço” e tempo e comprimentos próprios a problemas numéricos concretos. Descrever fundamentos da interacção da radiação com a matéria: absorção e emissão de luz, espectro atómico de linhas e níveis de energia e o modelo atómico de Bohr. Reconhecer a descrição probabilística do mundo microscópico em que as partículas têm a si associadas uma natureza ondulatória e as ondas um carácter corpuscular. Descrever os fundamentos da estrutura atómica, molecular e do estado sólido e nuclear. Identificar o conhecimento cosmológico do universo: as partículas fundamentais, conhecimento dos tipos de forças fundamentais, o modelo cosmológico padrão e o universo em expansão. Bibliografia: E. F. Taylor, J. A. Wheeler, Spacetime Physics Martinus Veltman, Facts and Mysteries in Elementary Particle Physics Valerio Scarani, Initiation à la Physique Quantique Cummings, Laws, Redish, Cooney, Understanding Physics Docentes: Ricardo Mendes Ribeiro Paulo Coutinho 8203N6 - Algoritmos e Complexidade Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas e aulas teórico-práticas para resolução de exercícios. Programa: Análise de Complexidade de Algoritmos: - Análise da complexidade de algoritmos iterativos simples. - Uso de relações de recorrência para analisar a complexidade algorítmica de definições recursivas. - Análise assimptótica (notações O, Teta e Omega). Estratégicas algorítmicas: - Algoritmos Incrementais, divisão e conquista, programação dinâmica. - Análise de complexidade associadas a estratégias algorítmicas. - Apresentação de algoritmos clássicos para como exemplos destas estratégias (procuras, ordenações e travessias). Estruturas de Dados clássicas e algoritmos associados: - Estruturas Lineares (Stacks, queues, tabelas de hash): inserção e consulta. - Estruturas hierárquicas (heaps, árvores binárias balanceadas, árvores B): inserção, consulta e travessia. - Grafos: travessias, árvores geradoras, caminhos mais curto, fecho transitivo. Métodos de Avaliação: Prova escrita individual e pequeno projecto prático para resolver em grupo de forma autónoma. Pré-requisitos: Conhecimentos de programação imperativa. Resultados de Aprendizagem: - Utilizar estruturas de dados não-lineares eficientes para pesquisa: árvores binárias balanceadas e tabelas de hash. - Utilizar estruturas de dados baseadas em grafos: representar grafos em computador; algoritmos clássicos para grafos. - Analisar assimptoticamente o tempo de execução de algoritmos iterativos e recursivos simples. Bibliografia: - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms. MIT Press, Cambridge,Mass., second edition, 2001. - Robert L. Kruse, Bruce P. Leung, and Clovis L. Tondo. Data Structures and Program Design in C. Prentice Hall, second edition, 1997. - Donald E. Knuth. The Art of Computer Programming : (1) Fundamental Algorithms, (2) Seminumerical Algorithms, (3) Sorting and Searching. Addison/Wesley, third edition, 1997/98. 3 volumes. Docentes: José Bernardo Barros Manuel Alcino Cunha Maria João Frade 8203N4 - Arquitectura de Computadores Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas e sessões teórico-praticas Programa: Hierarquia de Memória Arquitectura do Processador Conjunto de Instruções do Y86 Desenho Lógico e Linguagem de Controlo de Hardware Modelo Sequencial Encadeamento Limitações de Encadeamento Dependências de Dados e de Controlo Atalhos de Dados Prognóstico de Salto Optimização de Desempenho de Programas Capacidade e Limitações dos Compiladores Métricas de Desempenho Técnicas Independentes da Arquitectura Estudo de Caso - Intel P6 Técnicas Dependentes da Arquitectura Conversão de instruções em Operações Modelo Gráfico de execução de operações Desenrolar de Ciclos Paralelismo ao Nível das Instruções Limitações do Paralelismo Perfis de Execução Métodos de Avaliação: Avaliação periódica/exame escrito Pré-requisitos: Conhecimentos fundamentais de organização e arquitectura de Sistemas de Computação. Resultados de Aprendizagem: Após a frequência de Arquitectura de Computadores” o formando deve ser capaz de: descrever as principais características da arquitectura dos computadores e processadores modernos, analisando o respectivo impacto no desempenho esperado do sistema; desenvolver e/ou optimizar programas, tendo em consideração as características do sistema de computação alvo. Bibliografia: Computer Systems: A Programmer's Perspective (CS:APP), Randal Bryant and David O'Hallaron, Prentice Hall, 2002 Docentes: Luís Paulo Peixoto dos Santos 8203N5 - Comunicação de Dados Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: A unidade curricular consiste em aulas Teóricas (T) e Teórico-Práticas (TP). As aulas TP consistem em: i) realização de exercícios TP por forma a consolidar os conceitos apresentados e discutidos nas aulas teóricas e ii) discutir/planear o desenvolvimento de possíveis aplicações em tópicos específicos cobertos pelo programa da unidade curricular. Programa: Teoria da informação e codificação da fonte: medida de informação, entropia, codificação de fontes com e sem memoria; Digitalização: amostragem, quantização uniforme e não uniforme, conversão AD; Multiplexagem: TDM síncrono e estatístico, modelos de filas de espera, FDM e outras; Sinais e sistemas de transmissão: espectro de um sinal, transmissão e filtragem, limitações fundamentais, ganhos e perdas de potência, ruído, relação potencia de sinal/ruído; Códigos para controlo de erros: detecção e correcção de erros, códigos lineares de bloco, códigos cíclicos. Métodos de Avaliação: Avaliação periódica – dois testes de avaliação -: cada teste de avaliação consiste numa prova com questões teórico e teórico práticas abrangendo uma parte da matéria a definir pelo docente. A nota final será a média das classificações obtidas nestas duas provas. Os alunos que não tenham obtido aproveitamento nos elementos de avaliação periódica descritos poderão fazer um exame final. Pré-requisitos: Nenhum Resultados de Aprendizagem: Definir, discutir e relacionar os conceitos básicos da teoria das telecomunicações. Explicar os componentes fundamentais dum sistema de comunicações digital ou analógico. Listar e discutir as principais limitações da comunicação à distância e os mecanismos subjacentes aos sistemas de telecomunicações actuais. Compreender os conceitos subjacentes aos principais algoritmos, técnicas e ferramentas relacionadas com a digitalização, compressão e processamento de sinais multimédia. Compreender as técnicas e a teorias de suporte que permitem a detecção e correcção de erros nas comunicações digitais. Bibliografia: - V. Freitas, Fundamentos das Telecomunicações, Universidade do Minho, 2003 - R. Ziemer, W. Tranter, Principles of Communications, 5th Edition John Wiley & Sons, 2002 - A. Bruce Carlson, Communication Systems, McGraw-Hill Series, 2001 - Pedro Sousa, Data Communications, - Notas de apoio às aulas teóricas, Grupo de Comunicações por Computador, DI/UM, 2007. Docentes: Pedro Sousa (T, TP) Bruno Dias (TP) 8203N3 - Engenharia Económica Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 45 Créditos: 5 Métodos de Ensino: Aula Teórica e Aula Teórico-Prática Programa: O âmbito da economia da empresa. O modelo da procura e da oferta. Teoria da procura. Teoria da produção. Teoria dos custos. Estruturas de mercado. Política de preços. Aspectos Gerais da Empresa. Noções de Contabilidade Geral. O plano oficial de contabilidade. Mapas financeiros. Métodos de Avaliação: Avaliação periódica e Exame final escrito Pré-requisitos: Sem pré-requisitos. Resultados de Aprendizagem: Analisar o funcionamento de uma economia; Analisar o comportamento dos consumidores e das empresas; Explicar o funcionamento de diferentes estruturas de mercado; Caracterizar as funções gerais de gestão de uma empresa; Compreender os principais mapas financeiros de uma empresa; Aplicar ferramentas de análise económica. Bibliografia: Managerial Economics in a Global Economy, D. Salvatore, McGraw-Hill, 2nd Edition. Economia da Empresa, J. Mata, Fundação Calouste Gulbenkian, 2ª Edição, 2002. Microeconomia e Comportamento, R. Frank, McGraw-Hill, 3ª Edição,1998. Princípios de Economia, R. Frank e B. Bernanke, McGraw-Hill, 2004. Plano Oficial de Contabilidade (POC) Comentado, C. Santiago, Texto Editores, 2005. Apontamentos de Engenharia Económica elaborados pelos docentes. Docentes: Jorge Miguel de Oliveira Sá e Cunha Paulo Sérgio Lima Pereira Afonso 8203N2 - Estatística Aplicada Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas/ Trabalhos em Grupo/ Exercícios Práticos/ Resolução de exercícios em EXCEL e SPSS. Programa: Estatística Descritiva. Probabilidades e teorema de Bayes. Inferência Estatística: Inferência paramétrica e não paramétrica. Regressão e correlação. Regressão Métodos de Avaliação: Aulas/Exercícios Práticos/ Resolução de exercícios em EXCEL e SPSS. Pré-requisitos: Nenhuns Resultados de Aprendizagem: - Sintetizar e formular hipóteses associadas a um problema; - Planear um estudo experimental; - Recolher os dados de acordo com o plano de amostragem; - Identificar e classificar as variáveis em estudo; - Analisar os dados utilizando os métodos estatísticos mais adequados; - Tirar inferências, decidir e/ou concluir, face aos resultados obtidos; - Utilizar ferramentas informáticas (SPSS) na análise estatística de dados. Bibliografia: Guimarães, Rui C. e Cabral, J. A. Sarsfield (1997), “Estatística”, McGraw-Hill Pestana, M. H. (2001), “Análise de dados para ciências sociais: a complementaridade do SPSS“, Edições Sílabo Conover, W. J. (1980) “Pratical Nonparametric Statistics”, 2nd ed., John Wiley & Sons., Docentes: Ana Cristina Silva Braga (docente responsável) Lino António Costa Celina Pinto Leão 8203N1 - Introdução aos Sistemas Dinâmicos Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 45 Créditos: 5 Métodos de Ensino: 2 horas/semana – aulas teóricas. 1 hora/semana – aulas teóricopráticas. Programa: Equações diferenciais ordinárias, aplicações à dinâmica de sistemas mecânicos, oscilações lineares. Equações diferenciais com derivadas parciais, análise de Fourier, equação de onda e equação de difusão. Sistemas não-lineares, sistemas caóticos. Implementação computacional de sistemas dinâmicos. Aplicações à dinâmica de fluidos, turbolência. Métodos de Avaliação: Avaliação periódica (um teste e um trabalho de grupo) ou exame final escrito. Pré-requisitos: Cálculo. Resultados de Aprendizagem: Descrever técnicas de integração e exemplificar aplicações de equações diferenciais ordinárias (EDOs). Analisar qualitativamente sistemas de EDOs não-lineares. Aplicar ferramentas computacionais no contexto da unidade curricular. Descrever técnicas de integração e aplicações de equações diferenciais de derivadas parciais. Bibliografia: J.C. Robinson, An introduction to ordinary differential equations, Cambridge U.P. 2004. W.E. Boyce and R.C. DiPrima, Elementary Differential Equations and Boundary Value Problems, John Wiley 1992. P.J. Olver, Applied Mathematics Lecture Notes, 2007. Docentes: Salvatore Cosentino 8204N4 - Análise de Custos Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas (síntese dos conceitos, exemplos demonstrativos, estudo de casos e discussão de temas) e teórico-práticas (resolução de problemas, estudo de casos, discussão de temas) Programa: O conceito de custo. O juro e as equações financeiras. Equivalência económica. Comparação de custos. Amortização. Impostos. Inflação. Fluxos monetários de um empreendimento. Métodos e índices de avaliação económica de projectos. Incerteza e risco na avaliação de projectos. Métodos de Avaliação: Testes individuais e/ou trabalho de grupo. Pré-requisitos: Não tem. Resultados de Aprendizagem: Identificar conceitos e técnicas de avaliação e selecção económica de projectos; Descrever conceitos e técnicas de avaliação e selecção económica de projectos; Usar técnicas de avaliação e selecção económica de projectos em problemas de engenharia; Propor técnicas de avaliação e selecção económica de projectos em problemas específicos. Bibliografia: Park, C.S. (2001), Contemporary Engineering Economics, Prentice Hall. Jelen, F.C., Blanck, J. H (1993), Cost and Optimization Engineering, McGraw Hill. Blank, L.T. and Tarquin, A.J. (1989), Engineering Economy, McGraw-Hill. Docentes: Fernando Carlos Cabrita Romero 8204N5 - Cálculo de Programas Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas e aulas teórico-práticas para resolução de exercícios. Programa: Especificação e verificação de programas imperativos: - Lógica de Floyd-Hoare para verificar a correcção de algoritmos imperativos. - Anotação dos programas com obrigações de prova. Cálculo sobre programas funcionais: - Programação funcional usando combinadores point-free. - Técnicas para eliminação de variáveis na definição de funções. - Álgebra da programação funcional: cálculo equacional usando propriedades universais e leis derivadas. Padrões de recursividade: - Definição genérica de tipos de dados indutivos usando functores. - Definição de funções recursivas usando folds e unfolds. - Cálculo com funções recursivas: indução vs. fusão. Métodos de Avaliação: Teste individual e participação nas aulas teórico-práticas. Pré-requisitos: Conhecimentos básicos sobre programação imperativa, programação funcional e lógica de primeira ordem. Resultados de Aprendizagem: - Verificar a correcção de pequenos programas imperativos previamente anotados. - Anotar pequenos programas imperativos com pré e pós condições e invariantes de ciclo. - Eliminar as variáveis na definição de uma função recorrendo a combinadores pointfree. - Demonstrar a equivalência de funções point-free envolvendo somas e produtos. - Codificar funções recursivas simples usando folds e unfolds. - Demonstrar a equivalência de funções recursivas usando a lei de fusão. Bibliografia: M. Gordon. Specification and Verification I. University of Cambridge, 1999. J.N. Oliveira. Program Design by Calculation. Departamento de Informática, Universidade do Minho, 2005. A. Cunha. Cálculo de Programas: notas teórico-práticas. Departamento de Informática, Universidade do Minho, 2005. Docentes: Manuel Alcino Cunha José Bernardo Barros Maria João Frade 8204N3 - Electromagnetismo Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas (2 horas/semana) e aulas teórico-práticas (2 horas/semana). Programa: 1. Análise vectorial Revisões: escalares e vectores; álgebra vectorial; sistemas de coordenadas cartesianas, cilíndricas e esféricas; produto escalar; produto vectorial. 2. Lei de Coubomb e campo eléctrico Lei de Coulomb. Campo eléctrico de uma carga pontual. Linhas de campo eléctrico. Princípio de sobreposição de forças de Coulomb. Campo eléctrico de uma distribuição discreta de cargas estáticas. Campo eléctrico de distribuições contínuas de cargas eléctricas. 3. Lei de Gauss Densidade de fluxo eléctrico, Lei de Gauss. Aplicações da Lei de Gauss. Operadores divergência e laplaciano. Forma diferencial da lei de Gauss. 4. Energia e potencial eléctrico Conservação de energia electrostática. Potencial eléctrico de uma carga pontual e de um sistema de cargas. O campo eléctrico como derivando do potencial eléctrico: E = -gradV. Superfícies equipotenciais. Condutor eléctrico como um volume equipotencial. Definição de dipolo eléctrico. Potencial de um dipolo eléctrico num ponto muito afastado do dipolo. Densidade de energia no campo electrostático. 5. Corrente eléctrica e condutores Corrente e densidade de corrente eléctrica. Continuidade de corrente eléctrica. Mobilidade dos portadores de carga. Condutividade eléctrica. Lei de Ohm; resistência; resistividade. Energia dissipada numa resistência: efeito Joule. Leis de Kirchhoff para circuitos de corrente contínua: lei das malhas e lei dos nós. Resistência equivalente de associações de resistências em série e em paralelo. Instrumentos de medida de intensidade de corrente eléctrica (amperímetro) e diferença de potencial (voltímetro). Condutores metálicos. Propriedades dos condutores e condições de fronteira. 6. Capacidade e dieléctricos Definição de condensador. Definição de dieléctrico. Capacidade de condensadores de armaduras paralelas e armaduras cilíndricas. Polarizabilidade eléctrica. Mecanismos de polarização de um dieléctrico. Cargas de polarização. Vectores polarização e deslocamento eléctrico. Relação entre polarização e campo eléctrico; susceptibilidade eléctrica. Relação entre o vector deslocamento eléctrico e o campo eléctrico; constante dieléctrica. Constante dieléctrica relativa. Teorema de Gauss na presença de um meio (material) dieléctrico. Condensador com dieléctrico entre as armaduras. Campo de ruptura dieléctrica. Energia potencial eléctrica armazenada num condensador. 7. Equações de Poisson e de Laplace Equação de Poisson e equação de Laplace. 8. O campo magnético estacionário Campo magnetostático. Vector indução magnética. Lei de Biot-Savart. Força que actua sobre uma carga em movimento submetida à acção de um campo magnético: Lei de Laplace. Força sobre uma carga submetida simultaneamente à acção de um campo magnético e de um campo eléctrico: fórmula de Laplace-Lorentz. Força entre dois elementos de corrente. Cálculo da indução magnética de uma corrente linear infinita e no interior de uma bobina infinita. Teorema de Gauss para o campo magnetostático. Expressão da divergência do vector indução magnética. Forma integral da lei de Ampère. Forma diferencial da lei de Ampère. Rotacional e Teorema de Stokes. Fluxo magnético e densidade de fluxo magnético. 9. Forças magnéticas, materiais magnéticos Força numa carga em movimento. Força num elemento de corrente. Força entre elementos de corrente. Introdução ao estudo dos materiais magnéticos: meios diamagnéticos, paramagnéticos e ferroeléctricos. Vector magnetização. Relação entre campo magnético, indução magnética e magnetização. Permeabilidade e susceptibilidade magnéticas. 10. Campos variáveis no tempo e equações de Maxwell Lei de Faraday na forma integral e na forma diferencial. Lei de Lenz. Corrente de deslocamento. Força electromotriz induzida num circuito pela variação do fluxo da indução magnética. Corrente de deslocamento. Equações de Maxwell da forma integral e na forma diferencial. 11. Linhas de transmissão Propagação em linhas de transmissão. As equações das linhas de transmissão. Impedância característica da linha; constante de propagação; atenuação; constante de fase; velocidade de propagação. Propagação sem perdas e com poucas perdas. Análise complexa. 12. A onda electromagnética plana Ondas planas como uma solução da equação de onda do campo electromagnético. Comprimento de onda; velocidade de propagação no vazio e num meio material; índice de refracção. Relação entre os vectores campo eléctrico e campo magnético numa onda plana; ortogonalidade entre os vectores campo eléctrico, campo magnético e a direcção de propagação da onda electromagnética; as ondas electromagnéticas planas como ondas transversais. Teorema de Poynting e potência da onda. 13. Reflexão e dispersão de ondas planas Reflexão e refracção de ondas planas. Reflexão de ondas em múltiplas interfaces. Dispersão e prismas. Princípio de Huygens. Reflexão total interna. Princípio de Fermat. Reflexão total e transmissão total. As condições de interferência. Experiência de Young de dupla fenda. Interferência em filmes finos. Polarização das ondas luminosas. Métodos de Avaliação: Testes e trabalhos teórico-práticos ou Exame. Pré-requisitos: Conhecimentos básicos de cálculo diferencial e integral. Resultados de Aprendizagem: Aplicar conceitos básicos de electrostática e magnetostática. Enunciar as leis da indução electromagnética. Calcular a força electromotriz induzida e investigar aplicações práticas relacionada com este conceito. Aplicar as equações de Maxwell. Aplicar as equações de onda electromagnética. Enunciar o teorema de Poynting. Descrever a propagação de ondas em guias de onda. Descrever o comportamento de ondas planas electromagnéticas em diferentes meios. Resolver problemas que envolvam propagação de ondas. Compreender os fundamentos das comunicações ópticas. Bibliografia: Hayt, Eletromagnetismo,7ª edição, McGraw-Hill (2008) Halliday, Resnick e Walker, Fundamentals of Physics, Jonh Wiley 7th edition (2005) Jaime E. Villate, Electromagnetismo, McGraw-Hill (1999). F. Sears, M. Zemansky e H. Young, "Física", Vol. I e II, Livros Técnicos e Científicos, 1991. J.D. Deus, M. Pimenta, A. Noronha, T. Peña e P. Brogueira, "Introdução à Física", McGraw-Hill, 2000. D.J. Griffiths, "Introduction to Electrodynamics", Prentice-Hall, 1999. E. Hecht, "Óptica", Fundação Calouste Gulbenkian, 1991. P. Lorrain, D. Corson e F. Lorrain, "Campos e Ondas Electromagnéticas", 3ª edição, Fundação Calouste Gulbenkian, Lisboa, 2000. Docentes: Anabela Gomes Rolo Cacilda Moura 8204N6 - Laboratórios de Informática III Regime: S2. Tipo: Obrigatória. Língua de Instrução: Português. Carga Total: 30. Créditos: 5. Métodos de Ensino: - Seminários e sessões de acompanhamento dos trabalhos. Programa: - Metodologias e processos de desenvolvimento de software. - Ambientes e ferramentas de desenvolvimento de software. - Validação, teste e manutenção de software. - Gestão de projectos de software. - Fábricas de software. Métodos de Avaliação: - Trabalhos práticos. Pré-requisitos: Noções e prática elementar de algoritmia e programação. Resultados de Aprendizagem: - dominar os conceitos e a terminologia base da Engenharia de Software. - saber desenvolver processos de análise de requisitos de software. - conhecer as diversas etapas de um projecto de engenharia de software. - conhecer as técnicas, as normas e os requisitos principais para a qualidade do software. - saber o que é uma fábrica de software e conhecer as suas principais estruturas. - contactar com empresas de engenharia de software. Bibliografia: - Ian Sommerville. Software Engineering, 8th Edition, Pearson Education (Addison Wesley), 2007. - Alain Abran, James W. Moore, Pierre Bourque, Robert Dupuis, Leonard L. Tripp. Guide to the Software Engineering Body of Knowledge - 2004 Version IEEE, 2004. - Carlo Ghezzi, Mehdi Jazayeri and Dino Mandrioli. Fundamentals of Software Engineering, Second Edition, Pearson Education (Addison Wesley), 2003. - Hans Van Vliet. Software Engineering: Principles and Practice, 2nd Edition, John Wiley and Sons, 2002. Docentes: Orlando Belo, César Analide, Paulo Novais e Victor Alves 8204N2 - Programação Orientada aos Objectos Regime: S2 Tipo: Obrigatória Língua de Instrução: Carga Total: 60 Créditos: 5 Métodos de Ensino: Programa: Métodos de Avaliação: Pré-requisitos: Resultados de Aprendizagem: Bibliografia: Docentes: 8204N1 - Sistemas Operativos Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: 2h aulas teórica + 2h sessões práticas em laboratório de PCs, por semana Programa: Conceitos gerais de programação de sistemas e organização de sistemas operativos. Programação Concorrente e Gestão de Processos. Gestão de Memória real e virtual. 1. 2. 3. 4. 5. Gestão de periféricos e sistemas de ficheiros. Métodos de Avaliação: duas provas de avaliação Pré-requisitos: não tem Resultados de Aprendizagem: Compreender o papel do sistema operativo num sistema informático. Demonstrar conhecimento da arquitectura e operação de sistemas operativos actuais. Perceber o conceito de processo/tarefa e a forma como um sistema operativo gere múltiplas actividades. Discutir compromissos, mecanismos e estratégias de gestão de recursos. Escrever programas multi-tarefa simples utilizando correctamente primitivas de sincronização e comunicação. Bibliografia: Silberschatz, A., Galvin, P., Gagne, G., “Applied Operating Systems Concepts”, 7th Ed., John Wiley & Sons, Inc., 2004. Tanenbaum, A., “Modern Operating Systems”, 2nd Ed., Prentice Hall, 2001. Docentes: Francisco Soares de Moura, Rui Oliveira, Carlos Baquero, António Luís Sousa 8205N1 - Bases de Dados Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: 2 horas/semana – aulas teóricas. 2 horas/semana – aulas teórico-práticas. Programa: Sistemas de Informação e bases de dados; A linguagem SQL; Bases de dados distribuídas; Bases de dados dedutivas; Sistemas gestores de bases de dados; Administração de bases de dados. Métodos de Avaliação: Prova escrita e trabalho prático Pré-requisitos: nenhuns Resultados de Aprendizagem: 1) distinguir dados, informação e conhecimento. 2) aplicar as formas normais e definir conceptualmente o modelo de dados para um problema específico. 3) escrever interrogações de bases de dados relacionais usando a álgebra relacional 3) utilizar a linguagem SQL para administrar, manter e interrogar bases de dados relacionais. 4) desenvolver aplicações informáticas que operem sobre bases de dados, incluindo aplicações baseadas na Web. Bibliografia: Ullman J., Principles of Database and Knowledge-Base Systems, Volumes I and II, Computer Science Press, New York, USA, 1989; Bell D., and Grimson J., Distributed Database Systems, Addison-Wesley Publishing Company, New York, USA, 1992. Ramakrishman R. and Gehrke G., Database Management System, 3rd Edition, Mc Graw Hill High Edication, 2003. Docentes: José Manuel Ferreira Machado António Carlos da Silva Abelha 8205N2 - Desenvolvimento de Sistemas de Software Regime: S1 Tipo: Obrigatória Língua de Instrução: Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas e aulas laboratoriais Programa: Introdução aos Sistemas de Software: definição, modelos, processo de desenvolvimento de software. Modelação Orientada aos Objectos de Sistemas de Informação em UML: Introdução à Unified Modelling Language (UML); Modelação Estrutural; Modelação Comportamental; Modelação Arquitectural; Estudos de Casos. Métodos de Avaliação: Exame final escrito e trabalho prático Pré-requisitos: Nenhum formal (conhecimentos de Programação Orientada aos Objectos são desejáveis). Resultados de Aprendizagem: Os alunos deverão ser capazes de: - Reconhecer os diferentes tipos de diagramas da UML ; -Compreender modelos (de requisitos/estruturais/comportamentais) descritos em UML; - Conceber sistemas de software utilizando UML; - Implementar sistemas de software a partir de modelos UML. Bibliografia: G. Booch, J. Rumbaugh, I. Jacobson. The Unified Modeling Language User Guide. Addison-Wesley, 2005. ; J. Rumbaugh, I. Jacobson, G. Booch. The Unified Modeling Language Reference Manual. Addison-Wesley, 2004. ;M. Fowler. UML Distilled. Addison-Wesley, 2003. (third edition). Docentes: António Nestor Ribeiro 8205N6 - Métodos Numéricos Regime: S1 Tipo: Obrigatória Língua de Instrução: português Carga Total: 60 Créditos: 5 Métodos de Ensino: Apresentação de conteúdos. Aprendizagem activa: inclui aprendizagem baseada em problemas. Programa: Erros e algarismos significativos. Resolução de equações algébricas não lineares. Métodos da secante e de Newton, condições de convergência. Método de Newton para sistema de equações não lineares. Interpolação polinomial. Diferenças divididas, fórmula de Newton. Integração numérica, fórmulas simples e compostas. Aproximação dos mínimos quadrados. Modelos lineares. Modelo não linear, método Gauss-Newton. Optimização não linear sem restrições. Condições de optimalidade. Algoritmo de Davies, Swann e Campey para optimização univariável. Optimização multivariável: método de procura de Nelder-Mead e métodos do gradiente. Globalização dos algoritmos. Optimização não linear com restrições. Condições de optimalidade. Método da programação quadrática sequencial. Função mérito. Métodos de Avaliação: Avaliação contínua (inclui resolução de problemas e realização de trabalhos práticos) e um teste escrito. Pré-requisitos: Nenhuns Resultados de Aprendizagem: Descrever, analisar e aplicar métodos iterativos para resolução de equações não lineares. Aproximar funções, integrais e ajustar modelos pela técnica dos mínimos quadrados. Utilizar métodos analíticos de optimização. Escolher, analisar e implementar métodos numéricos de optimização. Utilizar software computacional para resolver problemas de engenharia e avaliar os resultados. Bibliografia: S.C. Chapra e R.P. Canale, Numerical Methods for Engineers: with Programming and Software Applications, 3rd. edition, McGraw-Hill, 1998. E.M.G.P. Fernandes, Computação Numérica, 2ª edição, Universidade do Minho, 1998. G.J. Lastman e N.K. Sinha, Microcomputer-Based Numerical Methods for Science and Engineering, Saunders College Publishing, 1989. S.G. Nash e A. Sofer, Linear and Nonlinear Programming, McGraw-Hill, 1996. J. Nocedal e S.J. Wright, Numerical Optimization, Springer Verlag, 1999. Docentes: Edite Manuela G.P. Fernandes M. Teresa T. Monteiro Ana Maria A.C. Rocha Isabel A.C.P. Espírito Santo 8205N3 - Modelos Determinísticos de Investigação Operacional Regime: S1 Tipo: Obrigatória Língua de Instrução: Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas e teórico-práticas Programa: Programação linear. Problema de transportes. Programação inteira. Programação dinâmica. Métodos de Avaliação: Exames escritos e trabalhos Pré-requisitos: Nenhuns Resultados de Aprendizagem: - Desenvolver a capacidade de resolução de problemas (modelos determinísticos), com ênfase em problemas de engenharia de sistemas. - Conhecer as técnicas e os métodos de Investigação Operacional apresentados na disciplina, e ser capaz de os aplicar na resolução de instâncias de problemas de pequena dimensão. - Desenvolver a capacidade de analisar sistemas complexos, de criar modelos para os descrever, de obter soluções para esses modelos utilizando programas computacionais adequados, de validar os modelos obtidos, de interpretar as soluções obtidas, e de elaborar recomendações para o sistema em análise. - Compreender a importância da avaliação das soluções, e ser capaz de realizar análises de sensibilidade. Bibliografia: - Guimarães Rodrigues, Investigação Operacional – Modelos determinísticos. Jorge Guerreiro, Alípio Magalhães, Manuel Ramalhete, Programação Linear (Volumes I e II) Mc Graw-Hill Portuguesa. - Tavares, L. V., Oliveira, R.C., Themido, I.H. e Correia, F.N., Investigação. Operacional, McGraw-Hill, Lisboa, 1996. - Harvey M. Wagner, Principles of Operations Research, Prentice Hall. - Hamdy Taha, Operations Research - An Introduction. Collier MacMillan International Editions Docentes: José Manuel Vasconcelos Valério de Carvalho Cláudio Alves Manuel Carlos Figueiredo Pedro Chaves 8205N5 - Redes de Computadores Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 45 Créditos: 5 Métodos de Ensino: Aulas teóricas onde é exposta a matéria teórica (T) fundamental, em formato de seminário assistido e interactivo. As aulas teórico-práticas (TP) consistem na realização de fichas TP e de um trabalho de desenvolvimento na área de redes de computadores, segundo calendário a definir. As fichas TP, orientadas ao trabalho em grupo (max. 3 elementos), devem ser realizadas e concluídas durante a aula. Os alunos deverão ter conhecimento dos conceitos teóricos que sustentam cada trabalho, podendo haver a necessidade de realizarem uma pequena exposição oral do tópico em estudo, caso seja solicitado pelo docente. Programa: Introdução à comunicação de dados. Elementos protocolares. Controlo da ligação de dados. O protocolo HDLC. Redes de computadores. Interligação de redes TCP/IP. Estudo do Protocolo IP. Métodos de Avaliação: A avaliação da aprendizagem é efectuada com base nas seguintes componentes: * Realização de fichas teórico-práticas (20%) * Trabalho de desenvolvimento (30%) * Exame envolvendo toda a matéria leccionada (50%). Duração 2h. As componentes teórica e experimentais têm uma nota mínima de 8.0 e 10.0 valores, respectivamente. Pré-requisitos: Nenhum Resultados de Aprendizagem: Compreender os princípios da comunicação de dados, e estruturação protocolar. Conhecer as principais tecnologias de rede local (com e sem fios), entender o seu funcionamento, planeamento e interligação (níveis 2 e 3). Bibliografia: PMC, MSL, Redes de Computadores, Notas de apoio às aulas teóricas, Grupo de Comunicações por Computador, DI/UM, 2007. J. Kurose and K. Rose, Computer Networking: A Top Down Approach Featuring The Internet, Addison-Wesley, ISBN: 0-321-49770-8, 4th Edition 2008; W. Stallings, Data and Computer Communications, 8ª Edição, Prentice Hall, ISBN: 013-2433109, 2007. A.S.Tanenbaum, Computer Networks, 4ª Edição, Prentice Hall, ISBN: 0130661023, 2003. Docentes: Paulo Martins de Carvalho (T,TP) Maria Solange Rito Lima (TP) 8205N4 - Sistemas Distribuídos Regime: S1 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas e aulas práticas. Programa: Concorrência em memória partilhada: exclusão mútua, deadlocks, semáforos, monitores (tipos abstractos de dados concorrentes, variáveis de condição,espera e semânticas de sinalização, invariantes e predicados, concorrência em linguagens orientadas a objectos); Sistemas distribuídos: caracterização de sistemas distribuídos; modelos síncronos e assincronos; paradigmas de programação de sistemas distribuídos; modelo cliente-servidor. Métodos de Avaliação: Exames escritos. Pré-requisitos: Nenhuns. Resultados de Aprendizagem: - Compreender os principais modelos e primitivas de programação concorrente em memória partilhada; - Escrever aplicações concorrentes em memória partilhada; - Compreender os principais modelos e primitivas de programação concorrente em sistemas distribuídos; - Escrever aplicações distribuídas baseadas em passagem de mensagens e modelo cliente-servidor, incluindo servidores multi-threaded. Bibliografia: Principles of Concurrent and Distributed Programming: Algorithms and Models, M. Ben-Ari, Prentice-Hall, 2006; Java Concurrency in Practice, Brian Goetz, Tim Peierls, Joshua Bloch, Addison Wesley, 2006 Docentes: Paulo Sérgio Almeida Carlos Baquero Moreno Victor Francisco Fonte 8206N2 – Computação Gráfica Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas Teóricas e Teórico-Práticas Programa: Introdução à API do OpenGL, contexto histórico. Sistemas de coordenadas e transformações geométricas.Tipos de projecção: ortográfica e perspectiva. Texturas: Aplicação de imagens a polígonos; coordenadas de texturas, matrizes de texturas. Filtros e outras opções existentes em OpenGL. Mipmapping. Iluminação Local: Tipos de luzes, componentes da luz, modos de shading: Flat, Gouraud e Phong. As equações para cálculo da Iluminação. Técnicas de representação de polígonos e sua influência na performance: Display Lists, Vertex Arrays. Análise de performance e detecção de botlenecks. Técnicas de optimização básicas: View Frustum Culling, Partição Espacial Shaders (GLSL): Arquitectura e fundamentos. Contexto histórico. Shaders para texturas e iluminação em GLSL Texturas Procedimentais e GLSL Efeitos Avançados através de shaders: non-photorealistic shaders, bump mapping,... Iluminação - Sombras: Sombras no plano, Shadow Volumes, Shadow Maps, Spherical Wavelets, All-frequency shadows Métodos de Avaliação: Prova escrita e trabalho prático realizado em grupo Pré-requisitos: Conhecimentos básicos de geometria analítica e programação. Resultados de Aprendizagem: Conceber algoritmos para aplicações gráficas em tempo real. Aplicar técnicas de optimização para aumento de desempenho. Programar efeitos gráficos no GPU. Analisar, e avaliar soluções algoritmicas para o desenvolvimento de aplicações gráficas 3D. Bibliografia: "OpenGL Programming Guide", Woo, Neider, Davis and Schneider, Addison Wesley. Referência obrigatória! "Interactive Computer Graphics", Edward Angel, Addison Wesley. Boa introdução. "Real-Time Rendering", Moller and Haines. Boa visão geral do estado da arte. "OpenGL Shading Language", Randi J. Rost. Excelente livro de introdução à programação de shaders em GLSL. Docentes: António Ramires Fernandes 8206N4 - Comunicações por Computador Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Exposição teórica com resolução de exercícios teórico-práticos; Realização de trabalhos práticos em aulas laboratoriais; Programa: Conceitos, algoritmos e protocolos de encaminhamento. Vector Distância (DV). Estado das Ligações (LS). Comparação entre DV e LS. Protocolos da Camada de Transporte (UDP e TCP). Controlo de Congestão Algoritmos de prevenção. Programação usando sockets TCP e UDP. Protocolos da camada de aplicação. HTTP, FTP, SMTP. Serviços de directoria. DNS e LDAP. Métodos de Avaliação: 2 testes escritos, trabalhos teóricos-práticos e projecto a realizar em aulas laboratoriais. Pré-requisitos: Conceitos básicos de redes (nível IP e inferiores) Resultados de Aprendizagem: (i) Discutir diferentes protocolos de encaminhamento interno e externo (ii) Analisar, relacionar e sintetizar soluções e protocolos para encaminhamento dinâmico (iii) Configurar interligações de rede e de encaminhamento IP (ii) Caracterizar a congestão na rede e discutir metodologias de prevenção e controlo em redes de comutação de pacotes (iv) Aplicar metodologias de desenvolvimento de aplicações por camadas (v) Relacionar o desempenho de aplicações básicas TCP/IP com as características da rede de suporte (tempos de transmissão e propagação, perdas e atrasos em filas). Bibliografia: * J. Kurose et al, Computer Networking . A Top Down Approach Featuring the Internet, Addisson-Wesley, 2002; * W.Stallings, Data and Computer Communications, 7 Edição, Prentice Hall, 2004. * A.S.Tanenbaum, Computer Networks, 4 Edição, Prentice Hall, 2002 Docentes: António Duarte Costa Bruno Alexandre Dias Pedro Nuno Sousa 8206N6 - Laboratórios de Informática IV Regime: S2 Tipo: Obrigatória Língua de Instrução: Português/Inglês Carga Total: 30 Créditos: 5 Métodos de Ensino: Aprendizagem baseada em projecto. Programa: Desenvolvimento de um projecto em grupo e de forma autónoma pelos alunos. Os projectos são propostos e supervisionados por docentes dos diversos departamentos envolvidos na licenciatura. Os projectos devem abordar problemas típicos da área de Engenharia Informática. Métodos de Avaliação: Avaliação contínua, relatório final e apresentação e defesa pública do projecto. Pré-requisitos: Sendo o projecto final da licenciatura, pressupõe um domínio básico de todos os conceitos e tecnologias relaccionados com a Engenharia Informática. Resultados de Aprendizagem: - Planear e desenvolver um projecto na área de Engenharia Informática. - Divulgar os resultados do projecto através de um relatório e de uma apresentação pública. Bibliografia: Docentes: Todos os que supervisionarem projectos. 8206N3 - Modelos Estocásticos de Investigação Operacional Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas e teórico-práticas. Programa: Introdução aos processos estocásticos. Programação dinâmica estocástica. Teoria de filas de espera. Técnicas de previsão. Gestão e controlo de stocks – modelos tradicionais para procuras contínuas. Métodos de Avaliação: Projectos em Grupo; Exame Final. Pré-requisitos: Sem Pré-Requisitos. Resultados de Aprendizagem: Aplicar as técnicas de Investigação Operacional leccionadas (modelos estocásticos) na resolução de instâncias de problemas de pequena dimensão. Aplicar programas computacionais adequados à resolução de modelos de Investigação Operacional. Resolver problemas de Investigação Operacional: análise de sistemas complexos, criação de modelos, obtenção de soluções, validação dos modelos criados, interpretação e avaliação das soluções obtidas, implementação das soluções. Bibliografia: A.J.M. Guimarães Rodrigues, Investigação Operacional, Volume-II - Modelos Estocásticos, Universidade do Minho, 1994. Hamdy Taha, Operations Research - An Introduction, Collier MacMillan International Editions, 2001. Docentes: José Manuel Henriques Telhada 8206N5 - Processamento de Linguagens Regime: S2 Tipo: Obrigatória Língua de Instrução: Carga Total: 60 Créditos: 5 Métodos de Ensino: Programa: Métodos de Avaliação: Pré-requisitos: Resultados de Aprendizagem: Bibliografia: Docentes: 8206N1 - Sistemas de Representação de Conhecimento e Raciocínio Regime: S2 Tipo: Obrigatória Língua de Instrução: Português Carga Total: 60 Créditos: 5 Métodos de Ensino: Aulas teóricas, com resolução de problemas, e aulas laboratoriais. Programa: Demonstração de Teoremas de Forma automática, Lógicas Multi-valor em Programação em Lógica, Representação do Conhecimento e Formas de Raciocínio, Conhecimento e a Problemática da sua Quantificação, Agentes e Sistemas MultiAgente, Estudos de Complexidade. Métodos de Avaliação: Uma prova escrita, correspondendo à avaliação por exame final, e trabalhos de grupo. Pré-requisitos: Não há. Resultados de Aprendizagem: Distinguir entre os métodos computacionais, em geral, e as tecnologias baseadas em conhecimento, em particular. Compreender não só as diferenças entre os potenciais sistemas de representação de conhecimento, mas também ser capaz de organizar os aspectos mais relevantes dos objectos e relações entre estes que ocorrem num dado universo de discurso, de acordo com o sistema de representação de conhecimento seleccionado. Relacionar o sistema de representação de conhecimento com diferentes formas de raciocínio, bem como em como optar entre os formalismos que melhor potenciem este relacionamento. Compreender a relação entre causalidade e inferência. Compreender a relação entre a complexidade de um modelo e o seu desempenho. Bibliografia: Christopher J. Hogger, "Essentials of Logic Programming", Clarendon Press, Oxford, 1990; Ivan Bratko, "PROLOG: Programming for Artificial Intelligence", 3rd Edition, Addison-Wesley Longman Publishing Co., Inc., 2000; Stuart Russel, Peter Norvig, "Artificial Intelligence - A Modern Approach", 2nd Edition, Prentice-Hall International, Inc., 2003. Docentes: José Neves Cesar Analide Paulo Novais