Este curso, ministrado desde 1996, foi revisado incorporando novidades das versões 6, 7 e 8. Introduz a programação em Java para quem já sabe programar em alguma outra linguagem (como JavaScript, PHP, Ruby, Python, C#). Além de introduzir a programação em Java, o curso apresenta boas práticas, padrões de design e ferramentas que ajudam a organizar o código e o processo de desenvolvimento. Exemplos e exercícios práticos ilustram os conceitos apresentados, e projetos maiores são desenvolvidos ao longo do curso incorporando o que foi aprendido.
                        A ementa descrita nesta página é abrangente. O programa mínimo (14 módulos + tópicos selecionados) compreende tópicos essenciais. Os tópicos opcionais são assuntos que podem ser estudados posteriormente, introduções breves a temas populares que são aprofundados em outros cursos (ex: interfaces gráficas, JavaFX, JPA, Web, XML, testes, etc.), ou tópicos avançados que podem interessar a determinados públicos específicos. Entre em contato e solicite uma proposta que se adapte às suas necessidades de treinamento.
                        
                         * A carga-horária básica (14 módulos + tópicos selecionados) é de 40 horas. A inclusão de todos os tópicos opcionais (total de 22 módulos) do programa requer 60 horas para cursos presenciais práticos e semi-intensivos. 
                         O programa apresentado abaixo inclui todos os tópicos. O programa completo pode ser usado em um curso presencial de 40 horas desde que tenha no máximo 8 horas por semana (e tempo para atividades extra-classe), ou em curso intensivo ou semi-intensivo de 60 horas (três semanas, 20 horas por semana). Cursos intensivos de 40 horas incluem apenas o programa mínimo. Cursos online (em blocos de 2 horas/aula por sessão) podem incluir todos os temas nas 40 horas (mas também requerem tempo extra-classe.)
                        
                        
                            - 1.	Introdução
 
                            - 2.	Sintaxe
 
                            - 3.	Expressões
 
                            - 4.	Arrays e Strings
 
                            - 5.	Classes
 
                            - 6.	Interfaces
 
                            - 7.	Coleções
 
                            - 8.	Composição
 
                            - 9.	Exceções
 
                            - 10.	Anotações
 
                            - 11.	Matemática, datas e calendários
 
                            - 12.	Aplicações de linha de comando
 
                            - 13.	Testes e depuração (opcional)
 
                            - 14.	Introdução a interfaces gráficas (opcional)
 
                            - 15.	Eventos (opcional)
 
                            - 16.	Concorrência e threads
 
                            - 17.	Arquivos, I/O streams e rede
 
                            - 18. Programação funcional (Java 8) (opcional)
 
                            - 19. Streams e paralelismo (Java 8) (opcional)
 
                            - 20.	Classloader, reflection e outros tópicos (opcional)
 
                            - 21.	Banco de dados (opcional)
 
                            - 22.	Manipulação de XML e JSON (opcional)
 
                        
                        
                         
                         - 1.	Introdução
 
                         
                             - Ambiente de desenvolvimento
 
                             - Como escrever, compilar e rodar um programa
 
                             - Hello World: anatomia
 
                             - Lidando com erros
 
                             - Funcionamento da máquina virtual
 
                             - Organização de um projeto
 
                             - Identificando a estrutura de programas em Java
 
                         
                         - 2.	Sintaxe
 
                         
                             - Classes e objetos
 
                             - Tipos primitivos
 
                             - Valores
 
                             - Literais
 
                             - Identificadores
 
                             - Operadores e operações
 
                             - Casts
 
                             - Variáveis
 
                             - Constantes
 
                             - Métodos
 
                             - Construtores
 
                             - Membros de classe e instância
 
                             - Pacotes
 
                             - Comentários e Javadoc
 
                         
                         - 3.	Expressões
 
                         
                             - Expressões numéricas e booleanas
 
                             - Concatenação
 
                             - Controle de fluxo
 
                             - Condicionais
 
                             - Repetição
 
                             - Operações com bytes
 
                         
                         - 4.	Arrays e Strings
 
                         
                             - Criação de strings
 
                             - Modificação de strings
 
                             - StringBuilder
 
                             - Arrays
 
                             - Unicode, strings, bytes e chars
 
                             - Pesquisa e outras operações com strings
 
                             - Expressões regulares
 
                         
                         - 5.	Classes
 
                         
                             - Criação de classes
 
                             - Criação de objeto
 
                             - Herança de classes
 
                             - java.lang.Object
 
                             - toString()
 
                             - equals() e hashCode()
 
                             - Encapsulamento
 
                             - Polimorfismo
 
                             - Sobreposição de métodos
 
                             - Sobrecarga de métodos
 
                             - Classes e métodos finais
 
                             - Clonagem (Prototype pattern)
 
                         
                         - 6.	Interfaces
 
                         
                             - Classes e métodos abstratos
 
                             - Template method pattern
 
                             - Declaração de interfaces
 
                             - Uso de interfaces
 
                             - Estratégias (Strategy pattern)
 
                             - Estados (State pattern)
 
                             - Comandos (Command pattern)
 
                             -   Métodos default (Java 8)
 
                         
                         - 7.	Coleções e utilitários
 
                         
                             - Coleções e estruturas de dados
 
                             - Arrays
 
                             - Listas
 
                             - Conjuntos
 
                             - Mapas
 
                             - Filas
 
                             - Sintaxe de genéricos
 
                             - Algoritmos
 
                             - Utilitários
 
                             - Processamento paralelo (Java 8)
 
                             - Tipos opcionais (Java 8)
 
                         
                         - 8.	Composição
 
                         
                             - Relacionamentos entre objetos
 
                             - Nível de acoplamento
 
                             - Direção
 
                             - Delegação
 
                             - Processo de construção de objetos
 
                             - Adapter pattern
 
                             - Façade pattern
 
                             - Proxy pattern
 
                             - Composite pattern
 
                             - Factory Method pattern
 
                             - Singleton pattern
 
                         
                         - 9.	Exceções
 
                         
                             - Erros e tipos de exeções
 
                             - Declaração de exceções
 
                             - Try-catch-finally
 
                             - Uso de exceções
 
                             - Criação de exceções
 
                             - Boas práticas
 
                         
                         - 10.	Anotações
 
                         
                             - Usando anotações
 
                             - Criando anotações
 
                             - Anotações contendo anotações
 
                             - Anotações duplicadas (Java 8)
 
                         
                         - 11.	Matemática, datas e calendários
 
                         
                             - Calendários
 
                             - Intervalos de tempo, data e hora (Java 8)
 
                             - Operações matemáticas
 
                             - Internacionalização
 
                             - Formatação de datas e números
 
                         
                         - 12.	Aplicações de linha de comando
 
                         
                             - Parâmetros de linha de comando
 
                             - Propriedades do sistema
 
                             - Arquivos de propriedades
 
                             - Scanner
 
                             - Leitura de dados na linha de comando
 
                             - Saída padrão e de erro
 
                             - Logging
 
                         
                         - 13.	Testes e depuração (opcional)
 
                         
                             - Asserções
 
                             - JUnit
 
                             - TDD
 
                             - Profiling
 
                             - Debugging
 
                             - Ferramentas para testes contínuos
 
                         
                         - 14.	Introdução a interfaces gráficas (opcional)
 
                         
                             - Swing
 
                             - Componentes Swing
 
                             - Layouts
 
                             - JavaFX
 
                             - Componentes JavaFX
 
                             - Gráficos
 
                         
                         - 15.	Eventos (opcional)
 
                         
                             - Notificação (Observer pattern)
 
                             - Mediação (Mediator pattern)
 
                             - Eventos
 
                             - Listeners
 
                             - Classes internas
 
                             - Eventos no Swing e JavaFX (opcional)
 
                         
                         - 16.	Concorrência e thread
 
                         
                             - Thread e Runnable
 
                             - Ciclo de vida de um thread
 
                             - Sincronização e deadlock
 
                             - Thread safety
 
                             - Executors
 
                             - Locks e outros componentes
 
                             - Framework fork/join (Java 7)
 
                         
                         - 17. Programação funcional (Java 8) (opcional)
 
                         
                             - Expressões lambda
 
                             - Interfaces funcionais
 
                             - Referências para métodos e construtores
 
                         
                         - 18. Streams e paralelismo (Java 8) (opcional)
 
                         
                             - Streams sequenciais e paralelos
 
                             - Iterações
 
                             - Mapas, limites e filtros
 
                             - Processamento paralelo
 
                         
                         - 19.	Arquivos, I/O streams e rede
 
                         
                             - java.io.File
 
                             - Decorator pattern
 
                             - Streams de I/O
 
                             - Readers e Writers
 
                             - Pipes
 
                             - Problemas de encoding
 
                             - Compressão de dados
 
                             - Sockets
 
                             - ServerSockets
 
                             - Non
 - blocking I/O
 
                             - JARs
 
                         
                         - 20.	Classloader, reflection e outros tópicos (opcional)
 
                         
                             - Classloaders
 
                             - Resources
 
                             - Preferences
 
                             - Resource bundles
 
                             - Internacionalização
 
                             - Formatação de datas e números
 
                             - Reflection
 
                             - Weak references e memory leaks
 
                             - Flyweight pattern
 
                             - Monitoração da JVM, algoritmos de garbage collection
 
                         
                         - 21.	Banco de dados (opcional)
 
                         
                             - JDBC
 
                             - Configuração e conexão
 
                             - Inserção de dados
 
                             - Recuperação de dados
 
                             - Queries compilados
 
                             - Transações
 
                             - Camada de persistência e DAO pattern
 
                             - Fundamentos de Mapeamento Objeto
 - Relacional (JPA)
 
                         
                         - 22.	XML e JSON (opcional)
 
                         
                             - Fundamentos de XML, XPath, XSLT, DTD e XML Schema
 
                             - Leitura sequencial SAX
 
                             - Modelo de objetos DOM
 
                             - Validação
 
                             - Leitura e gravação com streams (StAX)
 
                             - Transformação (TrAX)
 
                             - Fundamentos de Mapeamento Objeto
 - XML (JAXB)
 
                             - Uso de JavaScript em Java (Java 8)
 
                             - Encoding Base64 (Java 8)
 
                             - Processamento de objetos em formato JSON