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.