Lógica de Programação estruturada. Estruturas de controle: seleção, repetição e desvio. Portugol.
Estrutura de dados e Algoritmos: Definição e utilização. Vetores, Matrizes, Listas, Registros, Procedimentos, Funções, Ponteiros, Pilhas, Filas, Árvores: descrição e algoritmos de manipulação. Organização de arquivos: sequencial, sequencial-indexado, indexado, direto e invertido, métodos de acesso e pesquisa.
Métodos de ordenação, pesquisa e hashing. Busca maior e menor. Pesquisa sequencial e binária. Árvore binária de busca. Busca em cadeia de caracteres.
Orientação a Objetos: abstração de dados, definição de classes, métodos e atributos, herança, polimorfismo, encapsulamento, reutilização de componentes. Tratamento de exceções e controle de erros.
Java. Sintaxe, palavras-chave, estrutura e construções de um programa, compilação e execução de programas. Declaração e inicialização de variáveis. Utilização de literais e strings. Categorias de operadores e precedência. Controle de fluxo de programas e repetição. Definição de classes, métodos, variáveis, atributos, encapsulamento, interfaces, herança, classes abstratas, packages, sobrecarga de métodos e sobrescrita de métodos. Utilização e implementação de bibliotecas e componentes. Administração de exceções.
Single Page Application (SPA). JQuery, AngularJS, WebSocket. Vue
JSON, XML. Modelos de dados semiestruturados, Documentos XML, DTD, XML Schema, DOM, SAX, XPath, XQuery, Documentos XML em Bancos de Dados Relacionais.
Sistemas de controle de versão de software: Conceitos, CVS, SVN, Git.