Código Oficial: | 9812 |
Sigla: | MI:ERS |
Ao completar esta unidade curricular, o estudante deve saber e compreender: a resolução e discussão de sistemas de equações lineares usando o método de Gauss e recorrendo à notação matricial dos sistemas; propriedades no cálculo do determinante de uma matriz quadrada, e conhecendo em particular a sua interpretação em termos de áreas e volumes; os conceitos básicos e resultados fundamentais relativos a espaços vetoriais e a aplicações lineares entre espaços vetoriais de dimensão finita.
Familiarizar-se com os conceitos básicos e técnicas do cálculo, a nível de funções reais de uma variável real, bem como sucessões e séries.
Estudo das estruturas discretas fundamentais que estão na base formal da área de Ciência de Computadores/Informática.
Os estudantes deverão entender a estrutura e funcionamento dos computadores digitais e sistemas de operacão e ter uma visão geral sobre a Ciência de Computadores.
Introduzir os conceitos elementares de programação imperativa enfatizando a noção de algoritmo e de modularidade.
Pretende-se que os estudantes:
- sejam capazes de conceber algoritmos para resolução de problemas simples e de os implementar na linguagem de programação C
- fiquem a conhecer alguns algoritmos básicos (contagem, pesquisa, ordenação, ...)
- adquiram bons hábitos de programação.
Com esta unidade curricular pretende-se expor os estudantes aos principais conceitos básicos da utilização de computadores, em particular em ambiente Linux. A unidade curricular permitirá reforçar os conhecimentos adquiridos no primeiro semestre em unidades como Introdução aos Computadores e Programação Imperativa.
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 ao paradigma de programação funcional usando a linguagem Haskell.
Análise Vetorial em domínios curvos. Integrais de linha e de superfície. Teoremas integrais da Análise Vectorial.
O teorema da função inversa e o teorema da função implícita e as suas principais aplicações.
Introdução aos 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.
Fundamentos da Análise e Processamento de Sinal, do ponto de vista determinístico e estocástico, incidindo sobretudo na análise no domínio da frequência. Cobertura dos aspetos fundamentais da estimação espectral não paramétrica. A orientação da disciplina privilegia a compreensão dos conceitos e métodos e a sua utilização efectiva na análise de dados simulados e de dados experimentais. É feita uma utilização intensiva de meios computacionais avançados.
Fornecer aos estudantes os conceitos fundamentais da organização e funcionamento de um computador, nomeadamente, o seu modelo de representação de dados e programas, as suas componentes e interacções, e a forma de avaliar o seu desempenho.
Aprendizagem de técnicas de concepção e análise de algoritmos eficientes.
A unidade curricular tem por objectivo introduzir aos alunos os conceitos base de criação e desenvolvimento de Interfaces Pessoa-Máquina, nomeadamente, sistemas interactivos. A abordagem é tanto a nível de conceitos teóricos (usabilidade, desenho centrado no utilizador), como práticos (prototipagem de baixa e de alta 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.
Esta unidade curricular visa apresentar os conceitos e princípios básicos da mecânica clássica, e da relatividade restrita, com ênfase na compreensão de conceitos e na aplicação ao mundo real. Os alunos deverão ter a capacidade de manipular conceitos fundamentais e saber aplicá-los à resolução de problemas. Os estudantes serão motivados a considerar a aplicação dos princípios discutidos na cadeira a outras áreas do conhecimento científico e tecnológico. Será dada atenção particular à formação na resolução de problemas, familiarizando os estudantes com heurísticas e modos de pensar dos físicos experientes.
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.
Introduzir os conceitos, métodos e resultados básicos de Teoria de Grupos, dando a conhecer as origens desta área do conhecimento e mostrando algumas das suas aplicações, assim como subsome resultados de outras áreas.
Introduzir os conceitos, métodos e resultados básicos de Teoria dos Números e alguns dos seus aspectos computacionais. Dar algumas das suas aplicações criptográficas.
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.
Dotar os estudantes da teoria e prática necessária à concepção, construção e análise de bases de dados relacionais.
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 interpretar essa classificação.
Pretende-se que, juntamente com novas metodologias estatísticas, os estudantes vejam os conceitos aprendidos anteriormente em "Probabilidades e Estatística" a serem aplicados na resolução de problemas reais. A nível teórico, serão desenvolvidos e trabalhados os métodos mais simples de inferência estatística, incluindo alguma teoria sobre estimadores e estimação pontual e vários testes de hipóteses.
Espera-se também que os estudantes adquiram familiaridade com a linguagem de programação R na resolução de problemas.
Estudo dos conceitos fundamentais e técnicas de uso mais generalizado da Inteligência Artificial.
A unidade curricular tem como objetivos principais:
- Concepção e planeamento de experiências.
- Condução pesquisas de literatura, incluindo análise crítica de artigos técnicos, expressão oral e escrita.
- Planeamento na automatização de experiências usando LabVIEW como ferramenta de controlo, aquisição e processamento.
- Desenvolvimento de miniprojectos com temática bem definida, utilizando quando possível ferramentas de LabVIEW.
O objetivo principal é fornecer uma formação sólida sobre concorrência, com particular ênfase nos princípios fundamentais de concorrência e no desenho e implementação de modelos de computação concorrente em arquiteturas de memória partilhada, assim como dos principais problemas inerentes.
Os alunos estarão equipados para enfrentar os crescentes desafios e respetiva procura por programadores, incluindo full-stack, frontend e DevOP. No final deste curso, os alunos estarão aptos a:
- Conceção e implementação de aplicações móveis seguras
- Consciência sobre as implicações do novo GPDR, evitando alguns dos erros mais comuns em relação à privacidade dos usuários
- Implementar aplicativos nativos e baseados em páginas da Web
Compreenda os compromissos implícitos entre desempenho, consumo de energia e segurança / privacidade
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.
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.
Análise Vetorial em domínios curvos. Integrais de linha e de superfície. Teoremas integrais da Análise Vectorial.
O teorema da função inversa e o teorema da função implícita e as suas principais aplicações.
Introdução aos 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.
Fundamentos da Análise e Processamento de Sinal, do ponto de vista determinístico e estocástico, incidindo sobretudo na análise no domínio da frequência. Cobertura dos aspetos fundamentais da estimação espectral não paramétrica. A orientação da disciplina privilegia a compreensão dos conceitos e métodos e a sua utilização efectiva na análise de dados simulados e de dados experimentais. É feita uma utilização intensiva de meios computacionais avançados.
Estudo e implementação dos conceitos e técnicas usados para a construção de compiladores e interpretadores de linguagens de programação convencionais.
Introdução à teoria de circuitos, electrónica analógica básica e sistemas digitais.
A unidade curricular tem por objectivo introduzir aos alunos os conceitos base de criação e desenvolvimento de Interfaces Pessoa-Máquina, nomeadamente, sistemas interactivos. A abordagem é tanto a nível de conceitos teóricos (usabilidade, desenho centrado no utilizador), como práticos (prototipagem de baixa e de alta fidelidade, através da implementação de interfaces gráficas).
Esta unidade curricular visa apresentar os conceitos e princípios básicos da mecânica clássica, e da relatividade restrita, com ênfase na compreensão de conceitos e na aplicação ao mundo real. Os alunos deverão ter a capacidade de manipular conceitos fundamentais e saber aplicá-los à resolução de problemas. Os estudantes serão motivados a considerar a aplicação dos princípios discutidos na cadeira a outras áreas do conhecimento científico e tecnológico. Será dada atenção particular à formação na resolução de problemas, familiarizando os estudantes com heurísticas e modos de pensar dos físicos experientes.
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 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.
O objetivo da unidade curricular é a familiarização dos alunos com os conceitos e tecnologias utilizados no desenvolvimento de aplicações centradas na web.
Introduzir os conceitos, métodos e resultados básicos de Teoria de Grupos, dando a conhecer as origens desta área do conhecimento e mostrando algumas das suas aplicações, assim como subsome resultados de outras áreas.
Introduzir os conceitos, métodos e resultados básicos de Teoria dos Números e alguns dos seus aspectos computacionais. Dar algumas das suas aplicações criptográficas.
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.
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.
A disciplina de Arquitetura de Software tem como objetivo geral introduzir os alunos aos modelos conceptuais e ferramentas de software usadas em projetos informáticos de maior dimensão.
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 interpretar essa classificação.
Pretende-se que, juntamente com novas metodologias estatísticas, os estudantes vejam os conceitos aprendidos anteriormente em "Probabilidades e Estatística" a serem aplicados na resolução de problemas reais. A nível teórico, serão desenvolvidos e trabalhados os métodos mais simples de inferência estatística, incluindo alguma teoria sobre estimadores e estimação pontual e vários testes de hipóteses.
Espera-se também que os estudantes adquiram familiaridade com a linguagem de programação R na resolução de problemas.
A unidade curricular tem como objetivos principais:
- Concepção e planeamento de experiências.
- Condução pesquisas de literatura, incluindo análise crítica de artigos técnicos, expressão oral e escrita.
- Planeamento na automatização de experiências usando LabVIEW como ferramenta de controlo, aquisição e processamento.
- Desenvolvimento de miniprojectos com temática bem definida, utilizando quando possível ferramentas de LabVIEW.
O objetivo principal é fornecer uma formação sólida sobre concorrência, com particular ênfase nos princípios fundamentais de concorrência e no desenho e implementação de modelos de computação concorrente em arquiteturas de memória partilhada, assim como dos principais problemas inerentes.
Os alunos estarão equipados para enfrentar os crescentes desafios e respetiva procura por programadores, incluindo full-stack, frontend e DevOP. No final deste curso, os alunos estarão aptos a:
- Conceção e implementação de aplicações móveis seguras
- Consciência sobre as implicações do novo GPDR, evitando alguns dos erros mais comuns em relação à privacidade dos usuários
- Implementar aplicativos nativos e baseados em páginas da Web
Compreenda os compromissos implícitos entre desempenho, consumo de energia e segurança / privacidade
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 e 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.
Introduzir a problemática da segurança das redes e sistemas informáticos assim como o problema da segurança da informção em geral, enquadrando aqui a utilização de primitivas criptográficas.
Estudo das primitivas criptográficas mais relevantes, as garantias de segurança que conferem, as suas aplicações, boas práticas de uso e possíveis ataques.
Apresentar um conjunto suficientemente expressivo de protocolos criptográficos que permitam geralmente transcrever as actividades sociais do mundo físico para o suporte digital.
Esta disciplina tem como objetivos principais fazer uma introdução às principais metodologias de data science, e também fornecer conhecimentos sobre programação e sistemas utilizados para a análise de dados, tais como a linguagem R.
Estudo de modelos formais 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 e ao seu processamento, sendo abordados o XML e JSON como formalismos de estruturação de documentos, com enfase no primeiro.
Compreenção dos princípios fundamentais do funcionamento das redes de comunicações móveis, focando: os aspectos tecnológicos mais relevantes; as redes locais sem fios; as redes de comunicações móveis de 2ª, 3ª, 4ª e 5ª geração; e os principais serviços em redes de comunicações móveis.
Possibilitar aos alunos uma introdução aos problemas fundamentais no desenho e na implementação de sistemas distribuídos. Ao completarem esta unidade curricular, os alunos deverão ser capazes de:
(a) explicar o que é um sistema distribuído e quais as vantagens e propriedades desejáveis de tais sistemas;
(b) descrever os princípios subjacentes ao funcionamento de sistemas distribuídos, os problemas e desafios
associados, e avaliar a eficácia e limitações das suas soluções;
(c) construir sistemas funcionais utilizando mecanismos de comunicação como sockets, RMI/RPC e Serviços Web.
O objetivo da disciplina é o de aprofundar alguns tópicos selecionados das redes de dados. Os assuntos vão de redes sem fios, mobilidade, tecnologias nos operadores a alguns propostas de investigação. A exposição teórica é complementada com trabalhos laboratoriais nos temas abordados, de modo ao estudante consolidar a teoria apreendida com a sua aplicação.
A Bioinformática é um campo do conhecimento interdisciplinar que combina as ciências da computação, a biologia e ciências biomédicas e a estatística. A Bioinformática é orientada à aplicação e desenvolvimento de novos métodos computacionais para expandir o conhecimento biológico, biomédico ou epidemiológico. Os recentes desenvolvimentos nas tecnologias de alto-débito levaram a uma grande revolução na investigação biológica e biomédica e onde hoje a bioinformática assume um papel cada vez mais central na análise de grandes quantidades de dados.
Este curso vai-se focar nos principais algoritmos desenvolvido para responder a tarefas bioinformáticas. Será dado ênfase em algoritmos de processamento e análise de sequências, quer sejam sequências nucleotídicas (exemplo DNA ou RNA) ou sequências de aminoácidos (proteínas).
O objetivo deste curso é de que os estudantes sejam capazes de entender como funcionam estes algoritmos e como podem ser desenvolvidos e aplicados para responder a novos desafios computacionais na análise de sequências biológicas.
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. Ênfase especial será dada ao papel da aleatoridade no desempenho de vários algoritmos.
O programa proposto é leccionado nas aulas teóricas onde os principais conceitos são introduzidos e são apresentados exemplos aplicáveis relacionados com filme, jogos e aplicações na medicina. Nos laboratórios os alunos resolverão trabalhos práticos relacionados com os conceitos apresentados nas aulas práticas, implementando soluções em C++ ou Python utilizando o OpenGL. Os alunos devem demonstrar a capacidade de compreender os tópicos avançados ao apresentar um artigo relacionado com um dos temas apresentado nas aulas teóricas. Os objectivos da aprendizagem serão integrados num projecto desenvolvidos nos laboratórios.
Introduzir os conceitos fundamentais sobre sistemas embutidos 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.
Aprender conceitos avançados de Bases de Dados, que passem pela inclusão da utilização de bases de dados relacionais em ambiente de linguagens de programação genéricas. Os alunos aprendem com especial ênfase as "Application Programming Interfaces" APIs em linguagem C de sistemas de gestão de bases de dados como o MySQL. Desenvolvem capacidade de aumentar tais sistemas através de módulos escritos em C.
Aborda-se o conceito de base de dados dedutiva e sistemas de representação de conhecimento.
Aprendem-se ainda conceitos de bases de dados espaciais, estudando-se o módulo PostGIS. Aprende-se SQL com extensões espaciais. Utiliza-se diversas ferramentas de análise e visualização de informação espacial, através da linguagem de programação Python e módulos como o MatPlotLib.
Aprendem-se conceitos de Data Warehousing e operadores avançados de agregação.
Aprendem-se conceitos de bases de dados noSQL.
Pretende-se, nesta disciplina, que os alunos:
A informática desempenha hoje um papel fundamental na sociedade, sendo por isso importante perceber e reflectir as questões sociais e éticas que a sua utilização suscita.
São objetivos do curso: