Dependência das disciplinas

Convenções

No currículo aprovado para 2019 e apresentado neste Catálogo são observadas as seguintes convenções:

  • Sigla da disciplina: conjunto de três letras e dois números que permite identificar uma disciplina como sendo de responsabilidade de uma Divisão Acadêmica do ITA, e em alguns casos até seus Departamentos.
  • Carga horária semanal: correspondentes a cada disciplina, os quatro números separados por um hífen indicam: o primeiro, o número de horas semanais destinado à exposição teórica da matéria; o segundo, o número de horas de aula de exercícios; o terceiro indica o tempo usado em laboratório, desenho, projeto, visita técnica ou prática desportiva; e o quarto, o número de horas estimadas para estudo em casa, necessárias para acompanhar o curso.
  • Requisito: disciplina que o aluno já deva ter cursado ou condição que deve satisfazer antes de cursar determinada matéria. Quando, como requisito, constar disciplina que não aparece neste Catálogo, trata-se de disciplina em extinção, oferecida em anos anteriores.
  • Ementa: conteúdo programático da disciplina representando os tópicos a serem abordados durante o tempo previsto no período.
  • Bibliografia: indicação de até 3 referências bibliográficas que o professor poderá fazer uso como texto ao ministrar a disciplina.

1º Ano Profissional - 1º Período - Classe 2021

  • CES-22 - Programação Orientada a Objetos. Horas semanais: 3-0-2-5.

  • CES-12 - Algoritmos e Estrutura de Dados II. Horas semanais: 3-0-1-5.

  • CTC-21 - Lógica Matemática e Estruturas Discretas. Horas semanais: 2-0-1-3.

  • EEA-21 - Circuitos Digitais. Horas semanais: 4-0-2-4.

  • ELE-52 - Circuitos Eletrônicos I. Horas semanais: 2-0-2-4.

  • EES-10 - Sistemas de Controle I. Horas semanais: 4-0-1-5.

Total de horas semanais: 18 + 0 + 9 = 27

1º Ano Profissional - 2º Período - Classe 2021

  • CES-28 - Fundamentos de Engenharia de Software. Horas semanais: 3-0-2-5.

  • CTC-34 - Automata e Linguagens Formais. Horas semanais: 2-0-1-4.

  • EEA-25 - Sistemas Digitais Programáveis. Horas semanais: 3-0-2-4.

  • EES-20 - Sistemas de Controle II. Horas semanais: 4-0-1-6.

  • ELE-32 - Introdução a Comunicações. Horas semanais: 4-0-1-4.

  • ELE-53 - Circuitos Eletrônicos II. Horas semanais: 3-0-2-4.

Total de horas semanais: 19 + 0 + 9 = 28

2º Ano Profissional - 1º Período - Classe 2020

  • CES-25 - Arquiteturas para Alto Desempenho. Horas semanais: 3-0-0-4.

  • CES-33 - Sistemas Operacionais. Horas semanais: 3-0-1-5.

  • CCI-36 - Fundamentos de Computação Gráfica. Horas semanais: 2-0-1-4.

  • CES-29 - Engenharia de Software. Horas semanais: 4-0-1-5.

  • CES-41 - Compiladores. Horas semanais: 3-0-2-5.

  • EEA-27 - Microcontroladores e Sistemas Embarcados. Horas semanais: 2-0-2-4.

Total de horas semanais: 17 + 0 + 7 = 24

2º Ano Profissional - 2º Período - Classe 2020

  • CES-27 - Processamento Distribuído. Horas semanais: 2-0-1-4.

  • CES-35 - Redes de Computadores e Internet. Horas semanais: 3-0-1-5.

  • CES-30 - Técnicas de Banco de Dados. Horas semanais: 3-0-1-4.

  • CTC-17 - Inteligência Artificial. Horas semanais: 2-0-2-4.

Total de horas semanais: 10 + 0 + 5 = 15

3º Ano Profissional - 1º Período - Classe 2019

  • TG1 - Trabalho de Graduação I (Nota 5). Horas semanais: 0-0-8-4.

Total de horas semanais: 0 + 0 + 8 = 8

