1 - 2007/1 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ EEL5105 - Circuitos e técnicas digitais ======================================= INE5401 - Introdução à Computação ================================= 36h/a - 2 creditos Uso versus funcionamento interno de computadores. Organização de Computadores. Teoria da Computação. Linguagem de Computador. Sistemas Operacionais. Redes de Computadores. Sistemas Distribuídos. Engenharia de Software. Matemática na Computação. Tecnologias da informação: Bancos de Dados, Computação Gráfica, Segurança, Inteligência Artificial. Computação e Ética. INE5402 - Programação Orientada a Objetos I =========================================== 108h/a - 6 créditos Algoritmo. Programação de computador. Resolução de problemas usando computador. Linguagem de Programação. Elementos de programação imperativa: variáveis simples, coleções uni e n dimensionais; tipos das variáveis; comandos; procedimentos e funções. Conceitos fundamentais do paradigma de Programação Orientada a Objetos: objeto, atributo, método, classe. Prática de programação usando alguma linguagem de programação orientada a objetos. INE5403 - Fundamentos de Matemática Discreta para Computação ============================================================ 108h/a - 6 creditos Lógica Proposicional, Lógica de Primeira Ordem, Lógica Matemática (prova de teoremas), Teoria dos Conjuntos, Indução e Recursão. Divisão nos Inteiros. Seqüências e somas. Análise Combinatória. Probabilidade Discreta. Relações: Propriedades das Relações, Relações de Equivalência, Relações de Ordem, Reticulados, Álgebra Booleana. Funções Discretas: Funções Totais e Parciais, Composição de Funções. Noções de modelos Matemáticos de Computadores e de Computabilidade. Estruturas Algébricas: semigrupos e grupos, grupos e codificação. MTM5161 - Cálculo A =================== 72h/a - 4 creditos Funções reais de variável real; funções elementares do cálculo; noções sobre limite e continuidade; a derivada; aplicações da derivada; integral definida e indefinida. 2 - 2007/2+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INE5404 - Programação Orientada a Objetos II ============================================ 108h/a - 6 creditos Herança. Polimorfismo. Reusabilidade de software. Componentes. Criação e uso de bibliotecas de classes. Padrões de projeto. Interface Gráfica com o Usuário. Exceções. Relacionamentos entre classes: agregação, composição e especialização. Persistência de dados e de objetos. Prática de programação com alguma linguagem de programação orientada a objetos. INE5405 - Probabilidade e Estatística ===================================== 90h/a - 5 creditos Análise combinatória. Planejamento de uma pesquisa. Análise exploratória de dados. Probabilidade. Variáveis aleatórias discretas e contínuas. Principais modelos teóricos. Estimação de parâmetros. Testes de hipóteses. INE5406 - Sistemas Digitais =========================== 90h/a - 5 creditos Máquinas seqüenciais síncronas (Mealy e Moore) e sua representação (diagramas de transição e descrição em HDL). Síntese de circuitos seqüenciais (minimização e codificação de estados). Mapeamento e alternativas de implementação de máquinas de estado ("hardwired", PLA, ROM e PLD). Estudos de casos: controladores de memória, de interrupção, de DMA. Simulação de sistemas digitais descritos em HDL no nível de transferência entre registradores. CPU vista como um sistema digital (datapath e unidade de controle). Unidade de controle de uma CPU simples ("hardwired" e microprogramada). INE5407 - Ciência, Tecnologia e Sociedade ========================================= 54h/a - 3 creditos Estudo das relações entre ciência, tecnologia e sociedade ao longo da história, com ênfase na atualidade; filosofia da ciência; análise de valores e ideologias envolvendo a produção e divulgação da ciência e da tecnologia; influências das diferenças culturais nas concepções de ciência e tecnologia e de suas relações com as sociedades; a participação da sociedade na definição de políticas relativas às questões científicas, tecnológicas, econômicas e ecológicas. O impacto da informática na sociedade. MTM5512 - Geometria Analítica ============================= 72h/a - 4 creditos Matrizes. Determinantes. Sistemas lineares. Álgebra vetorial. Estudo da reta e do plano. Curvas planas. Superfícies. MTM7174 - Cálculo B para Computação =================================== 72h/a - 4 creditos Aplicações da integral definida. Integrais impróprias. Funções de várias variáveis. Derivadas parciais. Séries de números reais. Séries de funções. Avaliação de funções: série de Taylor e Maclaurin. 3 - 2008/1 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INE5408 - Estruturas de Dados ============================= 108h/a - 6 creditos Alocação dinâmica de memória. Variáveis estáticas e dinâmicas. Estruturas lineares. Tabelas de Espalhamento. Árvores. Árvores de Pesquisa. Métodos de ordenação. Métodos de acesso a arquivos. Técnicas de implementações iterativas e recursivas de estruturas de dados. Complexidade dos algoritmos em estruturas de dados. INE5409 - Cálculo Numérico para Computação ========================================== 72h/a - 4 creditos Máquinas digitais: precisão, exatidão e erros. Aritmética de ponto flutuante. Sistemas de enumeração. Sistemas lineares. Resolução computacional de sistemas de equações lineares. Resolução de equações transcendentes. Aproximação de funções: interpolação spline, ajustamento de curvas, aproximação racional e por polinômios de Chebyschev. Integração numérica: Newton-Cotes e quadratura Gaussiana. INE5410 - Programação Concorrente ================================= 72h/a - 4 creditos Multiprogramação. Multitarefa. Execução concorrente. Recursos compartilhados e exclusão mútua. Regiões críticas. Coordenação de processos e threads. Semáforos. Monitores. Troca de mensagem. Programação concorrente orientada a objeto. Deadlock. Modelos de computação concorrente. INE5411 - Organização de Computadores I ======================================= 108h/a - 6 creditos Tendências tecnológicas na fabricação de CPUs e memórias. CPU: instruções e modos de endereçamento. Formatos de instruções e linguagem de montagem. Simulador e montador. Aritmética. Avaliação de desempenho. Datapath e unidade de controle. Alternativas de implementação (monociclo, multiciclo, pipeline, superescalar). Exceções e interrupções. Hazards estruturais, de dados e de controle. Hierarquia de memória e associatividade (cache e TLB). Dispositivos de entrada e saída: tipos, características e sua conexão à CPU e à memória. Comunicação com a CPU (polling, interrupção, DMA). MTM5245 - Álgebra Linear ======================== 72h/a - 4 creditos Espaço vetorial. Transformações lineares. Mudança de base. Produto interno. Transformações ortogonais. Autovalores e autovetores de um operador. Diagonalização. Aplicação da Álgebra linear às ciências. 4 - 2008/2 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INE5412 - Sistemas Operacionais I ================================= 72h/a - 4 creditos Programação de Sistemas. Histórico de Sistemas Operacionais. Arquitetura de Sistemas Operacionais. Funcionalidades de Sistemas Operacionais. Gerência de Processos e Threads: Controle e Escalonamento. Impasses: Modelagem e Tratamento. Memória: Alocação, Gerência e Memória Virtual. Entrada e Saída: princípios de hardware e software, dispositivos periféricos. Sistema de Arquivos: Arquivos, Diretórios e Implementação. Proteção e Segurança. Sistemas com Múltiplos Processadores. INE5414 - Redes de Computadores I ================================= 72h/a - 4 creditos Capacidade de canal. Taxa de transmissão. Codificação analógica-digital, digital-digital e digital-analógica. Princípios dos modelos das redes de computadores: OSI e TCP/IP. Meios de transmissão de dados. Serviços e tarefas ofertados na camada de enlace. Estudo de casos de protocolos e tecnologias de enlace de dados. Redes de comutação de circuito e de pacotes. INE5415 - Teoria da Computação ============================== 72h/a - 4 creditos Programas, Máquinas e Computações. Máquinas de Turing. Funções Recursivas. Computabilidade. Decidibilidade. Análise e Complexidade de Algoritmos. Classes e complexidade de problemas computacionais. INE5416 - Paradigmas de Programação =================================== 90h/a - 5 creditos Caracterização e classificações dos paradigmas. Problemas tratáveis pelos paradigmas. Definição e caracterização dos principais paradigmas declarativos e imperativos. Programação em Lógica. Programação Funcional. Prática de programação com os principais paradigmas apresentados. INE5417 - Engenharia de Software I ================================== 90h/a - 5 creditos Análise de requisitos: requisitos funcionais e requisitos não-funcionais; técnicas para levantamento e representação de requisitos, incluindo casos de uso. Modelagem OO: classe, atributo, associação, agregação e herança. Projeto OO: técnicas para projeto; padrões de projeto, componentes e frameworks; projeto de arquitetura; mapeamento objeto-relacional. Linguagem de especificação orientada a objetos. Métodos de análise e projeto orientados a objetos. Desenvolvimento de um software OO. 5 - 2009/1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INE5418 - Computação Distribuída ================================ 72h/a - 4 creditos Arquitetura de Sistemas Distribuídos. Paradigmas de Computação Distribuída: Troca de Mensagens, Cliente/Servidor, Comunicação em Grupo, Objetos Distribuídos. Comunicação entre Processos. Suporte de SO para Computação Distribuída. Sincronização em Sistemas Distribuídos. Consistência e Replicação de Dados em Sistemas Distribuídos. Sistemas de Arquivo Distribuídos. Computação GRID. INE5419 - Engenharia de Software II =================================== 72h/a - 4 creditos Evolução da prática de desenvolvimento de software; qualidade de artefatos de software; modularidade e reusabilidade; modelagem estrutural e dinâmica em orientação a objetos, diferentes visões de um sistema; metodologias de análise e projeto orientadas a objetos; teste de software; manutenção de software; modelos de ciclo de vida; engenharia reversa; modelagem formal de sistemas; abordagens voltadas ao reuso de software; gerenciamento do processo de produção de software e técnicas de apoio ao gerenciamento do processo de produção de software; apoio automatizado ao desenvolvimento de software. INE5420 - Computação Gráfica ============================ 72h/a - 4 creditos Computação Gráfica Básica. Sistema Gráfico Interativo. Transformações geométricas 2D e coordenadas homogêneas. Clipping. Curvas paramétricas em 2D e 3D. Estruturas de dados gráficas 3D. Navegação 3D. Projeções, perspectiva e clipping 3D. Superfícies paramétricas bicúbicas. Visualização em 3D contendo, Rayshading, Raycasting e Raytracing. Conversão por varredura e buffer de profundidade. Iluminação de objetos. Implementação de um rayshader. APIs Gráficas e OpenGL. Animação e utilização de modelos hierárquicos. Simulação de movimentação de animais e humanos. Realidade virtual e VRML. INE5422 - Redes de Computadores =============================== 72h/a - 4 creditos Camada de Rede TCP/IP: endereçamento, roteamento, protocolos. Camada de Aplicação: conceitos e protocolos. Aspectos de segurança em redes de computadores. Dispositivos de interconexão, conceito de processores de redes. Protocolos leves. Métodos formais para especificação e verificação de protocolos. Administração de redes de computadores. INE5423 - Bancos de Dados I =========================== 72h/a - 4 creditos Banco de Dados (BD). Sistema de Gerência de BD: funcionalidades, módulos principais, categorias de usuários, dicionário de dados. Modelo relacional: conceitos, restrições de integridade, álgebra relacional, cálculo relacional. Linguagens SQL: DDL, DML, restrições de integridade, visões, autorização de acesso. Modelagem de dados: etapas do projeto de um BD relacional, modelo Entidade-Relacionamento (ER), mapeamento ER-relacional. Teoria da Normalização: objetivo, dependências funcionais, formas normais. 6 - 2009/2 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INE5421 - Linguagens Formais e Compiladores =========================================== 72h/a - 4 creditos O processo de compilação. Linguagens e suas representações. Gramáticas: definição formal, classificação (Hierarquia de Chomsky), propriedades, problemas de decisão e aplicações. Gramáticas regulares, autômatos finitos, conjuntos regulares e expressões regulares. Gramáticas livres de contexto. Autômatos de pilha. Teoria de Parsing. Análise léxica e sintática. INE5424 - Sistemas Operacionais II ================================== 72h/a - 4 creditos Desenvolvimento de Sistemas Operacionais: projeto lógico, arquitetura, inicialização de Sistemas Computacionais, componentes (processos, threads, escalonador, mecanismos de sincronização, gerenciadores de memória, sistemas de arquivos, drivers de dispositivos de entrada e saída), teste, depuração, estudos de caso. INE5425 - Modelagem e Simulação =============================== INE5428 - Informática e Sociedade ================================= 72h/a - 4 creditos Ética pessoal, profissional e pública na área da informática. Dilemas éticos do profissional da informática; privacidade, vírus, hacking, uso da internet, direitos autorais, etc. Desemprego e informatização. Responsabilidade social. O profissional e o mercado de trabalho. Trabalho e relações humanas. O empreendedorismo como opção do profissional da informática. Legislação: Política nacional e tendências atuais referentes à regulamentação da profissão. 7 - 2010/1 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INE5413 - Grafos ================ 72h/a - 4 creditos Grafos e grafos orientados. Representação de problemas com grafos. Caminhos, ciclos e caminho de custo mínimo. Conexidade e alcançabilidade. Árvores e árvore de custo mínimo. Coloração e planaridade de grafos. Grafos hamiltonianos e eulerianos. Fluxo máximo em redes. Estabilidade e emparelhamento em grafos. Problemas de cobertura e de travessia. Representações computacionais e complexidade de algoritmos em grafos. INE5426 - Construção de Compiladores ==================================== 72h/a - 4 creditos Projeto de especificação de linguagens de programação. Implementação das etapas que compreendem o processo de compilação: Análise Léxica, Análise Sintática, Análise Semântica, Geração e Otimização de Código. Evolução e tendências da área de compiladores e linguagens de programação. INE5427 - Planejamento e Gestão de Projetos =========================================== 72h/a - 4 creditos Projetos. Metodologias de planejamento e gestão de projetos. Áreas de conhecimento da gerência de projetos: Escopo, Tempo, Risco, Integração, Comunicação, Custo, Recursos Humanos, Aquisição, Qualidade. Grupos de processos: Iniciação, Planejamento, Execução, Controle, Encerramento. Técnicas de acompanhamento de projetos. Ferramentas computacionais de apoio ao planejamento e gerência de projetos. Estudo de casos. INE5429 - Segurança em Computação ================================= 72h/a - 4 creditos Segurança em aplicações: programação segura, detecção de falhas, códigos maliciosos (malware). Segurança em sistemas operacionais: princípios de controle de acesso, sistemas confiáveis. Segurança em redes de computadores: ataques e defesas. Princípios de criptografia: criptografia simétrica e assimétrica, integridade de dados. Protocolos de autenticação: princípios, infra-estrutura de chaves públicas e aplicações (X.509, OpenPGP, SPKI, IBE), protocolos criptográficos (S/Mime, IPSec, SSL, OpenSSH, Kerberos, VPNs). INE5431 - Sistemas Multimídia ============================= 72h/a - 4 creditos Definição de sistemas multimídia e problemática envolvida. Representação digital de áudio, imagens e vídeos. Técnicas e padrões de compressão. Aplicações multimídia: caracterização e requisitos. Protocolos de transporte de mídia e de controle-sinalização. Qualidade de Serviço. INE5432 - Bancos de Dados II ============================ 72h/a - 4 creditos SQL embutida: instruções estáticas e dinâmicas, cursores. Processamento de consultas: otimização algébrica; plano de execução de uma consulta considerando estimativas sobre os dados, índices, buffers e pipelines. Transações: definição, propriedades, estados. Recuperação de falhas: categorias de falhas, gerência de buffer, técnicas de recuperação. Controle de concorrência: teoria da serializabilidade, escalonadores otimistas e pessimistas, tratamento de deadlock. Noções básicas de bancos de dados distribuídos: arquiteturas, projeto, processamento de consultas, gerência de transações. INE5438 - Laboratório de Microprocessadores e Lógica Programável ================================================================ 72h/a - 4 creditos Perspectiva histórica, revisão de organização de computadores, microprocessadores e microcontroladores. Princípios de projeto de sistemas embarcados, restrições de tempo-real, técnicas de implementação, teste, emulação e depuração. Entrada e Saída (portas de E/S, tratamento de interrupções, E/S programada, DMA). Temporizadores, contadores e relógios. Interfaceamento analógico (conversores A/D e D/A, sensores e atuadores). Estudo de casos: sistemas embarcados baseados em microcontroladores, prototipação de sistemas embarcados em lógica programável, sistemas embarcados baseados em sistemas operacionais de tempo-real (RTOS). 8 - 2010/2 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ EFC5557 - Tênis =============== INE5433 - Trabalho de Conclusão de Curso I ========================================== 108h/a - 6 creditos Conceituação da pesquisa em cursos de graduação em ciência da computação. Conceitos e técnicas para preparação de projetos de pesquisa: introdução, objetivos, hipóteses, metodologia, justificativa, resultados esperados, estado da arte, desenvolvimento, experimentos, conclusões. Conceitos e técnicas para proceder à revisão bibliográfica e a escrita de artigos científicos. Orientação para o desenvolvimento do projeto em Ciência da Computação. Relatórios sobre o andamento dos projetos. INE5430 - Inteligência Artificial ================================= 72h/a - 4 creditos Histórico, Teoria de Problemas, Paradigma Simbólico da IA, Modelagem de Agentes Inteligentes, Métodos de Busca, Representação de Conhecimento, Métodos de Inferência, Tratamento de Incertezas, Sistemas Especialistas, Lógica Nebulosa, Paradigma Conexionista da IA, Redes Neurais Diretas e Algoritmos de Aprendizado, Paradigma Evolucionário da IA, Algoritmos Genéticos. INE5656 - Introdução à lógica simbólica ======================================= 36h/a - 2 creditos Escopo e aplicações da Lógica. Cálculos de seqüentes para as lógicas proposicional e quantificacional. Noções de semânticas. Exemplos de representação do conhecimento. INE5437 - Arquitetura de Computadores II ======================================== 72h/a - 4 creditos Arquitetura de computadores modernos. Contextualização da taxonomia de Flynn (SISD,SIMD,MISD,MIMD). Redes de Interconexão. Multicomputadores. Multiprocessadores. Máquinas com Acesso Uniforme à Memória (UMA). Multiprocessores simétricos (SMP). Máquinas com Acesso Não Uniforme à Memória (NUMA). Máquinas com Coerência de Cache e Acesso Não Uniforme à Memória (ccNUMA). Processadores Massivamente Paralelos (MPP). Sistemas Distribuídos. Clusters. Grids. 9 - 2011/1 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ INE5434 - Trabalho de Conclusão de Curso II =========================================== 108h/a - 6 creditos Orientação para o desenvolvimento da fase final do projeto em Ciência da Computação. Defesa final do trabalho perante banca examinador. INE5658 - Lógica Simbólica II ============================= 36h/a - 2 creditos INE5443 - Reconhecimento de padrões =================================== 72h/a - 4 creditos EFC5803 - Dança e Improvisação ============================== 72h/a - 4 creditos