PROJETO PEDAGÓGICO DE
CURSOS
BURI
TREINAMENTOS
MANAUS-AM
PACOTES DE TREINAMENTOS
BURI
TECH
A
Buri
tech desenvolveu um grupo de pacotes de treinamentos, aqui
chamados de
Buri
Packs, que permitem que nossos alunos tenham acesso
formal a grupos de tecnologias e métodos modernos, utilizados no projeto e
desenvolvimento de soluções de software.
A seguir, apresentamos nossos
Buri
Packs e suas ementas.
Buri
Pack Programador Java – 50
Objetivo:
Neste
buri
pack, preparamos três cursos de Java, formando 60h de aula.
Vamos desde o início do Java e da Orientação a Objetos e aprofundamos em
conceitos como Generics, Collections, Sockets, Threads, JUnit e Padrões de projeto.
Cursos:
BC 51 – Java para Iniciantes (20h)
BC 52 – Java Avançado (20h)
BC 53 – Testes de Unidade e Padrões de Projeto em Java (20h)
BURI
PACK – PROGRAMADOR JAVA
BC 51
– JAVA PARA INICIANTES (20H)
OBJETIVOS: Nesse buricurso, você inicia a viagem pelo mundo da
programação JAVA, aprendendo entendendo como converter aplicar os
conceitos de orientação a objetos, transformando teoria em código-fonte
robusto e de qualidade.
PRÉ-REQUISITOS:
Conhecimento de lógica de programação e
Alguma linguagem de programação como C ou C++
EMENTA:
1. Apresentando o JAVA
Uma breve história do Java Máquina Virtual
Java lento? Hotspot e JIT
Versões do Java e a confusão do Java2
JVM, JRE ou JDK? O que devo baixar?
Onde usar e os objetivos do Java Especificação versus
implementação
Como o FJ-11 está organizado Compilando o primeiro programa Executando seu primeiro programa 2. Variáveis primitivas e Controle de fluxo
Declarando e usando variáveis Tipos primitivos e valores Exercícios: Variáveis e tipos
primitivos
Discussão em aula: convenções de código e código legível
Casting e promoção O if e o else
O While O For
Controlando loops Escopo das variáveis Um bloco dentro do outro Para saber mais
Exercícios: Fixação de sintaxe Desafios: Fibonacci
3. Orientação a objetos básica Criando um tipo
Uma classe em Java Criando e usando um objeto Métodos
Métodos com retorno Objetos são acessados por
referências
4. Trabalhando com vetores Definções
Arrays de referências Percorrendo uma array
Percorrendo uma array no Java 5.0 5. Modificadores de acesso e atributos de
classe Controlando o acesso Encapsulamento Getters e Setters Construtores A necessidade de um construtor Atributos de classe
6. Herança, reescrita e polimorfismo Repetindo código?
Reescrita de método
Invocando o método reescrito Polimorfismo
7. Classes Abstratas Fundamentos de abstração
Métodos abstratos
Testando
8. Interfaces
Problema
Dificuldade no aprendizado de interfaces
Implementação
Herança
Relações abstratas
BC 52
– JAVA AVANÇADO (20H)
OBJETIVOS: Neste
buri
curso, você aprofunda seus conhecimentos na API
Java SE, aprendendo a implementar componentes avançados, como:
Collections, Maps, Generics, Exceptions, Sockets e Threads
PRÉ-REQUISITOS:
BC 51 – Java para iniciantes; ou
Conhecimentos em POO em Java, Herança, Encapsulamento,
Polimorfismo, Classes Abstratas e Interfaces.
EMENTA:
1. Exceções e controle de erros Exceções de Runtime mais
comuns
Outro tipo de exceção: Checked Exceptions
Um pouco da grande família Throwable
Mais de um erro Lançando exceções
O que colocar dentro do try? Criando seu próprio tipo de
exceção Usando finally
2. Pacotes - Organizando suas classes e bibliotecas
Organização Diretórios Import
Acesso aos atributos, construtores e métodos
Usando o Eclipse com pacotes
3. Ferramentas: jar e javadoc
Arquivos, bibliotecas e versões Gerando o JAR pelo Eclipse Javadoc
Gerando o Javadoc 4. O pacote java.lang
Pacote java.lang
Um pouco sobre a classe System java.lang.Object
Casting de referências Métodos do java.lang.Object:
equals e toString
Integer e classes wrappers (box) Autoboxing no Java 5.0
java.lang.String java.lang.Math 5. Pacote java.io
Conhecendo uma API
InputStream, InputStreamReader e BufferedReader Lendo Strings do teclado
A analogia para a escrita: OutputStream Uma maneira mais fácil: Scanner e PrintStream 6. Collections framework
Arrays são trabalhosos, utilizar estrutura de dados Listas: java.util.List
Listas no Java 5 e Java 7 com Generics A importância das interfaces nas coleções Ordenação: Collections.sort
Exercícios: Ordenação Conjunto: java.util.Set
Principais interfaces: java.util.Collection Percorrendo coleções no Java 5
Para saber mais: Iterando sobre coleções com java.util.Iterator Mapas - java.util.Map
Properties
Equals e HashCode
7. Programação Concorrente e Threads Threads
Escalonador e trocas de contexto Garbage Collector Classes Anônimas 8. Sockets Protocolo Porta Socket Servidor Cliente
BC 53
– TESTES DE UNIDADE e PADRÕES DE PROJETO EM JAVA (20H)
OBJETIVOS: Neste
buri
curso, desenvolvemos uma aplicação que consome
um Web Serevice, exibe gráficos na Web e utiliza testes automatizados, para
discutirmos boas práticas de programação, padrões de projeto e TDD,
utilizando recursos avançados do JSE, como reflection.
PRÉ-REQUISITOS:
BC 51 – Java para iniciantes; e
BC 52 – Java Avançado; ou
Conhecimentos em Programação Orientada a Objetos e Java SE
Básico.
EMENTA:
1. Datas e objetos imutáveis A bolsa de valores Candlesticks: O Japão e o arroz O projeto Tail O projeto Argentum: modelando o sistema Trabalhando com dinheiro Palavra chave final Imutabilidade de objetos Trabalhando com datas: Date e
Calendar
2. Testes Automatizados
Nosso código está funcionando corretamente?
Definindo melhor o sistema e descobrindo mais bugs Testes de Unidade JUnit
Anotações
JUnit4, convenções e anotação 3. Trabalhando com XML
Os dados de modelos O formato XML
Lendo XML com Java de maneira difícil, o SAX XStream
Test Driven Design - TDD 4. Acessando um Web Service
Integração entre sistemas
Consumindo dados de um Web Service
Criando o cliente Java
Exercícios: Nosso cliente Web Service
Discussão em aula: Como testar o cliente do web service? 5. Introdução ao JSF e Primefaces
Desenvolvimento desktop ou web?
Características do JSF A primeira página com JSF Interagindo com o modelo:
Managed Beans
Recebendo informações do usuário
A lista de negociações Formatação de Data com JSF Exercícios: p:dataTable para
listar as Negociações do Web Service
Para saber mais: paginação e ordenação
Exercício opcional: adicione paginação e ordenação à tabela
6. Gráficos interativos com Primefaces
Por que usar gráficos? Gráficos com o Primefaces Propriedades para personalizar
Definição do modelo do gráfico
Isolando a API do Primefaces: baixo acoplamento
Para saber mais: Design Patterns Factory Method e Builder Exercícios: Gráficos com Primefaces
7. Aplicando Padrões de projeto O Design Pattern Strategy O Design Pattern Decorator 8. A API de Reflection
Escolhendo qual gráfico plotar
Exercícios: permitindo que o usuário escolha o gráfico Montando os indicadores dinamicamente
Introdução a Reflection Por que reflection?
Constructor, Field e Method Melhorando nosso ArgentumBean
Exercícios: indicadores em tempo de execução Melhorando a orientação a objetos
BC 54
– PROGRAMAÇÃO JAVA WEB (40h)
OBJETIVOS:
Apresentar aos nossos alunos os conceitos iniciais a cerca do desenvolvimento
de aplicações web, explicando sua arquitetura, componentes e aplicação dos
principais padrões de projeto.
PRÉ-REQUISITOS:
BC 51 – JAVA PARA INICIANTES; e
BC 52 – JAVA AVANÇADO; ou
Bons conhecimentos da linguagem Java, orientação a objetos, APIs
java.util e java.io.
EMENTA:
1. Enfrentando o Java na Web
O grande mercado do Java na Web Livros e sites interessantes
2. O que é Java EE?
Como o Java EE pode te ajudar a enfrentar problemas
Algumas especificações do Java EE
Servidor de Aplicação Servlet Container
Exercícios: Preparando o Tomcat Preparando o Tomcat em casa Outra opção: Jetty
Integrando o Tomcat no Eclipse O plugin WTP
Exercícios: Configurando o Tomcat no Eclipse
3. Novo projeto Web usando Eclipse
Novo projeto
Exercícios: Novo projeto web Análise do resultado final
Criando nossas páginas e HTML Básico
Exercícios: primeira página Para saber mais: configurando o
Tomcat sem o plugin Algumas tags HTML
4. Tags customizadas com Tagfiles
Porque eu precisaria de outras tags além da JSTL?
Calendários com jQuery
Criando minhas próprias tags com Tagfiles
Exercícios: criando nossa própria tag para calendário
Para saber mais: Outras taglibs no mercado
Desafio: Colocando displaytag no projeto
5. Recursos importantes: Filtros
Reduzindo o acoplamento com Filtros
Exercícios opcionais: Filtro para medir o tempo de execução Problemas na criação das
conexões
Tentando outras estratégias Reduzindo o acoplamento com
Filtros
Exercícios: Filtros
6. Spring MVC
Porque precisamos de frameworks MVC?
Um pouco de história Configurando o Spring MVC Criando as lógicas
A lógica Olá Mundo!
Para saber mais: Configurando o Spring MVC em casa
Exercícios: Configurando o Spring MVC e testando a configuração
Adicionando tarefas e passando parâmetros
Exercícios: Criando tarefas
Incluindo validação no cadastro de tarefas
Validação com Bean Validation Exercícios: Validando tarefas Listando as tarefas e
disponibilizando objetos para a view
Exercícios: Listando tarefas Redirecionando a requisição para
outra ação
Exercícios: Removendo e alterando tarefas
Desafio - Calendário
Melhorando a usabilidade da nossa aplicação
Utilizando AJAX para marcar tarefas como finalizadas Configurar o Spring MVC para
acessar arquivos comuns Exercícios: Ajax
Para saber mais: Alterando valor da data com AJAX
Exercícios Opcionais: Melhorando nosso AJAX
7. Spring MVC: Autenticação e autorização
Autenticando usuários: como funciona?
Cookies Sessão
JAAS – Java Authentication and Authorization Service
Configurando o tempo limite Registrando o usuário logado na
sessão
Exercício: Fazendo o login na aplicação
Bloqueando acessos de usuários não logados com Interceptadores Exercícios: Interceptando as
requisições
Exercícios opcionais: Logout
8. Spring IoC e deploy da aplicação
Menos acoplamento com inversão de controle e injeção de
dependências
Container de Injeção de dependências
Container Spring IoC Outras formas de injeção Exercícios: Inversão de controle
com o Spring Container
Aprimorando o visual através de CSS
Exercícios opcionais: Aplicando CSS nas páginas
Deploy do projeto em outros ambientes
Exercícios: Deploy com war Discussão em aula: lidando com
diferentes nomes de contexto
9. Uma introdução prática ao JPA com Hibernate
Mapeamento Objeto Relacional Java Persistence API e
Frameworks ORM
Bibliotecas do Hibernate e JPA Mapeando uma classe Tarefa para
nosso Banco de Dados Configurando o JPA com as
propriedades do banco Usando o JPA
Exercícios: Configurando o JPA e gerando o schema do banco Trabalhando com os objetos: o
EntityManager
Exercícios: Gravando e Carregando objetos
Removendo e atualizando objeto Buscando com uma cláusula where Exercícios: Buscando com JPQL Criteria