3º Ano Profissional - 2º Período - Classe 2019

  • TG2 - Trabalho de Graduação II (Nota 5). Horas semanais: 0-0-8-4.

  • HUM-20 - Noções de Direito. Horas semanais: 3-0-0-3.

  • MOE-42 - Princípios de Economia. Horas semanais: 3-0-0-4.

  • MOG-61 - Administração em Engenharia. Horas semanais: 3-0-0-4.

  • HID-65 - Engenharia para o Ambiente e Sustentabilidade. Horas semanais: 2-1-0-3.

Total de horas semanais: 11 + 1 + 8 = 20

Notas:

  • Nota 5 ‑ O TG (Trabalho de Graduação) é regulado por normas próprias e deverá ser um projeto coerente com a sua habilitação, sendo considerado atividade curricular obrigatória.
  • TG1 (Trabalho de Graduação 1) - Requisito: Não há. Detalhamento da proposta do Trabalho de Graduação: definição de hipótese, objetivos, revisão bibliográfica, critérios de sucesso e análise de riscos, definição da metodologia e cronograma de atividades. Defesas escrita e oral da proposta. Bibliografia: Materiais selecionados pelo orientador e pelo aluno.
  • TG2 (Trabalho de Graduação 2) – Requisito: TG1. Execução da proposta definida em TG1: desenvolvimento, análise e discussão de resultados. Defesas escrita e oral do Trabalho de Graduação. Bibliografia: Materiais selecionados pelo orientador e pelo aluno.

Eletivas

O aluno deverá cursar com aproveitamento um mínimo de 288 horas-aula de disciplinas eletivas integralizadas a partir do Primeiro Ano do Curso Fundamental. A matrícula em eletivas está condicionada ao aluno haver cursado os pré-requisitos da disciplina, à disponibilidade de vagas, e à aprovação do professor responsável e da Coordenação do Curso. Essas disciplinas podem ser de graduação (dos Cursos Fundamental e Profissionais) e/ou de pós-graduação do ITA.

A IEC oferece as seguintes disciplinas como eletivas de graduação:

  • CCI-37 - Simulação de Sistemas Discretos. Horas semanais: 2-0-1-4.
  • CES-26 - Desenvolvimento de Aplicações para a Internet. Horas semanais: 2-0-2-4.
  • CES-65 - Projeto de Sistemas Embarcado. Horas semanais: 1-1-1-3.
  • CSI-10 - Introdução a Sistemas de Informações Geográficas. Horas semanais: 2-0-1-3.
  • CES-23 - Algoritmos Avançados. Horas semanais: 2-1-0-5.
  • CTC-23 - Análise de Algoritmos e Complexidade Computacional. Horas semanais: 3-0-0-6.
  • CTC-42 - Introdução a Criptografia. Horas semanais: 2-0-1-3.
  • CMC-10 - Projeto e Fabricação de Robôs Móveis. Horas semanais: 1-0-3-4.
  • CMC-11 - Fundamentos de Análise de Dados. Horas semanais: 1-0-2-3.

Estágio

O aluno deverá realizar, no Primeiro Período do 3º Ano Profissional, um Estágio Curricular Supervisionado, de acordo com as normas reguladoras próprias. A carga horária mínima de estágio é 225 horas, as quais deverão ser integralizadas até a data prevista no calendário escolar.

Atividades Complementares

O aluno deverá comprovar um mínimo de 200 horas de Atividades Complementares de acordo com normas reguladoras do ITA, contabilizadas até a data prevista no calendário escolar. integralizadas a partir do primeiro período do 1º ano do Curso Fundamental. As atividades complementares deverão ser contabilizadas até o último semestre do Curso Profissional, conforme data prevista no calendário escolar/administrativo do ITA para entrega de requerimento pelo aluno.

Ementas das disciplinas da Divisão de Ciência da Computação

As disciplinas listadas abaixo são ofertadas pelos departamentos da Divisão de Ciência da Computação. As demais disciplinas podem ser consultadas diretamente no catálogo da graduação do ITA.

Sistemas de Computação (IEC-SC)

CES-25 - ARQUITETURAS PARA ALTO DESEMPENHO. Requisitos: CES-10, EEA-25. Horas semanais: 3-0-0-4. Unidades básicas de um computador: processadores, memória e dispositivos de entrada e saída. Técnicas para aumento de desempenho de computadores. Memória cache, entrelaçada e virtual. Segmentação do ciclo de instrução, das unidades funcionais e do acesso a memória. Computadores com conjunto reduzido de instruções. Linha de execução de instruções (pipeline). Microprograma de unidade central de processamento. Processadores Superescalares. Execução especulativa de código. Multiprocessadores e Computação em escala Warehouse. Bibliografia: Patterson, D.A; Hennessy, J.L.;. Arquitetura de Computadores: Uma Abordagem quantitativa. 5a. ed., Ed. Campus. 2014. Stalllings, W. Arquitetura e Organização de computadores..10ª ed., Ed. Pearson. 2017. Tanenbaum, A.S. Organização estruturada de computadores. 6ª. ed. Ed. Pearson. 2015.

CES-27 - PROCESSAMENTO DISTRIBUÍDO. Requisitos: CES-11. Horas semanais: 2-0-1-4. Introdução a sistemas distribuídos.Linguagens de programação distribuída. Anéis lógicos. Rotulação de tempo e relógios lógicos. Transações em bancos de dados distribuídos. Computações difusas. Detecção de “deadlocks” em sistemas distribuídos. Algoritmos de consenso. Algoritmos para evitar inanição. Bibliografia: MULLENDER, S. Distributed systems. New York, NY: Addison-Wesley, 1993. RAYNAL, M. Distributed algorithms and protocols. New York, NY: John Wiley, 1988. SINGHAL, M.; SHIVARATRI, N. G. Advanced Concepts in Operating Systems. New York, NY: McGraw-Hill, 1994.

CES-33 - SISTEMAS OPERACIONAIS. Requisitos: CES-11. Horas semanais: 3-0-1-5. Conceituação. Estruturação de sistemas operacionais. Gerenciamento de processos: modelo e implementação. Mecanismos de intercomunicação de processos. Escalonamento de processos. Múltiplas filas, múltiplas prioridades, escalonamento em sistemas de tempo real. Deadlocks. Gerenciamento de memória. Partição e relocação. Gerenciamento com memória virtual. Ligação dinâmica. Gerenciamento de E/S. Gerenciamento de arquivos. Mecanismos de segurança e proteção. Tópicos de sistemas operacionais distribuídos. Interfaces gráficas de sistemas operacionais modernos. Bibliografia: Tanenbaum, A. S. Sistemas Operacionais. Pearson, 4ª Edição, 2016. Silberschatz, A., Galvin, P.B., Gagne, G. Fundamentos de Sistemas Operacionais . LTC9ª Edição, 2015. William Stallings. Operating Systems: Internals and Design principles. Pearson, 9th Ed. 2018.

CES-35 - REDES DE COMPUTADORES E INTERNET. Requisitos: CES-33. Horas semanais: 3-0-1-5. Noções básicas de redes de computadores: hardware e software. Necessidade de protocolos: o modelo TCP/IP. O nível de aplicação: protocolos de suporte e de serviços. O nível de transporte: os protocolos TCP e UDP, e controle de congestionamento. O nível de rede: plano de dados; plano de controle com Redes Definidas por Software; algoritmos de roteamento; o protocolo IP. O nível de enlace: padrões IEEE. Aspectos de segurança. Bibliografia: Tanenbaum, A.S., Wetherall, D. Redes de Computadores. Pearson, 5a. Edição, 2011. Kurose, J.F., Ross, K.W. Computer Networking, Pearson, 7a. Edição, 2017.. SDN - Software Defined Networks - Thomas D. Nadeau & Ken Gray. O ́Reilly, 2014.

CCI-36 - FUNDAMENTOS DE COMPUTAÇÃO GRÁFICA. Requisitos: CES-11. Horas semanais: 2-0-1-4. Elementos básicos de computação gráfica. Dispositivos gráficos. Primitivas gráficas: pontos, linhas, textos, representação e preenchimento de polígonos. Transformações 2D. Janelamento e recorte. Segmentação. Técnicas de interação. Introdução a gráficos tridimensionais: representação “wire-frame”. Eliminação de superfícies ocultas. Modelos de Iluminação: Gouraud, Phong, Ray Tracing, radiosidade, filtros. Bibliografia: FOLEY, J. D. et al.Computer graphics: principles and practice. 2.ed. Reading, MA: Addison-Wesley Publishing Company, 1996. HEARN, D.; PAULINE, B. M. Computer Graphics, C version. 2. ed. Englewood-Cliffs: Prentice Hall, 1997. NEWMANN, W. M.; SPROULL, R. F. Principles of interactive computer graphics. 10. ed. Auckland: McGraw-Hill, 1984.

CCI-37 - SIMULAÇÃO DE SISTEMAS DISCRETOS. Requisitos: CES-11, MOQ-13. Horas semanais: 2-0-1-4. Introdução à simulação. As fases de simulação por computadores. Os procedimentos de modelagem de simulação. Métodos de amostragem, geração de números e variáveis aleatórias. Linguagens de simulação, avaliação de software de simulação. Validação de modelos, projeto e planejamento de experimento de simulação, técnicas de redução de variância. Bibliografia: BANKS, J. et al. Discrete- event system simulation. 3 ed. Upper Saddle River, NJ: Prentice Hall, 2000. KELTON, W. D.; LAW, A. M. Simulation modeling and Analysis. New York, NY: McGraw-Hill, 1991. PIDD, M. Computer simulation in management science. 4 ed. [S.l]: Wiley, 1998.

Software e Sistemas de Informação (IEC-I)

CES-22 - PROGRAMAÇÃO ORIENTADA A OBJETOS. Requisitos: CES-10. Horas semanais: 3-0-2-5. Classes e instâncias. Comportamento e estado interno. Herança e polimorfismo. Programação para interfaces. Tipos de dados e operadores. Métodos e variáveis estáticas. Encapsulamento e modificadores de acesso. Modularização de software e pacotes. Características de linguagens de tipagem estática e dinâmica. Fundamentos de programação concorrente. Criação de interfaces gráficas. Testes de unidade. Conceitos de acoplamento e coesão. Estruturas de dados orientadas a objetos e tipos genéricos. Fundamentos de projeto de software. Bibliografia: BARKER, J. Beginning Java Objects: From Concepts to Code. New York: SpringerVerlag New York, 2nd Edition, 2005. ARNOLD, K.; GOSLING, J. The Java Programming Language. Reading: Addison Wesley, 1996. NIEMAYER, P.; PECK, J. Exploring Java. Sebastopol: O´Reilly, 1997.

CES-26 - DESENVOLVIMENTO DE APLICAÇÕES PARA A INTERNET. Requisitos: CES-22. Horas semanais: 2-0-2-4. Introdução à arquitetura de aplicações para a Internet. Desenvolvimento de aplicações móveis. Desenvolvimento de serviços para a Internet. Desenvolvimento de aplicações para a Nuvem. Introdução à segurança de aplicações na Internet. Bibliografia: PUREWAL, S. Learning Web App Development, O’Reilly, Sebastopol, CA, 2014; RUDGER, R. Beginning Mobile Application Development in the Cloud, John Wiley, IN, USA, 2012; ZALEWSKI, M. The Tangled Web: A Guide to Securing Modern Web Applications, No Starch Press, CA, USA, 2011. FOX, A. and PATTERSON, D. Engineering Software as a Service: An Agile Approach Using Cloud Computing, 1st edition, Strawberry Canyon, 2015.

CES-28 - FUNDAMENTOS DE ENGENHARIA DE SOFTWARE. Requisitos: CES-12. Horas semanais: 3-0-2-5. Requisitos de Software. Projeto orientado a objetos. Linguagem Unificada de Modelagem (UML). Arquitetura de software e arquitetura de referência. Padrões de projeto e arquiteturais. Componentes e frameworks. Refatoração. Modularização de aplicações. Paradigmas arquiteturais e suas implicações. Testes de software. Fundamentos de qualidade de software. Bibliografia: FOWLER, M. UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd Edition, Addison-Wesley, 2003. KUCHANA, P. Software Architecture Design Patterns in Java. Boca Raton: CRC Press, 2004. EELES, P.; CRIPPS, P. The Process of Software Architecting, Addison-Wesley Professional, 2009.

CES-29 - ENGENHARIA DE SOFTWARE. Requisitos: CES-28. Horas semanais: 4-0-1-5. Processos de desenvolvimento de software. Engenharia de requisitos. Processo unificado. Metodologias ágeis. Desenvolvimento orientado a modelos (MDD). Verificação e validação: inspeções e testes de software. Gerência de configuração de software. Modelos de capacitação organizacional: CMMI, SPICE e MPS.br. Ferramentas e ambientes de desenvolvimento de software. Qualidade, confiabilidade e segurança de software. Fundamentos de gerência de projeto de software. Interação humano-computador: usabilidade e acessibilidade. Aspectos econômicos no desenvolvimento de software. Bibliografia: SOMERVILLE, I. Engenharia de Software. 8a. ed., São Paulo: Pearson Addison-Wesley, 2007. PFLEEGER S. L.; ATLEE, J. M. Software Engineering. 4th Edition, Pearson Prentice Hall, 2009. PRESSMAN, R. S. Engenharia de Software. 6a. ed., McGraw-Hill Bookman, 2006.

CES-30 - TÉCNICAS DE BANCO DE DADOS. Requisitos: CES-10. Horas semanais: 3-0-1-4. Modelo de entidade/relacionamento. Modelo de dados relacional. Structured Query Language. Projeto de banco de dados relacional. Segurança e integridade. Estruturas de Armazenamento. Processamento de Consultas. Transação e Concorrência. Técnicas de Big Data. Introdução a Data Warehouse e Mineração de Dados. Bibliografia: Silberschatz A, Korth H. Sudarshan S. Sistemas de Banco de Dados, 6ª Edição, Elsevier, 2012. Ramakrishnan R., Gehrke J. Sistemas de Gerenciamento de Banco de Dados, 3ª Edição, MCgraw Hill - Artmed, 2008. Sadalage, P. J., Fowler, M. NoSQL Distilled: A Brief guide to the Emerging World of Polyglot Persistence. Crawfordsville: Pearson Education, 2013.

CES-65 - PROJETO DE SISTEMAS EMBARCADO. Requisitos: CES-29, EEA-27. Horas semanais: 1-1-1-3. Aplicações práticas de conceitos sobre engenharia de software e micro-controladores para sistemas embarcados. Desenvolvimento de um protótipo de sistema embarcado em estudo de caso envolvendo problema real e necessidades do mercado. Aplicação de um método de desenvolvimento ágil e suas boas práticas. Manifesto ágil e suas aplicações. Princípios ágeis para o desenvolvimento de protótipo de sistema computadorizado embarcado de tempo real composto por sensores, plataformas de coletas de dados, salas de controles e seus bancos de dados associados. Utilização prática da teoria básica de microprocessadores, de sua programação em linguagens de alto nível e de sistema operacional de tempo real e suas interfaces com sistemas analógicos e digitais. Utilização prática de uma arquitetura dirigida por modelo e da configuração de ferramentas automatizadas em um ambiente integrado de engenharia de software ajudada por computador, para geração de código e de teste de software. Exemplos de implementações de software embarcado em dispositivos móveis com sistemas operacionais Android, IOS, Windows Mobile, Java ME e outros. Bibliografia: WHITE, E. Making Embedded Systems: Design Patterns for Great Software, O’Reilly, 2012; JUHOLA, T. Customized Agile Development Process for Embedded Software Development: A Study of Special Characteristics of Embedded Software and Agile Development, VDM Verlag Dr. Müller GmbH & Co. KG and Licensors, 2010; STOBER, T., HANSMANN, U. Agile Software Development: Best Practices for Large Software Development Projects, Springer, 2010; KNIBERG, H., SKARIN M. Kanban e Scrum: Obtendo o Melhor de Ambos, C4Media, Editora InfoQ.com, 2009.

CSI-10 - INTRODUÇÃO A SISTEMAS DE INFORMAÇÕES GEOGRÁFICAS. Requisitos: Nenhum. Horas semanais: 2-0-1-3. Introdução à Ciência da GeoInformação. A Representação Geográfica. Sistemas de Informação Geográfica (SIG). Conceitos de Cartografia aplicados ao SIG. Modelagem de dados geográficos. Banco de dados e Sistemas de Informações Geográficas. Conceitos de Análise Espacial e Modelagem. Aplicações em Cidades Inteligentes. Bibliografia: Longley et al. Sistemas e Ciência da Informação Geográfica. 3. Ed. Porto Alegre: Bookman, 2013. Câmara, G.; Monteiro, A.M.; Medeiros, J.S. (ed). Introdução à Ciência da Geoinformação. São José dos Campos, INPE, 2004. Cosme, A. Projeto em Sistemas de Informação Geográfica. Lidel Edições técnicas, 2012.

Teoria da Computação (IEC-T)

CES-10 - INTRODUÇÃO À COMPUTAÇÃO. Requisitos: Nenhum. Horas semanais: 4-0-2-5. Conceitos primários: Computador, algoritmo, programa, linguagem de programação, compilador. Representação de informações: sistemas de numeração, mudança de base, aritmética binária, operações lógicas, textos e instruções. Evolução das linguagens de programação. Unidades básicas de um computador. Software básico para computadores. Desenvolvimento de algoritmos: linguagens para algoritmos e refinamento passo a passo. Comandos de uma linguagem procedimental: atribuição, entrada e saída, condicionais, repetitivos e seletivos. Variáveis escalares e estruturadas homogêneas e heterogêneas. Subprogramação: funções, procedimentos, passagem de parâmetros, recursividade. Ponteiros. Bibliografia: MOKARZEL, F.C.; SOMA, N.Y. Introdução à Ciência da Computação. Rio de Janeiro: Campus-Elsevier, 2008. MIZRAHI, V.V. Treinamento em Linguagem C. São Paulo: Pearson, 2008. SALIBA, W. L. C. Técnicas de Programação: uma Abordagem Algorítmica. São Paulo: Makron, 1992.

CES-11 - ALGORITMOS E ESTRUTURA DE DADOS I. Requisitos: CES-10. Horas semanais: 3-0-1-5. Tópicos em recursividade. Técnicas para desenvolvimento de algoritmos. Noções de complexidade de algoritmos. Vetores e encadeamento de estruturas. Pilhas, filas e deques. Árvores gerais e binárias. Grafos orientados e não orientados. Algoritmos básicos para grafos. Filas de prioridades. Métodos básicos de Ordenação. Noções de programação orientada a objetos. Bibliografia: DROSDEK, A. Estrutura de Dados e Algoritmos em C++. São Paulo: Thomson, 2002. FEOFILOFF, P. Algoritmos em Linguagem C. Rio de Janeiro: Campus-Elsevier, 2009. CELES, W. et al. Introdução a Estruturas de Dados. Rio de Janeiro: Campus-Elsevier, 2004.

CES-12 - ALGORITMOS E ESTRUTURA DE DADOS II. Requisitos: CES-11. Horas semanais: 3-0-1-5. Complexidade de Algoritmos. Métodos de Implementação de Dicionários. Tabelas de espalhamento (hashing). Árvores balanceadas. Métodos de ordenação e métodos avançados de procura. Algoritmos para grafos. Manipulação de arquivos. Bibliografia: T. H.Cormen, C. E Leiserson and R. L.Rivest, Introduction to algorithms. MIT Press, 1990; A. V. Aho, J. E. Hopcroft e J.D. Ullman – Data Structures and Algorithms – Addison Wesley, 1983; N. Ziviani, Projetos de Algoritmos. Thomson, 2ª edição, 2004.

CES-23 - ALGORITMOS AVANÇADOS. Requisitos: CES-11, CTC-21. Horas semanais: 2-1-0-5. Programação dinâmica. Métodos exaustivos. Algoritmos gulosos. Ordenação topológica. Manipulação de cadeias de caracteres. Algoritmos em árvores: árvore geradora mínima. Algoritmos em grafos: caminho mais curto, fluxo máximo, problemas de emparelhamento. Bibliografia: CORMEN, T. H. et al. Algoritmos: Teoria e Prática. 2ª ed. Rio de Janeiro: Editora Campus, 2002. REVILLA, M.A.; e Skiena, S. S. Programing Challenges: the programming contest training manual. New York, NY: Springer Verlag, 2003. SKIENA, S. S. The Algorithm Design Manual. New York, NY: Springer Verlag, 1998.

CES-41 - COMPILADORES. Requisitos: CES-11, CTC-34. Horas semanais: 3-0-2-5. Anatomia de um compilador. Gramáticas e linguagens. Diagramas de transição. Análise léxica. Análise sintática: metodologias top-down e bottom-up. Organização de tabelas de símbolos. Tratamento de erros. Análise semântica e definições orientadas pela sintaxe. Geração de código intermediário e de código objeto. Organização de memória em tempo de execução. Otimização de código. Meta-compiladores e ferramentas automáticas para construção de compiladores. Bibliografia: AHO, A. V. et al. Compiladores: Princípios, Técnicas e Ferramentas. São Paulo: Pearson/Addison-Wesley, 2008. LOUDEN, K. C. Compiladores: Princípios e Práticas. São Paulo: Thomson Learning, 2004. TREMBLAY, J. P., SORENSON, P. G. The Theory and Practice of Compiler Writing. Singapore: McGraw-Hill, 1989.

CCI-22 - MATEMÁTICA COMPUTACIONAL. Requisitos: CES-10. Horas semanais: 1-0-2-5. Aritmética computacional. Métodos de resolução para sistemas lineares, equações algébricas e transcendentes. Métodos para Determinação de Autovalores e Autovetores. Interpolação de funções. Ajuste de curvas. Integração numérica. Resolução numérica de equações diferenciais ordinárias. Implementação dos métodos numéricos. Bibliografia: BERTOLDI FRANCO, N. M. Cálculo numérico. Pearson, 2006. CLAUDIO, D.; MARINS, J. Cálculo numérico: teoria e prática. São Paulo: Atlas, 1987; RUGGIERO, M.A.C.; LOPES, V. L. R. Cálculo numérico, aspectos teóricos e computacionais. São Paulo: McGraw-Hill, 1988.

Metodologias de Computação (IEC-M)

CTC-17 - INTELIGÊNCIA ARTIFICIAL. Requisitos: CTC-21, MOQ-13. Horas semanais: 2-0-2-4. Conceituação, aplicações. Resolução de problemas: técnicas e métodos, representação, heurísticas, decomposição de problemas, jogos. Estratégias de busca e decomposição, representação, algoritmo A, Algoritmos genéticos. Aprendizagem de máquina: aprendizado indutivo, árvores de decisão e modelos de redes neurais artificiais para aprendizado supervisionado, não-supervisionado. Modelo decisório de Markov e Aprendizado por reforço. Introdução a lógica nebulosa. Fundamentos de redes bayesianas: construção de modelos e inferência. Bibliografia: *RUSSEL, S.; NORVIG, P. Inteligência Artificial. 3a. ed. Rio de Janeiro: Elsevier Editora, 2013. LUGER, G. Inteligência Artificial. 6a. ed. Porto Alegre: Bookman,. 2013. Witten, I.; Frank, E. Data Mining: Practical Machine Learning Tools and Techniques. 4a. Ed. Elsevier,. 2016.

CTC-21 - LÓGICA MATEMÁTICA E ESTRUTURAS DISCRETAS. Requisitos: Nenhum. Horas semanais: 2-0-1-3. Funções e Operações Binárias. Relações de equivalência e ordem. Enumerabilidade de conjuntos. Grupos, reticulados e álgebras de Boole. Cálculo proposicional e de predicados. Sistemas dedutivos. Lógica matemática: resolução, sistemas de dedução e refutação, sistemas especialistas. Sistemas baseados em conhecimento. Linguagem PROLOG. Planejamento. Bibliografia: GRIMALDI, R. P. Discrete and combinatorial mathematics. Reading: Addison Wesley, 1994. KNEALE, W., KNEALE, M. O desenvolvimento da lógica. 3 ed. Coimbra: Fundação Calouste Gulbenkian, 1991. FRANCO DE OLIVEIRA, A. J. Lógica e aritmética. Editora Universidade de Brasília, 2004.

CTC-23 - ANÁLISE DE ALGORITMOS E COMPLEXIDADE COMPUTACIONAL. Requisitos: CES-12. Horas semanais: 3-0-0-6. Ordem de funções. Recursividade e recorrência. Emparelhamento de padrões. Paradigmas de programação: divisão e conquista, método guloso, programação dinâmica. Algoritmos numéricos avançados. Codificação de Huffman. Problemas da mochila, do caixeiro viajante, de clique e de coloração. Máquina de Turing. Algoritmos não-determinísticos e a Classe NP. Teorema de Cook. Reduções Polinomiais. Bibliografia: T. H.Cormen, C. E Leiserson and R. L.Rivest, Introduction to algorithms. MIT Press, 1990; M.R. Garey and D.S.Johnson - Computers and Intractability: a guide to the theory of NP-completeness, W.H. Freeman, and Co., 1979; R.Sedgewick and K.Wayne - Algorithms (4 th edition), Addison-Wesley.

CTC-34 - AUTOMATA E LINGUAGENS FORMAIS. Requisitos: CTC-21. Horas semanais: 2-0-1-4. Automata finitos e expressões regulares. Propriedades dos conjuntos regulares. Linguagens e gramáticas. Linguagens livres de contexto, sensíveis ao contexto e tipo-0. Fundamentos de análise sintática (parsing). Autômato de pilha. Máquinas de Turing: seus modelos restritos e tese de Church. Indecidabilidade e problemas intratáveis. Bibliografia: Hopcroft, J. E.; Ullman, J. D. Introduction to automata theory, languages, and computation. New York, NY: Addison-Wesley, 1979. Sudkamp, T. Languages and Machines: an introduction to the theory of computer science / 2 ed. Addison-Wesley, 1997. Sipser, M. Introduction to the Theory of Computation / 2 ed. PWS, 2006.

CTC-42 - INTRODUÇÃO A CRIPTOGRAFIA. Requisitos: CES-11. Horas semanais: 2-0-1-3. Revisão de Aritmética Computacional. Algoritmos Probabilísticos. Criptosistemas: com chave simétrica e chave pública. Criptoanálise básica. Protocolos Criptográficos. Bibliografia: MENEZES, A.J. Handbook of Applied Cryptography (Discrete Mathematics and Its Applications), CRC Press, 1996; PAAR, C. and PELZI, J. Understanding Cryptography: A Textbook for Students and Practitioners, Springer, 2010. SCHNEIER, B. Applied Cryptography: Protocols, Algorithms and Source Code in C, Wiley, NY, 2015.

CMC-10 - PROJETO E FABRICAÇÃO DE ROBÔS MÓVEIS. Requisitos: CES-11. Horas semanais: 1-0-3-4. Robótica Móvel. Gerenciamento de projetos de Engenharia. Projeto mecatrônico auxiliado por computador. Projeto e fabricação de estrutura mecânica de robô. Projeto e fabricação de placa de circuito impresso. Sistemas embarcados. Sensores e atuadores. Integração de sistemas mecatrônicos. Engenharia de Software. Ferramentas de desenvolvimento de software. Arquitetura de software de agente inteligente. Visão Computacional. Controle e navegação de robôs móveis. Tomada de decisão autônoma com Inteligência Artificial. Coordenação de time de robôs. Competição de robôs. Bibliografia: RITCHEY, L. W. Right The First Time: A Practical Handbook On High Speed PCB and System Design. Speeding Edge Summer, 2003. SIEGWART, Roland; NOURBAKHSH, Illah Reza; SCARAMUZZA, Davide. Introduction to Autonomous Mobile Robots, second edition. Cambridge, MA: The MIT Press, 2011. Kim, J.-H., Kim, D.-H., Kim, Y.-J., Seow, K.T. Soccer Robotics. Springer, 2004.

CMC-11 - FUNDAMENTOS DE ANÁLISE DE DADOS. Requisitos: MOQ-13. Horas semanais: 1-0-2-3. Introdução à regressão no contexto de Econometria aplicado à Engenharia. Métodos de mínimos quadrados ordinários. Regressão linear. Pressupostos de uma regressão linear. Propriedades estatísticas dos estimadores. Inferência. Teste de hipótese. Seleção de modelos. Maximização de verossimilhança. Métodos generalizados dos momentos. Regressão em grandes amostras. Regressão com pressupostos relaxados. Introdução a séries temporais. Modelos ARIMA. Cointegração e vetor corretor de erros. Modelos vetoriais autoregressivos. Análise de componentes principais. Análise fatorial. Aplicação em análise de dados em Engenharia. Bibliografia: Gujarati, D.; Porter, D. Econometria básica, 5. ed. Porto Alegre: McGraw Hill, 2011. Greene, W. Econometric Anlaysis, 8. ed., Pearson, 2017. Fischetti T. Data analysis with R, Packt Publishing, 2015.