Divisão de Ciência da Computação – IEC CCIXX - Departamento de Computação Científica – IECC
CESXX - Departamento de Engenharia de Software – IECE
CTCXX - Departamento de Teoria de Computação – IECT
Departamento de Computação Científica – IECC CCI-22-MATEMÁTICA COMPUTACIONAL. Requisito: CES-10. Horas semanais: 3-0-2-7. Aritmética computacional. Métodos de resolução para sistemas lineares, equações algébricas e transcendentes. Interpolação de funções. Ajuste de curvas. Integração numérica. Resolução numérica de equações diferenciais ordinárias. Implementação dos métodos numéricos. Bibliografia: Claudio, D.M. e Marins, J.M., Cálculo numérico: teoria e prática, Atlas, São Paulo, 1987; Ruggiero,M.A.C. e Lopes, V.L.R., Cálculo numérico, aspectos teóricos e computacionais, McGraw-Hill, São Paulo, 1988; Barroso, L.C. et al, Cálculo numérico com aplicações, Harbra, São Paulo, 1987. CCI-35 – SIMULAÇÃO DE SISTEMAS DISCRETOS. Requisitos: CES-20 e MOQ-13. Horas semanais: 3-0-0-5. Introdução à simulação. As fases de simulação por computadores. Os procedimentos de modelagem de simulação. Métodos de amostragem, geração de números e variáveis aleatórias. Linguagens de simulação, avaliação de software de simulação. Validação de modelos, projeto e planejamento de experimento de simulação, técnicas de redução de variância. Bibliografia: Pidd, M., Computer simulation in management science, 4 ed., Wiley, 1998; Kelton, W.D and Law, A. M., Simulation modeling and Analysis, McGraw-Hill, Inc., New York, 1991; Banks, J. et al., Discrete event system simulation, 3 edition, Prentice Hall, 2000. CCI-36 - FUNDAMENTOS DE COMPUTAÇÃO GRÁFICA. Requisito: CES-20. Horas semanais: 3-0-1-5. Elementos básicos de computação gráfica. Dispositivos gráficos. Primitivas gráficas: pontos, linhas, textos, representação e preenchimento de polígonos. Transformações 2D. Janelamento e recorte. Segmentação. Técnicas de interação. Introdução a gráficos tridimensionais: representação “wire-frame”. Eliminação de superfícies ocultas. Modelos de Iluminação: Gourand, Phong, Ray Tracing, radiosidade, filtros. Bibliografia: Hearn, D. e Pauline, B. M. Computer Graphics, C version, 2nd ed., Prentice Hall, Inc, USA, 1997 ; Newmann, W.M. e Sproull, R.F., Principles of interactive computer graphics, 10th ed., McGraw-Hill, Auckland, 1984; Foley, J.D. et al., Computer graphics: principles and practice, 2nd ed. In C, Addison-Wesley Publishing Company, USA, 1996. Departamento de Engenharia de Software - IECE CES-10-INTRODUÇÃO À COMPUTAÇÃO. Requisito: não há. Horas semanais: 4-0-2-7. Conceitos primários: Computador, algoritmo, programa, linguagem de programação, compilador. Representação de informações: sistemas de numeração, mudança de base, aritmética binária, operações lógicas, textos e instruções. Evolução das linguagens de programação. Unidades básicas de um computador. Software básico para computadores. Desenvolvimento de algoritmos: linguagens para algoritmos e refinamento passo a passo. Comandos de uma linguagem procedimental: atribuição, entrada e saída, condicionais, repetitivos e seletivos. Variáveis escalares e estruturadas homogêneas e heterogêneas. Subprogramação: funções, procedimentos, passagem de parâmetros, recursividade. Ponteiros. Bibliografia: Kelley, A. e Pohl, I., A Book on C, Benjamin Cummings, Redwood City; 1995; Schildt, H., C completo e total, Makron Books do Brasil, São Paulo, 1991; Saliba, W.L.C., Técnicas de Programação: uma Abordagem Algorítmica, Makron, São Paulo, 1992. CES-20 - ESTRUTURAS DE DADOS. Requisito: CES-10. Horas semanais: 4-0-2-5. Informação e seu significado. Tipos de dados. Modelos de armazenamento de informações. Listas lineares, pilhas, filas e deques. Alocação seqüencial e encadeada. Árvores gerais, árvores binárias e árvores balanceadas. Estruturas multiligadas. Grafos orientados e não orientados. Métodos de ordenação e métodos de procura. Manipulação de arquivos. Noções de complexidade computacional. Bibliografia: Shafer, C.A., A Practical Introduction to Data Structures and Algorithm Analysis, Java Edition, Prentice Hall, New Jersey, 1998; Aho, A.V. et al., Data Structures and Algorithms, Addison-Wesley, Reading, 1983; Weiss, T. e Esakou, J., Data Structures: an Advanced Approach using C, Prentice Hall, Englewood Cliffs, 1989. CES‑22 – Programação Orientada a Objetos. Requisito: CES-10. Horas semanais. 3-0-1-5. Classes, objetos e métodos. Herança. Interfaces. Tipos de dados e operadores. Complexidade de Engenharia de Software. Escalabilidade. Estrutura e reuso de software. Mudança de Software. Abstrações para projeto. Encapsulamento de informação. Especificação versus Implementação. Modelo estático versus modelo dinâmico. Invariantes. Pacotes. Concorrência e seu controle. Paradigma Cliente-Servidor. Paradigma Par-a-Par. Bibliografia: Arnold, K. & Gosling, J., The Java Programming Language, Addison Wesley, Reading, 1996; Niemayer, P. e Peck, J., Exploring Java, O´Reilly, Sebastopol, 1997. CES-23 – ALGORITMOS AVANÇADOS. Requisitos: CES-20 e CTC-20. Horas semanais: 2-1-0-5. Programação dinâmica. Métodos exaustivos. Algoritmos gulosos. Ordenação topológica. Manipulação de cadeias de caracteres. Algoritmos em árvores: árvore geradora mínima. Algoritmos em grafos: caminho mais curto, fluxo máximo, problemas de emparelhamento. Bibliografia: Cormen, T. H., et al., Algoritmos: Teoria e Prática, 2ª ed, Editora Campus, Rio de Janeiro, 2002; Revilla, M.A. e Skiena, S.S., Programing Challenges: The programming contest training manual, Springer Verlag, New York, 2003; Skiena, S.S., The Algorithm Design Manual, Springer Verlag, New York, 1998. CES-25 – ARQUITETURAS PARA ALTO DESEMPENHO. Requisitos: CES-10 e ELE-24. Horas semanais: 3-0-0-4. Unidades básicas de um computador: processadores, memória e dispositivos de entrada e saída. Técnicas para aumento de desempenho de computadores. Memória “cache”, entrelaçada e virtual. Segmentação do ciclo de instrução, das unidades funcionais e do acesso a memória. Computadores com conjunto reduzido de instruções. Máquinas paralelas: computadores vetoriais, computadores matriciais, multiprocessadores. Algoritmos paralelos, linguagens para expressão de paralelismo, compiladores paralelos. Bibliografia: Hennessy, J.L. e Patterson, D.A., Arquitetura de Computadores: uma Abordagem Quantitativa, Editora Campus, Rio de Janeiro, 2003; Stone, H.S., High-Performance Computer Architecture, 2.a ed, Addison Wesley, Reading, 1993; Hayes, J.P., Computer Architecture and Organization, 3.a ed, McGraw-Hill, Singapore, 1998. CES-27- PROCESSAMENTO DISTRIBUÍDO. Requisitos: CES-20 e CES-35. Horas semanais: 3-0-1-4. Introdução a sistemas distribuídos. Linguagens de programação distribuída. Anéis lógicos. Rotulação de tempo e relógios lógicos. Transações em bancos de dados distribuídos. Computações difusas. Detecção de “deadlocks” em sistemas distribuídos. Algoritmos de consenso. Algoritmos para evitar inanição. Bibliografia: Raynal, M., Distributed algorithms and protocols, John Wiley, New York, 1988; Singhal, M. and Shivaratri, N.G., Advanced Concepts in Operating Systems, McGraw-Hill, New York, 1994; Mullender, S., Distributed systems, Addison-Wesley, New York, 1993. CES-30 - TÉCNICAS DE BANCO DE DADOS. Requisito: CES-20. Horas semanais: 3-0-2-5. Métodos de organização de arquivos e pesquisa. Modelo de entidade/relacionamento. Modelo de dados relacional. Modelo de dados hierárquico. Modelo de dados em rede. Projeto de um banco de dados relacional. Banco de dados distribuído. Compressão de dados. Segurança e integridade. Privacidade em banco de dados. Suporte para tomadas de decisão. Banco de dados orientado a objetos. Bibliografia: Date, C.J., Introdução ao sistema de banco de dados, Vol. 1, Campus, Rio de Janeiro, 1991; Kimball, R., The Data Wirehouse Toolkit, John Wiley, New York, 1996; Hughes, J.G., Object Orinted Databases, Prentice-Hall, Englewood Cliffs, 1991. CES-31 - TÉCNICAS DE ENGENHARIA DE SOFTWARE. Requisitos: CES-20 e CES-22. Horas semanais: 4-0-1-5. Paradigmas de engenharia de software. Administração de projeto de software. Engenharia de Requisitos. Metodologias para desenvolvimento de software: orientação a objetos e técnicas formais. Plano de codificação e testes. Processos de software e modelos de capacitação organizacional da SEI e ISO. Arquiteturas de software. Componentes, padrões de projeto, frameworks e linhas de produto. Ferramentas e ambientes de desenvolvimento de software: aspectos arquiteturais e funcionais, integração com o processo de desenvolvimento de software. Qualidade de software: fatores e métricas de qualidade de software, plano e gestão da qualidade de software. Principais normas e padrões de qualidade de software. Dependabilidade e desenvolvimento de software crítico: qualidade, confiabilidade, proteção e segurança de software. Principais padrões de segurança de software. Bibliografia: Sommerville, Ian. Engenharia de Software, 6a. Edição. São Paulo, SP: Addison Wesley, 2003; Pfleeger, S. L. Engenharia de Software – Teoria and Prática. São Paulo, SP: Prentice-Hall, 2004; Paula Filho, Wilson de Pádua. Engenharia de software – Fundamentos, Métodos e Padrões. Rio de Janeiro, RJ: LTC, 2001. CES-32 - QUALIDADE, CONFIABILIDADE E SEGURANÇA DE SOFTWARE. Requisito: CES-31. Horas semanais: 3-0-0-6. Conceitos de qualidade de software. Fatores e métricas de qualidade de software. A evolução da abordagem de qualidade direcionada a software: as eras do controle e da garantia de software. Principais normas e padrões de qualidade de software. Características essenciais de software para aplicações críticas. Conceitos de confiabilidade de software. Métricas para confiabilidade de software. Conceitos de segurança de software. Segurança de software e proteção de software. A abordagem da segurança de software. Principais padrões de segurança de software. Estratégias de segurança de software. Bibliografia: Pressman R. S., Software Engineering, A Praticioners Approach, 4th, Mc Graw-Hill, New Jersey, 1997; Musa J. D., et al., Software Reliability. McGraw-Hill, New Jersey, 1990; Leveson N. G., Safeware: System Safety and Computers, Addison-Wesley, New York, 1995. CES-33 - SISTEMAS OPERACIONAIS. Requisito: CES-22. Horas semanais: 3-0-1-5. Conceituação. Estruturação de sistemas operacionais. Gerenciamento de processos: modelo e implementação. Mecanismos de intercomunicação de processos. Escalonamento de processos. Múltiplas filas, múltiplas prioridades, escalonamento em sistemas de tempo real. “Deadlocks”. Gerenciamento de memória. Partição e relocação. Gerenciamento com memória virtual. Ligação dinâmica. Gerenciamento de E/S. Gerenciamento de arquivos. Mecanismos de segurança e proteção. Tópicos de sistemas operacionais distribuídos. Interfaces gráficas de sistemas operacionais modernos. Bibliografia: Stallings, W., Operating Systems: Internal and Design Principles, 3rd Edition, Prentice-Hall, New Jersey, 1998; Tanenbaum, A.S., Operating System Design and Implementation, Prentice-Hall, Englewood Cliffs, 1987; Bach, M.J., The Design of the UNIX Operating System, Prentice-Hall, Englewood Cliffs, 1986. CES-35 - Redes de Computadores e Internet. Requisitos: CES-33 e MOQ-13. Horas semanais: 3-0-2-4. Noções básicas de redes de computadores: hardware e software. Necessidade de protocolos: o modelo TCP/IP. O nível físico: do par trançado a wireless. O nível de enlace: padrões IEEE. O nível de rede: algoritmos de roteamento; controle de congestionamento; o protocolo IP. O nível de transporte: os protocolos TCP e UDP. O nível de aplicação: protocolos de suporte e de serviços; configuração e análise de alguns serviços oferecidos na Internet.As áreas da gerência de redes. Protocolos de gerência. Aspectos de segurança em redes de computadores. Bibliografia: Tanenbaum, A., Computer Networks, 2nd ed., Prentice-Hall, Englewood Cliffs, 1991; Stallings, W., SNMP, SNMPv2, SNMPv3 and RMON1 and 2, Addison-Wesley, Boston, 1999. CES-41 - COMPILADORES. Requisitos: CES-20 e CTC-34. Horas semanais: 3-0-2-5. Anatomia de um compilador. Gramáticas e linguagens. Diagramas de transição. Análise léxica. Análise sintática: metodologias “top-down” e “bottom-up”. Organização de tabelas de símbolos. Tratamento de erros. Análise semântica e definições orientadas pela sintaxe. Geração de código intermediário e de código objeto. Organização de memória em tempo de execução. Otimização de código. Meta-compiladores e ferramentas automáticas para construção de compiladores. Bibliografia: Aho, A.V. et al., Compilers: principles, techniques, and tools, Addison-Wesley, Reading, 1986; Tremblay, J.P. and Sorenson, P.G., The Theory and Practice of Compiler Writing, McGraw-Hill, Singapore, 1989; Grune, D. et al, Projeto Moderno de Compiladores: Implementação e Aplicações, Editora Campus, Rio de Janeiro, 2001. CES-63 - SISTEMAS EMBARCADOS. Requisito: ELE-31. Horas semanais: 3-0-0-3. Conceitos básicos de comunicação, navegação e vigilância. Conceitos básicos de mecânica do vôo e controle automático de vôo. Conceitos básicos de auxílios de rádios à navegação aérea e ao pouso. Noções de radar e seus típos básicos. Conceitos básicos de navegação inercial e por satélite. Sistemas aviônicos computadorizados e seus requisitos. Noções de integração de sistemas computadorizados em aviônica. Adequação de sistemas computadorizados e aeronaves. Especificação e validação de hardware e software. Barramentos de dados. Mostradores de cabine. Sistemas de potência. Interferência eletromagnética. Confiabilidade de sistemas computadorizados embarcados. Bibliografia: Powell, J., Aircraft radio systems, Pitman, London, 1981; Spitzer, C. R., Digital avionics systems, Prentice-Hall, Englewood Cliffs, 1987; Midleton, D. H., Avionic Systems, Longman, London, 1989; Anderson, C. e Dorfman, M,. Aerospace software engineering: A collection of concepts, American Institute of Aeronautics, 1991. Departamento de Teoria da Computação - IECT CTC-10 - LÓGICA MATEMÁTICA. Requisito: não há. Horas semanais: 3-0-0-3. Introdução à lógica. Cálculo proposicional: teoria de modelos e teoria de provas. Conseqüências válidas. Consistência e completeza. Cálculo de predicados: quantificadores, tabelas de verdade, resultados sobre validade. Teoria de prova no cálculo de predicados. Métodos automáticos de prova no cálculo de predicados. Prova formal de programas. Grafos de refutação e de extração de resposta. Resultados sobre deducibilidade. Forma prenex. Cálculo de predicados com igualdade e com funções. Extensões do cálculo de predicados: teoria de números, grupos. Noções sobre cálculos de segunda ordem, lógica modal. Bibliografia: Kleene, S.C., Mathematical logic, John Wiley, New York, 1976; Hilbert, J. e Ackerman, W., Principles of mathematical logic, Chelsea, New York, 1950; Church, A., Introduction to mathematical logic, Princeton University Press, New York, 1956. CTC-15 - INTELIGÊNCIA ARTIFICIAL. Requisitos: CTC-10 e MOQ-13. Horas semanais: 3-0-0-5. Conceituação, aplicações. Resolução de problemas: técnicas e métodos, representação, heurísticas, decomposição de problemas, jogos. Sistemas de produção: estratégias de busca e decomposição, representação, algoritmo A*, Algoritmos genéticos. Bases lógico-matemáticas: cálculo de predicados, resolução, sistemas de dedução e refutação. Representação do conhecimento: regras de produção, redes semânticas, "frames", e outros. Sistemas baseados em conhecimento: engenharia, aquisição e processamento do conhecimento. Linguagens: LISP, PROLOG. Noções de aprendizagem de máquina: aprendizado indutivo, árvores de decisão e redes neurais artificiais. Bibliografia: Russell, S. e Norvig, P., Inteligência Artificial, Campus, 2004; Rich, E., Inteligência artificial, McGraw-Hill, São Paulo, 1988; Luger, G., Inteligência Artificial, 4ª. edição, Bookman, 2004. CTC-20 - ESTRUTURAS DISCRETAS PARA COMPUTAÇÃO. Requisito: não há. Horas semanais: 30--0-3. Revisão da aritmética dos números inteiros. Conjuntos, relações e funções. Operações sobre funções. Relações de compatibilidade, equivalência, congruência e ordem. Enumerabilidade de conjuntos. Teoria de grafos. Grafos dirigidos e árvores. Problemas de caminho e coloração de grafos. Estruturas matemáticas: operações binárias, semigrupos, monóides, grupos e anéis. Isomorfismo e homomorfismo de semigrupos e grupos. Reticulados: ordenação parcial, conjunto potência, operações e representações de reticulados. Álgebras de Boole: propriedades fundamentais. Relações com anéis booleanos. Bibliografia: Preparata, F.P. e Yeh R.T., Introduction to discrete structures for computer science and engineering, Addison Wesley, Reading, 1973; Grimaldi, R. P., Discrete and combinatorial mathematics, Addison Wesley, Reading, 1994; Scheinermann, E. R., Matemática discreta: uma introdução, Thomson, São Paulo, 2003. CTC-34 - AUTÔMATA E LINGUAGENS FORMAIS. Requisito: CTC-20. Horas semanais: 3-0-0-6. Autômata finitos e expressões regulares. Propriedades dos conjuntos regulares. Linguagens e gramáticas. Linguagens livres de contexto, sensíveis ao contexto e tipo-0. Autômato a pilha. Máquinas de Turing: seus modelos restritos e tese de Church. Computabilidade, introdução a funções recursivas. Introdução aos compiladores. Bibliografia: Hopcroft, J.E. e Ullman, J.D., Introduction to automata theory, languages, and computation, Addison-Wesley, New York, 1979; Harrison, M.A., Introduction to formal language theory, Addison-Wesley, New York, 1978; Drobot, V., Formal languages and automata theory, Computer Science Press, New York, 1989.
|