Kees » Preparatório para Certificação OCJA

KEES TRAINING – PROGRAMAÇÃO EM JAVA

A linguagem de programação Java representa o estado da arte em Programação Orientada a Objetos (POO). Com uma aceitação de mercado crescente, Java está atingindo grandes fatias de mercados variados como o de Desktop Applications, Web Applications, Web Services, Mobile Applications, entre tantas outras.

O curso preparatório para Certificação OCJA da KEES Informática proporciona ao aluno a oportunidade de se tornar um profissional Certificado pela Sun Microsystems e aumentar sua empregabilidade num mercado tão promissor em  expansão no Brasil.

METODOLOGIA DE ENSINO:

Aplicação em Sala dos conteúdos propostos em formato de slides com aulas expositivas. Exercícios Práticos em programação são aplicados na segunda parte de cada aula visando a fixação dos conceitos ensinados.

Para uso da linguagem Java será usado o pacote J2SE 1.6.x da Sun Microsystems e IDE de programação em Java NetBeans 6.0.

O curso será dividido em 2 módulos, sendo estes preparatórios para a Certificação Sun.

CERTIFICAÇÃO OCJA (Oracle Certified Associate for the Java Plataform)

Essa modalidade de certificação provê uma iniciação ideal ao desenvolvimento de software ou à carreira de gestão de projetos de software que se utilizem de tecnologia Java. Essa credencial mundial valida conhecimentos básicos de Orientação a Objetos, representação UML (Unified Modeling Language), representação de conceitos de Orientação a Objetos, a linguagem de programação Java e conhecimentos gerais das plataformas e tecnologias Java.

O perfil desejado dos candidatos a este exame incluem: programadores novatos em linguagem Java, estudantes que querem tornar-se programadores Java, gerentes de projeto ou de software que trabalham com tecnologia Java na Indústria de Desenvolvimento de Software.

DURAÇÃO

A duração do curso é de 52 horas por módulo, sendo a carga horária de 4 horas diárias, com duas horas aulas expositivas e duas horas com exercícios práticos.

OBJETIVO

Introduzir o programador no universo da Programação Orientada a Objetos (POO) utilizando-se das tecnologias e facilidades oferecidas pela linguagem Java.

Estes 2 primeiros módulos de curso não visam o emprego dos objetos sofisticados da API Java, mas, permite a um programador que já possua conhecimentos em linguagens estruturadas e procedurais (tais como C, Pascal, Visual Basic e Delphi) o entendimento das técnicas de POO que são bem distintas do ponto de vista estrutural e conceitual das técnicas empregadas em linguagens não Orientadas a Objeto. Além disso, habilita o aluno a prestar o Exame de Certificação da Sun Microsystems para SCJA.


MÓDULO ÚNICO

PLANO DE AULA

I. Conceitos Fundamentais em Orientação a Objetos

1.1 Descrever, comparar e contrastar os tipos primitivos de dados (integer, floating point, boolean and character), tipos enumeration e objetos.

1.2 Descrever, comparar e contrastar classes concretas, classes abstratas e interfaces e como as instâncias se aplicam à estas.

