O perfil do curso de graduação foi estabelecido considerando as recomendações do Currículo de Referência proposto pela Comissão de Ensino da Sociedade Brasileira de Computação [SBC91] e do currículo proposto pela ACM/IEEE-CS - Joint Curriculum Task Force [ACM89, ACM91].

      As ementas das disciplinas específicas de Ciência da Computação que compõem nosso currículo e seus respectivos livros texto são:

      1. Administração de Projetos de Sistemas
        Processos de software; Métricas de (e para) Software; Planejamento e controle de projetos; Gerência de custos; Gerência de recursos humanos e intelectuais; Gerência de riscos.

        Livro Texto: Donald J. Reifer (editor).: Software Management, 4a. edição, IEEE Comupter Society Press, Los Alantos, CA, EUA, 1993.

      2. Álgebra Aplicada a Computação
        Conjuntos, relações e funções; Restrição; Fecho; Contar; Indução e recursão; Sistemas algébricos e relacionais; Reticulados; Álgebras Booleanas.

        Livro Texto: Paul Halmos, Teoria Ingênua dos Conjuntos, Editora Polígono, 1970.

      3. Algoritmos e Estruturas de Dados
        Introdução à Análise de Algoritmos; Elementos de Estruturas de Dados; Algoritmos de Ordenação; Algoritmos de Busca; Algoritmos Geométricos; Noções de Buscas por Exaustão e Problemas NP Completos; Aplicações.

        Livro Texto: Sedgewick, R. Wesley, A.: Algorithms, 1988, 2nd. Edition.

      4. Análise e Especificação de Requisitos
        Técnicas de especificação de requisitos (SADT, SSADM, RML, STATEMATE, TROLL, ALBERTS, etc.); Expressividade e formalidade das linguagens de especificação de requisitos; Técnicas e ferramentas para análise de sistemas, incluindo metodologias estruturadas e orientadas a objeto.

        Livro Texto: Sommerville, Ian.: Software Engineering, Fourth Edition, Addison-Wesley Publishing Company, 1993.

      5. Análise Numérica
        Elementos de Análise Funcional; Solução Numérica de Equações Não-Lineares;Matrizes e Sistemas de Equações Lineares; Teoria de Aproximação;Solução Numérica de Equações Diferenciais

        Livro Texto: Albrecht, P.: 'Análise Numérica - Um Curso Moderno', Livros Técnicos e Científicos, Editora S.A., 1973.

      6. Arquiteturas Avançadas
        Paralelismo de Baixa Granularidade em Arquiteturas Escalares, Super-escalares, Pipeline e Super-pipeline; Paralelismo de Alta Granularidade em Multiprocessadores baseados em Memória Compartilhada e Passagem de Mensagem; Organização de Memória em Multiprocessadores

        Livro Texto: T. G. Lewis, H. El-Rewini and I. Kim: Introduction to Parallel Computing, Prentice-Hall, 1992.

      7. Arquitetura de computadores
        Modelos de sistemas digitais: unidade de controle e unidade de processamento; Modelo de um sistema de Computação; Conceitos Básicos de Arquitetura: modo de endereçamento, tipo de dado e conjunto de instruções; Chamada de subrotina; Linguagem Assembly; RISC vs. CISC

        Livro Texto: A. S. Tanenbaum: Organizacao Estruturada de Computadores 1992, 3a. Edição. Prentice-Hall.

      8. Automação de Projeto de VLSI
        Conceitos Básicos de Circuitos Integrados; Estilos de Projeto (Full-Custom, Semi-Custom, FPGA); Metodologias de Projeto, Linguagens de Descrição de Hardware; Síntese de Alto Nível; Síntese Lógica; Síntese de Layout.

        Livro Texto: P. Michel, U. Lauther, and P. Duzy: The Synthesis Approach to Digital System Design, Kluwer Academic Publishers, 1992.

      9. Avaliação de Desempenho de Sistemas
        Técnicas de Avaliação de Desempenho; Medidas de Desempenho; Técnicas de Medição; Cargas de Trabalho; Modelos de Regressão; Projeto Experimental; Simulação; Teoris das Filas; redes de Filas.

        Livro Texto: Raj Jain: The Art of Computer Systems Performance Analysis, Wiley, 1991.

      10. Banco de Dados 1
        Conceitos Básicos; Modelos de Dados; Aspectos de Modelagem de Dados; Aplicações.

        Livro Texto: Korth, Siberschatz: Sistemas de Banco de Dados, MacGraw-Hill, 1994.

      11. Banco de Dados 2
        Sistemas de gerenciamento de Banco de Dados (SGBD): arquitetura e aspectos operacionais; Projeto e Implementação de Aplicações de Banco de Dados.

        Livro Texto: Korth, Siberschatz: Sistemas de Banco de Dados, MacGraw-Hill, 1994.

      12. Cálculo de Programas
        Corretude de programas (corretude parcial X corretude total); Uso de asserções para documentar e derivar programas (lógica de Hoare); weakest Precondition como um mecanismo de definir a semântica de uma linguagem de programação; derivação de programas baseado em Weakest Preconditon

        Livro Texto: Gries, D.: The Science of Programming, Springer-Verlag, 1981.

      13. Categorias para Computação
        Definição de Categoria; Construções básicas de categorias; funtores e transformções naturais; Mônadas.

        Livro Texto: Arlib, M.A. and Manes, E.G., Arrows, Structures, and Functors - The Categorical Imperative,Academic Press, 1975.

      14. Circuitos Digitais
        Circuitos Combinacionais; Introdução a Circuitos Integrados/Computadores; Representação de Informação; Álgebra de Boole, Linguagens de Descrição; de Hardware; Circuitos Combinacionais (implementação e minimização); Circuitos Especiais (FF, Diagrama de Estado, Máquinas Sequenciais, etc).

        Livro Texto: T. L. Booth: Computer Engineering Hardware and Software Design, John Wiley 1984, 3a Edição.

      15. Compiladores
        Compilação: Conceitos básicos; alguns compiladores importantes; Aspectos e Ferramentas para construção de compiladores; Análises léxica, sintática e semântica; Geração e otimização de código intermediário; Ambientes de tempo de execução; Gerenciamento de Memória; otimização de código objeto.

        Livro Texto: Aho, Sethi, Ulmann: Compilers: Construction, Techniques and Tools, Addison wesley - 2nd. Edition.

      16. Computação Gráfica
        Algoritmos e Transformações Geométricas em 2D; Primitivas Gráficas em 2D; Noções básicas de representação e visualização em 3D; Arquitetura dos Processadores e Periféricos Gráficos; Interfaces Gráficas: Técnicas de Interação, Projeto de Diálogo, Interface do Usuário.

        Livro Texto: Newman, W., Sproull, R.: Principles of Interactive Computer Graphics, McGraw-Hill, 1979.

      17. Computação Visual
        Introdução à visão computacional e ao processamento de imagens; Ferramentas básicas: sistemas lineares, série e transformada de Fourier; Transformações de imagens; Filtragem; Processos de visão 3D; Noções de morfologia matemática, de análise estatística, de segmentação e de reconhecimento de padrões.

        Livro Texto: Jain, A. K.: Fundamentals of Digital Image Processing, Englewoods Cliffs, NJ, Prentice Hall, 1989.

      18. Computador e Sociedade
        O computador na sociedade moderna; Aspectos sociais e economicos da utilização do computador; Ética profissional; Atuação do profissional no mercado de trabalho.

        Livro Texto: Beer, S.: The Viable System Model: Its Provenance, Development, Methodology and Pathology, Journal of the Operational Research Society, 35(1), 7-25, 1984.

      19. Concorrência
        Conceitos básicos de concorrência; Modelo de processos concorrentes e comunicantes; Paradigmas de linguagens de programação concorrente; Compartilhamento de recursos; Comunicação; Modelos para especificação de concorrência; Estudo de casos.

        Livro Texto: Gehani, N. and McGettrick, A.D.(eds.).: Concurrent Programming, Addison-Wesley, Wokingham, England, 1988.

      20. Engenharia de Software
        Ciclos de vida de software e suas fases; Processos de software; Modelos, métricas, estimativas e alocação de recursos; Processo individual (pessoal) de software; Qualidade e sua administração; Alocação e administração de pessoal e recursos; Ambientes e ferramentas de software.

        Livro Texto: I. Sommerville.: Software Engineering, Addison-Wesley,1992.

      21. Estágio
        Oportunidade do aluno interagir com o mercado de trabalho sendo supervisionado por um professor desgnado pelo Departamento de Informática.

        Livro Texto: Não Possui

      22. Fundamentos de Inteligência Artificial
        Linguagem PROLOG; Abordagem Simbólica; Abordagem Conexionista.

        Livro Texto: W.F. Clocksin e C.S. Mellish: Programming in PROLOG, (3a edição) Spring-Verlag, 1987.

      23. Gerenciamento de Redes
        Objeto Gerenciado; Processos gerente e agente; Gerenciamento OSI; Gerenciamento Internet (SNMP); Arquitetura do sistema TMN.

        Livro Texto: SNMPv1, SNMPv2 and CMIP: A Pratical Guide to Network Management Standards, Addison Wesley.

      24. Iniciação à Ciência da Computação
        Conceitos: Apresentação da Grade Curricular do Curso de Ciência da Computação; O Desenvolvimento de Sistemas como uma Disciplina de Engenharia (Software versus Hardware, Ciclo de Vida, Desenvolvimento Baseado em Teorias, Métodos, Técnicas e Ferramentas de Apoio); Sistemas numéricos; Componentes básicos de um computador; Noções básicas de Sistema Operacional; Compilador versus Interpretador; Classificação das Linguagens em Alto Nível, Montagem e Máquina. Laboratório: Regras para utilização; Internet; A Rede Local do DI; Ambiente (por exemplo, WINDOWS);Editor de Texto (por exemplo, WORD).

        Livro Texto: L. Goldschlager and A. Lisser.: Computer Science: A Modern Introduction, Prentice-Hall, 1988, ISBN 0-13-165945-6.

      25. Inteligência Artificial Simbólica
        Técnicas de Busca e estratégias de controle; Representação do Conhecimento; Aplicações.

        Livro Texto: Elaine Rich & Kevin Knight: Inteligência Artificial, (2a edição) Makron Books do Brasil Editora Ltda, 1993.

      26. Interface Homem-Máquina
        Psicologia do Usuário: aspectos perceptivos e cognitivos; Projeto de Diálogo Homem-máquina; Implementação: Hardware e software de interface; Usabilidade e Avaliação.

        Livro Texto: Dalton, A.: Engineering The Human-computer Interface, Mc-Graw Hill, 1991.

      27. Linguagem de Programação 1
        Noções de Tópicos e Estruturas Elementares de Dados; Operadores; Funções Embutidas e Expressões; Instruções Condicionais, Incondicionais e de Repetição; Tipos definidos pelo programador e Tipos Abstratos de Dados; Estruturas Compostas de Dados: Vetores, Matrizes e Registros; Noções de Arquivos em Programação; Algoritmos e Aplicações

        Livro Texto: Neill, Chris: Introduction to Pascal - 3rd edition, West Publishing Company, USA, 1983.

      28. Linguagem de Programação 2
        Introdução a conjuntos e lógica; Expressões e valores, funções, tipos; Definições por casamento de padrão; Abstração funcional(polimorfismo e funções de alta ordem); Avaliação de expressões/redução/conversão(lazy, eager); Programação com listas; Porgramação com tipos concretos; Indução, invariantes e provas.

        Livro Texto: Reade, Chris: Elements of Functional Programming, Addison Wesley, 1989.

      29. Linguagem de Programação 3
        Conceitos e terminologia de orientação a objetos; Linguagens Orientadas a Objetos vs. baseadas em objetos; histórico e 'survey' sobre linguagens orientadas a objetos, Técnicas de modularização/Decomposição de Software; Herança simples e múltipla; Projeto orientado a objetos; Tendências(BD orientado a objetos, sistemas operacionais orientados a objetos), uma Linguagem orientada a objetos(por exemplo, Eiffel, Smaltalk ou Java).

        Livro Texto: Meyer, B. Object-Oriented Software Construction, Prentice-Hall International Editions, 1988.

      30. Linguagens e Máquinas
        Autômatos finitos; Expressões regulares; Gramáticas regulares; Equivalência entre os modelos; Propriedades de linguagens regulares; Autômatos a pilha determinísticos e não-determinísticos; Gramáticas livres-de-contexto, propriedades de LCC; Ambigüidade; Autômatos 'linear-bounded'; Linguagens sensíveis-ao-contexto; A hierarquia de Chomsky.

        Livro Texto: Hopcroft, J. & Ullman, J.: Introduction to Automata Theory, Languages, and Computation - Addison-Wesley, 1979

      31. Lógica Aplicada à Computação
        Estruturas Matemáticas: definições indutivas; reticulados, cpo's, domínios, continuidade, ponto fixo; Lógica Matemática: teoria de modelos(valoração, estruturas, formas normais, método da resolução, universo de herbrand, algoritmo da unificação); teoria da prova(dedução natural, cálculo de seqüentes, inferência de tipos, sistemas axiomáticos); aritmética formalizada; completude/incompletude; teorema de Gödel.

        Livro Texto: Gallier, J. H.: Logic for Computer Science, John Wiley & Sons, 1987

      32. Métodos de Projeto de Sistemas
        Princípios e paradigmas relacionados ao ciclo de vida de software; Principais teorias, métodos, técnicas e ferramentas associadas ao projeto de software enquanto atividade sistemática; Técnicas estruturadas e orientadas a objeto para projeto de sistemas.

        Livro Texto: Pressman, R.: Software Engineering, A Practitioner's Approach, Third Edition, Mcgraw-Hill International Edition, 1993.

      33. Métodos Formais
        Introdução ao desenvolvimento formal de software(motivação, ciclo de desenvolvimento, verificação X validação, grau de formalismo, classificação de métodos baseados em modelos e orientados a propriedades); Revisão de alguns modelos matemáticos(conjuntos, relações, funções, seqüencias e multiconjuntos); Uma linguagem de especificação baseada em modelos(como Z ou VDM) e refinamento para especificações baseadas em modelos; Conceitos perliminares de Álgebra; Uma linguagem de especificação algébrica(como EML ou OBJ3) e refinamento para especificações algébricas.

        Livro Texto: Woodcock, J. C. P.: Using Standard Z: Specification, Refinement and Proof, Prentice-Hall, 1995.

      34. Métodos Numéricos
        Sistemas Numéricos e Erros; Solução de Equaç~es Não-Lineares; Sistemas de Equações Lineares; Interpolação por Polinômios; Aproximação de Funções; Integração Numérica; Solução de Equações Diferenciais Ordinárias.

        Livro Texto: Cláudio, D. M., Marins, J. M.: Cálculo Numérico Computacional, Atlas, São Paulo, 1989.

      35. Organização de Computadores
        Pipeline; Organização de Memória(uniprocessadores); Tratamento de Interrupções e execeções; Entrada e saída.

        Livro Texto: A. J. van der Goor: Computer Architecture and Design, Addison Wesley, 1989, 2ª Edição.

      36. Probabilidade e Estatística
        Espaços Amostrais; Eventos; Probabilidades Condicionadas; Variáveis Aleatórias Discretas e Contínuas; Variáveis Multi-Dimensionais; Características Numéricas; Função Geratriz de Momento e de Probabilidades; Teorema do Limite Central; Distribuições Amostrais; Estimação Pontual; Intervalos de Confiança; Testes de Hipóteses.

        Livro Texto: Paul Meyer: Probabilidade e Aplicações à Estatística, Addison Wesley, 1983.

      37. Processamento de Conhecimento
        Fundamentos da Dedução Automática; teoremas de Skolem e Herbrand; Teoria da Unificação; Lógicas não-clássicas: modal, untuicionística, de recurso, não-monotônicas; Semântica de mundos possíveis; Eliminação de corte: Hauptsatz de Gentzen; Teorema de Herbrand; Sharpened Hauptsatz de Gentzen.

        Livro Texto: Gabbay, D., Hogger C., Robinson J.: Handbook of Logic in Artificial Intelligence and Logic Programming, Vols. I e II, Oxford University Press, 1993.

      38. Processamento de Linguagem Natural
        Processamento Sintático; Interpretação Semântica; Processamento de Discurso; Aplicações.

        Livro Texto: Gerald Gazdar & Chris Mellish: Natural Language Processing in Prolog: An Introduction to Computational Linguistics, Addison Wesley Pub. Co., 1989.

      39. Projeto de Banco de Dados
        Projetos e Aplicações em Banco de Dados

        Livro Texto: Pratt, Adamski: Database systems: Management and Design, Boyd & Fraser Publishing Company, 1987.

      40. Projeto de Compiladores
        Projetos e Aplicações em Compiladores

        Livro Texto: Aho A. V., Sethi R. Ullman J. D.: Compilers: Principles, Techniques and Tools, Addison Wesley Pub. Co., 1986.

      41. Projeto de Sistemas Operacionais
        Modelos e linguagens para projetos em sistemas operacionais; Mecanismos para a estruturação de sistemas operacionais; Tecnologia para a construção de sistemas operacionais; Projeto.

        Livro Texto: Leffler, Samuel J., Mckusick, Marshall K., Karels, Michael J., Quarterman, John S.: The Design and Implementation of the UNIX Operating System, Addison Wesley, 1989.

      42. Prototipação de Circuitos Integrados
        Conceitos básicos de semicondutores; Famílias lógicas; TTL, ECL, MOS, CMOS; Metodologias de Projeto: Bottom-up, Top-Down; Estilos de Implementação Circuitos Integrados: Full-Custom, Standard-Cells, Gate-Arrays, Sea-of-Gates, FPGA's; Tecnologias Avançadas: Arsianeto de Galium, Circuitos Óticos.

        Livro Texto: N. Weste and K. Eshraghian: Principles of CMOS VLSI Design: A System Perspective, Addison Wesley, 1988.

      43. Redes de Computadores 1
        Introdução às Redes de Comunicações; Modelo de Referência OSI; Camada Física(Técnicas de Transmissão Analógica e Digital; Técnicas de Multiplexação FDM e TDM; Rede Digital de Serviços Integrados); Subcamada de Acesso ao Meio; Redes Locais e metropolitanas; Camada de Enlace de dados; Dimensionamento de Redes.

        Livro Texto: Tanenbaum, A. S.: Redes de Computadores, Traducao da 3a Edicao, Ed. Campus, 1997.

      44. Redes de Computadores 2
        Camadas de rede, Transporte, Sessão. Apresentação e Aplicação; Gerenciamento de Redes; Tendências.

        Livro Texto: Tanenbaum, A. S.: Redes de Computadores, Traducao da 3a Edicao, Ed. Campus, 1997.

      45. Redes Neurais
        Redes Biológicas; Modelos de Neurônios; Arquitetura e Aprendizado nas Redes Neurais; Aplicações.

        Livro Texto: Igor Aleksander & Helen Morton: An Introduction to Neural Computing, Chapman and Hall, 1990.

      46. Semântica de Linguagens
        Sintaxe; Sistemas de Tipos; Subtipo; Polimorfismo; Verificação e Inferência de Tipos; Ligação de Identificadores; Passagem de Parâmetros; Abbstrações; Referência e Atribuição; Sistemas Modulares; Herança; Semântica Formal.

        Livro Texto: David A. Schmidt: Denotational Semantics: a Methodology for Language Development, WCB, 1988.

      47. Sistemas de Informação
        Fundamenos de Sistemas de Informações; Sistemas de Informação Pessoais. de Grupos e Corporativos; Administração de Sistemas de Informação; Sistemas de Informação Gerenciais; Sistemas de Apoio a Decisão; Aplicações de Sistemas de Informação; Planejamento Estratégico de Sistemas de Informação; Gerência de Custos de Sistemas de Informação; Qualidade, Segurança e Auditoria de Informática; Gerência de Pessoal para Sistemas de Informação; Relacionamento Organizacional de Sistemas de Informação.

        Livro Texto: David Kroenke, Richard Hatch: Management Information Systems, 3ª edição, McGraw-Hill, Watsonville, CA, EUA, 1994.

      48. Sistemas Distribuídos
        Conceitos básicos de sistemas distribuídos; Paradigmas de linguagens de programação distribuída; Técnicas de descrição de sistemas; Ambientes de suporte ao desenvolvimento de sistemas distribuídos; Estudo de casos;

        Livro Texto: Mullender, Sape(Editor): Distributed Systems, ACP Press, 1989.

      49. Sistemas Operacionais
        Introdução; Conceitos básicos; Processos e memória; Entrada/Saída; Sistemas de arquivos; Recursos compartilháveis; Recursos de uso serializado; Políticas e mecanismos de gerenciamento de recursos; Comunicação e sincronização; Noções de sistemas operacionais distribuídos; Estudo de casos.

        Livro Texto: Tanembaum, Andrew S.: Modern Operating Systems, Prentice-Hall, 1992.

      50. Teoria da Computação
        Funções Recursivas; Máquinas de Turing; Tese de Church; Gödel e a incompletude; (Lambda)-Cálculo; Domínios; Continuidade. Relações entre os modelos de computabilidade.

        Livro Texto: Lewis, H. & Papadimitriou, C.: Elements of the Theory of Computation, Prentice-Hall, 1981.

      51. Teoria da Prova
        Dedução Natural; Cálculo de Seqüentes; Interpretação de Curry-Howard; Teorema da Normalização; Eliminação do Corte; Lógicas Não-Clássicas.

        Livro Texto: Girard, J. Y.: Proof Theory and Logical Complexity, Bibliopolis, 1987.

      52. Teoria dos Grafos
        Grafos, Subgrafos e Grafos Orientados; Florestas e Árvores; Busca em Grafos, Conectividade e Cortes; Árvore Geradora, Distâncias, Fluxo em Rede e Emparelhamentos; Problemas Intratáveis.

        Livro Texto: Szwarcfiter, J. L.: Grafos e Algoritmos Computacionais, Ed. Campus, 1988.

      53. Teoria dos Modelos
        Estruturas Relacionais; Um Sistema Formal para o Cálculo de 1ª Ordem(exemplos).

        Livro Texto: Chang, C. & Keisler, H. J.: Model Theory, North-Holland, 3rd edition, 1991.

      54. Tópicos de Banco de Dados 1
        Introdução a Banco de Dados Distribuídos, SGBD Distribuídos, Arquitetura de BD Distribuídos, Projeto de BD Distribuídos, Integração de BD Distribuídos, Implementação de SGBD Distribuídos.

        Livro Texto: Kim: Introduction to Object-Oriented Databases.

      55. Tópicos de Banco de Dados 2
        Ementa a critério do Professor ao ministrar a disciplina enfocando os principais temas da área.

        Livro Texto: Artigos atuais da área.

      56. Tópicos em Computação Gráfica
        Modelagem de Curvas e Superfícies; Visualização e Transformações Geométricas em 3D; Modelagem de Sólidos; Técnicas de Iluminação, Sombreamento e Rendering; Ferramentas de Software: Linguagens, Pacotes e Padrões Gráficos.

        Livro Texto: Newman W., Sproull, R.: Principles of Interactive Computer Graphics, McGraw-Hill, 1979.