Divisão de Ciência da Computação – IEC


CCIXX - Departamento de Computação Científica – IECC

CCI-22 - MATEMÁTICA COMPUTACIONAL.
CCI-35 – SIMULAÇÃO DE SISTEMAS DISCRETOS.
CCI-36 - FUNDAMENTOS DE COMPUTAÇÃO GRÁFICA.


CESXX - Departamento de Engenharia de Software – IECE

CES-10 - INTRODUÇÃO À COMPUTAÇÃO.
CES-20 - ESTRUTURAS DE DADOS.
CES 22 – PROGRAMAÇÃO ORIENTADA A OBJETOS.
CES-25 – ARQUITETURAS PARA ALTO DESEMPENHO.
CES-27- PROCESSAMENTO DISTRIBUÍDO.
CES-30 - TÉCNICAS DE BANCO DE DADOS.
CES-31 - TÉCNICAS DE ENGENHARIA DE SOFTWARE.
CES-32 - QUALIDADE, CONFIABILIDADE E SEGURANÇA DE SOFTWARE.
CES-33 - SISTEMAS OPERACIONAIS.
CES-35 - REDES DE COMPUTADORES E INTERNET.
CES-41 - COMPILADORES.
CES-63 - SISTEMAS EMBARCADOS.


CTCXX - Departamento de Teoria de Computação – IECT

CTC-10 - LÓGICA MATEMÁTICA.
CTC-15 - INTELIGÊNCIA ARTIFICIAL.
CTC-20 - ESTRUTURAS DISCRETAS PARA COMPUTAÇÃO.
CTC-34 - AUTÔMATA E LINGUAGENS FORMAIS.


Departamento de Computação Científica – IECC

CCI-22 - MATEMÁTICA COMPUTACIONAL. Requisito: CES-10. Horas semanais: 3-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: Atkinson, L. V. et al., Numerical methods with Fortran 77: a practical introduction, Addison-Wesley, Wokingham, 1989; 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.

CCI-35 – SIMULAÇÃO DE SISTEMAS DISCRETOS. Requisitos: CES-10, CES-20 e MOQ-12. Horas semanais: 3-2-3. 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. Validação de modelos, planejamento de simulação - técnicas de redução de variância. Linguagens de simulação. Bibliografia: Pidd, M., Computer simulation in management science, 3rd ed., Wiley, 1992; Paul, R. J. et al., Simulation modelling, Chartwell-Bratt, Stockholm, 1993; Shannon, R.E., Systems simulation - the art and science, Prentice-Hall, Englewood Cliffs, 1975.

CCI-36 - FUNDAMENTOS DE COMPUTAÇÃO GRÁFICA. Requisitos: CES-10 e CES-20. Horas semanais: 3-3-4. 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-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; Hehl, M.E., Linguagem de Programação Estruturada FORTRAN 77, McGraw-Hill, São Paulo, 1986. 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: 3-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-2-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-25 – ARQUITETURAS PARA ALTO DESEMPENHO. Requisito: CES-10, ELE-20 e ELE-24. Horas semanais: 3-1-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: Stone, H.S., High-Performance Computer Architecture, 2.a ed, Addison Wesley, Reading, 1993; Almasi, G.S. e Gottlieb, A., Highly Parallel Computing, Benjamin/Cummings, Redwood City, 1994; Hayes, J.P., Computer Architecture and Organization, 3.a ed, McGraw-Hill, Singapore, 1998.

CES-27- PROCESSAMENTO DISTRIBUÍDO. Requisitos: CES-10 e CES-20. Horas semanais: 3-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-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. Requisito: CES-20. Horas semanais: 3-1-5. Os problemas da produção de software e os objetivos da Engenharia de Software. Administração de um projeto de software. Análise e especificação dos requisitos de software. Metodologias para projeto de software. Testes de software. Administração, manutenção, documentação, confiabilidade, segurança e privacidade em produtos de software. Aspectos legais do desenvolvimento de software. Ambientes CASE’s. Bibliografia: Fairlay, R.E., Software engineering concepts, McGraw-Hill, New York, 1987; Pressman, R.S., Software engineering: a practitioner’s approach, 3rd ed., McGraw-Hill, Tokyo, 1992; Shooman, M.L., Software engineering: design, reliability, and management, McGraw-Hill, New York, 1983.

CES-32 - QUALIDADE, CONFIABILIDADE E SEGURANÇA DE SOFTWARE. Requisito: CES-31. Horas semanais: 3-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-21. Horas semanais: 3-2-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-34 – SISTEMAS DE GESTÃO INTEGRADA. Requisito: CES-30. Horas semanais: 3-2-3. Arquitetura de sistemas de gestão integrada. Aplicações baseadas em banco de dados relacional. Aplicações cliente-servidor. Introdução a processos de negócios. Configuração de processos de negócios em sistemas de gestão integrada. Configuração de dados mestres e transações. Configuração e simulação de uma empresa modelo. Introdução à inteligência empresarial: data warehousing e ferramentas analíticas. Bibliografia: Curran, T. e Keller, G., SAP R/3 Business Blueprint, Prentice-Hall, New Jersey, 1998. Bancroft, N.H. et al, Implementing SAP R/3, 2nd ed., Manning Publications, Greenwich, 1998.

CES-35 - REDES DE COMPUTADORES E INTERNET. Requisito: CES-33 e MOQ-13. Horas semanais: 3-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. Requisito: CTC-34 e CES-20. Horas semanais: 3-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; Aho, A.V. et al., The theory of parsing, translation and compiling, Prentice-Hall, Englewood Cliffs, 1972; Fischer, C.N. e LeBlanc, R.J. Jr., Crafting a compiler, Benjamin/Cummings, Menlo Park, 1988.

CES-63 - SISTEMAS EMBARCADOS. Requisitos: ELE-31. Horas semanais: 3-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-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. Requisito: CTC-10 e MOQ-12. Horas semanais: 3-2-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*. 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. Construtores de sistemas especialistas. Bibliografia: Rich, E., Inteligência artificial, McGraw-Hill, São Paulo, 1988; Russell, S. e Norvig, P., Artificial Intelligence: A Modern Approach, McGraw-Hill, New Jersey, 1995; Bittencourt, G., Inteligência Artificial: Ferramentas e Teorias, Editora da UFSC, Florianópolis, 2001.

CTC-20 - ESTRUTURAS DISCRETAS PARA COMPUTAÇÃO. Requisito: não há. Horas semanais: 3-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; Deo, N., Graph theory with application to engineering and computer science, Prentice Hall, Englewood Clifs, 1974; Birkhoff, G. e Maclane, S., Álgebra moderna básica, Guanabara Dois, Rio de Janeiro, 1980.

CTC-34 - AUTÔMATA E LINGUAGENS FORMAIS. Requisito: CTC-20. Horas semanais: 3-2-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.