Código Oficial: | 9812 |
Sigla: | MI:ERS |
Ao completar esta unidade curricular, o estudante deve dominar os principais conceitos de Álgebra Linear e Geometria Analítica. Nomeadamente, deve compreender, ser capaz de trabalhar e usar as propriedades dos conceitos de matriz, determinante, espaço vetorial real e função linear.
Nesta unidade curricular, pretende-se que o estudante conheça, compreenda e seja capaz de utilizar alguns resultados clássicos do Cálculo, que, quer pela importância que têm na explicação de muitos fenómenos científicos quer pela resolução de problemas científicos que permitem, devem ser do conhecimento geral de qualquer estudante da área das ciências.
Estudo das estruturas discretas fundamentais que estão na base formal da área de Ciência de Computadores/Informática.
Iniciar os estudantes na programação imperativa, fornecendo-lhes conceitos fundamentais de algoritmia e conhecimentos da linguagem de programação C. Dotar os estudantes da capacidade de construirem algoritmos a partir de especificações informais. Apresentar alguns algoritmos fundamentais.
Compreensão e capacidade de utilizar as noções e os resultados dados no programa, nomeadamente através da resolução de exercícios práticos.
Com esta unidade curricular pretende-se expor os alunos aos principais conceitos básicos da utilização de uma computadores, e em particular de ao ambiente Linux. A unidade curricular permitirá reforçar os conhecimentos adquiridos no primeiro semestre em unidades como Introdução aos Computadores e Introdução à Programação
Ensinar conceitos e resultados fundamentais sobre três modelos de computação básicos (autómatos finitos, autómatos de pilha e máquinas de Turing) e sobre as classes de linguagens formais associadas, com foco nas linguagens regulares e independentes de contexto.
Introdução à programação funcional usando a linguagem Haskell.
Objetivos:
Introdução os métodos de resolução de equações diferenciais ordinárias com incidência especial nas equações e sistemas de equações diferenciais lineares. Completar o estudo do cálculo diferencial e integral com o teorema da função inversa e o teorema da função implícita e suas aplicações principais, e a análise vectorial em domínios curvos planos e tridimensionais.
Aprendizagem de técnicas de concepção e análise de algoritmos eficientes.
A disciplina tem por objectivo introduzir aos alunos os conceitos base de criação e desenvolvimento de sistemas interactivos, tanto a nível de conceitos teóricos (usabilidade, desenho centrado no utilizador), como práticos (prototipagem de baixa fidelidade através da implementação de interfaces gráficas).
Pretende-se que o aluno aprenda as noções básicas do raciocínio lógico e seja capaz de utilizar correctamente os sistemas dedutivos; compreenda as relações entre as semânticas e os sistemas dedutivos e a sua caracterização do ponto de vista da decidibilidade; reconheça o papel dos sistemas formais nas várias áreas da Ciência de Computadores.
O objetivo desta disciplina é dado, um problema matemático, estudar condições suficientes para a existência e unicidade de solução, escolher um método numérico para a sua resolução, controlar os erros, fornecer um algoritmo a implementar e experimentar em máquina de calcular ou em computador, e interpretar os resultados.
Fornecer aos estudantes os conceitos fundamentais da teoria e prática de bases de dados como sistemas de manipulação de grandes quantidades de informação.
Ao completar esta unidade curricular, o estudante deverá
- dominar os conceitos e princípios fundamentais da Estatística, e em particular da Inferência Estatística básica.
- conhecer as técnicas de inferência estatística mais comuns e sabe-las aplicar a problemas concretos;
- saber caracterizar um modelo de regressão linear e ser capaz de aplicar a teoria à análise de dados reais, envolvendo o ajustamento do modelo, diagnóstico e previsão;
- ser capaz de identificar e formular matematicamente um problema, de escolher métodos da estatística adequados e de analisar e interpretar de forma crítica os resultados obtidos.
Pretende-se também que o estudante adquira familiaridade com a linguagem de programação R na resolução de problemas.
Objectivos: Estudo dos conceitos fundamentais e técnicas de uso mais generalizado da Inteligência Artificial.
Fornecer aos alunos os conceitos fundamentais da teoria e prática da organização e funcionamento de um sistema de operação.
Ser capaz de implementar partes de um sistema de operação e de escrever programas utilizando a API de um sistema de operação.
Fornecer ao aluno experiência na utilização, administração e programação de alguns dos sistemas/aplicações mais utilizados em ambiente Windows. O enfoque particular será sobre o ambiente de programação do Visual Basic for Applications.
O programa proposto é leccionado em aulas teóricas onde os principais conceitos são introduzidos e são explicados exemplos práticos. Durante as aulas teóricas os alunos devem fazer apresentações relacionados com ou programa. Nos laboratórios os alunos aprenderão competências relacionadas com sistemas multimédia através da exploração de um tópico específico que escolheram do programa. Os alunos deverão ter que resolver problemas e programar uma aplicação. Irão desenvolver um projecto e criar uma aplicação que represente os conceitos apresentados nas aulas teóricas. Todos os resultados da aprendizagem ajudarão o aluno a compreender os princípios fundamentais de sistemas de multimédia e têm uma ligação directa com o programa descrito. Abrange a tecnologia do estado de arte e a experiência necessária para desenhar e desenvolver uma aplicação interactiva.
O programa visa ensinar os alunos como os sistemas de multimédias estão a ser actualmente utilizados nas diferentes indústrias.
O objectivo é despertar nos alunos a mesma curiosidade, a mesma paixão de descobrir e o mesmo desejo de adquirir conhecimento que motiva investigadores a explorar novas áreas relacionadas com sistemas de multimédia.
É esperado que no final desta cadeira o aluno tenha aprendido e compreendido tecnologia do estado de arte relacionado com os seguintes conceitos:
* Compreender quais são os princípios da animação em 3D baseado no conceito tradicional de animação em 2D.
* Explorar os diferentes tipos de sistema de captura de movimentos, realidade virtual e como estes podem trabalhar juntos.
* Compreender os principais conceitos relacionados com a teoria da informação e a visualização de dados.
* Compreender o uso da cor, texto e diagramas para a representação de informação.
* Desenvolvimento de um projecto de multimédia, criar uma demo e a sua respectiva documentação, a qual deve ser reflexo do seu resultado.
Compreensão do papel e dos procedimentos efectuados pelos administradores de redes e sistemas. Familiarização com alguns princípios gerais e prática laboratorial com a implementação e manutenção de alguns exemplos concretos de flexibilização de serviços críticos em contextos simulados de falha e operacionalizações em grande escala.
Compreensão e implementação de um compilador e interpretador de uma linguagem de programação.
Introdução à teoria de circuitos, electrónica analógica básica e sistemas digitais.
Esta é uma disciplina introdutória às redes de comunicação de dados que pretende familiarizar os alunos com os seus conceitos fundamentais, baseando-se na Internet e na pilha protocolar TCP/IP.
O objetivo da unidade curricular é a familiarização dos alunos com os conceitos e tecnologias utilizados no desenvolvimento de aplicações centradas na web.
Consolidar e enriquecer os conhecimentos sobre redes anteriormente adquiridos pelos alunos, dotando-os das competências necessárias à configuração, manutenção e monitorização de redes IP com encaminhamento estático ou dinâmico e dos respectivos serviços básicos, e ainda ao diagnóstico e resolução de problemas das mesmas.
ENQUADRAMENTO À medida que os sistemas de software aumentam de dimensão e de complexidade torna-se cada vez mais importante compreendê-los a níveis de abstracção mais elevados. A arquitectura de um sistema de software descreve a sua estrutura global em termos dos seus componentes, das propriedades externas desses componentes e das suas interrelações. Para sistemas de média e grande dimensão a escolha adequada da arquitectura assume uma importância crucial para o sucesso do seu desenvolvimento.
OBJETIVOS ESPECÍFICOS A disciplina de Arquitecturas de Sistemas de Software tem como objectivo principal introduzir os conceitos de arquitecturas de software, padrões de desenho e tópicos directamente relacionados, tais como o de componentes de software. Pretende ensinar a desenhar, compreender e avaliar arquitecturas de sistemas de software, tanto ao nível de abstracção de macro-arquitectura como de micro-arquitectura e assim familiarizar os alunos com os conceitos fundamentais de arquitectura de software, as propriedades e aplicabilidade dos diferentes estilos de arquitectura existentes, os padrões de desenho mais populares, componentes de software, arquitecturas reutilizáveis e as relações destes conceitos todos com a reutilização de software.
DISTRIBUIÇÃO PERCENTUAL Componente Científica: 50% Componente Tecnológica 50%.
Estudo e comparação de vários modelos de computação
(Turing-completos), do seu poder computacional e das suas limitações. Estudo das diversas classes de complexidade computacional.
Ao completar este curso espera-se que os alunos
- conheçam os modelos de computação clássicos utilizados no estudo da
computabilidade de diversos problemas;
- saibam provar a equivalência de vários modelos Turing-completos;
- conheçam os resultados e métodos mais importantes no estudo da
computabilidade e complexidade;
- saibam classificar exemplos concretos de problemas e provar a sua
(in)decidibilidade dentro das diversas classes de computabilidade.
- saibam classificar elemplos concretos pelas sua complexidade temporal e intrepertar essa classificação.
Proporcionar aos alunos um primeiro contacto com a investigação científica através do desenvolvimento de um trabalho inserido num projeto de investigação.
Familiarização com o processo de estudo, modelação, resolução e análise de resultados em problemas de decisão e optimização. Formalização de modelos de optimização em programação matemática.
Desenvolver aptidões para avaliar a complexidade computacional de problemas e escolher apropriadamente algoritmos na área investigação operacional e de programação por restrições.
Familiarização com linguagens e bibliotecas existentes e sua aplicação na resolução de problemas de decisão.
Esta UC é dedicada ao desenho de algoritmos para problemas computacionais, e como raciocinar de forma clara sobre a sua correção e tempo de execução. O principal objectivo é dotar os alunos das ferramentas intelectuais necessárias para que sejam capazes de desenhar a analisar os seus próprios algoritmos para problemas que precisem de resolver no futuro.
Dotar os estudantes do conhecimento teórico e prático dos modelos de computação orientados para arquiteturas paralelas e distribuídas. Será dada ênfase ao desenvolvimento de competências de programação para memória distribuída com o MPI, e de programação em memória partilhada com processos, threads e OpenMP.
A criptografia evoluiu nas últimas décadas, de um mais ou menos obscuro ramo do conhecimento usado essencialmente por militares e espiões, para uma componente essencial das comunicações e escrita de software. Com a virtualização de um grande conjunto de actividades, foi necessário usar a criptografia para assegurar todo um conjunto de propriedades e garantias que as correspondentes transacções presenciais podiam assegurar de outra forma. Hoje, a criptografia desempenha por isso um papel essencial tanto nos protocolos da Internet como nos restantes sistemas de comunicações digitais.
Pretende-se assim:
1. Introduzir a problemática da segurança das redes e sistemas informáticos assim como o problema da segurança em geral.
2. Apresentar um conjunto suficientemente expressivo de protocolos criptográficos que permitam geralmente transcrever as actividades sociais do mundo físico para o suporte digital.
3. Estudo de alguns algoritmos criptográficos, suas aplicações e possíveis ataques.
Esta disciplina tem como objetivos principais fazer uma introdução às principais metodologias de data mining, e também fornecer conhecimentos sobre programação e sistemas utilizados para a análise de dados tais como a linguagem R e o pacote WEKA.
Estudo de modelos formais sintácticos e semânticos de linguagens de programação, de forma a compreender os mecanismos envolvidos na definição, desenho e implementação de linguagens de programação.
Esta unidade curricular tem por objetivo geral introduzir os alunos aos documentos estruturados baseados no formalismo XML (eXtended Markup Language) e ao seu processamento.
Os objetivos específicos incluem o conhecimento dos conceitos e normas básicas deste formalismo, bem como as linguagens linguagens associadas às várias facetas do processamento de documentos, como: tipificação, formatação gráfica, transformação e semântica. Será também abordada a manipulação de dados em formato XML a partir de programas e a sua utilização na implementação de serviços Web destinados à comunicação entre sistemas informáticos heterogéneos.
Compreenção dos princípios fundamentais do funcionamento das redes de comunicações móveis, focando: os aspectos tecnológicos mais relevantes; as redes de comunicações móveis de 2ª, 3ª e 4ª geração; e os principais serviços em redes de comunicações móveis.
O objectivo da disciplina de Teoria da Informação é expor conceitos fundamentais relacionados com teoria da informação e as suas aplicações em sistemas e redes de comunicações e ciência de computadores.
Nesta unidade curricular pretende-se expôr aos alunos técnicas que provem ou sugiram que não existem métodos eficientes para resolver alguns problemas importantes em Ciência de Computadores com impacto na vida real (nomeadamente a factorização). Neste sentido é feito um estudo teórico de várias classes de complexidade, das relações entre elas, tais como: P, NP, co-NP, PSPACE, NL, PH, RP, BPP, e IP.
O estudante deverá ser capaz de:
- reconhecer diferentes problemas resolúveis através da utilização das técnicas de data mining abordadas e especificadas nos conteúdos.
- identificar e especificar tarefas de data mining idênticas às abordadas
- obter e pré-processar dados para os algoritmos e as tarefas abordados
- compreender e utilizar algoritmos de data mining
- obter, interpretar, avaliar e utilizar modelos de data mining.
- implementar alguns dos algoritmos e propor alterações para os melhorar
Fornecer aos alunos fundamentos teóricos e técnicas práticas de implementação de linguagens de programação declarativas.
Introduzir os conceitos fundamentais sobre sistemas embebidos e fornecer aos alunos as competências necessárias ao desenvolvimento de aplicações para estas plataformas.
Apresentar aos alunos as capacidades e limitações destes sistemas e a razão da sua disseminação e utilização em variados ambientes.
Introduzir os alunos ao desenvolvimento nestas plataformas, potenciando o trabalho de equipa e a organização da mesma.
Pretende-se, nesta disciplina, que os alunos: