1 de 9 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM JUNHO / 2014
2 de 9 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks, 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 BuriPacks e suas ementas. BuriPack Programador Java 50 Objetivo: Neste buripack, 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) BC 54 Programação Java WEB (40h)
3 de 9 BURIPACK 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
4 de 9 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 buricurso, 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 Orientação a objetos no java.io
5 de 9 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
6 de 9 BC 53 TESTES DE UNIDADE e PADRÕES DE PROJETO EM JAVA (20H) OBJETIVOS: Neste buricurso, 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 o gráfico
7 de 9 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
8 de 9 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
9 de 9 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