|
Planos de Estudos :: Mestrado integrado em ENGENHARIA DE REDE E SISTEMAS INFORMÁTICOS
|
| |
ANO: 1 |
| |
UNIDADES CURRICULARES |
ÁREA |
ANO |
SEMESTRE |
CRÉDITOS |
CÓDIGO |
OPÇÃO |
|
ESTRUTURAS DISCRETAS |
CC |
1 |
S1 |
7,5 |
CC115 |
|
Objectivo: Fornecer as bases teóricas fundamentais de ciência de computadoresPrograma: Tópicos de lógica proposicional e de primeira ordem. Teoria de conjuntos. Demonstrações por indução matemática. Técnicas de contagem (o princípio "pigeonhole", permutações e combinações). Relações: fechos, relações de equivalência, relações de ordem parcial. Teoria de grafos: isomorfismos de grafos, conectividade, caminhos Eulerianos e Hamiltoneanos, caminhos mínimos. Modelos de computação: autómatos finitos, expressões regulares, gramáticas independentes de contexto, máquinas de Turing. |
|
INTRODUÇÃO À PROGRAMAÇÃO |
CC |
1 |
S1 |
7,5 |
CC111 |
|
Objectivo: Introduzir os conceitos básicos de programação enfatizando as estratégicas algorítmicas
em detrimento de detalhes sintácticas da linguagem de programação utilizada.Programa: Introdução histórica das linguagens de programação. Noção de algoritmo e métodos de representação de algoritmos. Construtores fundamentais de programação: variáveis, tipos de dados, expressões; I/O simples; estruturas de control condicionais e de ciclo; Recursividade: funções definidas recursivamente. Estratégias para resolução de problemas envolvendo algoritmos simples: sucessão de Fibonacci na forma iterativa e recursiva, máximo divisor comum, menor múltiplo comum, factores primos, números primos, Crivo de Eratosthenes, conversão entre bases numéricas, big-integers, permutações e combinações, máximo/mínimo de um conjunto de valores, pesquisa sequêncial e binária, ordenação. Ambientes de desenvolvimento. Teste e depuração de programas. |
|
INTRODUÇÃO AOS COMPUTADORES |
CC |
1 |
S1 |
7,5 |
CC113 |
|
Objectivo: Fornecer os conceitos básicos sobre a estrutura e funcionamento dos computadores e sistemas de operação.Programa: Hardware: história do computador, estrutura de um computador, arquitectura de von Neumann, representação de dados e programas num computador, transistor, circuitos lógicos básicos, o microprocessador e memórias, componentes do computador, introdução às redes de computadores, manutenção e montagem de hardware. Introdução aos sistemas de operação: estrutura e evolução de um SO, administração de sistemas. Linux: kernel, módulos, sistema de ficheiros, shell, configuração e programação com scripts, utilitários principais, instalação de aplicações, bibliotecas, instalação de hardware e drivers, configuração de serviços.introduzir os alunos à prática do desenho, análise e implementação de estruturas de dados e algoritmos fundamentais, com especial ênfase na resolução de problemas. |
|
MATEMÁTICA I |
M |
1 |
S1 |
7,5 |
M191 |
|
Objectivo: Dominar ferramentas matemáticas com amplas aplicações nas ciências clássicas da Engenharia: cálculo diferencial e integral de uma variável, álgebra de matrizes e sistemas de equações lineares, introdução às séries reais.Programa: Cálculo diferencial: derivadas; máximos e mínimos locais; esboço de gráficos de funções. Aproximação de funções: polinómios de Taylor e resto de Lagrange. Cálculo integral: técnicas de primitivação, integral definido, Teorema Fundamental do Cálculo. Áreas de regiões limitadas por curvas. Volume de sólidos de revolução. Integrais impróprios. Sucessões e séries. Séries geométricas. Critérios de convergência: comparação, razão e Leibniz. Convergência absoluta e condicional. Álgebra de matrizes. Aplicações. Determinantes. Característica de uma matriz. Resolução de sistemas de equações lineares: método de Gauss; regra de Cramer e sua generalização. Inversa de uma matriz. |
|
MATEMÁTICA II |
M |
1 |
S2 |
7.5 |
M192 |
|
Objectivo: Aprofundar o domínio das ferramentas matemáticas mais aplicadas nas ciências clássicas da Engenharia: álgebra linear e geometria analítica, curvas parametrizadas, cálculo diferencial e integral de várias variáveis.Programa: lgebra linear: espaços vectoriais, aplicações lineares. Valores próprios, polinómio característico, diagonalização de um operador linear. Geometria analítica: produto escalar, ângulos, projecções, distâncias. Curvas parametrizadas no plano e no espaço. Funções reais de várias variáveis. Derivadas parciais e direccionais. Matriz jacobiana. Máximos e mínimos locais de uma função de várias variáveis. Integrais múltiplos. Teorema de Fubini. Cálculo de integrais em coordenadas cartesianas. Fórmula de mudança de coordenadas. Cálculo de integrais em coordenadas não cartesianas. |
|
ELEMENTOS DE MECÂNICA E ELECTRICIDADE |
F |
1 |
S2 |
7.5 |
F152 |
|
Objectivo: Familiarização com ideias, métodos e leis da Mecânica Newtoniana, e de electricidadePrograma: Cinemática. Movimento de projécteis. Leis de Newton. Trabalho e energia. Campo conservativo. Corrente eléctrica como movimento de cargas em campos uniformes. Lei de Ohm. Regras de Kirchhoff. Capacidade eléctrica. Condensadores. Circuitos eléctricos. Sistemas de partículas. Momento linear e sua conservação. Colisões. Equilíbrio de sólidos. Momento angular. Movimento de sólidos. Hidrostática e hidrodinâmica. |
|
ESTRUTURAS DE DADOS |
CC |
1 |
S2 |
7.5 |
CC114 |
|
Objectivo: Reforçar as competências de programação, introduzindo as estruturas de dados básicas numa perspectiva orientada aos objectos.Programa: Princípios de programação orientada aos objectos: herança, hierarquia de classes, polimorfismo, classes interface abstractas; classes colector e iteradores. Programação com eventos: métodos para lidar com eventos; propagação de eventos; lidar com excepções. Estruturas de dados lineares: vectores e matrizes, listas, conjuntos, pilhas, filas, tabelas de hash, e árvores binárias. Noções básicas de análise de algoritmos. Pesquisa e ordenação. Estratégias para resolução de problemas. |
|
PROGRAMAÇÃO FUNCIONAL |
CC |
1 |
S2 |
7.5 |
CC116 |
|
|
| |
ANO: 2 |
| |
UNIDADES CURRICULARES |
ÁREA |
ANO |
SEMESTRE |
CRÉDITOS |
CÓDIGO |
OPÇÃO |
|
ANÁLISE INFINITESIMAL |
M |
2 |
S1 |
7.5 |
M215 |
|
|
|
PROBABILIDADES E ESTATÍSTICA |
M |
2 |
S1 |
7.5 |
M271 |
|
Objectivo: Introdução aos conceitos fundamentais da teoria das probabilidades e métodos estatísticos para apresentação, análise e interpretação de dados.Programa: Apresentação e análise exploratória dos dados. Espaço de probabilidade, probabilidade condicional e independência. Variáveis aleatórias e sua caracterização, momentos de uma variável aleatória (desigualdade de Chebyshev, leis dos grandes números). Distribuições discretas (e.g. binomial, Poisson), distribuições contínuas (e.g. normal, exponencial). Vectores aleatórios e sua caracterização, independência e condicionamento. Distribuições amostrais e suas propriedades, somas de variáveis, teorema do limite central, amostragem da distribuição normal. Estimação pontual e estimação intervalar propriedades dos estimadores, distribuição da média amostral, intervalos de confiança. |
|
DESENHO E ANÁLISE DE ALGORITMOS |
CC |
2 |
S1 |
7.5 |
CC211 |
|
Objectivo: Reforçar as competências dos alunos na prática do desenho e implementação de estruturas de dados e algoritmos avançados. Introduzir conceitos avançados de análise de complexidade de algoritmos.Programa: Análise da complexidade de algoritmos. Ordens de grandeza. Comportamento polinomial vs exponencial. Classes de complexidade P, NP e co-NP. Revisão de conceitos: listas, árvores, tabelas de hashing e dicionários. Árvores mais gerais (árvores-B). Árvores Red-Black. Filas de prioridade e Heaps. Ordenação por heapsort. Conjuntos disjuntos Union-Find. Técnicas algorítmicas. Grafos dirigidos e não dirigidos. Algoritmos de Dijkstra e Floyd-Warshall, pesquisa em profundidade-primeiro e largura-primeiro, Prim e Kruskal. Ordenação topológica. Componentes conexas e ciclos hamiltonianos. Problemas de fluxo. Algoritmos de strings. Tries. Codificação de Huffman. |
|
ELECTRÓNICA DIGITAL E CIRCUITOS |
F |
2 |
S1 |
7.5 |
F161 |
|
Objectivo: introduzir os alunos à teoria dos circuitos de electricidade e electrónica, fundamental para a compreensão da instrumentação moderna e computadores.Programa: Circuitos eléctricos. Teoremas dos circuitos e aplicações. Impedâncias e sua importância no regime harmónico. Potência eléctrica. Díodos e
transístores. Amplificadores operacionais. Sistemas e numeração digital. Circuitos integrados. Famílias lógicas. Sistemas combinacionais e sequenciais. Álgebra de Boole. Memórias e células síncronas e assíncronas. Conversores A/D e D/A. |
|
LÓGICA E PROGRAMAÇÃO |
CC |
2 |
S2 |
7.5 |
CC216 |
|
Objectivo: Introdução de conceitos e resultados standard em lógica matemática - incluindo um estudo das potencialidades e limitações dos métodos formais - e sua aplicação na área de Ciência de Computadores.Programa: Cálculo proposicional: a linguagem do cálculo proposicional; aspectos semânticos; aspectos sintácticos; integridade e completude. Lógica de primeira ordem: linguagens de primeira ordem; aspectos semânticos; aspectos sintácticos; integridade e completude; teorema da compacidade. Computabilidade e decidibilidade: noções e resultados básicos de computabilidade e decidibilidade; máquinas de registos; tese de Church; problema de paragem para máquinas de registos; exemplos de indecidibilidade. Programação em lógica: fórmulas de Horn e programas definidos; unificação; pontos fixos; resolução-SLD; aspectos práticos. |
|
SISTEMAS DE OPERAÇÃO |
CC |
2 |
S2 |
7.5 |
CC222 |
|
Objectivo: Estudo dos conceitos, da estrutura e funcionamento interno de um sistema de operação.Programa: Conceitos básicos: arquitectura de um sistema de operação, interrupções, modos de operação utilizador e kernel, buffering e spooling, DMA. Gestão de Processos. Mecanismos de exclusão mútua, comunicação entre processos, problemas clássicos de sincronização. Threads e p-threads. Programação avançada em Linux. Gestão de memória. Partições. Swapping e recolocação. Paginação, segmentação, memória virtual, TLBs, memórias cache, algoritmos de substituição de páginas. Sistema de ficheiros e implementação. Evolução dos sistemas de ficheiros no UNIX. Periféricos de Entrada/Saída. Algoritmos de scheduling de discos. RAID. Encravamento e segurança. Noções básicas de segurança e breves conceitos sobre administração de sistemas UNIX. |
|
ARQUITECTURA DE COMPUTADORES |
CC |
2 |
S2 |
5 |
CC224 |
|
Objectivo: Introdução ao desenho e implementação do hardware de computadores, com especial ênfase na sua relação com o software.Programa: Arquitectura de von Neumann. Representação de informação no computador. O microprocessador. Conjuntos de instruções e compilação de programas. Implementação do microprocessador. Semicondutores. Circuitos integrados. Portas lógicas básicas, ALUs, registos, memória e outras componentes. Execução de instruções no processador: o data-path e o control-path. Microcódigo. Equação de performance. Pipelining e pipelining hazards. Arquitecturas RISC, superescalares, VLIW, vectoriais e multicore. Análise de performance. Hierarquia de memória. Memórias cache e principal. Memória virtual. Técnicas de gestão da memória virtual e interacção com o sistema operativo. Buses, características, conexões, organização da motherboard. I/O. |
|
ARQUITECTURA DE SOFTWARE |
CC |
2 |
S2 |
5 |
CC226 |
|
Objectivo: Introduzir os alunos às metodologias usadas na concepção, desenho e desenvolvimento de software de média e grande dimensão.Programa: Paradigmas de estruturação de programas: programação orientada a objectos; programação orientado por aspectos; programação por contracto. Modelação de software: introdução ao UML; comparação entre versões 1 e 2; diagramas estruturais: classes, pacotes e objectos; componentes e instalação; diagramas dinâmicos: casos de uso, comunicações e sequências, actividades e estados. Modelos arquitecturais: cliente - servidor; n-camadas; componentes; orientação a serviços. Padrões de desenho: conceitos básicos e objectivos, classificação e sistematização, padrões criacionais, padrões estruturais, padrões comportamentais. Programação por componentes: API do Java, input/output, estruturas de dados, interfaces gráficas,"frameworks", testes unitários (JUnit), logging (Log4J). |
|
MODELOS DE COMPUTAÇÃO |
CC |
2 |
S2 |
5 |
CC218 |
|
Objectivo: Introdução ao estudo das linguagens formais. Pretende-se que o aluno seja capaz de especificar linguagens formais usando formas de descrição alternativas e determinar a sua classificação na hierarquia de poder computacional.Programa: Noção de linguagem formal. Autómatos finitos determinísticos e não determinísticos. Expressões regulares e autómatos finitos. Propriedades das linguagens regulares. Minimização de autómatos finitos. Limitações dos autómatos finitos e Lema da repetição. Gramáticas independentes de contexto. Árvores de derivação. Ambiguidade. Simplificações de gramáticas independentes de contexto e formas normais. Propriedades das linguagens independentes de contexto (LIC). Vários modelos de máquinas de Turing. Tese de Church-Turing. |
| |
ANO: 3 |
| |
UNIDADES CURRICULARES |
ÁREA |
ANO |
SEMESTRE |
CRÉDITOS |
CÓDIGO |
OPÇÃO |
|
BASES DE DADOS |
CC |
3 |
S1 |
7.5 |
CC301 |
|
Objectivo: Fornecer aos alunos os conceitos fundamentais da teoria e prática de bases de dados como sistemas de manipulação de grandes quantidades de informação.Programa: Conceitos Básicos. Fases do desenho de uma base de dados. Os Modelos ER e EER. Diagramas ER e EER. O Modelo Relacional. Conversão dos modelos ER e ERR para o relacional. Álgebra e Cálculo Relacional. A Linguagem SQL. A DDL do SQL: administrar tabelas, restrições de integridade e domínios. A DML do SQL: consultas básicas, encadeadas e correlacionadas. Operações de junção, agregação, inserção, remoção e alteração. Visões, asserções e triggers. Formas normais e normalização de relações. Dependências funcionais, multi-valor e de junção. Decomposição com junção-não-aditiva. SQL em Ambiente de Programação. Transacções. Segurança. Organização Física dos Dados. |
|
REDES DE COMUNICAÇÃO |
CC |
3 |
S1 |
7.5 |
CC303 |
|
Objectivo: Esta disciplina pretende familiarizar o aluno com os conceitos fundamentais das redes de comunicação, utilizando como exemplos os protocolos essenciais da Internet (Arquitectura TCP/IP).Programa: Introdução às redes de comunicação, arquitecturas de rede, protocolos, comutação por circuitos e por pacotes. Aplicações e protocolos aplicacionais (HTTP, FTP, SMTP, POP3, IMAP, DNS)e programação de sockets (servidor simples, servidor concorrente). Camada de Transporte (TCP e UDP), fiabilidade e controlo de congestionamento. Camada de Rede, endereçamento e roteamento IP. Camada de Ligação, dispositivos e redes sem fios. Problemas básicos de segurança em redes e soluções possíveis. |
|
INTERACÇÃO PESSOA-MÁQUINA |
CC |
3 |
S1 |
5 |
CC205 |
|
|
|
TECNOLOGIAS WEB |
CC |
3 |
S1 |
5 |
CC307 |
|
Objectivo: Familiarizar os alunos com os conceitos e tecnologias usadas em aplicações web de grande dimensão e escalabilidade.Programa: A linguagem de programação PERL. O protocolo HTTP. Programação de CGI's. Técnicas de programação para gerir concorrência e manter o estado. API's de acesso a servidores de bases de dados relacionais. Modelos programáticos transaccionais para a manutenção de estado. Serialização de objectos. Programação de clientes-web simples. Web-Scraping. Agregação e distribuíção de serviços pela Internet. Web-Services. |
|
ADMINISTRAÇÃO DE SISTEMAS |
CC |
3 |
S1 |
5 |
CC323 |
|
Objectivo: Compreensão do papel e dos procedimentos efectuados pelos administradores de sistemas e de redes. Familiarização com alguns princípios gerais e prática extensiva com a implementação e manutenção de alguns exemplos concretos de serviços. O curso tem por objectivo relacionar conceitos teóricos com a instalação e manutenção prática de alguns serviços computacionais considerados essenciais numa rede de computadores bem administrada.Programa: Introdução. Objectivos da administração de sistemas. Fontes de informação para os administradores de sistemas. Componentes de interacção pessoa-máquina do ponto de vista do administrador de sistemas. Instalação de sistemas operativos. Gestão de contas de utilizadores. Princípios éticos. Políticas de Identificação/Autorização. Mapeamento de redes de computadores. Instalação e manutenção de aplicações: princípios, exemplos. Manutenção de serviços de rede: princípios, exemplos. Gestão de políticas de "backup". Segurança do ponto de vista do administrador de sistemas. Políticas de segurança. Segurança nos protocolos TCP/IP. Exemplos de vulnerabilidades. Instalação e gestão de firewalls. |
|
LABORATÓRIO DE REDES |
CC |
3 |
S2 |
5 |
CC304 |
|
Objectivo: Consolidar os conhecimentos anteriormente adquiridos pelo aluno e dotá-lo das competências necessárias à configuração, manutenção e monitorização de redes IP. Para este efeito desenvolver-se-ão montagens laboratoriais para estudo de protocolos IP, protocolos de routing e serviços essenciais ao funcionamento de uma rede.Programa: Configuração de Routers Cisco utilizando o sistema IOS. Configuração de rede de máquinas Linux. Análise e Monitorização de Protocolos (recorrendo a ferramentas de captura e análise de pacotes na rede). Administração de Protocolos de Routing (RIP, OSPF, BGP) (em routers Cisco). Configuração de servidores DNSs (utilizando o serviço bind). Configuração de servidores DHCP (Linux, Cisco). Administração de NAT (Linux iptables, Cisco). Utilização de gestor SNMP para monitorização de equipamento de rede. |
|
PROCESSAMENTO DE LINGUAGENS |
CC |
3 |
S2 |
5 |
CC320 |
|
Objectivo: Introduzir conceitos fundamentais relativos ao desenho e implementação de linguagens.Programa: Compiladores versus interpretadores. As diferentes fases de compilação. Análise léxica. Análise sintáctica (top-down e bottom-up). Tradução dirigida pela sintaxe: árvores abstractas com atributos. Gestão de memória. Linguagens de código intermédio e respectiva geração de código. Códigos máquina, gestão de memória em run-time, blocos, grafos de fluxo, alocação de registos, geração de código final. |
|
SISTEMAS INTELIGENTES |
CC |
3 |
S2 |
5 |
CC322 |
|
Objectivo: Estudo dos conceitos fundamentais e técnicas de uso mais generalizado da Inteligência Artificial.Programa: Técnicas de procura: árvores e grafos, algoritmos de procura em profundidade, em largura, aprofundamento iterativo, alargamento iterativo. Heurísticas: subida mais rápida, arrefecimento simulado, algoritmo A*. Optimização: geração e teste, ramificar e limitar. Análise jogos através de árvores: algoritmos minimax e corte alfa-beta. Sistemas baseados em conhecimentos: manipulação e representação de conhecimentos, reificação, tipos, hierarquia de tipos, herança. Sistemas periciais. Processamento de Linguagem Natural: sintaxe e semântica. Modelos de inspiração biológica: redes neuronais e algoritmos genéticos. |
|
OPÇÕES DO QUADRO 2B |
|
3 |
|
15 |
--- |
Quadro nº2b |
|
| |
ANO: 4 |
| |
UNIDADES CURRICULARES |
ÁREA |
ANO |
SEMESTRE |
CRÉDITOS |
CÓDIGO |
OPÇÃO |
|
OPÇÕES |
|
4 |
S1 |
30 |
--- |
Quadros nº 3b,3c,3d,3e,3f |
|
|
OPÇÕES |
|
4 |
S2 |
30 |
--- |
Quadros nº 3b,3c,3d,3e,3f |
|
| |
ANO: 5 |
| |
UNIDADES CURRICULARES |
ÁREA |
ANO |
SEMESTRE |
CRÉDITOS |
CÓDIGO |
OPÇÃO |
|
COMUNICAÇÃO TÉCNICA |
DPI |
5 |
S1 |
2.5 |
DIP463 |
|
Objectivo: Fornecer aos alunos competências nos domínios das escrita e comunicação oral com especial incidência na organização e escrita de trabalhos científicos e na planificação e apresentação de uma comunicação oral. |
|
SOCIOLOGIA E ÉTICA DA INFORMÁTICA |
DPI |
5 |
S1 |
5 |
DIP461 |
|
Objectivo: A disciplina tem como objectivo principal fomentar a reflexão crítica pelos alunos sobre as questões sociais e éticas levantadas pelo utilização de computadores e da Internet. A disciplina tem também por objectivo informar os alunos sobre as normas e legislação pertinentes à sua futura actividade profissional, bem como melhorar as suas capacidades de comunicação oral e escrita.Programa: Pluralidade e diversidade das perspectivas éticas. Análise e discussão de temas sócio-profissionais: propriedade intelectual; abuso e crime informático; privacidade e anonimato; liberdade de expressão; responsabilidade p; risco e responsabilidade criminal; impacto social das tecnologias de informação. Palestras de convidados especialistas nos temas abordados. |
|
GESTÃO E EMPREENDEDORISMO |
GES |
5 |
S1 |
7.5 |
GES400 |
|
Objectivo: Possuir uma visão holística da gestão e das organizações. Compreender as principais opções estratégicas que se colocam às empresas. Compreender as noções básicas sobre análise económico-financeira de empresas. Possuir os conhecimentos básicos e compreender os mecanismos para a definição de um plano de negócios e para a criação de empresa própria.Programa: Introdução à gestão. A empresa e a sua envolvente: a empresa como sistema aberto; análise estrutural das indústrias/sector (modelo das cinco forças de Porter); o ciclo de vida da indústria; factores críticos do sucesso. Análise interna da empresa: recursos e custos da empresa; competências centrais da empresa; análise SWOT. Principais tipos de estratégias e seus modelos: missão, objectivos e estratégia; natureza da estratégia de produto-mercado - o modelo de Ansoff: vantagem competitiva - o modelo de Porter; gestão de valor - cadeia de valor e integração vertical, diversificação - o modelo BCG e o modelo da GE/McKinsey; internacionalização. Breves notas sobre análise económico-financeira de empresas: a contabilidade como sistema de informação de suporte à gestão; principais documentos contabilísticos; principais rácios e avaliação do desempenho empresarial: rentabilidade, eficiência, financiamento e liquidez. Empreendedores e empreendedorismo: empreendedorismo e desenvolvimento económico - o papel das políticas públicas; do empreendedorismo de "necessidade" ao empreendedorismo de "oportunidade" - o caso do empreendedorismo de base tecnológica; da ideia ao projecto empresarial: a construção do plano de negócios. Realização de estudos de casos. |
|
DISSERTAÇÃO |
CC |
5 |
S1 |
45 |
CC573 |
|
|
|
ESTÁGIO |
CC |
5 |
S1 |
45 |
CC583 |
|
|
|
|
Optativas (Quadro nº 2b) |
SISTEMAS E APLICAÇÕES |
CC |
|
S1 |
5 |
CC220 |
s |
Objectivo: Fornecer ao aluno experiência na utilização, administração e programação de alguns dos sistemas e aplicações nos ambientes mais utilizados.Programa: Folhas de cálculo: introdução ao ambiente e edição, fórmulas e funções, formatação automática e criação de gráficos, ferramentas de análise de dados. Gestores de Bases de Dados: introdução ao ambiente e criação de BDs, relações e associações entre tabelas, consultas, formulários, relatórios e segurança, objectos (e.g. ActiveX Data Objects). Programação em VBA para aplicações: variáveis, âmbito e constantes pré-definidas, hierarquia e módulos, criação de classes, tratamento de erros. |
|
SISTEMAS MULTIMÉDIA |
CC |
|
S2 |
5 |
CC328 |
s |
Objectivo: Fornecer ao aluno uma perspectiva das tecnologias usadas na digitalização e armazenamento de dados. Permitir o desenvolvimento de capacidades de construção de aplicações/sites adaptáveis a perfis de utilização. Desenvolver aplicações multimédia e fazer a respectiva avaliação.Programa: Informação e representação digital: conversão analógico-digital, tecnologias de armazenamento de dados, compressão digital. Aplicações Multimédia Interactivas: usabilidade, personalização e interfaces multi-modais, detecção e correcção de erros. Tipos de media: estáticos, dinâmicos. Autoria multimédia: modelos e paradigmas de autoria, modelos de sincronização temporal, avaliação de sistemas. Aplicações Web Multimédia: criação automática de páginas, integração Web e realidade virtual, ensino baseado na Web. |
|
COMPUTAÇÃO GRÁFICA |
CC |
|
S2 |
5 |
CC324 |
s |
|
|
MÉTODOS DE APOIO À DECISÃO |
CC |
|
S2 |
5 |
CC330 |
s |
Objectivo: Fornecer experiência na formulação e análise crítica de modelos e métodos de resolução para problemas de decisão interdisciplinares. Desenvolver aptidões para avaliar a complexidade computacional de problemas e escolher apropriadamente algoritmos, linguagens e bibliotecas de programas.Programa: Formulação de modelos matemáticos para problemas de decisão de diversos domínios (produção, afectação, transporte, escalonamento, fluxo,...). Linguagens de Programação por Restrições. Programação linear. Optimização em grafos e redes: revisão de algoritmos clássicos. Introdução à programação inteira e optimização discreta. Introdução aos modelos probabilísticos: modelos markovianos de filas de espera. |
|
PROJECTO |
CC |
|
S2 |
10 |
CC332 |
s |
Objectivo: introduzir os alunos aos conceitos básicos de gestão de projectos informáticos e de os preparar para integrar numa equipa de desenvolvimento de software.Programa: Conceitos básicos de gestão de projectos. Fases do projecto: arranque, planeamento, monitorização e controlo, fecho. Gestão de tempo, recursos, riscos e qualidade. Trabalho em equipa: comunicação pessoal, reuniões, documentação e ferramentas. Exploração dos conceitos pelo desenvolvimento em equipa de um projecto informático. |
|
MÉTODOS NUMÉRICOS |
M |
|
S2 |
7.5 |
M232 |
s |
Programa: Erros Numéricos, Resolução Numérica de Equações, Interpolação Numérica, Aproximação Numérica, Derivação e Integração Numérica, Resolução Numérica de Equações Diferenciais. |
|
|
Especialização em Redes de Comunicação (Quadro nº 3b) |
REDES DE COMUNICAÇÕES MÓVEIS |
CC |
|
S1 |
7.5 |
CC411 |
s |
Objectivo: Familiarizar os alunos com os princípios básicos do funcionamento das redes sem fios, desde a wireless local area network até às redes celulares, incluindo tópicos avançados como redes adhoc e pessoais.Programa: Conceitos basicos de Redes de Acesso sem Fio. Redes Celulares de 2a e 3a Geração. Redes Ad-hoc. Integração de Redes Heterogeneas (Next Generation Networks). |
|
TEORIA DE INFORMAÇÃO |
CC |
|
S1 |
7.5 |
CC410 |
s |
Objectivo: Introduzir os principais resultados da Teoria da Informação, como base fundamental para a compreensão e o desenvolvimento de tecnologias de informação.Programa: Conceitos básicos: a fonte de informação, a entropia e a transmissão digital. A propriedade de equipartição assimptótica. O teorema da codificação de fonte e compressão de dados (códigos de Huffman, codificação aritmética, codificação por filas). O teorema da codificação de canal. Teoria da Informação Algorítmica. Exemplos de aplicação prática nas áreas do processamento de dados multimédia, nas comunicações em redes sem fios e na bioinformática. |
|
TÓPICOS AVANÇADOS DE REDES |
CC |
|
S2 |
7.5 |
CC412 |
s |
Objectivo: aprofundar alguns tópicos relevantes das redes de banda larga, apoiando a exposição teórica com trabalhos laboratoriais em administração de redes, serviços multimédia, aplicações peer-to-peer e recolha de dados com redes sensoriais, entre outros temas actuais.Programa: Protocolos de sinalização. Escalonamento de pacotes. Mobile IP. IP Multicast. Transporte de dados Multimédia em Tempo Real. Redes Peer-to-Peer. Redes Sensoriais. |
|
SEGURANÇA DE REDES E DADOS |
CC |
|
S2 |
7.5 |
CC413 |
s |
Objectivo: Mostrar as fragilidades intrínsecas dos sistemas operativos e redes de computadores, e introduzir métodos para a construção de sistemas capazes de resistir a ataques, erros de operação e ocorrências fortuitas. Estudo de ferramentas, processos e
métodos necessários para planear, implementar e testar sistemas seguros e adaptar sistemas existentes a ambientes contextuais em constante evolução.Programa: Taxonomia de vulnerabilidades e ataques a sistemas informáticos. Exemplos de Sistemas Seguros. Protocolos de Segurança. Gestão de Passwords. Mecanismos de Controle de acessos (Access Control). Sistemas de monitorização. Sistemas Biométricos. Segurança em redes de computadores. Vulnerabilidades nos protocolos de comunicação. Firewalls. Troianos, Vírus, Worms e malware. SPAM e medidas para o evitar. Mecanismos para a detecção de intrusões (SNORT). Criptografia e gestão segura de chaves. Mecanismos de auditoria a sistemas seguros. |
|
CRIPTOGRAFIA |
CC |
|
S1 |
7.5 |
CC442 |
s |
Objectivo: Introdução à criptografia e criptanálise e suas aplicações, nomeadamente na transposição de actividades presenciais para o ambiente não presencial da Internet.Programa: Protocolos criptográficos. Criptografia e criptanálise clássicas. Cifras de substituição mono-alfabéticas e poli-alfabéticas. Cifras de transposição. Cifras poligraficas. Cifras electromecanicas: a enigma, a Lorentz e a purple. Algoritmos de bloco. Cifras de Feistal. O DES e o AES. Diversos algoritmos de cifra simétrica. Cifras de chave pública. Geradores de aleatórios. Funções de tabulação criptográfica. Criptanálise e criptografia quânticas. |
|
|
Especialização em Engenharia de Software e Sistemas de Informação (Quadro nº 3c) |
TÓPICOS AVANÇADOS DE BASES DE DADOS |
CC |
|
S2 |
7.5 |
CC420 |
s |
Objectivo: Introduzir conceitos avançados de Bases de Dados, numa perspectiva de utilização e de implementação de tais sistemas. Estudo de paradigmas avançados de Bases de Dados, como bases de dados distribuídas, paralelas, lógicas e espaciais.Programa: Aplicação embebida de SQL em linguagens de programação genéricas. O SGBD MySQL e a sua API C. Datawarehousing: conceitos; modelação estrela, floco de neve e constelação de factos; o cubo de dados; implementação de data warehouses; análise de dados em tempo real (OLAP); principais operações OLAP; materialização do cubo de dados; abordagem ROLAP e MOLAP; o operador Cube By. Bases de Dados Dedutivas: Prolog e Datalog. Bases de Dados Paralelas e Distribuídas. Bases de Dados Espaciais. |
|
GESTÃO DE PROJECTOS INFORMÁTICOS |
CC |
|
S1 |
7.5 |
CC421 |
s |
Objectivo: A disciplina tem por objectivo introduzir os alunos aos papeis, responsabilidades, métodos e ferramentas de gestão de um projecto de desenvolvimento informático.Programa: Introdução à gestão de projectos. Papeis e funções na gestão de
projectos. Passos do ciclo de vida de um projecto. Técnicas de planeamento e gestão de projectos. Planeamento de projectos. Orçamentação e gestão de custos. Gestão de tempo ("Scheduling"). Análise e gestão de riscos. Gestão de desenvolvimento. Metodologias de desenho, desenvolvimento e teste. Metodologias predictivas vs ágeis. Re-codificação ("refactoring"). Automatização de testes. Ferramentas de apoio à
gestão e desenvolvimento. |
|
VERIFICAÇÃO FORMAL DE SOFTWARE |
CC |
|
S2 |
7.5 |
CC447 |
s |
Objectivo: Estudo das bases lógicas da verificação formal. Utilização de
demonstradores automáticos na verificação de programas.Programa: Lógicas usadas na verificação de programas: lógicas modais e
temporais, CTL, PDL, mu-calculus. Model Checking. Lógica intuicionista e ismomorfismo de Curry-Howard. Tipos dependentes. Tipos indutivos e co-indutivos. Assistentes de demonstração automática (Coq, Isabelle, Twelf): sua utilização na especificação e verificação de programas. |
|
PROCESSAMENTO DE DOCUMENTOS ESTRUTURADOS |
CC |
|
S1 |
7.5 |
CC422 |
s |
|
|
|
Especialização em Sistemas Distribuídos (Quadro nº 3d) |
PROGRAMAÇÃO PARALELA E DISTRIBUÍDA |
CC |
|
S1 |
7.5 |
CC430 |
s |
Objectivo: familiarizar os alunos com as arquitecturas de elevado desempenho mais recentes e com os modelos de programação que permitem tirar partido dessas arquitecturas.Programa: Conceitos fundamentais: pipelining, multi-threading, memória-partilhada, memória-distribuída, memória virtualmente partilhada, clusters beowulf, peer-to-peer, arquitecturas cliente-servidor em grande escala. Limites físicos. Factores de atraso (overheads) na execução paralela. Modelos de programação: memória partilhada vs memória distribuída. Paralelismo nos dados. Paralelismo de tarefas. Análise de dependências. Scheduling. Avaliação de desempenho. Programação com p-threads. Programação com OpenMP. Programação com MPI. Algoritmos paralelos. |
|
COMPUTAÇÃO GRID |
CC |
|
S2 |
7.5 |
CC432 |
s |
Objectivo: Dar uma visão geral de sistemas de computação em grid e gestão de dados em grid. Experiência de uso de ambientes de grid controlados.Programa: Introdução. Computação grid e grid de dados. Vantagens e inconvenientes de sistemas actuais grid. Soluções. Serviços de rede e grids. Estado da arte de serviços grid e sistemas. Grids computacionais. Sistemas tradicionais de gestão de recursos. Sistemas de gestão de recursos para grid. Gestão de aplicações: taxonomia de aplicações, linguagens de de descrição de aplicações, submissão de aplicações: centralizada vs distribuída, particionamento, meta-escalonadores, tolerância a falhas. Grids de dados: sistemas de ficheiros para grids, sistemas tradicionais distribuídos de ficheiros. Gestão de dados para a grid. Requisitos para um sistema completo de gestão de dados para a grid. |
|
SISTEMAS EMBEBIDOS |
CC |
|
S1 |
7.5 |
CC416 |
s |
Objectivo: Introduzir os conceitos e fundamentos necessários para desenvolver aplicações para sistemas embebidos.Programa: Introdução aos Sistemas Embebidos: requisitos, desempenho, dissipação de potência e consumo de energia. Arquitecturas para Sistemas Embebidos. Sistemas de Tempo-Real. Técnicas de Programação e Optimização de Código. Tecnologias Software. Tecnologias Auxiliares para Sistemas Embebidos: memórias (e.g., Flash, NVRAM, OTP ROM, EEPROM, etc.), RFID chips, cartões inteligentes, comunicação entre dispositivos. Estudo de aplicações inovadoras recentes. |
|
SISTEMAS DISTRIBUÍDOS E MÓVEIS |
CC |
|
S1 |
7.5 |
CC435 |
s |
|
|
IMPLEMENTAÇÃO DE LINGUAGENS |
CC |
|
S2 |
7.5 |
CC444 |
s |
|
|
TÓPICOS AVANÇADOS DE BASES DE DADOS |
CC |
|
S2 |
7.5 |
CC420 |
s |
|
|
|
Especialização em Fundamentos de Ciência de Computadores (Quadro nº 3e) |
FUNDAMENTOS DE LINGUAGENS DE PROGRAMAÇÃO |
CC |
|
S1 |
7.5 |
CC440 |
s |
Objectivo: Introdução a semânticas das linguagens de programação.Programa: Semântica operacional. Teoria das definições indutivas. Técnicas de demonstração de propriedades de semânticas operacionais. Teoria de domínios: Ordens parciais completas (CPOs). Funções contínuas. Teorema do ponto-fixo. Semântica denotacional de linguagens de programação. Relação entre as semânticas operacionais e denotacionais. Programas recursivos e regras de computação. Semântica de uma linguagem declarativa com definições recursivas de funções. Semântica de linguagens funcionais. Semântica axiomática. Regras de demonstração de correcção parcial de programas. Lógica de Hoare. |
|
COMPLEXIDADE |
CC |
|
S2 |
7.5 |
CC441 |
s |
Objectivo: Pretende-se dar uma introdução à complexidade estrutural, de modo que o aluno seja capaz de classificar problemas práticos em classes de complexidade, retirando as consequências desse facto.Programa: Recursos utilizados pelos algoritmos: tempo e espaço. Classes de complexidade. Reduções. Completitude. Classes P, NP e co-NP. Reduções polinomiais Teorema de Cook e problemas completos em NP. A hierarquia polinomial. Classe PSPACE. Algoritmos aleatorizados e classes de complexidade aleatorizadas (incluindo RP e BPP). Protocolos interactivos: conhecimento zero, sistemas de prova interactivos. Classe IP. Temas opcionais: Complexidade no caso médio. Itrodução à complexidade descritiva. |
|
CRIPTOGRAFIA |
CC |
|
S1 |
7.5 |
CC442 |
s |
Objectivo: Introdução à criptografia e criptanálise e suas aplicações, nomeadamente na transposição de actividades presenciais para o ambiente não presencial da Internet.Programa: Protocolos criptográficos. Criptografia e criptanálise clássicas. Cifras de substituição mono-alfabéticas e poli-alfabéticas. Cifras de transposição. Cifras poligraficas. Cifras electromecanicas: a enigma, a Lorentz e a purple. Algoritmos de bloco. Cifras de Feistel. O DES e o AES. Diversos algoritmos de cifra simétrica. Cifras de chave pública. Geradores de aleatórios. Funções de tabulação criptográfica. Criptanálise e criptografia quânticas. |
|
ALGORITMOS GEOMÉTRICOS |
CC |
|
S2 |
7.5 |
CC443 |
s |
Objectivo: Conhecer e saber implementar algoritmos e estruturas de dados eficientes para resolução de problemas geométricos com aplicações relevantes em Computação Gráfica, Robótica, Desenho Assistido por Computador, Sistemas de Informação Geográfica, Biologia Molecular e Análise de Dados.Programa: Conceitos e ferramentas básicas em Geometria Computacional. Polígonos. Localização de pontos e proximidade. Convexidade. Invólucro convexo dum conjunto de pontos. Decomposição de polígonos (triangulação). Visibilidade no plano. Problema da Galeria de Arte e variantes. Intersecção de segmentos de recta e de polígonos. Arranjos. Diagramas de Voronoi e de Delaunay. Aplicações. |
|
IMPLEMENTAÇÃO DE LINGUAGENS |
CC |
|
S2 |
7.5 |
CC444 |
s |
Objectivo: Estudo de modelos e técnicas avançadas de implementação de linguagens de programação.Programa: mplementação de linguagens funcionais: o lambda-calculus, compilação para o lambda-calculus, avaliação strict (a máquina SECD) e avaliação lazy (redução de grafos, a máquina STG). Implementação de linguagens de programação em lógica: a máquina WAM, paralelismo implicito, tabulação, o modelo EAM (Extended Andorra Model). Implementação de linguagens concorrentes: o pi-calculus, a máquina abstracta de Turner, execução distribuída e mobilidade de recursos. |
|
TÓPICOS AVANÇADOS EM ALGORITMOS |
CC |
|
S2 |
7.5 |
CC445 |
s |
Objectivo: Conhecimento de métodos avançados de análise de algoritmos; Algoritmos em alguns domínios específicos.Programa: Técnicas avançadas de análise de algoritmos. Breves noções da teoria dos problemas completos na classe NP e das classes aleatorizadas de problemas de decisão. Algoritmos em domínios específicos: algoritmos numéricos; transformada rápida de Fourier; programação linear; alguns algoritmos avançados em grafos: testes de planaridade, etc; algoritmos aleatorizados. Classes de complexidade. Introdução à análise amortizada e às estruturas de informação auto-organizadas. Algoritmos de "matching". Método probabilístico. Aplicação a grafos aleatórios. Cadeias de Markov e suas aplicações. Determinação de valores próprios. Aplicação a métodos de "clustering" e de pesquisa na web. |
|
VERIFICAÇÃO FORMAL DE SOFTWARE |
CC |
|
S2 |
7.5 |
CC447 |
s |
Objectivo: Estudo e utilização de técnicas de demonstração aplicadas à verificação de programas.Programa: Lógicas usadas na verificação de programas: lógicas modais e temporais, CTL, PDL, mu-calculus. Model Checking. Lógica intuicionista e ismomorfismo de Curry-Howard. Tipos dependentes. Tipos indutivos e co-indutivos. Assistentes de demonstração automática (Coq, Isabelle, Twelf): sua utilização na especificação e verificação de programas. |
|
|
Disciplinas sem área de especialização definida (Quadro nº 3f) |
MÉTODOS DE PESQUISA AVANÇADA |
CC |
|
S2 |
7.5 |
CC452 |
s |
Objectivo: Apresentar os principais problemas difíceis de optimização e principais métodos de resolução aproximada.Programa: Introdução aos métodos de resolução aproximada. Noção de heurísticas, e sua classificação. Procura local e procura com vizinhança variável. Introdução a algumas meta-heurísticas. Métodos para comparação de desempenho de heurísticas. |
|
VISÃO COMPUTACIONAL |
CC |
|
S1 |
7.5 |
CC456 |
s |
|
|
ANÁLISE IN SILICO DE GENOMAS, TRANSCRIPTOMAS E PROTEOMAS |
B |
|
S2 |
5 |
B303 |
s |
|
|
ANÁLISE E PROCESSAMENTO DIGITAL DO SINAL |
M |
|
S2 |
7.5 |
M363 |
s |
Programa: Sinais e Sistemas: conceitos fundamentais numa perspectiva determinista. Transformadas: transformada de Fourier, transformada z, transformada discreta de Fourier, transformada rápida de Fourier. Amostragem de sinais em tempo contínuo; conversão A/D e D/A. Transformação por sistemas lineares. Filtros digitais (IIR e FIR). Sinais aleatórios. Descrição no domínio do tempo e da frequência. Estimação espectral (métodos não paramétricos). |
Notas:
(1)Aos estudantes que concluam os semestres 1 a 6, correspondentes a 180 créditos, é-lhes conferido o diploma de licenciado em Ciências de Engenharia Informática.
(2) As opções livres podem ser unidades curriculares em qualquer área científica, incluindo Ciência de Computadores.
(3) No 7º e 8º semestres, as unidades curriculares optativas estão maioritariamente estruturadas em blocos,
correspondentes a áreas científicas bem definidas, com o objectivo de garantir coerência na formação
especializada, nomeadamente Redes de Comunicação (quadro 3b), Engenharia de Software e Sistemas de Informação (quadro 3c), Sistemas Distribuídos (quadro 3d) e Fundamentos de Ciência de Computadores (quadro 3e); são também oferecidas as unidades curriculares optativas constantes do quadro 3f.
- O estudante deve realizar um mínimo de 30 créditos num dos blocos dos quadros 3b) a 3e) para obter a especialização respectiva.
- O estudante pode escolher de entre as unidades curriculares do quadro 3f) um máximo de 15 créditos fora da
área de Ciência de Computadores.
As unidades curriculares de Estágio (CC583) e Dissertação (CC573) têm a duração de um semestre e meio.
Os estudantes deverão realizar em alternativa Dissertação(CC573) ou Estágio(CC583).
Nota: A informação é disponibilizada a título
informativo e não dispensa a consulta do Diário da República
|