1 Computadores e Sistemas Computacionais. 1.1 Computadores: Arquitetura de computadores; componentes de um computador (hardware e software); linguagens de programação; compiladores e interpretadores; sistemas de numeração e representação de dados; aritmética computacional. 1.2 Sistemas Operacionais: Windows e Linux. 1.3 Sistemas Operacionais para dispositivos móveis: Android e IOS. 1.4 Redes de Computadores: fundamentos de comunicação de dados; meios físicos; serviços de comunicação; redes locais e redes geograficamente distribuídas; arquitetura TCP/IP; protocolos e serviços. 1.5 Processamento: distribuído, paralelo e em nuvem. 2 Sistemas Transacionais. 2.1 Fundamentos: lógica de programação; Operadores e expressões, Estruturas de controle, seleção, repetição e desvio. Estruturas de dados; métodos de ordenação, pesquisa e hashing, estrutura de arquivos; paradigmas de programação; programação orientada a objetos. 2.2 Linguagens e ambientes de programação: Java, Javascript, PHP,Objective C, C#, ASP.net e ASP. 2.3 Desenvolvimento de sistemas web: HTML/HTML5, CSS3, Javascript, XML/XSD, JSON, XSLT. 3 Testes. 3.1 Conceitos: verificação e validação, tipos de teste (unidade, integração, sistema/funcional, aceitação, carga, desempenho, vulnerabilidade, usabilidade). 3.2 Técnicas de avaliação de desempenho de sistemas. 3.3 Testes de unidade em Java com JUnit 4 e mocking de classes. 3.4 Automatização de testes funcionais com Selenium. 3.5 Testes de carga. 3.6 Testes em sistemas distribuídos. 4 Arquitetura e Programação Java. 4.1 JEE 6. 4.2 JSE 8. 4.3 Programação orientada à aspectos. 4.4 Hibernate 3. 4.5 Spring Framework 3. 5 Ferramentas. 5.1 Análise estática de código e métricas: PMD, Findbugs, Checkstyle e Ferramenta Sonar. 5.2 Ferramenta de build: Maven 3 e Artifactory. 5.3 Ferramentas de controle de versões SVN e GIT: Conceitos sobre versões de software, releases e promoção de versões entre ambientes. 5.4 Integração Contínua: Jenkins. 6 Práticas ágeis. 6.1 Integração Contínua. 6.2 Test-driven Development (TDD). 6.3 Acceptance Test-driven Development (ATDD) e Especificação por Exemplo. 6.4 Refactoring. 6.5 Entrega contínua. 7 Sistemas de suporte à decisão. 7.1 Conceitos básicos, arquiteturas e aplicações de datawarehousing. 7.2 Técnicas de modelagem e otimização de bases de dados multidimensionais. 7.3 Recuperação e visualização de dados: OLAP, Painéis e dashboards, Data Mining e Georreferenciamento. 7.4 Inteligência de negócios. 7.5 Processo de Data Warehousing: Data Warehouses, Data Marts e Cubos. 7.6 Integração de dados: Extração, transformação e carga (ETL). 8 Sistemas de gestão de conteúdo. 8.1 Arquitetura de informação: conceitos básicos e aplicações. 8.2 Portais corporativos: conceitos básicos, aplicações, portlets, RSS. 8.3 Gestão Eletrônica de Documentos. 9 Segurança da informação. 9.1 NC nº 02/IN01/DSIC/GSIPR - Metodologia de Gestão de SIC e NC nº 16/IN01/DSIC/GSIPR - Diretrizes para o Desenvolvimento e Obtenção de Software Seguro. 10 Estruturas de informação. 10.1 Tipos básicos de estruturas: árvores, pilhas e grafos. 10.2 Pesquisa de dados. 10.3 Operações básicas sobre estruturas. 10.4 Classificação de dados e tipos abstratos de dados. 11 Administração de dados. 11.1 Modelo relacional. 11.2 Modelo lógico e físico. 11.3 Modelo multi dimensional. 11.4 Gestão de metadados e dicionários de dados. 11.5 Qualidade de dados. 11.6 Limpeza de dados. 11.7 Gestão de dados Mestes. 11.8 Sistemas de Gerenciamento de Banco de Dados Relacional. 11.9 Linguagem SQL. 11.10 Avaliação de desempenho de banco de dados. 11.11 Avaliação de desempenho de modelagens de bancos de dados. 11.12 Tunning de bancos de dados. 11.13 Backup. 11.14 Elaboração e implantação de projeto de banco de dados. 11.15 Elaboração de planos de manutenção. 11.16 Bancos de dados NoSQL. 12 Conceitos gerais e disciplinas de engenharia de software. 12.1 Ciclo de vida de software. 12.2 Análise e projeto orientado a objetos com UML. 12.3 Reusabilidade. 13 Padrões de projeto de Software. 14 Processos de desenvolvimento de software. 14.1 Processo interativo e incremental. 14.2 Processos e práticas ágeis de desenvolvimento de software. 14.3 Extreme Programming (XP). 14.4 SCRUM. 14.5 Modelagem ágil. 14.6 Domain-driven Design (DDD). 15 Qualidade de software. 15.1 Métricas de qualidade de código fonte. 15.2 Análise estática de código. 15.3 Acoplamento e Coesão. 16 Acessibilidade. 16.1 eMAG. 17 Usabilidade. 17.1 Conceitos básicos. 17.2 Critérios, recomendações e guias de estilo, utilização de Folhas de Estilo (CSS). 17.3 Análise de requisitos de usabilidade. 17.4 Concepção, projeto e implementação de interfaces. 17.5 Usabilidade para aplicativos em dispositivos móveis. 18 Arquitetura de aplicações para ambiente web. 18.1 Servidor de aplicações e web (Jboss, IIS e Apache). 18.2 Ambientes Internet, Extranet, Intranet e Portal - finalidades, características físicas e lógicas, aplicações e serviços. 19 Arquitetura em camadas. 19.1 Modelo MVC. 20 Arquiteturas para desenvolvimento de aplicativos em dispositivos móveis. 21 Computação na nuvem. 22 Técnicas. 22.1 de avaliação de desempenho de sistemas. 22.2 de tratamento de exceções. 22.3 de tolerância a falhas e alta disponibilidade. 23 Consistência de dados. 23.1 Forte e eventual. 24 Geoprocessamento. 25 Compatibilidade. 25.1 W3C. 26 Integração. 26.1 Soluções de integração: ServiceOriented Architecture (SOA), web services, SOAP, ws-security e REST. 27 Interoperabilidade. 27.1 Padrão deInteroperabilidade do Governo (ePing). 28 Gerenciamento ágil de projetos, incluindo técnicas para planejamento e priorização incremental de escopo.