Buscar

ementasObrigatoriasUFRPE

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 62 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 62 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 62 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Continue navegando