Baixe o app para aproveitar ainda mais
Prévia do material em texto
1º PERÍODO PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: ÁLGEBRA VETORIAL E LINEAR PARA COMPUTAÇÃO CÓDIGO: 06418 DEPARTAMENTO: MATEMÁTICA ÁREA: Matemática CARGA HORÁRIA TOTAL: 60 horas NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: TEÓRICAS: 04 PRÁTICAS: 00 TOTAL: 04 PRÉ-REQUISITOS: Nenhum EMENTA Álgebra vetorial. Álgebra linear. Métodos numéricos em Álgebra Linear CONTEÚDOS 1. Espaços vetoriais 2. Bases 3. Produto escalar/interno, ortogonalidade 4. Transformações lineares e propriedades 5. Matrizes e determinantes 6. Matrizes inversa e pseudo-inversa 7. Autovetores e autovalores 8. Aritmética de ponto flutuante 9. Sistemas de equações lineares 9.1 Métodos Algébricos 9.2 Métodos Numéricos 10. Resolução de exercícios BIBLIOGRAFIA Básica 1. Steinbruch, Alfredo e Winterle, Paulo. Introdução a Álgebra Linear. Makron Books, 1990. 2. Campos filho, Frederico Ferreira. Algoritmos Numéricos. LTC, 2001. Springer-Verlag, Vols 1 and 2, 1997. 3. Ueberhuber, C.W. Numerical Computation- Methods, Software and Analysis Complementar: 1. ANTON & RORRES. Álgebra Linear com Aplicações 8ª Edição, Bookman. 2. LEON, Steven J. Álgebra Linear com Aplicações 8ª Edição, LTC. 3. CALLIOLI, DOMINGUES E COSTA, Álgebra Linear e Aplicações, Atual Editora. 4. BOLDRINI, COSTA, FIGUEIREDO E WETZLER, Álgebra Linear, Harbra. 5. BARBIERI, ESPINOSA E BISCOLLA, Álgebra Linear para Computação, LTC Emissão: Coordenação do Curso de Bacharelado em Ciência da Computação Data: Responsável: ______________________________ UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6257 www.ufrpe.br PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: CÁLCULO NI CÓDIGO: XXX DEPARTAMENTO: MATEMÁTICA ÁREA: MATEMÁTICA CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 4 h PRÁTICAS: 0h PRÉ-REQUISITOS: NENHUM CO-REQUISITOS: NENHUM SEMESTRE/ANO DE APLICAÇÃO: EMENTA Funções Reais de uma Variável Real. Limite e Continuidade. Derivadas: conceito, regras e aplicações. CONTEÚDOS 1- FUNÇÕES REAIS DE UMA VARIÁVEL REAL 1.1 – Números Reais, Intervalos, Valor Absoluto e Desigualdades. 1.2 – Funções: conceito, domínio, contradomínio e imagem. 1.3 – Funções elementares, Gráficos. 1.4 – Funções Injetoras, Sobrejetoras e Bijetoras, Funções Invertíveis. 1.5 – Funções Pares e Funções Ímpares. 2 - LIMITES E CONTINUIDADE 2.1 – Conceito e noção intuitiva de limite. Propriedades básicas. 2.2 – Limites Laterais. 2.3 – Teorema do Confronto. 2.4 – Limites infinitos e limites no infinito. Operações com o símbolo 3 – DERIVADAS: CONCEITO E REGRAS 3.1 – Conceito e interpretação geométrica. Regras básicas de derivação. 3.2 – Derivadas das funções elementares. 3.3 – Derivada da função composta. Derivada da função inversa. 3.4 – Derivadas das funções trigonométricas inversas. 3.5 – Problemas de Taxa de Variação. 4 - DERIVADAS: APLICAÇÕES 4.1 – Máximos e Mínimos. 4.2 – Teoremas de Rolle e do Valor Médio. 4.3 – Regra de L’Hôpital no cálculo de limites. 4.4 – Região de crescimento e concavidade. Esboço de gráficos. 5.5 – Resoluções de Problemas pertinentes aos currículos de engenharia, e/ou ciências biológicas, e/ou agrícolas, e/ou computação, e/ou física, e/ou Química, e/ou ciências sociais, dentre outras. PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) Na carga horária desta disciplina, são destacadas 15 horas que serão computadas como "Prática como Componente Curricular". Este espaço deverá ser utilizado na participação ativa do aluno, quer através de discussões, apresentações de tópicos relativos aos conteúdos, produção de texto, utilização de novas tecnologias, ou de qualquer outra atividade que estimule seu espírito crítico, sua desenvoltura, criatividade, autoconfiança e o domínio de ferramentas computacionais. BIBLIOGRAFIA BIBLIOGRAFIA BÁSICA: [1] STEWART, James. Cálculo, vol. 1, Pioneira Thomson Learning. [2] GUIDORIZZI, Hamilton. Um Curso de Cálculo, vol. 1, LTC. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br [3] LOPES, Hélio; MALTA, Iaci; PESCO, Hélio. Cálculo a uma variável: uma introdução ao cálculo. Rio de Janeiro: Editora PUC-Rio/Loyola. [4] HOFFMANN, Laurence D.; BRADLEY, Gerald L.; E SILVA, Pedro P. de Lima. Cálculo: um curso moderno e suas aplicações. LTC-Livros Técnicos e Científicos, 2010. BIBLIOGRAFIA COMPLEMENTAR: [1] ANTON, Howard; BIVENS, Irl; DAVIS, Stephen. Cálculo, Bookman, 2007. [2] ÁVILA, Geraldo. CÁLCULO I, Rio de Janeiro, LTC. [3] FLEMMING, Diva Marilia; GONÇALVES, Mirian Buss. Cálculo A: funções, limite, derivação, integração. 6. ed. rev. e ampl. São Paulo: Pearson Prentice Hall, 2006. [4] FINNEY, Ross L.; WEIR, Maurice D.; GIORDANO, Frank R; THOMAS, George B. Cálculo. São Paulo, SP: Pearson Education do Brasil, Addison Wesley, 2005. [5] HUGHES-HALLET. Cálculo a uma e a várias variáveis, vol. 1. Rio de Janeiro: LTC. Emissão Data: Responsável: PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: INTRODUÇÃO À CIÊNCIA DA COMPUTAÇÃO CÓDIGO: 14044 DEPARTAMENTO: DEINFO ÁREA: INFORMÁTICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 4h PRÁTICAS: - PRÉ-REQUISITOS: Nenhum CO-REQUISITOS: Nenhum EMENTA Evolução da Ciência da Computação. Conceitos básicos. Bases numéricas. Sistemas de numeração em computação. Aritmética binária. Representação de dados: números em ponto fixo e ponto flutuante, codificação BCD, numérica e alfanumérica. Arquitetura tradicional (von Neumann). Introdução à Arquitetura e Organização de Computadores através de exemplos hipotéticos. Noções de sistemas operacionais, utilitários, redes, tipos de linguagens, compiladores e interpretadores. Introdução à Ciência da Computação: a ciência, o curso e a profissão. CONTEÚDOS 1. Introdução à Ciência da Computação: o que é; áreas de conhecimento; computação e sociedade; a profissão; 2. Evolução da Ciência da Computação: história; evolução dos computadores; futuro; 3. Sistemas de Numeração: bases numéricas; aritmética binária; representação de dados; 4. Arquitetura e Organização dos Computadores: conceitos básicos; arquitetura Von Neumann; processadores; memória; barramento; entrada e saída; 5. Sistemas Operacionais: conceitos básicos; evolução; processos; memória; arquivos; 6. Redes de Computadores: conceitos básicos; arquitetura; segurança; 7. Programação: algoritmos e lógica de programação; linguagens; compiladores e interpretadores; desenvolvimento. 1/2 UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br BIBLIOGRAFIA Básica: BROOKSHEAR, J. Glenn. Ciência da Computação: uma visão abrangente. Porto Alegre: Bookmam, 2000. 5a Edição. FEDELI, R.D. et al. Introdução à Ciência da Computação. Thomson Pioneira. 2009. Cengage Learning. FOROUZAN, B., MOSHARRAF, F. Fundamentos da Ciência da Computação. 2011. Cengage Learning. Complementar: WEBER, Raul Fernando. Fundamentos de Arquiteturas de Computadores. Porto Alegre: SAGRA-LUZZATTO, 2001. (2a Edição) ISBN: 85-241-0635-2 TANENBAUM, A.s. Organização Estruturada de Computadores. Prentice Hall, 2006 (5ª EDIÇÃO). MOKARZEL, F. C., SOMA, N. Y. Introdução à Ciência da Computação.Editora Campus, 2008. TANENBAUM, A.s., Wetherall, D. Redes de Computadores. Pearson Education, 2011 (5ª EDIÇÃO). DALE, L. CIÊNCIA DA COMPUTAÇÃO. LTC, 2010 (4ª edição). Emissão: Coordenação do Curso de Bacharelado em Ciência da Computação Data: Responsável: _____________________________ 2/2 PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: INTRODUÇÃO À PROGRAMAÇÃO I CÓDIGO: 14117 DEPARTAMENTO: DEINFO ÁREA: INFORMÁTICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 2h PRÁTICAS: 2h PRÉ-REQUISITOS: Nenhum EMENTA Introdução às linguagens de programação algorítmicas e ao desenvolvimento estruturado de programas. Tipos e estruturas elementares de dados, operadores, funções embutidas e expressões. Instruções condicionais, incondicionais e de repetição. Tipos compostos de dados: vetores, matrizes e registros. Ponteiros. Modularização, funções e procedimentos, passagem por valor e por referência, documentação. Introdução a uma linguagem de programação algorítmica popular. Introdução à organização de dados em arquivos. Noções de recursão. Problemas algorítmicos elementares de busca e ordenação. CONTEÚDOS 1. Fundamentos da construção de algoritmos e programas; 2. Ambientes de programação: uso de uma linguagem de programação; 3. Conceitos básicos: variáveis, operadores e expressões, estruturas de controle (atribuição, seleção, repetição); 4. Dados estruturados homogêneos (vetores e matrizes); 5. Dados estruturados heterogêneos; 6. Subprogramas: funções, procedimentos; 7. Parâmetros locais e globais; 8. Recursão; 9. Ponteiros; e 10. Manipulação de Cadeias de Caracteres 11. Manipulação de Arquivos. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) NA. BIBLIOGRAFIA Básica: Mark LUTZ, David ASCHER: Aprendendo Python, BOOKMANCOMPA-NHIA ED, ISBN: 857780013x, ISBN-13: 9788577800131. Albano, R., Albano, S. Programação em Linguagem C. Editora Ciência Moderna, 2010. ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Vene-ruchi de. Fundamentos da Programação de Computadores. Prentice Hall - Br. 3ª Edição. 2012. Complementar: Mark PILGRIM: Mergulhando No Python, ALTA BOOKS, ISBN: 8576080931 ISBN-13: 9788576080930. Mark SUMMERFIELD: Programacao Em Python 3, ALTA BOOKS, ISBN: 8576083841, ISBN-13: 2000029636912. LOPES, Anita e Garcia, Guto. Introdução à Programação: 500 Algorit-mos Resolvidos. Editora Campus, 2002. Herbert Schildt – C Completo e Total, Makron Books,3ª Edição, 1997. DEITEL, Paul; Deitel, Harvey. C How to Program. 6th ed. Prentice Hall, 2010. Emissão: Coordenação do Curso de Bacharelado em Ciência da Computação Data: Responsável: ______________________________ 1/2 PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: MATEMÁTICA DISCRETA I CÓDIGO: 14203 DEPARTAMENTO: DEINFO ÁREA: INFORMÁTICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 4h PRÁTICAS: - PRÉ-REQUISITOS: Nenhum CO-REQUISITOS: Nenhum EMENTA Lógica proposicional. Lógica de predicados de primeira ordem. Técnicas de demonstração básicas: direta, por contraposição, por redução ao absurdo, por casos. Provas existenciais construtivas e não-construtivas. Teoria dos conjuntos. Relações n-árias, binárias, de equivalência e de ordem. Funções e seqüências: injetividade e sobrejetividade. Cardinalidade: prova por diagonalização. Teoria dos números: divisibilidade, números primos, algoritmo da divisão (teorema) e aritmética modular. Definições recursivas e provas por indução. Aplicações na Computação nas áreas de: Inteligência Artificial, Métodos Formais, Bancos de Dados, Análise de Algoritmos e Criptografia. CONTEÚDOS 1. Lógica Proposicional e Técnicas de Demonstração 1.1 Proposições e Operadores Lógicos 1.2 Tabela-Verdade 1.3 Equivalências lógicas 1.4 Regras de inferência 1.5 Prova Direta e Por Contradição 2. Lógica de Predicados de 1ª Ordem 2.1 Predicados e quantificadores 2.2 Equivalências lógicas 2.3 Regras de inferência 2.4 Revisão dos métodos de prova 2.5 Prova existencial 3. Teoria dos Conjuntos. 3.1 Tipos e Representações 3.2 Pertinência e Continência 3.3 Igualdade de conjuntos 3.4 Operações entre conjuntos 4. Funções e Seqüências. 4.1 Representações UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6257 www.ufrpe.br 2/2 4.2 Funções injetivas, sobrejetivas e bijetivas. 4.3 Seqüências e somatórios. 4.4 Cardinalidade de conjuntos infinitos 5. Relações. 5.1 Relações binárias e n-árias 5.2 Propriedades das relações em um conjunto 5.3 Relações de ordem 5.4 Relações de equivalência 6. Introdução a Teoria dos Números 6.1 Axiomas 6.2 Divisão e MDC 6.3 Números primos 6.4 Noções de Aritmética Modular 7. Indução e Recursão 7.1 Definições recursivas de funções e seqüências 7.2 O princípio da indução 7.3 Provas por indução fraca 7.4 Provas por indução forte BIBLIOGRAFIA Básica: GERSTING, J. L. Fundamentos Matemáticos para a Ciência da Computação. 5a edição. Rio de Janeiro: LTC, 2004. SCHEINERMAN, E. R. Matemática Discreta: Uma Introdução. Segunda edição. São Paulo: Cengage Learning, 2011. MILIES, C. P.; COELHO, S. P. Números: uma introdução à matemática. 3a edição. São Paulo: EDUSP, 2001. Complementar: ROSEN, K. H. Matemática Discreta e suas Aplicações. Sexta edição. São Paulo: McGraw-Hill, 2009. MENEZES, Paulo Blauth. Matemática discreta para computação e informática. 2. ed. Porto Alegre: Sagra Luzzatto, 2005. SILVA, F. S. C. da; FINGER, M.; MELO, A. C. V. de. Lógica para computação. São Paulo: Thomson, 2006. PATASHNIK, O.; GRAHAM, R. L.; KNUTH, D. E. Matemática Concreta: Fundamentos para a Ciência da Computação. Segunda edição. Rio de Janeiro: LTC, 1995. LOVÁSZ, L., PELIKÁN, J., VESZTERGOMBI, K. Matemática Discreta. Sociedade Brasileira de Matemática, 2006 Emissão: Coordenação do Curso de Bacharelado em Ciência da Computação Data: Responsável: ___________________________________ 2º PERÍODO PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: METODOLOGIA CIENTÍFICA APLICADA À COMPUTAÇÃO CÓDIGO: 14112 DEPARTAMENTO: DEINFO ÁREA: INFORMÁTICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 4h PRÁTICAS: - PRÉ-REQUISITOS: Nenhum CO-REQUISITOS: Nenhum EMENTA Tipos de conhecimento. Conhecimento científico. Ciência e linguagem. Explicações científicas. Alcance, limite e estrutura de hipóteses. Leis e teorias científicas. Metodologia de pesquisa em ciências exatas: pesquisa bibliográfica, elaboração, execução e acom¬panhamento de projetos de pesquisa: problematização, hipóteses, métodos e seleção de amostra. Normatização de trabalhos técnico-científicos. Técnicas de coleta de dados. Análise de Dados. CONTEÚDOS 1. Princípios filosóficos e epistemológicos da pesquisa científica 2. Elaboração de projetos técnicos e científicos 3. Estruturação e escrita de trabalhos técnico-científicos em Ciência da Computação 4. Normas ABNT 5. Apresentação de trabalhos técnicos e científicos BIBLIOGRAFIA Básica: SEVERINO, A. J. Metodologia do Trabalho Científico. 23. ed. São Paulo: Cortez, 2007. MÁTTAR NETO, João Augusto. Metodologia científica na era da informática. São Paulo: Saraiva, 2010. CERVO, A. L.; BERVIAN, P. A.; DA SILVA, R. Metodologia Científica.6. ed. São Paulo: Pearson Prentice Hall, 2007. Complementar: PEREIRA, M. G. Artigos científicos: Como Redigir, Publicar e Avaliar. Editora Guanabara Koogan, 2011. KÖCHE, José Carlos. Fundamentos de metodologia científica: teoria da ciência e iniciação à pesquisa. 24. ed. Petrópolis, RJ: Vozes, 2007. SECAF, V. Artigo Científico: do desafio à conquista. 5. ed. São Paulo: ATHENEU, 2010. LAKATOS, Eva Maria; MARCONI, Marina de Andrade. Metodologia científica. 5. ed. São Paulo: Atlas, 2010. SANTOS, Antonio Raimundo dos. Metodologia cientifica: a construção do conhecimento. 4. ed. Rio de Janeiro: DP&A, 2001. WAZLAWICK, R. S. Metodologia de Pesquisa para Ciência da Computação. Rio de Janeiro: Elsevier, 2008. Emissão: Coordenação do Curso de Bacharelado em Ciência da Computação Data: Responsável: ___________________________________ UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n, Dois Irmãos - Recife/PE CEP: 52171-900 | www.ufrpe.br PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: ALGORITMOS E ESTRUTURAS DE DADOS CÓDIGO: 06214 DEPARTAMENTO/UNIDADE ACADÊMICA: DEINFO / Sede ÁREA: Fundamentos da Computação CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 3 h PRÁTICAS: 1 h PRÉ-REQUISITOS: introdução à Programação I e Matemática Discreta I CO-REQUISITOS: NENHUM EMENTA Análise de Algoritmos: Notação O e Análise Assintótica. Algoritmos para pesquisa e ordenação em memória principal e secundária. Organização de arquivos. Técnicas de recuperação de informação. Listas lineares e suas generalizações: listas ordenadas, listas encadeadas, pilhas e filas. Aplicações de listas. Árvores e suas generalizações: árvores binárias, árvores de busca, árvores balanceadas (AVL), árvores B e B+. Aplicações de árvores. CONTEÚDOS 1. Introdução ao Estudo de Algoritmos. 1.1 Definição de Algoritmo; 1.2. Análise de Pior Caso, Caso Médio e Melhor Caso; 1.3. Análise Assintótica; 1.4. Estratégia Dividir-Para-Conquistar; 1.5. Algoritmos Recursivos. 2. Estruturas de Dados. 2.1. Listas Ligadas: simples, duplas e circulares; 2.2. Alocação Dinâmica de Memória; 2.3. Pilhas e Filas: alocação estática e dinâmica; 2.4. Árvores Binárias de Busca. 2.5. Árvores AVL; 2.6. Tabelas Hash; 2.7. Heaps; 2.8. Conjuntos Disjuntos. 3. Ordenação. 3.1. Mergesort; 3.2. Quicksort; 3.3. Heapsort. 4. Algoritmos em Grafos. 4.1. Busca em Largura; 4.2. Busca em Profundidade; 4.3. Árvore Geradora Mínima; 4.4. Busca de Caminho Mais Curto; 4.5. Enumeração topológica; 4.6. Componentes fortemente conexos. 5. Conceitos Básicos de NP-Completude. 5.1. Problemas NP-Completos; 5.2. Redutibilidade; 5.3. Aplicações; BIBLIOGRAFIA Básica: 1. Cormen, Thomas H., Leiserson, Charles E., Rivest, Ronald R., Stein, Clifford. Introduction to Algorithms. 3 ed. MIT Press, 2009. 2. FEOFILOFF, Paulo. Algoritmos em Linguagem C. Editora Campus/Elsevier, 2008-2009. 3. ZIVIANI, Nivio. Projeto de algoritmos: com implementações em Pascal e C. 3 ed. rev. e ampl. São Paulo: Cengage Learning, 2011. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n, Dois Irmãos - Recife/PE CEP: 52171-900 | www.ufrpe.br Complementar: 1. MANBER, Udi. Introduction to Algorithms: A Creative Approach. Addison Wesley, 1989. 2. FARRER, Harry; BECKER, Christiano Gonçalves; FARIA, Eduardo Chaves et al. Algoritmos Estruturados. 3a ed. Rio de Janeiro: LTC, 1999. 3. FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de programação: a construção de algoritmos e estrutura de dados. 3. ed. São Paulo: Prentice-Hall, 2005. 4. SZWARCFITER, J. Estruturas de Dados e seus Algoritmos. Rio de Janeiro: LTC, 1994. 5. KRUSE, Robert L; RYBA, Alexander J. Data Structures and Program Design in C++. Prentice Hall, 1999. PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: CÁLCULO N II CÓDIGO: XXX DEPARTAMENTO: MATEMÁTICA ÁREA: MATEMÁTICA CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 4 h PRÁTICAS: 0h PRÉ-REQUISITOS: CÁLCULO NI CO-REQUISITOS: NENHUM SEMESTRE/ANO DE APLICAÇÃO: EMENTA Integral de funções uma variável real. Funções reais de várias variáveis: limite e continuidade. Derivadas Parciais e Diferenciabilidade. Regra da Cadeia e derivação implícita. Máximos e Mínimos. Multiplicadores de Lagrange. CONTEÚDOS 1 - INTEGRAL DE FUNÇÕES DE UMA VARIÁVEL 1.1 – Primitivas e o conceito de integral. 1.2 – O Teorema Fundamental do Cálculo. 1.3 – Técnicas de integração. Integrais Impróprias 1.4 – Aplicações: comprimento de curvas, área de uma região plana, volume de sólidos de revolução. Métodos de Resolução de Equações Diferenciais Ordinárias. 1.5 – Área em coordenadas polares. 2 - FUNÇÕES REAIS DE VÁRIAS VARIÁVEIS 2.1 – Conceitos topológicos no plano e no espaço. 2.2 – Funções de várias variáveis: domínio, imagem e conjunto de nível. 2.3 – Limite e continuidade. 3 – DERIVADAS PARCIAIS 3.1 – Conceito e interpretação geométrica. Regras básicas de derivação. 3.2 – Diferenciabilidade e plano tangente. Reta normal. 3.3 – Regra da Cadeia. 3.4 – Gradiente e Derivada Direcional. 3.5 – Derivadas parciais de ordem superior. 4 - APLICAÇÕES 4.1 – Máximos e Mínimos. 4.2 – Multiplicadores de Lagrange. 4.3 – Derivação implícita. 4.4 – Resoluções de Problemas pertinentes aos currículos de engenharia, e/ou ciências biológicas, e/ou agrícolas, e/ou computação, e/ou física, e/ou química, e/ou ciências sociais, dentre outras. PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) Na carga horária desta disciplina, são destacadas 15 horas que serão computadas como "Prática como Componente Curricular". Este espaço deverá ser utilizado na participação ativa do aluno, quer através de discussões, apresentações de tópicos relativos aos conteúdos, produção de texto, utilização de novas tecnologias, ou de qualquer outra atividade que estimule seu espírito crítico, sua desenvoltura, criatividade, autoconfiança e o domínio de ferramentas computacionais. BIBLIOGRAFIA BIBLIOGRAFIA BÁSICA: [1] STEWART, James. Cálculo, vol. 1, Pioneira Thomson Learning. [2] STEWART, James. Cálculo, vol. 2, Pioneira Thomson Learning. [3] GUIDORIZZI, Hamilton. Um Curso de Cálculo, vol. 1, LTC. [4] GUIDORIZZI, Hamilton. Um Curso de Cálculo, vol. 2, LTC. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br [5] LOPES, Hélio; MALTA, Iaci; PESCO, Hélio. Cálculo a uma variável: uma introdução ao cálculo. Rio de Janeiro: Editora PUC-Rio/Loyola. BIBLIOGRAFIA COMPLEMENTAR: [1] ANTON, Howard; BIVENS, Irl; DAVIS, Stephen. Cálculo, Bookman, 2007. [4] HOFFMANN, Laurence D.; BRADLEY, Gerald L.; E SILVA, Pedro P. de Lima. Cálculo: um curso moderno e suas aplicações. LTC-Livros Técnicos e Científicos, 2010. [3] ÁVILA, Geraldo. CÁLCULO I, Rio de Janeiro, LTC. [4] ÁVILA, Geraldo. CÁLCULO II, Rio de Janeiro, LTC. [5] FLEMMING, Diva Marilia; GONÇALVES, Mirian Buss. Cálculo A: funções, limite, derivação, integração. 6. ed. rev. e ampl. São Paulo: Pearson Prentice Hall, 2006. [6] FINNEY, Ross L.; WEIR, Maurice D.; GIORDANO, Frank R; THOMAS, George B. Cálculo. São Paulo, SP: Pearson Education do Brasil, Addison Wesley, 2005. [7] HUGHES-HALLET. Cálculo a uma e a várias variáveis, vol. 1. Rio de Janeiro: LTC. [8] HUGHES-HALLET.Cálculo a uma e a várias variáveis, vol. 2. Rio de Janeiro: LTC Emissão Data: Responsável: PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: Introdução à Programação II CÓDIGO: 14118 DEPARTAMENTO: DEINFO ÁREA: Engenharia de Sistemas de Software CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 04 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 2 h PRÁTICAS: 2 h PRÉ-REQUISITOS: Introdução à Programação I CO-REQUISITOS: Nenhum EMENTA Paradigma orientado a objetos. Conceitos de programação orientada a objeto: abstração, generalização, modularização e encapsulamento. Sintaxe básica JAVA. Orientação a objetos com JAVA: classes e objetos, tipos abstratos de dados, objetos e mensagens, herança, polimorfismo. Arquitetura em N-camadas instanciação de padrão estilo MVC na prática. Boas práticas de programação orientada a objetos e padrão de codificação. Projeto de desenvolvimento. CONTEÚDOS 1. Conceitos básicos de programação 1.1. O que fazer antes de começar a programar 2. Conceitos básicos de orientação a objetos 2.1. Abstração 2.2. Generalização 2.3. Modularização 2.4. Encapsulamento (information hiding) 3. Programação Orientada a Objetos 3.1. Conceito 3.2. Fundamentos de programação orientada a objetos 3.3. Classes (tipos abstratos de dados) e Instâncias (objetos) 3.4. Escopo de classes, construtores e métodos. 3.5. Métodos e mensagens (construtores e destrutores) 3.6. Passagem de parâmetros 3.7. Composição e herança 3.8. Superclasse e subclasse 3.9. Interfaces 3.10. Classes abstratas 3.11. Sobrescrita (Overriding) e sobrecarga (Overloading) 3.12. Polimorfismo (casts e conversão de tipos) 4. Linguagem de Programação Java 4.1. Tipos primitivos de dados 4.2. Operadores 4.3. Estruturas de controle de fluxo e desvio condicional 4.4. Expressões 4.5. Coletor de lixo (Garbage Collection) 4.6. Recursão 4.7. Exceções 4.8. Genéricos 5. Estruturação de sistemas em camadas 5.1. Arquitetura em N-camadas 5.2. Exemplo com arquitetura de 3 camadas (GUI, negócio e dados) 5.3. Introdução ao padrão MVC UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 081-3320-6000 www.ufrpe.br 6. Coleções 6.1. Arrays / Collections 6.2. Set 6.3. Map 6.4. List 6.5. Enum 7. Interface Gráfica com o usuário (GUI) 7.1. Java Swing / JavaFX 7.2. Componentes gráficos e tratamento de eventos 8. Depuração e documentação de programas 8.1. Depuração modular 8.2. Testes unitários 8.3. Introdução à documentação de requisitos, de classes e de código 9. Projeto de desenvolvimento 9.1. Todos os conceitos abordados na disciplina serão avaliados através da execução prática de projeto de desenvolvimento, com entregas parciais durante o semestre e definidas em plano de ensino. BIBLIOGRAFIA BIBLIOGRAFIA BÁSICA: 1. Deitel, Harvey M. et. al. Java como Programar, 8ª. edição. Prentice Hall - Br, 2010. 2. Cornell, Gary; Horstmann, Cay S. Core Java, Volume I - Fundamentos. 8ª Edição. Pearson Education Br, 2010. 3. Schildt, Herbert. Java - A Referência Completa. Alta Books, Tradução da 8ª edição, 2014. BIBLIOGRAFIA COMPLEMENTAR: 4. Schildt, Herbert. Java Para Iniciantes - Crie, Compile e Execute Programas Java Rapidamente, 6ª. edição. Bookman, 2015. 5. Andrea Stein, Lynn. Interactive Programming in Java. Disponível gratuitamente em: http://www.cs101.org/ipij/). 6. Eckel, Bruce. Thinking in Java. 4ª. edição, 2006. (3ª. edição disponível gratuitamente em http://www.mindview.net/Books/TIJ/) 7. Sierra, Kathy. Use a Cabeça Java. Alta Books, 2005. 8. Meyer, Bertrand. Object-Oriented Software Construction. Segunda Edição. Prentice Hall, 2000. (Capítulos 1, 2, 3 e 4). http://www.cs101.org/ipij/ http://www.mindview.net/Books/TIJ/ 1/2 PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: MATEMÁTICA DISCRETA II CÓDIGO: 14204 DEPARTAMENTO: DEINFO ÁREA: INFORMÁTICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 4h PRÁTICAS: - PRÉ-REQUISITOS: Matemática Discreta I CO-REQUISITOS: Nenhum EMENTA Combinatória Básica: Permutações, Combinações, binômios, ocupância, inclusão/exclusão, recorrências. Inversão de Moebius, Ações de grupos e semigrupos. Teoria dos Grafos: propriedades e teoremas fundamentais. Algoritmos em Grafos. Indução e Iteração, Órbitas e pontos fixos, Automato Celulares (AC), AC e Automatos Finitos, AC e Álgebra, AC e Computação. CONTEÚDOS • Coeficientes binominais • Teorema Binominal e Triangulo de Pascal • Permutações e combinações • Estruturas algébricas: semigrupos, monoides, grupos (definição e exemplos) • Grupos: propriedades • Geradores e grafos de grupos; Grupos de permutação. • Anéis e Corpos • Grafos: Introdução, Definição e Terminologia. • Grafos: Representação, isomorfismos, conectividade, grafos com pesos. • Grafos: conectividade, caminho, circuito euleriano e hamiltoniano • Grafos: planaridde e coloração • Aritmética Modular • Teoria de codificação algébrica • Técnicas de verificação de erros • Aplicações de matemática discreta • Criptografia UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br 2/2 BIBLIOGRAFIA Básica: SCHEINERMAN, E. R. Matemática Discreta: Uma Introdução. Segunda edição. São Paulo: Cengage Learning, 2011. GERSTING, J. L. Fundamentos Matemáticos para a Ciência da Computação. Quinta Edição. Rio de Janeiro: LTC, 2004. PATASHNIK, O.; GRAHAM, R. L.; KNUTH, D. E. Matemática Concreta: Fundamentos para a Ciência da Computação. Segunda edição. Rio de Janeiro: LTC, 1995. Complementar: HARRIS, J.; HIRST, J. L.; MOSSINGHOFF, M. Combinatorics and Graph Theory. 2nd ed. Springer, 2008. ROSEN, K. H. Matemática Discreta e suas Aplicações. Sexta edição. São Paulo: McGraw-Hill, 2009. PEMMARAJU, S.; SKIENG, S.: Computational Discrete Mathematics: Combinatorics and Graph Theory with Mathematica®. Cambridge University Press, 1 Reissue edition, 2009. SUTNER, K.: Computational Discrete Mathematics (notas de aulas). Disponível eletronicamente em http://www.cs.cmu.edu/~cdm/. GALLIAN, J. A.; Contemporary Abstract Algebra, Seventh Edition.2010. JUDSON, T.W.; Abstract Algebra: Theory and Applications. 2012. Disponível eletronicamente em: http://abstract.ups.edu/. Emissão: Coordenação do Curso de Bacharelado em Ciência da Computação Data: Responsável: _______________________________________ http://www.cs.cmu.edu/~cdm/ http://abstract.ups.edu/ 3º PERÍODO UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n, Dois Irmãos - Recife/PE CEP: 52171-900 | www.ufrpe.br PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: Circuitos Digitais CÓDIGO: 14063 DEPARTAMENTO: DEINFO ÁREA: ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 2 h PRÁTICAS: 2 h PRÉ-REQUISITOS: CO-REQUISITOS: SEMESTRE/ANO DE APLICAÇÃO: EMENTA Bases numéricas: princípio de funcionamento e padrões de representação. Representações de números inteiros e fracionários nos sistemas digitais: representação em complemento a dois, em ponto-fixo e em ponto-flutuante. Eletrônica básica: circuitos elétricos e circuitos eletrônicos básicos. Implementação de portas lógicas com transistores e diodos. Famílias lógicas. Circuitos lógicos combinacionais: análise e síntese. Circuitos lógicossequenciais: análise e síntese. Flip-flops, registradores, e memórias. Osciladores e relógios. Dispositivos lógicos programáveis. Introdução aos sistemas digitais. Implementação e análise de circuitos contadores, geradores de código e autômatos finitos. Linguagens de Descrição de Hardware (HDL), Padrões de codificação de projeto em linguagens de descrição de hardware. Modelagem e implementação de circuitos lógicos sequenciais e combinacionais por meio do uso de linguagens de descrição de hardware. Introdução à arquitetura de computadores. CONTEÚDOS IV - CONTEÚDO PROGRAMÁTICO 1. Sistemas de Numeração 1.1. Bases binária, octal e hexadecimal 1.2. Representação e operação de números em complemento a dois 1.3. Representação de números reais nas notações de ponto-fixo e de ponto-flutuante 2. Eletricidade Básica e Introdução aos circuitos eletrônicos 2.1. Lei de Ohms 2.2. Princípio de funcionamento dos Semicondutores 2.2.1. Junção PN 2.2.2. Diodos 2.2.3. Transistores 3. Circuitos Lógicos Combinacionais 3.1. Álgebra Booleana 3.2. Funções e portas lógicas básicas – AND, OR, NOT, NAND, NOR, XOR, XNOR 3.3. Tabela Verdade 3.4. Expressões Booleanas 3.5. Teoremas Booleanos 3.6. Teorema de deMorgan 3.7. Universalidade das portas NAND e NOR 3.8. Simbologia Alternativa para portas lógicas 3.9. Projeto e simplificação de circuitos lógicos combinacionais 3.9.1. Aplicação de tabela verdade no projeto de circuitos lógicos combinacionais 3.9.2. Equações booleanas e suas aplicações nas implementações de circuitos lógicos combinacionais 3.9.3. Simplificação de circuitos lógicos combinacionais pelo método algébrico e pelo método de Karnaugh 4. Circuitos Lógicos Sequenciais 4.1. Latchs 4.2. Características dos Pulsos digitais e sinais de clock 4.3. Flip-flops SR, JK, D e T 4.4. Entradas síncronas e assíncronas dos flip-flops 4.5. Problemas de temporização e sincronismo com flip-flops 4.6. Aplicações com flip-flops 4.6.1. Armazenamento de dados 4.6.2. Transferência paralela e serial de dados 4.6.3. Divisão de frequência e contagem 4.7. Circuitos Osciladores 4.7.1. Multivibradores 4.7.2. Circuitos geradores de clock 4.8. Dispositivos Schmitt-trigger UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n, Dois Irmãos - Recife/PE CEP: 52171-900 | www.ufrpe.br 4.9. Projeto e análise de circuitos sequenciais 4.9.1. Contadores assíncronos 4.9.2. Contadores síncronos 9.2.1. Paralelo módulo N 9.2.2. Paralelo módulo menor que N 9.2.3. Contadores crescentes e decrescentes 9.2.4. Contadores com carga paralela 9.2.5. Projeto e análise de contadores síncronos 4.9.3. Metodologia de Projeto e análise de circuitos sequenciais 9.3.1. Modelagem por meio de máquina de estados finitos 9.3.2. Tabela de transição de estados 9.3.3. Circuitos de ativação 5. Famílias Lógicas e Circuitos Integrados 5.1. Família lógica TTL (Transistor Bipolar) 5.2. Família lógica CMOS (Transistor de Efeito de Campo) 6. Tecnologias de acoplamento 6.1. Saída Toten-pole 6.2. Saída coletor aberto 6.3. Saída Tri-state 6.4. Portas de transmissão CMOS 6.5. Interfaceamento de Cis 6.6. Circuitos Lógicos MSI 6.6.1. Decodificadores/Codificadores 6.6.2. Multiplexadores/Demultiplexadores 6.6.3. Comparador de Magnitude 6.6.4. Conversor de código 6.6.5. Barramento de dados 7. Matrizes de Portas Lógicas Reconfiguráveis em Campo (Field Progammable Gate Array - FPGA) 7.1. Introdução 7.2. Arquitetura Interna de um FPGA 7.3. Famílias de FPGAs 7.4. Ambiente de desenvolvimento de projetos para FPGAs 8. Linguagem de descrição de hardware (Hardware Description Language - HDL) 8.1. Introdução as Linguagens de Descrição de Hardware 8.2. Linguagem Verilog 8.2.1. Sintaxe básica 8.2.2. Padrões de codificação de projeto em linguagens de descrição de hardware. 8.2.3. Modelagem e implementação de circuitos lógicos combinacionais 8.2.4. Modelagem e implementação de circuitos lógicos sequenciais 8.3. Metodologias para a simulação e a verificação de circuitos 8.3.1. Waveform 8.3.2. Testbench 8.4. Projeto de sistemas complexos utilizando HDL 9. Introdução aos Microprocessadores 9.1. Arquitetura interna de um microprocessador básico 9.2. Estratégia de projeto e implementação dos elementos internos de um microprocessador 9.2.1. Banco de Registradores 9.2.2. Unidade Lógica e Aritmética 9.2.3. Unidade de Controle 9.2.4. Memória de Programa 9.2.5. Entrada e Saída 9.3. Projeto prático – Implementação de um microprocessador básico utilizando a linguagem Verilog PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) Projeto e implementação de circuitos lógicos digitais por meio das metodologias apresentadas na disciplina. Projeto e implementação de um microprocessador básico utilizando a linguagem verilog. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n, Dois Irmãos - Recife/PE CEP: 52171-900 | www.ufrpe.br BIBLIOGRAFIA BIBLIOGRAFIA BÁSICA: 1.TOCCI, Ronald J.; WIDMER, Neal S. Sistemas digitais: princípios e aplicações. 11ed. São Paulo: Pearson Prentice Hall, 2007. 2. VAHID, Frank. Sistemas Digitais Projetos, Otimização e HDL. 1 ed. Porto Alegre: Bookman Companhia Editora, 2008 3. FLOYD, Thomas L. Sistemas Digitais Fundamentos e Aplicações. 9ed..Porto Alegre: Bookman Companhia Editora, 2007 BIBLIOGRAFIA COMPLEMENTAR: 1. Thomas, D. E.; Moorby, Philip R.: Verilog Hardware Description Language , 5ed. New York, Kluwer Academic Publishers, 2002 2. IDOETA, Ivan V; CAPUANO, Francisco G. Elementos de eletrônica digital. 40. ed. São Paulo: Érica, 2008. 3. CARRO, Luigi. Projeto e prototipação de sistemas digitais. Porto Alegre: Editora da Universidade Federal do Rio Grande do Sul, 2001. 4. PEDRONI, Volnei A. Eletrônica digital moderna e VHDL. Rio de Janeiro, RJ: Elsevier, 2010. 5.VAHID, Frank. Digital Design with RTL Design, VHDL, and Verilog . Second edition, John Wiley & Sons, Inc, New Jersey, USA, 2011. Emitido em: ____/____/____ Responsável: _____________________________________________________ PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: ESTATÍSTICA EXPLORATÓRIA CÓDIGO: 06243 DEPARTAMENTO: DEINFO ÁREA: INFORMÁTICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 4h PRÁTICAS: - PRÉ-REQUISITOS: Nenhum CO-REQUISITOS: Nenhum EMENTA Experimentos aleatórios. Frequência relativa. Probabilidade. Probabilidade condicionada. Variáveis aleatórias discretas e contínuas. Noções de amostragem. Distribuição de frequência. Estimativas de parâmetros. Gráficos. Intervalos de Confiança. Teste de hipótese. Ajustamento. CONTEÚDOS 1. PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) NA. BIBLIOGRAFIA Básica: BARBETTA, P. A.; REIS, M. M.; BORNIA, A. C. Estatística: para cursos de engenharia e informática. 3ª Ed. São Paulo: Atlas, 2010. BUSSAB, W. O. & MORETIN, C. A. Estatística Básica. 6 ed. SP: Saraiva, 2010. HOFFMANN, R. Estatística para Economistas. 3ª. ed. rev. e ampl. São Paulo: Livraria Pioneira, 1998. 430 p. VIEIRA, S.; HOFFMANN, R. Estatística Experimental. São Paulo: Editora Atlas, l989. 179 p. Complementar: GONÇALVES, F. A. Introdução à Estatística: estatística descritiva. São Paulo: Atlas, 1976. 224p. SPIEGEL, Murray R. Estatística. 2ª. São Paulo: McGraw-Hill, 1985. 454p. BERQUO, Elza S.; SOUZA, José M.P.; GOTLIEL, Sabina. Bioestatística. 2ªed. São Paulo: EPU, 1981. 350p. HOEL, Paul G. Estatística Elementar. São Paulo: Editora Atlas, 1992. 430 p. FONSECA, Jairo S. da, MARTINS, Gilberto de A. Curso de Estatística. São Paulo: Editora Atlas, 1982. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br Emissão Data: Responsável: PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: FÍSICA APLICADA A COMPUTAÇÃO CÓDIGO: 06325 DEPARTAMENTO:DEPARTAMENTO DE FÍSICA ÁREA: FÍSICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 4h PRÁTICAS: - PRÉ-REQUISITOS: Cálculo Diferencial e Integral II CO-REQUISITOS: Nenhum EMENTA Campo elétrico, Potencial elétrico, Capacitores e dielétricos. Circuitos elétricos, Campo magnético. Lei de Ampère. Indução Magnética. Propriedades magnéticas da matéria. Correntes alternadas. Equações de Maxwell. Ondas eletromagnéticas. Reflexão e refração da Luz. Polarização. Interferência e difração da Luz. Natureza ondulatória da Luz. Introdução a Física Moderna. CONTEÚDOS PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) NA. BIBLIOGRAFIA Básica: Haliday, D. e Resnick, R. e Walker, J. Fundamentos de Física (Volume 3). 7º Edição. LTC, 2007. Haliday, D. e Resnick, R. e Walker, J. Fundamentos de Física (Volume 4). 7º Edição. LTC, 2007. Complementar: Física Conceitual, Paul G. Hewitt. ISBN: 853630040X. Bookman (2002). Emissão Data: Responsável: UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: PROJETO E ANÁLISE DE ALGORITMOS CÓDIGO: 06214 DEPARTAMENTO: DEINFO ÁREA: INFORMÁTICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 4h PRÁTICAS: - PRÉ-REQUISITOS: Algoritmos e Estrutura de Dados CO-REQUISITOS: Nenhum EMENTA Medidas de complexidade, análise assintótica de limites de complexidade, técnicas de prova de cotas inferiores. Exemplos de análise de algoritmos iterativos e recursivos. Técnicas de projeto de algoritmos eficientes. Programação dinâmica. Algoritmos probabilísticos. CONTEÚDOS 1. PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) NA. BIBLIOGRAFIA Básica: CORMEN, Thomas H. et. al. Algoritmos: Teoria e Prática. Editora Campus, 2002. FEOFILOFF, Paulo. Algoritmos em Linguagem C. Editora Campus/Elsevier, 2008-2009. ZIVIANI, Nivio. Projeto de algoritmos: com implementações em Pascal e C. 2. ed. rev. e ampl. São Paulo: Thomson, 2005. Complementar: MANBER, U. Introduction to Algorithms: A Creative Approach.Addison Wesley, 1989. PATASHNIK, O.; GRAHAM, R. L.; KNUTH, D. E. Matemática Concreta: Fundamentos para a Ciência da Computação. Segunda edição. Rio de Janeiro: LTC, 1995. 475 p. BRASSARD, G; BRATLEY, P. Fundamentals of Algorithmics, Prentice Hall, 1996 DASGUPTA, S; PAPADIMITRIOU, C.; VAZIRANI, U.V. Algorithms, McGraw-Hill, 2006. Disponível eletronicamente em: http://www.cs.berkeley.edu/~vazirani/algorithms.html KLEINBERG, J; TARDOS, E. Algorithm Design, Addison-Wesley, 2005. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br Emissão Data: Responsável: PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: Teoria da computação CÓDIGO: 06223 DEPARTAMENTO: de Estatística e Informática (DEINFO) ÁREA: Fundamentos da Computação CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 4 h PRÁTICAS: 0 h PRÉ-REQUISITOS: Matemática discreta II CO-REQUISITOS: Nenhum EMENTA Propriedades e operações com linguagens. Expressões regulares e gramáticas. Modelos de reconhecedores: autômatos finitos, autômatos a pilha, autômatos linearmente limitados, máquinas de Turing. Teorema de Kleene, equivalência entre autômatos à pilha e gramáticas. Hierarquia de Chomsky: linguagens regulares, livre de contexto, sensíveis ao contexto e recursivas. Propriedades de linguagens e funções recursivas. Tese de Church. Problemas indecidíveis: problema da parada, problema da correspondência de Post, redução entre problemas. Classes de problemas: P, NP, NP- Completo. CONTEÚDOS 1. Breve histórico 2. Linguagens e cadeias 3. Linguagens regulares 1.1 Autômatos finitos determinísticos 1.1.1 Definição formal 1.1.2 Exemplos 1.1.3 Linguagem de um autômato finito determinístico 1.1.4 Desenvolvendo autômatos finitos determinísticos 1.2 Autômatos finitos não determinísticos 1.2.1 Definição formal 1.2.2 Exemplos 1.2.3 Linguagem de um autômato finito não determinístico 1.2.4 Desenvolvendo autômatos finitos não determinísticos 1.3 Equivalência entre autômatos finitos determinísticos e não determinísticos 1.4 Expressões regulares 1.4.1 Definição 1.4.2 Exemplos 1.4.3 Equivalência com autômatos finitos 1.5 Lema do bombeamento para linguagens regulares 2 Linguagens livres de contexto 2.1 Gramáticas livres de contexto 2.1.1 Definição formal 2.1.2 Exemplos 2.1.3 Derivação 2.1.4 Ambiguidade 2.1.5 Forma normal de Chomsky UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br 2.2 Autômatos de pilha 2.2.1 Definição formal 2.2.2 Exemplos 2.2.3 Equivalência com gramáticas livres de contexto 2.3 Lema do bombeamento para linguagens livres de contexto 3 Máquinas de Turing 3.1 Definição formal e exemplos 3.2 Variantes da máquina de Turing (multifita e não determinística) 3.3 Desenvolvendo máquinas de Turing 4 Indecidibilidade 4.1 Método de diagonalização 4.2 O problema da parada 4.3 Uma linguagem Turing-irreconhecível 4.4 Redução de problemas 4.5 Exemplos de problemas indecidíveis 4.6 Problema de correspondência de Post 5 Complexidade de tempo 5.1 Notação assintótica 5.2 A classe P 5.3 A classe NP 5.4 NP-completude 5.4.1 Reduções em tempo polinomial 5.4.2 Definição 5.4.3 Teorema de Cook Levin 5.4.4 Outros problemas NP-Completos BIBLIOGRAFIA BIBLIOGRAFIA BÁSICA: 1.SIPSER, Michael. Introdução à teoria da computação. 2. ed. São Paulo: Thomson, 2007 2.HOPCROFT, John E.; MOTWANI, Rajeev; ULLMAN, Jeffrey D. Introdução à teoria de autômatos, linguagens e computação. Rio de Janeiro: Campus, c2003. 3.LEWIS, Harry R.; PAPADIMITRIOU, Christos H. Elementos de teoria da computação. 2. ed. Porto Alegre: Bookman, 2000. BIBLIOGRAFIA COMPLEMENTAR 1.MENEZES, Paulo Blauth. Linguagens formais e autômatos. 5. ed. Porto Alegre: Bookman, 2008. 2.DIVERIO, T. A.; MENEZES, P. B. Teoria da Computação: Máquinas Universais e Computabilidade. 3a edição. Bookman, 2011. 3.GERSTING, J. L. Fundamentos Matemáticos para a Ciência da Computação. Quinta Edição. Rio de Janeiro: LTC, 2004. 4.RAMOS, Marcus Vinícius Midena; JOSÉ NETO, João; VEGA, Ítalo Santiago. Linguagens formais: teoria, modelagem e implementação. Porto Alegre: Bookman, 2009. 5.PAPADIMITRIOU, Christos M. Computational complexity. New York: Addison Wesley Longman, 1994. 4º PERÍODO PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES CÓDIGO: 14064 DEPARTAMENTO: DEINFO ÁREA: ARQUITETURA E REDES DE COMPUTADORES CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 3h PRÁTICAS: 1h PRÉ-REQUISITOS: Circuitos Digitais CO-REQUISITOS: Nenhum EMENTA Organização de computadores: memórias, unidades centrais de processamento, entrada e saída. Linguagens de montagem. Modos de endereçamento e conjunto de instruções. Mecanismos de interrupção e de exceção. Barramento, comunicações, interfaces e periféricos. Subsistemas de entrada/saída. Organização hierárquica de memória. Arquiteturas RISC e CISC. Pipeline. Paralelismo de baixa granularidade. Processadores superescalares e superpipeline. Introdução à processadores vetoriais, matriciais, multiprocessadorese multicomputadores. Introdução a arquiteturas paralelas e não convencionais. Outras arquiteturas. CONTEÚDOS 1. Abstrações e Tecnologia do Computador 1.1 Por baixo de um programa 1.2 Desempenho de computadores 1.3 De uniprocessadores para multiprocessadores 2. Instruções: Linguagem de Máquina 2.1 Operações e operandos de um computador 2.2 Operações com números com e sem sinal 2.3 Representando instruções no computador 2.4 Instruções para tomada de decisões 2.5 Suporte a procedimentos 2.6 Constantes e endereçamento de memória 2.7 Paralelismo e instruções 2.8 Tradução e inicialização de um programa 3. O Processador 3.1 Convenções de projeto 3.2 Construindo um datapath 3.3 Datapath Pipeline e controle 3.4 Hazards do pipeline 3.5 Exceções e interrupções 3.6 Superescalares UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br 4. Hierarquia de memória 4.1 Os princípios de cache 4.2 Medir e melhorar o desempenho de cache 4.3 Memória virtual 4.4 Máquinas virtuais 4.5 Paralelismo e hierarquias de memória 5. Armazenamento e outros temas de E/S 5.1 Confiança, confiabilidade e disponibilidade 5.2 Armazenamento em disco 5.3 Conexão de processadores, memória e dispositivos E/S 5.4 Sistema operacional 5.5 Medidas de desempenho 5.6 Projetando um sistema de E/S 6. Multicores, Multiprocessadores e Clusters 6.1 Programas de processamento paralelo 6.2 Multiprocessadores de memória compartilhada 6.3 Clusters e outros multiprocessadores message-passing 6.4 Hardware multithreading 6.5 SISD, MIMD, SIMD e SPMD 6.6 Introdução ao multiprocessador baseado em rede PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) NA. BIBLIOGRAFIA Básica: 1. Hennessy, J., Patterson, D., “Computer Organization and Design”, 4th Edtion Revised Printing, Morgan Kaufmann-Elsevier, 2012. 2. Hennessy, J., Patterson, D., "Computer Architecture: A Quantitative Approach", 4th edition, Morgan Kaufmann-Elsevier, 2006. 3. Stallings, W. Arquitetura e Organização de Computadores, quinta edição. São Paulo, Makron Books, 2002. Complementar: 1. Tanembaum, A.S. Organização Estruturada de Computadores. Rio de Janeiro, LTC, 2001. 2. Hennessy, J., Patterson, D., "Computer Architecture: A Quantitative Approach", 3rd edition, Morgan Kaufmann-Elsevier, 2002. 3. Hennessy, J., Patterson, D., "Computer Architecture: A Quantitative Approach", 5th edition, Morgan Kaufmann-Elsevier, 2011. 4. Clements A. “Computer Organization & Architecture: Themes and Variations”, Cengage Learning, 2013. 5. Harris, D., Harris, S. “Digital Design and Computer Architecture”, 2sd edition, Morgan Kaufmann-Elsevier, 2012. 6. Stallings, W., “Computer Organization and Architecture”, 9th Edition, 2012 PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: BANCO DE DADOS S CÓDIGO: 14088 DEPARTAMENTO: DEINFO ÁREA: Engenharia de Sistemas de Software CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 04 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 2 h PRÁTICAS: 2 h PRÉ-REQUISITOS: Algoritmos e Estruturas de Dados CO-REQUISITOS: Nenhum EMENTA Introdução aos Banco de Dados. Modelo de Dados. Modelagem Entite-Relacionamento. Projeto lógico e Físico de Banco de Dados. Sistemas de gerenciamento de bancos de dados (SGBD): arquitetura, segurança, integridade, concorrência, recuperação após falha, gerenciamento de transações. Linguagem SQL: DDL, DML, DCL. Normalização de Dados. Transações. Tecnicas de Programação em SQL. Segurança em Banco de Dados Relacional. Recuperação após Falha e Concorrência. Conectividade em Banco de Dados. CONTEÚDOS 1. Conceitos Básicos de um Sistema de Gerenciamento de Banco de Dados(SGBD): 1.1. Objetivos dos sistemas de bancos de dados. 1.2. Abstração de dados. 1.3. Instâncias e esquemas. 1.4. Independência de dados. 1.5. Linguagem de Definição de Dados. 1.6. Linguagem de Manipulação de Dados. 1.7. Gerenciador de Banco de Dados. 1.8. Usuários e Administrador de Banco de Dados. 1.9. Dicionários de Dados 2. Modelo Entidade-Relacionamento: 2.1. Modelagem conceitual de Dados. 2.2. Objetos Conceituais. 2.3. Entidade. 2.4. Atributos. 2.5. Relacionamentos. 2.6. Diagrama Entidade-relacionamento. 2.7. Cardinalidade. 2.8. Chaves. 2.9. Generalização. 2.10. Agregação. 2.11. Mapeamento de Diagramas E-R para Tabelas. 2.12. Projeto de um Esquema de Bancos de Dados E-R. 3. O Modelo Relacional: 3.1. Principais Vantagens da Abordagem Relacional. 3.2. Derivação do Modelo E-R para o Modelo Relacional. 3.3. Restrições de Domínio. 3.4. Integridade Referencial. 3.5. Restrições de Integridade. 3.6. Álgebra Relacional. 4. Linguagem SQL: 4.1. Linguagens Relacionais Comerciais. 4.2. A Importância da Linguagem SQL. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 081-3320-6000 www.ufrpe.br 4.3. Vantagens e Desvantagens da Linguagem SQL. 4.4. A linguagem SQL. 5. Normalização de Dados 5.1. Dependências Funcionais 5.2. Regras de normalização de dados de Codd. 6. Transações 6.1. Propriedades das Transações 6.2. Especificação de Segurança em SQL. 6.3. Encriptação. 7. Tecnicas de Programação em SQL 7.1. Stored Procedures 7.2. Functions 7.3. Triggers 8. Segurança em Banco de Dados Relacional 8.1. Violações de Segurança e Integridade, autorização e views 9. Recuperação após Falha e Concorrência 10. Conectividade em Banco de Dados BIBLIOGRAFIA BÁSICA 1. Ramez Elmasri, Shamkant B. Navathe. Sistemas de Banco de Dados - 6ª Ed. Pearson Education, 2011. 2. A. Silberschatz, H. Korth , S Sudarshan. Sistema de Banco de Dados. Elsevier. 6a. Edição, 2012. 3. Date, C. J. Uma Introdução a Sistemas de Bancos de Dados, 8ª edição, Editora Campus, 1999. COMPLEMENTAR: 1. Peter Rob e Carlos Coronel. Sistemas de Banco de Dados: Projeto, Implementação e Gerenciamento. Editora Cengage, 2010. 2. Carlos Heuser, Projeto de Banco de Dados, 6ª. Edição, Editora Bookman, 2009 3. F. Machado, Projeto de banco de dados : uma visão prática - 12. ed, Editora Érica, 2005 4. Brian Jepson, Joan Peckham, Ram Sadasiv. Programando aplicativos de banco de dados em Linux ; Makron Books, 2002. 5. David M. Kroenke. Banco de dados: fundamentos, projeto e implementação. 6.ed.-Rio de Janeiro:LTC, 1999. PROPOSTA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: Engenharia de Software CÓDIGO: 06226 DEPARTAMENTO: DEINFO ÁREA: Engenharia de Sistemas de Software CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 04 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 4 h PRÁTICAS: 0 h PRÉ-REQUISITOS: Introdução à Programação II CO-REQUISITOS: Nenhum EMENTA Processos de software. Ciclo de vida de desenvolvimento de software. Modelagem de software. Introdução a Modelos de Qualidade e de Gerenciamento de projetos de software. Ambientes de desenvolvimento de software. Padrões de projeto. Técnicas de teste de software. Reuso de componentes de software. CONTEÚDOS 1.Visão geral da engenharia de software 1.1. Conceitos e definições; 1.2. Áreas de conhecimento; 1.3. Ferramentas CASE; 1.4. Métodos de engenharia de software; 1.6. Ciclo de vida de desenvolvimento de software; 1.7. Aspectos éticos e sociais. 2. Processos de Software 2.1. Atividades de desenvolvimento; 2.2. Atividades de suporte; 2.3. Modelos de processo de software; 2.4. Processos prescritivos (tradicionais); 2.5. Processos ágeis. 3. Gerenciamento de Projetos 3.1. Conceitos e definições; 3.2. Restrições de projetos; 3.3. Controle de riscos; 3.4. Atividades de gerenciamento; 3.5. Atividades e papel do gerente de projetos; 3.6. Ferramentas de gerenciamento de projetos; 3.7. Ciclo de vida de gerenciamento de projetos. 4. Requisitos 4.1. Conceitos e definições; 4.2. Visão geral da engenharia de requisitos; 4.3. Casos de uso; 4.4. Atividades de requisitos; 4.5. Técnicas para elicitação e documentação de requisitos; 4.6. Artefatos de requisitos. 5. Análise e Projeto 5.1. Conceitos, definições e princípios; 5.2. Diagramas UML; 5.3. Padrões de projeto; 5.4. Arquitetura de software; 5.5. Ferramentas de modelagem; 5.6. Atividades de análise e projeto OO; UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 081-3320-6000 www.ufrpe.br 5.7. Artefatos de análise e projeto OO. 6. Teste de Software 6.1. Conceitos e definições; 6.2. Processo de testes; 6.3. Tipos de testes; 6.4. Desenvolvimento dirigido a testes; 6.5. Ferramentas de suporte a testes. 7. Qualidade de Software 7.1. Gerência da qualidade; 7.2. Modelos de qualidade. 8. Gerência de Configuração e Mudanças 8.1. Gerência de configuração; 8.2. Gerência de mudanças. BIBLIOGRAFIA BIBLIOGRAFIA BÁSICA: 1. PRESSMAN, R., MAXIN, B.R. Engenharia de Software: Uma Abordagem Profissional. 8. ed. Porto Alegre: McGrawHill, 2016. 2. SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Brasil, 2011. 3. IEEE Computer Society. Guide to the Software Engineering Body of Knowledge (SWEBOK), 2004. Available inhttp://www.computer.org/portal/web/swebok. BIBLIOGRAFIA COMPLEMENTAR: 1. FOWLER, M. UML Essencial: um breve guia para linguagem padrão. Bookman Editora, 2014. 2. PMBOK. A guide to the project management body of knowledge: PMBOK Guide- Fifth Edition Project Management Institute Newtown Square PA, USA. 2013 3. BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML - Guia do Usuário. 2. ed. Rio de Janeiro: Campus, 2006. 4. WELLS, D. Extreme Programming: a gentle introduction, 2009. Disponível em: <http://www.extremeprogramming.org>. 5. SCHWABER, K.; BEEDLE, M. Agile software development with Scrum. [S.l.]: Microsoft Press, 2004. 6. GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Padrões de Projeto: soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2004. 7. ROCHA, Ana Regina Cavalcante da; MALDONADO, José Carlos; WEBER, Kival Chaves. Qualidade de software. São Paulo: Prentice Hall, 2001. http://www.computer.org/portal/web/swebok http://www.extremeprogramming.org/ PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: Paradigmas de Programação CÓDIGO: 06252 DEPARTAMENTO: DEINFO ÁREA: Engenharia de Sistemas de Software CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 04 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 4 h PRÁTICAS: - PRÉ-REQUISITOS: Introdução à Programação II CO-REQUISITOS: Nenhum EMENTA Caracterização das linguagens de programação de computadores e de seus diferentes paradigmas de programação (lógico, procedural, funcional, orientação a objetos, concorrente, aspectos). Estudo de conceitos básicos para no que se refere a linguagens: implementação, estrutura de dados, abstração de dados, controle, tipos, escopo, subprograma, passagem de parâmetro, recursividade, sintaxe, semântica. CONTEÚDOS 1. Paradigmas de Linguagens de Programação 1.1 Funcional 1.2 Lógico 1.3 Imperativo 1.4 Orientação a Objetos 1.5 Orientação a Aspectos 1.6 Concorrente 1.7 Dirigido a eventos 2. Sintaxe e semântica 3. Conceitos das linguagens de programação 3.1 Nomes, vinculação, verificação de tipos e escopo 3.2 Tipos de dados 3.3 Expressões e instruções de atribuição 3.4 Estruturas de controle 3.5 Subprogramas 3.6 Tipos de dados abstratos e encapsulamento 3.7 Concorrência 3.8 Tratamento de Exceções BIBLIOGRAFIA Básica: 1. SEBESTA, R. W. Conceitos de Linguagens de Programação. Porto Alegre: Bookman, 2000. 2. WATT, D. A. Programming Language Design Concepts. John Wiley & Sons. 2004. 3. TUCKER, Allen B; NOONAN, Robert. Linguagens de programação: princípios e paradigmas. 2. ed. São Paulo: McGraw-Hill, 2008. xxiii, 599 p. ISBN 9788577260447. Complementar: 1. SCOTT, M. Programming Language Pragmatics. Third Edition. Morgan Kaufmann, 2009. 944 p. 2. MELO, A. C., SILVA, F. S. C. Princípios de Linguagem de Programação. LTDA, 2003. 3. KAISLER, S. H. Software Paradigms. Wiley-Interscience, 2005 4. TURBAK, F. A., GIFFORD, D. K. Design Concepts in Programming Languages. MIT Press, 2014. 5. RYZHOV, P. Haskell Financial Data Modeling and Predictive Analytics. Packt Publishing Ltd, 2013. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO DEPARTAMENTO DE ESTATÍSTICA E INFORMÁTICA Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 081-3320-6000 www.ufrpe.br PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: Redes de Computadores CÓDIGO: 14050 DEPARTAMENTO: DEINFO ÁREA: ARQUITETURA E REDES DE COMPUTADORES CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 04 CARGA HORÁRIA SEMANAL: 04 h TEÓRICAS: 04 h PRÁTICAS: 00 h PRÉ-REQUISITOS: nenhum CO-REQUISITOS: nenhum EMENTA Conceitos básicos de redes de computadores: definições; terminologia; classificação; topologias; modelos de arquitetura e aplicações. Protocolos e modelos de referência: o modelo ISO/OSI e o modelo TCP/IP; conceitos básicos de cada camada; protocolos das camadas de Rede, de Transporte e de Aplicação. Conceitos de segurança. Conceitos de gerenciamento. Conceitos de avaliação de desempenho. CONTEÚDOS 1. Introdução a Redes de Computadores: definição; aplicações; hardware de rede: componentes; classificação; software de rede: protocolos, modelos de referência ISO/OSI e TCP/IP; 2. Camada Física: conceitos básicos; digitalização; sinalização: digital, analógica, multinível; multiplexação: FDM, TDM; transmissão: simplex vs. half-duplex vs. full-duplex; serial vs. paralela; síncrona vs. assíncrona; topologias; 3. Camada de Enlace: enquadramento de bits; controle de erro; controle de fluxo; MAC: endereçamento e protocolos de acesso ao meio (ALOHA, CSMA-CA/CD, etc), Ethernet (IEEE 802.3); tecnologias: XDSL, PLC, Frame-relay, Cable modem, Bluetooth, Wi-Max, 802.11, 3G, etc. 4. Camada de Rede: encaminhamento e roteamento; modelos de serviços; circuitos virtuais e datagramas; Protocolo IP: endereçamento e máscara; algoritmos de roteamento: vetor de distâncias e estado de enlace; roteamento na Internet: sistemas autônomos, protocolos de roteamento (RIP, OSPF, IGRP, BGP); qualidade de serviço (QoS); 5. Camada de Transporte: multiplexação/demultiplexação; transporte não orientado a conexão: UDP; transporte orientado a conexão: TCP; controle de congestionamento; 6. Camada de Sessão: conceitos básicos: token,pontos de sincronização, unidade de diálogo, atividade; serviço orientado à conexão; gerenciamento de diálogos; sincronização; 7. Camada de Apresentação: conceitos básicos: sintaxe abstrata, sintaxe concreta, sintaxe de transferência, contexto de apresentação; transformação de representação; criptografia; 8. Camada de Aplicação: função; protocolos: HTTP, FTP, Telnet, SSH, Correio eletrônico (SMTP, POP3, IMAP), etc; 9. Conceitos de segurança: tipos de ataques; segurança nas camadas; firewall; 10. Conceitos de gerenciamento: paradigmas (tipos/arquiteturas); etapas; elementos; protocolo SNMP; 11. Conceitos de avaliação de desempenho: motivação; objetivos; métricas; erros comuns; ferramentas. PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) BIBLIOGRAFIA Básica: 1. ROSS, K.W. e Kurose, J.F. Redes de Computadores e a Internet. 3. ed. São Paulo: Addison-Wesley, 2006. 2. TANEMBAUM, A.S. Redes de Computadores. Rio de Janeiro: Elsevier, 2003. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br 3. FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores : Behrouz A. Forouzan ; tradução: Glayson Eduardo de Figueiredo, Pollyanna Miranda de Abreu. Porto Alegre: Bookman, 2006. Complementar: 1. COMER, Douglas. Redes de Computadores e Internet: abrange transmissão de dados, ligação inter-redes, WEB e aplicações. Porto Alegre: Bookman, 2007. 2. RUFINO, N.M.O. Segurança em Redes sem Fio. 2. ed. São Paulo: Novatec, 2007. 3. CARVALHO, Luciano Gonçalves de. Segurança de redes. Rio de Janeiro: Ciência Moderna, 2005. 4. COSTA, Daniel Gouveia. Java em rede: programação distribuída na Internet. Rio de Janeiro: Ciência Moderna, 2008. 5. COMER, Douglas. Interligação em rede com TCP/IP: princípios, protocolos e arquitetura. Rio de Janeiro: Campus, 1998. 5º PERÍODO UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n, Dois Irmãos - Recife/PE CEP: 52171-900 | www.ufrpe.br PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: Compiladores CÓDIGO: 14090 DEPARTAMENTO/UNIDADE ACADÊMICA: DEINFO / Sede ÁREA: Fundamentos da Computação CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 3 h PRÁTICAS: 1 h PRÉ-REQUISITOS: Teoria da Computação, Introdução a Programação II CO-REQUISITOS: NENHUM EMENTA Especificação da sintaxe de linguagens de programação com expressões regulares e gramáticas livres de contexto. Análise léxica. Análise sintática: ascendente e descendente. Geradores automáticos de lexers e parsers. Análise semântica. Geração de código intermediário e final. CONTEÚDOS 1. Revisão de Linguagens de Programação 1.1 Origem e histórico das linguagens de alto-nível 1.2 Linguagens de alto nível e de baixo nível 1.3 Tipos de tradutores de linguagens de programação 2. Análise Léxica 2.1 Objetivo 2.2 Desenvolvendo de forma manual 2.3 Geração de lexers a partir de expressões regulares 2.4 Geradores automáticos de lexers 3. Análise Sintática 3.1 Objetivo 3.2 Tratando ambiguidades nas gramáticas livres de contexto 3.3 Parser descendente recursivo 3.4 Parsers ascendente LR(0) e SLR 4. Tradução dirigida por sintaxe 4.1 Definição dirigida por sintaxe 4.2 Esquemas de tradução 4.3 Usando esquemas de tradução nos parsers estudados e na árvore 5. Análise Semântica 5.1 Tabela de símbolos 5.2 Verificações de escopo 5.3 Verificações de tipo 5.4 Outras verificações 6. Geração de código intermediário 6.1 Motivação 6.2 Código de três endereços 6.3 Alguns exemplos de tradução 7. Geração de código final 7.1 Organização da memória de tempo de execução 7.2 Um tipo de código final 7.3 Exemplos de tradução BIBLIOGRAFIA BIBLIOGRAFIA BÁSICA: 1. LOUDEN, Kenneth C. Compiladores: princípios e práticas. São Paulo: Thomson Learning, 2004. 2. AHO, Alfred V.; SETHI, Ravi; ULLMAN, Jeffrey D. Compiladores: principios, tecnicas e fer-ramentas. Rio de Janeiro: LTC, c1995. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n, Dois Irmãos - Recife/PE CEP: 52171-900 | www.ufrpe.br 3. COOPER, Keith; TORCZON, Linda. Construindo Compiladores (trad. da 1ª edição). Campus Elsevier, 2013. BIBLIOGRAFIA COMPLEMENTAR: 1. AHO, Alfred V.; LAM, Monica S.; SETHI, Ravi; ULLMAN, Jeffrey D. Compiladores: princípios, técnicas e ferramentas. Segunda edição. São Paulo: Pearson Addison-Wesley, 2008. 2. WATT, David; BROWN, Deryck. Programming Language Processors in Java: Compilers and Interpreters. Prentice Hall, 2000. 3. SEBESTA, Robert W. Conceitos de linguagens de programação. 5. ed. Porto Alegre: Book-man, 2003. 4. PARR, Terence. Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages.Pragmatic Bookshelf, 2010. 5. GRUNE, Dick et al. Projeto moderno de compiladores: implementação e aplicações. Rio de Janeiro: Campus, 2001. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n, Dois Irmãos - Recife/PE CEP: 52171-900 | www.ufrpe.br PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: Inteligência Artificial CÓDIGO: 14074 DEPARTAMENTO/UNIDADE ACADÊMICA: DEINFO / Sede ÁREA: Fundamentos da Computação CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 4 h PRÁTICAS: 0 h PRÉ-REQUISITOS: Introdução a Programação II CO-REQUISITOS: NENHUM EMENTA Definições de IA. Agentes Inteligentes. Resolução de problemas por meio de busca: sem informação e com informação. Buscas locais para problemas de otimização. Introdução à aprendizagem de máquina. Aprendizagem supervisionada: baseada em instâncias, aprendizagem bayesiana. árvores de decisão, introdução às redes neurais. Aprendizagem não supervisionada. Aprendizagem por reforço. Lógica Fuzzy. CONTEÚDOS 1. Inteligência Artificial. 1.1 O que é IA? 1.2 História de IA. 1.3 Usos e Limitações. 2. Agentes Inteligentes. 2.1 Definições 2.2 Estrutura dos agentes inteligentes 2.3 Ambientes 3. Resolução de Problemas 3.1 Resolução de problemas por meio de busca 3.2 Busca com Informação e Exploração 3.3 Busca Local 3.4 Algoritmos Genéticos 4. Aprendizado Supervisionado 4.1 Aprendizagem Baseada em Instâncias 4.2 Aprendizado Bayesiano 4.3 Arvores de Decisão 4.4 Redes Neurais 5. Aprendizado não supervisionado 5.1 Algoritmos de agrupamento: 5.1.1 Hierárquicos 5.1.2 Particionais 6. Aprendizado por reforço 6.1 Conceitos Básicos 6.2 Q-Learning 7. Lógica Fuzzy 7.1 Conjuntos Fuzzy 7.2 Funções de Pertinência 7.3 Raciocínio Fuzzy PRÁTICA COMO COMPONENTE CURRICULAR (quando houver) UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n, Dois Irmãos - Recife/PE CEP: 52171-900 | www.ufrpe.br BIBLIOGRAFIA BIBLIOGRAFIA BÁSICA: 1. Russel, Stuart J.; Norving, Peter. Artificial intelligence: a modern approach . 3rd ed. New Jersey: Prentice - Hall, 2010. xviii, 1132 p. ISBN 9780136042594 (enc.). 2. Carvalho, André. Inteligência Artificial - Uma Abordagem de Aprendizado de Máquina. LTC. 394 p. 2011. 3. Theodoridis, Sergios; Konstantinos, Koutroumbas. Pattern recognition. 4th ed. Burlington, Mass.: Elsevier, 2009. BIBLIOGRAFIA COMPLEMENTAR: 1. Bishop, Christopher M. Pattern recognition and machine learning. New York: Springer,, 738 p. 2006. 2. Richard O. Duda, Peter E. Hart, David G. Stork, Pattern Classification, 2. ed., Willey, 2000. 3. Mitchell, T. Machine Learning. [S.l.]: McGraw Hill,1997. 4. Witten, I. H; Frank, Eibe; Hall, Mark A. Data mining: practical machine learning tools and techniques. 3rd ed. Burlington, MA: Elsevier/Morgan Kaufmann, 2011. 5. Coppin, B. Inteligência Artificial. Rio de Janeiro:LTC, 2010. PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: Projeto de Desenvolvimento de Software CÓDIGO: 14080 DEPARTAMENTO: DEINFO ÁREA: Engenharia de Sistemas de Software CARGA HORÁRIA TOTAL: 60 h NÚMERO DE CRÉDITOS: 04 CARGA HORÁRIA SEMANAL: 4 h TEÓRICAS: 2 h PRÁTICAS: 2 h PRÉ-REQUISITOS: Introdução a Programação II, Banco de Dados e Engenharia de Software CO-REQUISITOS: Nenhum EMENTA Instanciação de um processo de desenvolvimento de software: fluxo, atividades, papéis e produtos de trabalho. Desenvolvimento de projeto multidisciplinar em equipe. Implementação de um produto de software. Uso de padrões de projeto e de codificação de software. Realização de testes automatizados de software. CONTEÚDOS 1. Processos de Desenvolvimento de Software: 1.1. Caracterização das diferentes abordagens; 1.2. Diferenciação entre metodologias ágeis e tradicionais; 1.3. Elementos para instanciação de um processo de desenvolvimento. 1.4 Visão geral de métodos ágeis de gestão de projetos. 2. Viabilidade de projetos de Software: 2.1. Elementos de um estudo de viabilidade. 2.2. Viabilidade técnica. 2.3. Viabilidade Operacional. 2.4. Viabilidade de Tempo. 2.5. Viabilidade de custos. 2.6. A concepção de uma nova solução para o mercado. 3. Ferramentas e técnicas de Suporte ao desenvolvimento de software: 3.1. Disciplina de Gerência de Projetos 3.1.1. Dimensões do gerenciamento de projetos. 3.1.2. Ferramentas para o gerenciamento de projetos. 3.1.3. Planejamento do projeto. 3.1.4. Monitoramento e controle do projeto. 3.1.5. Produtividade de equipes. 3.2. Disciplina de Gerência de Configuração 3.2.1. Elementos de configuração de um projeto. 3.2.2. Configuração de software. 3.2.3. Fluxo de mudanças de elementos de software 3.2.4. Ferramentas de controle de versão dos elementos de projeto. 3.2.5. Ferramentas de controle de alterações em projetos de desenvolvimento. 3.2.6. Preparação do ambiente de desenvolvimento de software. 4. Padrões de desenvolvimento: 4.1. Padrões de projeto. 4.2. Padrão de codificação. 4.3. Documentação dos testes. UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br 5. Desenvolvimento de um projeto de software: 5.1. Reflexões sobre as lições aprendidas ao longo do desenvolvimento. BIBLIOGRAFIA BIBLIOGRAFIA BÁSICA: 1. COHN, M. Desenvolvimento de software com SCRUM: Aplicando métodos ágeis com sucesso. Porto Alegre: Bookman, 2011. 2. GAMMA, E.; HELM, R.; JOHNSON, R.; VLISSIDES, J. Padrões de Projeto: soluções reutilizáveis de software orientado a objetos. Porto Alegre: Bookman, 2005. 3. KRUCHTEN, P. Introdução ao RUP - Rational Unified Process. Rio de Janeiro: Ciência Moderna, 2003 BIBLIOGRAFIA COMPLEMENTAR: 4. PRESSMAN, R. Engenharia de Software. 6. ed. ed. Porto Alegre: McGrawHill, 2006. 5. BECK, K. Programação Extrema explicada. Porto Alegre: Bookman, 2004. 6. BROOKS, F. P. O Mítico Homem-mês, Ensaios sobre a Engenharia de Software. Rio de Janeiro: Campus, 2009 (reimpressão). 7. SCHWABER, K., SUTHERLAND, J. Software in 30 Days: How Agile Managers Beat the Odds, Delight Their Customers, And Leave Competitors In the Dust. New Jersey: John Wiley & Sons, 2012. 8. SEBESTA, R. W. Conceitos de Linguagens de Programação. 9. ed. Porto Alegre: Bookman, 2011. 1/2 PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: SISTEMAS DISTRIBUÍDOS CÓDIGO: 14059 DEPARTAMENTO: DEINFO ÁREA: INFORMÁTICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 4h PRÁTICAS: - PRÉ-REQUISITOS: Redes de Computadores CO-REQUISITOS: Nenhum EMENTA Conceitos Básicos. Paradigmas de Linguagens de Programação Distribuída. Técnicas de Especificação de Sistemas. Ambientes de Suporte e Desenvolvimento de Sistemas Distribuídos. Estudo de Casos. Aplicação Prática. CONTEÚDOS 1. Caracterização de Sistemas Distribuídos 1.1 Introdução 1.2 Exemplos 1.3 Desafios atuais 2. Modelos de Sistemas Distribuídos 2.1 Introdução 2.2 Modelos físicos 2.3 Modelos arquiteturais 2.4 Modelos fundamentais 3. Comunicação interprocesso 3.1 Introdução 3.2 API para os protocolos Internet 3.3 Representação de dados externos 3.4 Marshalling 3.5 MPI 4. Invocação Remota 4.1 Introdução 4.2 Protocolos request-reply 4.3 Chamada de procedimentos remotos (RPC) UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Rua Dom Manoel de Medeiros, s/n. - Dois Irmãos CEP: 52171-900 Recife - PE Fone: 0xx-81-3320-6000 www.ufrpe.br 2/2 4.4 Chamada de métodos remotos (RMI) 5. Serviços Web 5.1 Introdução 5.2 Descrição de serviços Web 5.3 Padrões 5.4 Segurança em Serviços Web 6. Segurança para Sistemas Distribuídos 6.1 Conceitos básicos de segurança 6.2 Criptografia e algoritmos criptográficos 6.3 Assinatura digital 6.4 Ataques comuns em sistemas distribuídos 7. Tópicos atuais em Sistemas Distribuídos 7.1 Computação em nuvem 7.2 Computação móvel 7.3 Computação orientada a serviços BIBLIOGRAFIA Básica: Coulouris, G. and Dollimore, J. and Kindberg, T, "Sistemas Distribuídos, 4a Ed.", Bookman, 2007. Tanenbaum, A. S.; Van Steen, M. “Sistemas Distribuidos: Principios E Paradigmas”. Prentice Hall, 2007. Tanembaum, Andrew S. “Redes de Computadores”. Rio de Janeiro: Elsevier, 2003. 945p. Complementar: Goetz, Brian; Guimarães, Petula. Java concorrente na prática. Rio de Janeiro, RJ: Alta Books, c2008. xx, 278 p. ISBN 9788576082071. Tanembaum, Andrew S. Sistemas operacionais modernos. 3. ed. São Paulo: Pearson Prentice Hall, 2009. xvi, 653p. Tanembaum, Andrew S. “Sistemas operacionais modernos”. 3. ed. São Paulo: Pearson Prentice Hall, 2009. Carvalho, Luciano Gonçalves de. Segurança de redes. Rio de Janeiro: Ciência Moderna, 2005. 79 p. Deitel, Harvey M.; Deitel, Paul J. Java: como programar. São Paulo: Prentice Hall, 2005. Emissão: Coordenação do Curso de Bacharelado em Ciência da Computação Data: 20/03/2017 Responsável: ___________________________________ PROGRAMA DE DISCIPLINA IDENTIFICAÇÃO DISCIPLINA: SISTEMAS OPERACIONAIS CÓDIGO: 14065 DEPARTAMENTO: DEINFO ÁREA: INFORMÁTICA CARGA HORÁRIA TOTAL: 60h NÚMERO DE CRÉDITOS: 4 CARGA HORÁRIA SEMANAL: 4h TEÓRICAS: 4h PRÁTICAS: - PRÉ-REQUISITOS: Arquitetura e Organização de Computadores CO-REQUISITOS: Nenhum EMENTA Software básico: boot e BIOS. Gerenciamento de memória. Memória virtual. Conceito de processo. Gerência de processador: escalonamento de processos, monoprocessamento e multiprocessamento. Concorrência e sincronização de processos. Alocação de recursos e deadlocks. Gerenciamento de arquivos. Gerenciamento de dispositivos de entrada/saída. Análise de desempenho. Sistemas operacionais para multiprocessadores. Sistemas operacionais distribuídos. Introdução a sistemas operacionais de tempo real. CONTEÚDOS 1. História e Evolução 2. Conceitos Básicos 2.1 Arquitetura de Computadores 2.2 Software básico 3. Processos 3.1. Conceitos básicos 3.2. Escalonamento de Processo 3.3. Monoprocessamento x Multiprocessamento 3.4. Multiprogramação 3.5. Concorrência e sincronização de processos 3.6. Alocação de Recursos 3.7. Deadlock
Compartilhar