|
Planos de Estudos :: Licenciatura em CIÊNCIA DE COMPUTADORES com possibilidade de fazer uma formação complementar noutra área (MINOR)
|
| |
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 basicos sobre a estrutura e funcionamento dos computadores e sistemas de operacaoPrograma: 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. |
|
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. |
|
ESTRUTURA 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 |
|
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. |
|
OPÇÕES |
|
2 |
S1 |
15 |
|
|
|
|
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. |
|
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. |
|
OPÇÕES |
|
2 |
S2 |
10 |
|
|
|
|
MODELOS DE COMPUTAÇÃO |
CC |
2 |
S2 |
5 |
CC218 |
|
|
| |
ANO: 3 |
| |
UNIDADES CURRICULARES |
ÁREA |
ANO |
SEMESTRE |
CRÉDITOS |
CÓDIGO |
OPÇÃO |
|
BASE 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. |
|
OPÇÕES |
|
3 |
S1 |
15 |
|
|
|
|
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. |
|
OPÇÕES |
|
3 |
S2 |
25 |
|
|
|
|
|
Opções Quadro 12 |
ÁLGEBRA I |
M |
|
S1 |
7,5 |
M241 |
S |
|
|
ANÁLISE INFINITESIMAL |
M |
|
S1 |
7,5 |
M215 |
S |
|
|
COMPUTABILIDADE |
CC |
|
S1 |
7,5 |
CC333 |
S |
|
|
INTERACÇÃO PESSOA-MÁQUINA |
CC |
|
S1 |
5 |
CC205 |
S |
|
|
SISTEMAS E APLICAÇÕES |
CC |
|
S1 |
5 |
CC220 |
S |
|
|
TECNOLOGIAS WEB |
CC |
|
S1 |
5 |
CC307 |
S |
|
|
ANÁLISE COMPLEXA E ANÁLISE DE FOURIER |
M |
|
S2 |
7,5 |
M212 |
S |
|
|
ARQUITECTURA DE COMPUTADORES |
CC |
|
S2 |
5 |
CC224 |
S |
|
|
ARQUITECTURA DE SOFTWARE |
CC |
|
S2 |
5 |
CC226 |
S |
|
|
CÁLCULO INFINITESIMAL II |
M |
|
S2 |
7,5 |
M112 |
S |
|
|
COMPUTAÇÃO GRÁFICA |
CC |
|
S2 |
5 |
CC324 |
S |
|
|
GRAFOS E APLICAÇÕES |
CC |
|
S2 |
7,5 |
M281 |
S |
|
|
MÉTODOS DE APOIO À DECISÃO |
CC |
|
S2 |
5 |
CC330 |
S |
|
|
MÉTODOS NUMÉRICOS |
CC |
|
S2 |
7,5 |
M232 |
S |
|
|
PROJECTO |
CC |
|
S2 |
10 |
CC332 |
S |
|
|
SISTEMAS INTELIGENTES |
CC |
|
S2 |
5 |
CC322 |
S |
|
|
SISTEMAS MULTIMÉDIA |
CC |
|
S2 |
5 |
CC328 |
S |
|
- Opções FCUP são unidades curriculares de escolha livre no âmbito da Faculdade de Ciências da Universidade do Porto.
- Opções da UP são unidades curriculares de escolha livre no âmbito da Universidade do Porto. Estas opções, que totalizarão no máximo 15 créditos, tanto podem ser utilizadas como uma introdução a áreas das ciências sociais e assim diversificar uma vivência universitária, como o podem para complementar a sua formação em áreas tecnológicas ou de gestão.
- Os créditos de livre escolha (opções FCUP e/ou opções UP) podem ser utilizados em unidades curriculares ou num estágio/projecto.
Notas:
- Todas as unidades curriculares do quadro 12, constituem unidades curriculares de optativas possíveis para os estudantes que escolham fazer uma formação minor numa outra área.
- Na realização dos créditos das opções, o estudante tem de cumprir as seguintes regras:
- realizar 5 créditos em Ciência de Computadores;
se o estudante optar pela formação complementar (minor) em Astronomia, Agronomia, Biologia, Geologia, Informação Geográfica e Química deve realizar 15 créditos de opções livre (incluindo UP);
- se o estudante optar pela formação complementar (minor) em Estatística e Modelos e Matemática deve realizar 37,5 créditos de opções livre (incluindo UP);
- se o estudante optar pela formação complementar (minor) em Física deve realizar 22,5 créditos de opções livre (incluindo UP);
- se o estudante optar pela formação complementar (minor) em Matemática Aplicada deve realizar 30 créditos de opções livre (incluindo UP).
- A opção de Projecto (CC332) apenas pode ser realizada no 3ºano.
NOTA: A frequência de unidades curriculares
de nível 400 carece de autorização prévia do Director de Curso e do Conselho Científico .
Os estudantes podem escolher uma das seguintes formações complementares (MINOR):
Nota: A informação é disponibilizada a título
informativo e não dispensa a consulta do Diário da República
|