Você está na página 1de 9

Java SE

Módulo 2 - Semi-Integral

Versão 1.0.1

Duração do Curso: 66 horas

Objetivo do curso: Treinar do básico ao avançado a linguagem de programação Java.


Ensinar você a escolher os mecanismos e os projetos certos para resolver um
problema específico na área.

No final do curso, o aluno será capaz de:

● Entender os princípios fundamentais da criação de programas usando Java

● Criar, compilar e depurar projetos no Eclipse IDE

● Projetar e implementar vários algoritmos

● Usar mecanismos de condição e loop

● Usar matrizes para armazenamento de dados

● Usar algoritmos de classificação e pesquisa de dados

● Compreender os princípios da OOP

● Projetar classes de graus variados de complexidade

● Criar hierarquias de classe para resolver problemas práticos

● Usar mecanismos genéricos para criar classes de modelos

● Gerar e manipular exceções

● Selecionar e use as classes JCF

● Salvar e ler informações de arquivos

● Entender os mecanismos multithreading Java

● Usar o sistema de controle de versão

● Usar teste de unidade

No final deste curso, o aluno precisa apresentar um Projeto Final. Para a admissão no
Projeto todos os trabalhos de casa e tarefas práticas devem estar carregados no
sistema.

Módulo 1 (2 horas):Introdução à linguagem de programação Java

1. Iniciação
1. História e estágios de desenvolvimento da linguagem Java
2. Comparação de Java com outras linguagens de programação
3. O que é uma máquina virtual?
4. O que é um bytecode?

2. IDE Eclipse
1. Instalação
2. Conceitos básicos do Eclipse IDE
3. Criação de projeto
4. Adicionando um arquivo a um projeto
5. Visão geral de ferramentas de desenvolvimento alternativas
6. Executando um Aplicativo Simples

3. JShell
1. O que é o JShell?
2. Metas e objetivos do JShell
3. Exemplos JShell

Módulo 2 (2 horas): Variáveis, tipos de dados, operadores

1. Tipos de dados
1. O conceito de tipo de dados. Tamanho, faixa de valores
2. Tipos de dados inteiros
3. Tipos de dados de número fracionário
4. Tipo de dados de caracteres
5. Tipo de dados lógicos
6. Tipo de dados enumerados
2. Variáveis
1. A necessidade de usar variáveis
2. Identificadores
3. Palavras-chave
4. Sintaxe da declaração variável
3. Constantes e literais
1. Necessidade de aplicação
2. Sintaxe da declaração
4. Operadores
1. Conceito de operador
2. Tipos de Operador
1. Operadores aritméticos
2. Operadores lógicos
3. Operadores de filiais
4. Operadores unários
5. Operadores binários
6. Operador ternário
3. Operador de atribuição
4. Operadores aritméticos
1. Operador de adição
2. Operador de subtração
3. Operador de multiplicação
4. Operador de divisão
5. Operador de módulo
6. Incremento. Sufixo e prefixo formulário
7. Decremento. Sufixo e prefixo formulário
8. Formulários abreviados
Módulo 3 (4 horas): Operadores lógicos, operadores de filial, operadores bit a bit

1. Conversão de tipo de dados


1. Importância do uso
2. Conversão implícita de tipos
3. Conversão explícita de tipos
2. Operadores lógicos
1. Familiarização com operações lógicas
2. Tabela de resultados da aplicação de operações lógicas
3. "Negação lógica."
4. "AND Lógico."
5. "OR Lógico."

3. Tabela de prioridades do operador

4. Construções de escolha lógica. Operadores de filiais


1. If operador de ramificação
2. If-else declaração de filial
3. if - else if
4. Conceito de declaração composta
5. Operador Ternário
6. Operador de seleção múltipla

5. Operadores bit a bit


1. Sistemas de cálculo binários, octais, hexadecimais
2. Metas e objetivos de operações de bits
3. Bit "E"
4. Bit “OU”
5. Bit "EXCLUSIVO OU"
6. Negação de bit
7. Mudanças de bit

Módulo 4 (4 horas):Loops

