UNIVERSIDADE FEDERAL DO PARÁ Centro de Ciências Exatas e Naturais Pós-Graduação em Ciência da Computação – PPGCC Inscrição e Seleção – Mestrado em Ciência da Computação Programa da Prova de Seleção e Bibliografia sugerida Programa Bibliografia Sugerida Fundamentos Teóricos (Matemática Discreta, Teoria da Computação e Linguagens Formais) 9 questões Lógica Formal. Conjuntos e Combinatória. Funções parciais e totais. Grafos e Árvores. Álgebra booleana e lógica de computadores. Programas. Máquinas e computações. Máquinas universais e máquina de Turing. Tese de Church. Funções recursivas. Computabilidade. Gramáticas e linguagens. Linguagens regulares. Autômatos finitos. Linguagens livres de contexto e autômatos com pilha. Linguagens sensíveis ao contexto. DIVERIO, T. A; MENEZES, P.B. Teoria da Computação: Máquinas Universais e Computabilidade. Porto Alegre: Sagra-Luzatto, 1999. GERSTING, J. L. Fundamentos Matemáticos para Ciência da Computação. Rio de Janeiro: LTC, 3ª ed., 1995. HOPCROFT, J. E., ULLMAN, J. D. Introdução a Teoria dos Autômatos, Linguagens e Computação. Editora Campus, 2002 LEWIS, H.; PAPADIMITRIOU, C. Elementos de Teoria da Computação, 2ª edição. Bookman, 2004. MENEZES, P. F. B. Linguagens Formais e Autômatos. Porto Alegre: SagraLuzzatto, 5ª. Edição, 2005. MENEZES, P.B. Matemática Discreta para Computação e Informática. Ed. Sagra Luzzatto (Série Livros Didáticos n. 16), 2004. Programação de Computadores e Estruturas de Dados 9 questões Tipos de dados e operações primitivas. Variáveis, constantes e expressões. Operadores e suas prioridades. Estruturas de controle. Programação modular. Ponteiros em linguagens de programação de alto nível. Agregados homogêneos (arrays) uni- e multidimensionais. Agregados heterogêneos (registros). Cadeias de caracteres. Listas (realização por contiguidade e encadeamento). Pilhas e filas. Árvores: tipos, algoritmos de percurso e aplicações. Grafos: terminologia básica, técnicas de percurso e aplicações. Técnicas básicas de pesquisa e ordenação. Conceitos de programação orientada a objetos: encapsulamento, polimorfismo, agregação e herança. Implementação em linguagens orientadas a objetos. Uso de frameworks para auxílio ao desenvolvimento. CORNELL, G., Horstmann, C. S. Core Java Volume I. Makron Books, São Paulo, 1998. CORNELL, G., Horstmann, C. S. Core Java Volume II. Makron Books, São Paulo, 2003. GOODRICH, M.; TAMASSIA, R. Estruturas de Dados e Algoritmos em Java. 2ª. Edição Bookman, 2002. HOROWITZ, E., SAHNI, S. Fundamentos de estruturas de dados. Rio de Janeiro: Campus, 1984. JONES, M. O que todo Programador deveria saber sobre Projeto OO. Makron, 1997. SZWARCFITER, J. L.; MARKENZON, L. Estruturas de Dados e seus Algoritmos. LTC - Livros Técnicos e Científicos S.A., 1994. VELOSO, Paulo; SANTOS, Clesio; AZEREDO, Paulo; FURTADO, Antonio. Estruturas de Dados. Editora Campus, 1996. VILLAS, M.; FERREIRA, A., et al. Estruturas de dados: conceitos e técnicas de implementação. Rio de Janeiro: Campus, 1993. WIRTH, N. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1999. Sistemas Operacionais, Redes de Computadores e Sistemas Distribuídos 6 questões Introdução e conceitos básicos de sistemas operacionais: visão conceitual e prática do desenvolvimento dos seus componentes. Arquitetura de sistemas operacionais. Gerenciamento de memória. Memória virtual. Conceito de Processos, Monoprocessamento e Multiprocessamento. Concorrência e sincronização de processos COMER, D. Interligação de Redes com TCP/IP. Vol. I. Rio de Janeiro: Campus, 1998. COULOURIS, George; DOLLIMORE, Jean; KINDBERG, Tim. Distributed Systems: Concepts and Design. Edition 3, e threads. Alocação de recursos e deadlocks. Gerência de Entrada/Saída. Sistemas de Arquivos. Análise de Desempenho. Tendências no desenvolvimento de sistemas operacionais modernos e especializados. 2001. Camada de Aplicação; princípios dos protocolos da camada de aplicação; principais protocolos de aplicação. Camada de transporte: serviços oferecidos na camada de transporte; principais protocolos. Camada de rede e roteamento: serviços oferecidos na camada de rede; princípios de roteamento; roteamento hierárquico; principais protocolos de camada de rede. Camada de enlace: serviços oferecidos pela camada de enlace; protocolos de acesso ao meio e redes locais (LANs); endereçamento em LANs e o protocolo ARP; principais tecnologias adotadas na camada de enlace. SILBERSCHATZ, A.; GALVIN, P.; GAGNE, G. Sistemas Operacionais: Conceitos e Apliações, Ed. Campus, 2001. Caracterização de sistemas distribuídos. Metas de projeto de sistemas distribuídos. Comunicação em sistemas distribuídos. Sincronização em sistemas distribuídos. Middleware (CORBA, RMI, XML). Sistemas de arquivamento distribuído. Sistemas operacionais distribuídos. Desafios dos sistemas distribuídos (heterogeneidade, interoperabilidade, segurança, mobilidade, etc.). TANENBAUM, A. S., STEEN, M.V. Distributed systems: Principles and Paradigms, Prentice-Hall, 2001. KUROSE, J.; ROSS, K. Redes de Computadores e a Internet. Ed. Pearson Brasil. 1ª edição. 2003. SOARES, L. F. G. Das LANs, MANs e WANs às Redes ATM. Campus, 2a edição, 1995. TANENBAUM, A. Redes de computadores. Rio de Janeiro: Campus, tradução da 4ª ed., 2003. TANENBAUM, A. Sistemas Operacionais Segunda Edição, Pearson Brasil, 2003. Modernos, Banco de dados e Engenharia de Software 6 questões Sistemas de Gerência de Banco de Dados (SGBD). Modelos conceituais de banco de dados. Diagrama de Entidades e Relacionamentos. Modelo Relacional: integridade, álgebra relacional, normalização. Projeto de Banco de Dados. Linguagem SQL. Visões. BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML. Rio de Janeiro: Campus, 2003. Arquiteturas de Sistemas de Banco de Dados. Catálogo do sistema. Otimização e Processamento de Consultas. Bancos de Dados Distribuídos. Transações. Controle de Concorrência. Recuperação. Segurança. Integridade. Desempenho. Bancos de Dados Orientados a Objetos. Bancos de Dados ObjetoRelacionais. GAMMA, H.; JOHNSON; V. Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a Objetos. Porto Alegre: Bookman, 2000. Fundamentos de Engenharia de Software. Métodos e Metodologias para desenvolvimento de software. Paradigmas de Engenharia de Software. Engenharia de Requisitos. Projeto de Software: aspectos fundamentais, projeto modular, projeto de dados, projeto arquitetural. Documentação de software. Verificação, Validação e Teste. Manutenção de Software. Gerenciamento de Configuração de Software. Aspectos gerenciais da Engenharia de Software: Métricas, Estimativas, Planejamento. ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados: Fundamentos e Aplicações. 3ª edição, LTC, 2002. HEUSER, C. A. Projeto de Banco de Dados. 4ª edição. Porto Alegre: Sagra-Luzzato, 2001. JACOBSON, I.; BOOCH, G.; RUMBAUGH, J. The unified software development process. Reading, Mass. AddisonWesley, 1999. PRESMAN, R. S. Engenharia de Software. 5ª. ed, Ed. McGraw Hill, 2001. SILBERSCHATZ, A.; KORTH, H.; SUDARSHAN, S. Sistema de Banco de Dados. 3ª edição. São Paulo: Markon Books, 1999. Engenharia de software auxiliada por computador: ferramentas CASE, ambientes de desenvolvimento de software. Reutilização de software. Engenharia reversa e reengenharia de software. Tecnologias de processo de desenvolvimento de software. Garantia de qualidade de software. Desenvolvimento de software orientado a objetos: metodologias de análise e projeto orientado a objetos. UML. Programação em Lógica e Inteligência Artificial 6 questões Histórico e quadro atual da inteligência artificial. Sistemas de produção, procura e espaço de procura, informação heurística. Métodos de resolução de problemas e de representação de conhecimento. Sistemas especialistas. Programação em Lógica e a Linguagem PROLOG. Inteligência Computacional Aplicada; Redes Neurais. BRAKTO, I. Prolog Programming for Artificial Intelligence, Second Edition, Addison-Wesley Publishing Company. 1990. CLOCKSIN, W. F.; MELLISH, C. S., Programming in Prolog. Springer-Verlag, 4th edition, 1994. HAYKIN, Simon. Redes Neurais, Princípios e Prática. 2a. Edição, Bookman, 2001. LUGER, G. Inteligência Artificial: Estruturas e estratégias para a solução de problemas complexos. Bookman, 2004. Rezende, Solange. Sistemas Inteligentes. Ed. Manole, 2002 RUSSEL, S.; NORVIG, P. Inteligência Artificial. Tradução da 2ª. Edição. Campus, 2004.