1.3 Descrever, comparar e contrastar as composições de classe e associações (incluindo multiplicidade: (um-para-um, um-para-muitos e muitos-para-muitos) e navegação de associação.

1.4 Descrever ocultação da informação (usando atributos e métodos privados (private)), encapsulamento e exposição das funcionalidades de objetos através do uso de métodos públicos. Descrever as convenções para JavaBeans através dos métodos setters e getters.

1.5 Descrever o Polimorfismo tal como se aplica a classes e interfaces e aplicá-lo ao princípio “Programa para uma interface” (program to an interface).

II. Representação UML de Conceitos de Orientação a Objetos

2.1 Reconhecer a representação UML de classes (incluindo atributos e operações, classes abstratas e interfaces), a representação UML de instâncias (implementação e interface), e a representação UML de associações de classes, composições, indicadores de multiplicidade de associações e indicadores de navegação de associação.

III. Implementação em Java dos Conceitos de Orientação a Objetos

3.1 Exemplos de código com operador “new”.

3.2 Desenvolvimento de códigos que usem tipos primitivos, tipos enumeração (enumeration types) e referência a objetos, e reconhecer valores literais destes tipos.

3.3 Desenvolvimento de código que declara classes concretas, classes abstratas, e interfaces, códigos que suportam implementação e instância de interface, códigos que declaram atributos de instância e métodos, e códigos que usam os modificadores de acesso Java: private e public.

3.4 Desenvolvimento de códigos que implementam associações de classe, códigos que implementam multiplicidade usando arrays, e reconhecer códigos que implementam composições opostas à associações simples, e códigos que implementam corretamente a navegação de associação.

IV. Design de Algoritmos e Implementação

4.1 Descrever, comparar e contrastar os seguintes tipos fundamentais de declarações: atribuição, condicional, e iteração, e dado a descrição de um algoritmo, selecionar os tipos apropriados de declaração para o Design de Algoritmos.

4.2 Dado um algoritmo como pseudo-código, determinar o escopo correto de uma variável usada num algoritmo, e implementar código para declarar variáveis em qualquer um dos seguintes escopos: variável de instância, parâmetro de método e variável local.

4.3 Dado um algoritmo em pseudo-código, desenvolver código de método que implemente o algoritmo usando declarações condicionais (if e switch), declaração de iterações (for, for-each, while e do-while), declarações de atribuição e declarações break e continue para controlar o fluxo com switch e declarações de iteração.

4.4 Dado um algoritmo com múltiplas entradas e saídas, desenvolver código de método que implemente algoritmos usando parâmetros de método, um tipo de retorno, uma declaração usando return, e reconhecer os efeitos quando referências de objeto e tipos primitivos são passados para métodos que os modificam.

4.5 Dado um algoritmo em pseudo-código, desenvolver código que aplica corretamente os operadores apropriados incluindo operadores de atribuição (limitados a: =, +=, -=), operadores aritméticos (limitados a: +, -, *, /, %, ++, –), operadores relacionais (limitados a: <, <=, >, >=, ==, !=), operadores lógicos (limitados a: !, &&, ||) para produzir o resultado desejado. Além disso, escrever código que determina a igualdade entre dois objetos ou dois primitivos.

4.6 Desenvolver código que use o operadores de concatenação (+), e os seguintes métodos da classe String: charAt(), indexOf(), trim(), substring(), replace(), length(), startsWith() e endsWith().

I. Fundamentos do Desenvolvimento em Java

1.1 Descrever o propósito dos pacotes em Linguagem Java e reconhecer o uso apropriado das declarações import e package.

1.2 Demonstrar o uso apropriado do comando javac (incluindo as opções de comando de linha: -d e -classpath) e demonstrar o uso apropriado do comando java (incluindo as opções de comando de linha: -classpath, -D e -version).

1.3 Descrever o propósito e os tipos de classes para os seguintes pacotes: java.awt, javax.swing, java.io, java.net e java.util.

II. Plataformas Java e Tecnologias de Integração

2.1 Distinguir as características básicas das três plataformas Java: J2SE, J2ME e J2EE e dado um objetivo arquitetural de alto nível, selecionar a plataforma ou plataformas apropriadas para este objetivo.

2.2 Descrever em alto nível os benefícios e características básicas de RMI.

2.3 Descrever em alto nível os benefícios e características básicas das tecnologias JDBC, SQL e RDBMS.

2.4 Descrever em alto nível os benefícios e características básicas das tecnologias JNDI, messaging e JMS.

III. Tecnologias Cliente (Client Technologies)

3.1 Descrever em alto nível as características básicas, benefícios e desvantagens de criação de thin-clients usando HTML e JavaScript e os lançamentos de distribuições (deployments) relacionadas e soluções.

3.2 Descrever em alto nível as características básicas, benefícios, desvantagens, e lançamentos de distribuições (deployments) relacionadas à criação de clients usando J2ME midlets.

3.3 Descrever em alto nível as características básicas, benefícios, desvantagens, e lançamentos de distribuições (deployments) relacionadas à criação de fat-clients usando Applets.

3.4 Descrever em alto nível as características básicas, benefícios, desvantagens, e lançamentos de distribuições (deployments) relacionadas à criação de fat-clients usando Swing.

IV. Tecnologias para Servidores (Server Technologies)

4.1 Descrever em alto nível as características básicas de: EJB, servlets, JSP, JMS, JNDI, SMTP, JAX-RPC, Web Services (incluindo SOAP, UDDI, WSDL e XML) e JavaMail.

4.2 Descrever em alto nível as características básicas do suporte servlet e JSP para HTML thin-clients.

4.3 Descrever em alto nível as características básicas de: sessões EJB, entity e message-driven beans.

4.4 Descrever em alto nível os benefícios fundamentais e desvantagens do uso da tecnologia J2EE server-side, e descrever e comparar as características básicas do web-tier, business-tier e EIS-tier.