1. Loops
1. A necessidade de usar loops. Exemplos de uso
2. While
3. For
4. Do While
5. Quebrar e continuar instruções
6. Loops aninhados. Exemplos de uso
2. Trabalhando com o Depurador Integrado no Eclipse
1. O que é um depurador? Metas e objetivos do depurador
2. Iniciar o programa passo a passo
3. Janelas para trabalhar com o depurador. Janelas para variáveis, variáveis
locais, memória
4. Executando um passo
5. Definir um ponto de parada

Módulo 5 (4 horas):Strings, Arrays unidimensionais e multidimensionais.


1. Trabalhar com strings
2. Arrays
1. O que são arrays?
2. A necessidade de usar arrays
3. Sintaxe de declaração de array unidimensional
4. O layout das arrays na memória.
5. Elementos de array de indexação
3. Algoritmos de soma
4. Algoritmos de pesquisa
1. Linear
2. Binário
5. Algoritmos de classificação
1. Ordenação por flutuação (Bubble sort)
2. Classificar por seleção
3. Classificação de inserção
4. Outros algoritmos de classificação (classificação rápida, etc.)
6. O conceito de complexidade do algoritmo
7. Arrays multidimensionais
1. Arrays multidimensionais. Metas e objetivos de seu uso
2. Arrays bidimensionais, como um caso especial de multidimensional
3. Sintaxe de declaração de array multidimensional
4. Exemplos de uso de arrays multidimensionais

Módulo 6 (4 horas): Métodos (usando métodos estáticos como exemplo)

1. Métodos
1. O que é um método?
2. A necessidade de usar métodos
3. Sintaxe de declaração de método
4. Usando a palavra-chave void ao trabalhar com métodos
5. Chamada de método
6. Argumentos
7. Retornando um valor de um método (return)
2. Âmbito de aplicação
1. Conceito de escopo
2. Exemplos de uso do escopo
3. Recursão

Módulo 7 (16 horas): Programação Orientada a Objetos

1. Introdução à Programação Orientada a Objetos


1. Encapsulamento
2. Polimorfismo
3. Herança
2. Conceito de classe
3. Conceito de objeto
4. O conceito de um membro da classe, campo da classe, método da classe
5. Especificadores de acesso
6. Construtores de objetos
1. O que é um construtor?
2. Metas e objetivos do construtor
3. Exemplos de criação de construtores
7. Palavra-chave “this”
8. Métodos de sobrecarga e construtores
9. Métodos de classe estática
1. O que é um método de classe estática?
2. Diferença entre método de classe estática e regular
3. Exemplos de uso de métodos estáticos
10. Passando objetos para um método
11. Escopo nos métodos de classe
12. Herança
1. Qualificadores de Acesso à Herança
2. Palavra-chave super
3. Ordem de chamada do construtor
4. Substituições de método
5. Envio de método dinâmico
6. Classe abstrata
13. Conceito de interface
1. O que é uma interface?
2. Implementação de interface
3. Usando a implementação da interface via links
4. Interfaces aninhadas
5. Variáveis e interfaces
6. Métodos de interface estática
7. Métodos de interface privada
8. Métodos padrão
9. Interfaces Funcionais
1. O que são interfaces funcionais?
2. Metas e objetivos de interfaces funcionais
3. Interfaces funcionais padrão
1. Predicados
2. Funções
3. Fornecedores
4. Comparadores
14. Classes aninhadas
15. Palavra-chave final
1. Usando final para classes
2. Usando final para métodos
16. Coletor de lixo
1. O que é coleta de lixo?
2. O princípio do coletor de lixo
3. O que é um finalizador?
4. Método Finalize
5. Princípios de criação do finalizador
17. Pacotes
18. Modelos (genéricos)
1. O que são modelos?
2. Metas e objetivos dos modelos
3. Classes de modelos
4. Métodos de modelos
5. Construtores de modelos
6. Interfaces de modelos
7. Padrões e herança
Módulo 8 (4 horas): Exceções (Exceptions)

1. O que é uma exceção?


2. Princípios de manipulação de exceção
3. Conceito de exceções verificadas e não verificadas.

1. O que são exceções marcadas e desmarcadas?


