STEP Computer Academy
Objetivo do curso
Ensinar estudante a linguagem de programação Java. Ensinar como escolher os mecanismos e
estruturas corretos para resolver diferentes problemas.
Carga horária máxima permitida: 45 aulas (90 horas)
Após a conclusão do curso, estudante vai:
Compreender os princípios fundamentais da criação de programas através da Java
Ser capaz de criar, compilar e depurar projetos em IDE Eclipse
Ser capaz de projetar e implementar uma variedade de algoritmos
Usar os mecanismos de condições e ciclos
Usar arranjos para armazenar dados
Ser capaz de utilizar algoritmos para classificação e pesquisa de dados
Compreender os princípios da Programação Orientada a Objeto
Ser capaz de projetar as classes de diferente complexidade
Criar uma hierarquia de classes para resolver problemas práticos
Usar mecanismos generics para a construção de classes de modelo
Ser capaz de gerar e lidar com as situações excecionais
Selecionar e usar as classes JCF
Salvar e ler os dados de arquivos
Compreender os mecanismos de multithreading da Java
No final do curso, o estudante passa na prova que consiste em parte teórica e prática. Para
admissão à prova, devem ser entregues todos os deveres de casa e tarefas práticas. A tarefa
prática deve abranger um máximo de material de diferentes secções do curso.
STEP Computer Academy
Módulo 1 (6 horas) 3 aulas
Introdução à linguagem de programação Java
1. Introdução
1. História e fases de desenvolvimento da linguagem Java
2. Análise comparativa da linguagem Java com outras linguagens de programação
3. O que é uma máquina virtual?
4. O que é bytecode?
2. Algoritmo
1. Conceito do algoritmo
2. Exemplos da utilização dos algoritmos na vida real
3. Tipos de algoritmos. Linear, de ramificação, cíclico
3. Conceito de Fluxograma
1. Designações básicas em fluxogramas
2. Bloco de início do algoritmo
3. Bloco de termo do algoritmo
4. Bloco de entrada de dados
5. Bloco de saída de dados
6. Bloco de cálculo
7. Exemplos mais simples de uso de fluxogramas
4. Ambiente de software Eclipse
1. Instalação
2. Fundamentos de trabalho com IDE Eclipse
3. Criação de projeto
4. Adicionamento de arquivo a projeto
5. Visão geral das ferramentas alternativas de desenvolvimento
6. Execução de um aplicativo simples
Módulo 2 (6 horas) 3 aulas
Variáveis, tipos de dados, operadores
1. Tipos de dados
1. Conceito de tipo de dados. Tamanho, intervalo de valores
2. Tipos de dados inteiros
3. Tipos de dados para trabalhar com números fracionários
4. Tipo de dados de caracteres
5. Dados booleanos
6. Tipo de dados enumerado
2. Variável
1. Necessidade de usar variáveis
2. Identificadores
3. Palavras-chave
4. Sintaxe para declarar variáveis
3. Constantes e literais
1. Necessidade de usar
2. Sintaxe de declaração
STEP Computer Academy
4. Operadores
1. Conceito de operadores
2. Tipos de operadores
1. Operadores aritméticos
2. Operadores lógicos
3. Operadores de ramificação
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. Forma prefixo e sufixo
7. Decremento. Forma prefixo e sufixo
8. Formas abreviadas
5. Exemplos de construção de programas utilizando fluxogramas
Módulo 3 (8 horas) 4 aulas
Operadores lógicos, operadores de ramificação, operadores bit a bit
1. Convertendo tipos de dados
1. Necessidade de usar
2. Conversão implícita de tipos
3. Conversão explícita de tipos
2. Operadores lógicos
1. Introdução às operações lógicas
2. Tabela de resultados da aplicação de operações lógicas
3. «Negação lógica». Operador !
4. «E lógico». Operador &&
5. «OU lógico». Operador ||
3. Tabela de precedência de operadores
4. Construção da escolha lógica. Operadores de ramificação
1. Operador de ramificação if
2. Operador de ramificação if – else
3. Escada if - else if
4. Designação das condições nos fluxogramas. Bloco de condição
5. Designação da unificação de ramificações nos fluxogramas
6. Exemplos de construção de programas usando operadores de ramificação na
linguagem de fluxogramas
7. Conceito do operador compósito
8. Operador ternário
9. Operador de escolha múltipla – switch
5. Operadores bit a bit
1. Sistemas de número binário, octal, hexadecimal
2. Objetivos das operações bit a bit
STEP Computer Academy
3. E de bit
4. OU de bit
5. OU EXCLUSIVO de bit
6. Negação de bit
7. Deslocamentos de bit
Módulo 4 (8 horas) 4 aulas
Laços (ciclos)
1. Laços
1. Necessidade de usar laços. Exemplos de uso
2. Laço while
3. Laço for
4. Laço do-while
5. Designação de laços nos fluxogramas. Bloco de laço
6. Operadores break e continue
7. Exemplos de construção de programas usando laços na linguagem de fluxogramas
8. Laços aninhados. Exemplos de uso
2. Trabalhando com o depurador integrado em Eclipse
1. O que é depurador. Metas e objetivos do depurador
2. Execução do programa passo a passo
3. Janelas para trabalhar com o depurador. Janelas de variáveis, variáveis locais,
memória
4. Execução de um passo
5. Definição do ponto de interrupção (breakpoint)
Módulo 5 (8 horas) 4 aulas
Strings, arranjos unidimensionais e multidimensionais
1. Trabalhando com strings
2. Arranjos
1. O que é arranjo?
2. Necessidade de usar arranjos
3. Sintaxe de declaração de arranjo unidimensional
4. Esquema de localização de arranjo na memória.
5. Indexação de elementos de arranjo
6. Exemplos de utilização de arranjos na linguagem de fluxogramas
3. Algoritmos de soma
4. Algoritmos de pesquisa
1. Linear
2. Binária
5. Algoritmos de classificação
1. Classificação de Bolha
2. Classificação por seleção
3. Classificar por inserções
4. Outros algoritmos de classificação (classificação rápidas e outros)
6. Conceito da complexidade do algoritmo
7. Arranjos multidimensionais
1. Arranjos multidimensionais. Metas e os objetivos da sua utilização
STEP Computer Academy
2. Arranjos bidimensionais como um caso particular de multidimensionais
3. Sintaxe de declaração de arranjo multidimensional
4. Exemplos de utilização de arranjos multidimensionais
Módulo 6 (8 horas) 4 aulas
Métodos (como exemplo, os métodos estáticos)
1. Métodos
1. O que é método?
2. Necessidade de usar métodos
3. Sintaxe para declarar métodos
4. Uso da palavra-chave void trabalhando com os métodos
5. Chamada de método
6. Argumentos
7. Retorno do valor do método (return)
2. Escopo
1. Conceito do escopo
2. Exemplos de uso de escopos
3. Recurção
Módulo 7 (24 horas) 12 aulas
Programação Orientada a Objetos
1. Introdução à Programação Orientada a Objetos
1. Encapsulamento
2. Polimorfismo
3. Herança
2. Conceito da classe
3. Conceito do objeto
4. Conceito de membro da classe, campo da classe, método da classe
5. Especificadores de acesso
6. Construtores do objeto
1. O que é construtor?
2. Metas e objetivos do construtor
3. Exemplos de criação de construtores
7. Palavra-chave this
8. Sobrecarga de métodos e construtores
9. Métodos de classe estáticos
1. O que é o método estático de classe?
2. Diferença entre o método de classe estático e normal
3. Exemplos de uso de métodos estáticos
10. Transferência de objetos para métodos
11. Escopo nos métodos de classes
12. Herança
1. Especificadores de acesso na herança
2. Palavra-chave super
3. Ordem de chamada de construtores
4. Redefinição de métodos
5. Despacho dinâmico de métodos
STEP Computer Academy
6. Classe abstrata
13. Conceito de interface
1. O que é interface?
2. Implementação de interface
3. Usando a implementação da interface através de links
4. Interfaces aninhadas
5. Variáveis e interfaces
14. Classes aninhadas
15. Palavra-chave final
1. Uso da final para classes
2. Uso da final para métodos
16. Coleta de lixo
1. O que é a coleta de lixo?
2. Princípio de funcionamento do coletor de lixo
3. O que é finalizador?
4. Método finalize
5. Princípios da criação de finalizador
17. Pacotes
18. Modelos (Generics)
1. O que é modelo?
2. Metas e objetivos de modelo
3. Classes de modelo
4. Métodos de modelo
5. Construtores de modelo
6. Interfaces de modelo
7. Modelos e herança
Módulo 8 (6 horas) 3 aulas
Exceções
1. O que é a situação excecional?
2. Princípios de tratamento das situações excecionais
3. Conceito de exceções checked e unchecked
1. O que é exceções checked e unchecked?
2. Diferenças e princípios da utilização
4. Palavra-chave try
5. Palavra-chave catch
6. Palavra-chave throw
7. Palavra-chave finally
8. Detalhes da utilização de situações excecionais
9. Cranking da pilha de chamadas
Módulo 9 (8 horas) 4 aulas
JavaCollectionFramework
1. Classes wrapper
2. Introdução a JCF:
1. Razões de criação
2. Noções básicas
STEP Computer Academy
3. 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
4. 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 (4 horas) 2 aulas
Trabalhando com arquivos
1. Introdução ao pacote java.io
2. Thread de entrada/saída
1. Threads de entrada/saída
2. Threads filtrados
3. Threads de canal
4. Threads bufferizados
5. Threads de arquivos
6. Threads para trabalhar com arquivos
STEP Computer Academy
7. Threads localizados na RAM
3. Serialização de objetos
1. Conceito de serialização
2. Graph da serialização
3. Uso da serialização
Módulo 11 (4 horas) 2 aulas
Multithreading
1. Multithreading em Java
1. O que é multithreading?
2. Classe Thread
3. Interface Runnable
4. Prioridades de Threads
5. Sincronização de Threads
1. Problemas com a sincronização de Threads
2. Método wait
3. Método notify
4. Método notifyall
2. Utilização de ExecutorService
3. Exemplos práticos
Módulo 12 (2 horas) 1 aula