2. Diferenças e princípios de uso
4. Palavra-chave Try
5. Palavra-chave Catch
6. Palavra-chave Throw
7. Palavra-chave Finally
8. Detalhes sobre como usar situações excepcionais
9. Call stack (Pilha de chamadas)

Módulo 9 (6 horas) :Estruturas de dados dinâmicas. JavaCollectionFramework

1. O conceito de estrutura de dados dinâmica


2. Stack
1. Conceito de Stack (pilha)
2. Princípio LIFO
3. Criação de Stack e exemplo prático
3. Filas
1. Conceito de fila
2. Tipos de fila
1. A fila mais comum. Princípio FIFO
2. Fila circular
3. Fila prioritária
4. Exemplos de criação e uso de filas
4. Outras estruturas de dados dinâmicas
1. Listas
2. Árvores binárias
3. Outras
5. Introdução ao JCF:
1. Razões para criar
2. Revisão
6. Interfaces JCF:
1. Collection
2. Comparator
3. Enumeration
4. EventListener
5. Iterator
6. List
7. ListIterator
8. Map
9. Map.Entry
10. Observer
11. RandomAccess
12. Set
13. SortedMap
14. SortedSet
7. Criando coleções usando métodos de fábrica
8. Classes JCF:
1. AbstractCollection
2. AbstractList
3. AbstractMap
4. AbstractSequentialList
5. AbstractSet
6. ArrayList
7. Arrays
8. BitSet
9. Collections
10. Dictionary
11. HashMap
12. HashSet
13. Hashtable
14. IdentityHashMap
15. LinkedHashMap
16. LinkedHashSet
17. LinkedList
18. Stack
19. TreeMap
20. TreeSet
21. Vector

Módulo 10 (2 horas): Anotações, Classes Anônimas, Expressões Lambda

1. Anotações
2. Classes anônimas
3. Expressões lambda
1. O que são expressões lambda?
2. Metas e objetivos de expressões lambda
3. Sintaxe da expressão Lambda
4. Exemplos de criação de expressões lambda

Módulo 11 (4 horas):Trabalhar com arquivos

1. Apresentando o pacote java.io


2. Fluxos de entrada / saída
1. Fluxos de entrada / saída
2. Fluxos Filtrados
3. Fluxos de canal
4. Fluxos em buffer
5. Fluxos de arquivos
6. Streams para trabalhar com arquivos
7. Fluxos alocados na RAM
3. Serialização de objetos
1. Conceito de serialização
2. Gráfico de serialização
3. Usando serialização

Módulo 12 (2 horas): Stream API


1. Stream API
2. O que é Stream API?
3. Metas e objetivos
4. Exemplos de uso

Módulo 13 (6 horas): Multithreading

1. Multithreading Java
1. O que é multithreading?
2. Classe de thread
3. Interface executável
4. Prioridades de Thread
5. Sincronização de threads
1. Problemas na sincronização de threads
2. Método wait
3. Método notify
4. Método notifyall
2. Usando ExecutorService
3. Exemplos práticos

Módulo 14 (2 horas): Sistemas de Controle de Versão

1. O que é controle de versão?


2. Por que o controle de versão é necessário
3. Visão geral do sistema de controle de versão
1. CVS
2. SVN
3. Git
4. Outros sistemas de controle de versão
4. Git
1. O que é git?
2. Metas e objetivos do Git?
3. Termos-chave
1. Repositório
2. Commit
3. Branch
4. Diretório de trabalho
4. Operações Git
1. Instalação
2. Criar Repositório
3. Adicionando um arquivo ao repositório
4. Escrevendo um commit no repositório
5. Obtendo o estado atual do diretório de trabalho
6. Exibir branchs
7. Operações de buffer cumulativo
8. git remote
9. git push
10. git pull
11. Outras operações
5. Usando serviços externos (github)
Módulo 15 (2 horas): Usando jUnit

1. O que é teste de unidade?


2. As metas e objetivos do teste de unidade
3. A necessidade de teste de unidade
4. Visão geral das ferramentas de teste de unidade
5. Ferramenta JUnit
1. O que é o jUnit?
2. História do jUnit
3. Estudos de caso usando o jUnit

Módulo 16 (2 horas): Projeto Final

Você também pode gostar