Blumenau algum curso de java

Gente, a empresa Teclógica oferece curso de Java gratuitamente.
Eu ja fiz na Teclogica e na Proway, e a qualidade do curso da Teclógica é muito superior ao da Proway.
Sei que além dessas duas, o CEDUP, o Senai e o Senac também oferecem Curso de Java em Blumenau (pagos)

Não sendo na proway ta ótimo, professores sendo didática e caríssimo.

Aproveitando o tópico ai…

Fui na proway hoje e vi o curso de formação JAVA alguém saberia me dizer se vale a pena… segue a ementa,

Ele está dividdido em dois sub-cursos:

Introdução às linguagens de programação:

Compiladores
Interpretadores
Linguagens DOS X Ling.Windows
Algoritmos
Operadores
Expressões
Varáveis
Algorítmos
Estruturas de Decisão
Estruturas de Repetição
Representação de Algorítmo
Algorítmos com Manipulação de STRINGS
Variáveis indexadas (ARRAYS)
Programação (Utilizando uma Linguagem)
Etapas de Processamento de um Programa
Funções Pré-Definidas
Subprogramação
Estrutura de um Programa
Tipos de Dados da Linguagem
Banco de Dados
Introdução ao uso de Banco de Dados
Tipo de Sistemas de Gerenciamento de Dados
Estruturação de Informações em Tabelas, Campos
Tipos de Dados.
Linguagem SQL
Introdução à linguagem de SQL
Instruções para Consulta, Alteração, Inserção e Exclusão de Dados

e o segundo Desenvolvendo em Java - Módulo I que também se divide em dois sub-módulos :

Fundamentos de Programação em Java:
A Tecnologia Java
Descrever os principais conceitos da linguagem de programação Java
Listar os três grupos de produtos de tecnologia Java
Resumir cada um dos sete estágios do ciclo de vida do produto
Análise de um Problema e Desenvolvimento da Solução
Analisar um problema usando a análise orientada a objetos
Desenvolver classes a partir das quais os objetos serão criados
Desenvolvimento e Teste de um Programa em Java
Identificar os quatro componentes de uma classe na linguagem de programação Java
Usar o método principal em uma classe de teste para executar um programa em Java na linha de comando
Compilar e executar um programa em Java
Declaração, Inicialização e Uso de Variáveis
Identificar os usos de variáveis e definir a sintaxe de uma variável
Listar os oito tipos de dados de primitivas da linguagem de programação Java
Declarar, inicializar e usar variáveis e constantes conforme as diretrizes da linguagem de programação Java e os padrões de codificação
Modificar os valores de variáveis com operadores
Usar intercalação de promoção e tipo
Criação e Uso de Objetos
Declarar, instanciar e inicializar variáveis de referência de objetos
Comparar como as variáveis de referência de objetos são armazenadas em relação às variáveis primitivas
Usar uma classe (String) incluída no Kit do Desenvolvedor de Software Java (SDK - Software Developer Kit)
Usar a especificação de biblioteca de classes J2EE (Java 2 Platform, Standard Edition) para aprender sobre outras classes dessa interface de programação de aplicativos (API - Application Programming Interface)
Uso de Operadores e Construções de Decisão
Identificar operadores relacionais e condicionais
Criar construções if e if/else
Usar a construção switch
Uso de Construções de Loop
Criar loops while
Desenvolver loops for
Criar loops do/while
Desenvolvimento e Uso de Métodos
Descrever as vantagens dos métodos e definir os métodos de trabalho (worker) e de chamada (calling)
Declarar e invocar um método
Comparar métodos estáticos e de objeto
Usar métodos sobrecarregados
Implementação de Encapsulamento e Construtores
Usar encapsulamento para proteger dados
Criar construtores para inicializar objetos
Criação e Uso de Matrizes
Codificar matrizes unidimensionais
Definir valores de matrizes com o atributo de comprimento e um loop
Passar argumentos para o método principal para uso em um programa
Criar matrizes bidimensionais
Implementação de Herança
Definir e testar o uso da herança
Explicar abstração
Identificar explicitamente as bibliotecas de classes usadas no código

e Linguagem de Programação em Java:
Introdução
Descrever os principais recursos da tecnologia Java
Escrever, compilar e executar um aplicativo em Java simples
Descrever a função da máquina virtual Java (JVM - Java Virtual Machine)
NOTA: os termos “Java Virtual Machine” e “JVM” significam uma máquina virtual para a plataforma Java.
Definir coleta de lixo
Listar as três tarefas executadas pela plataforma Java para manipular a segurança de códigos
Programação orientada a objetos
Definir os conceitos de modelagem: abstração, encapsulamento e pacotes
Discutir por que é possível reutilizar o código de aplicativo em Java
Definir classe, membro, atributo, método, construtor e pacote
Usar os modificadores de acesso público e privado conforme adequado para as diretrizes de encapsulamento
Invocar um método em um objeto específico
Usar a documentação online da interface de programação de aplicativos (API - Application Programming Interface) em Java
Identificadores, Palavras-chave e Tipos
Usar comentários em um programa de origem
Diferenciar identificadores válidos e inválidos
Reconhecer palavras-chave da tecnologia Java
Listar os oito tipos de primitivas
Definir valores literais para tipos numéricos e textuais
Definir os termos ‘variável primitiva’ e ‘variável de referência’
Declarar variáveis de tipo de classe
Construir um objeto usando new
Descrever a inicialização padrão
Descrever o significado de uma variável de referência
Indicar a conseqüência da atribuição de variáveis de tipo de classe
Expressões e Controle de Fluxo
Diferenciar variáveis de local e de instância
Descrever como inicializar variáveis de instância
Identificar e corrigir uma referência possível antes de um erro do compilador de atribuições
Reconhecer, descrever e usar operadores de software Java
Diferenciar atribuições legais e ilegais de tipos de primitivas
Identificar expressões booleanas e seus requisitos em construções de controle
Reconhecer a compatibilidade de atribuições e a conversão necessária de tipos fundamentais
Usar as construções if, switch, for, while e do e as formas rotuladas de break e continue como estruturas de controle de fluxo em um programa
Matrizes
Declarar e criar matrizes de tipos de primitivas, de classes e de matrizes
Explicar por que os elementos de uma matriz são inicializados
Explicar como inicializar os elementos de uma matriz
Determinar o número de elementos de uma matriz
Criar uma matriz multidimensional
Escrever código para copiar valores de uma matriz para outra
Projeto de Classe
Definir herança, polimorfismo, sobrecarga, substituição e invocação de método virtual
Usar os modificadores de acesso protegidos e padrão (adequado para pacotes)
Descrever os conceitos de sobrecarga de construtor e método
Descrever a operação completa de construção e de inicialização de objeto
Recursos de Classe Avançados
Criar variáveis, métodos e inicializadores estáticos
Criar classes, métodos e variáveis finais
Criar e usar tipos enumerados
Usar a instrução de importação estática
Criar classes e métodos abstratos
Criar e usar uma interface
Exceções e Declarações
Definir exceções
Usar as instruções try, catch e finally
Descrever as categorias de exceções
Identificar exceções comuns
Desenvolver programas para manipular suas próprias exceções
Usar declarações
Identificar os usos adequados e inadequados de declarações
Ativar declarações em tempo de execução
Aplicativos Baseados em Texto
Escrever um programa que use argumentos de linha de comando e propriedades do sistema
Escrever um programa que leia uma entrada padrão
Descrever entrada e saída formatadas do tipo C
Escrever um programa que possa criar, ler e gravar arquivos
Descrever a hierarquia básica de coleções no Java 2 SDK (Java 2 Software Development Kit)
Escrever um programa para iteração em uma coleção
Escrever um programa que use coleções genéricas
Criação de interfaces gráficas do usuário em Java
Descrever o pacote AWT (Abstract Windowing Toolkit) e seus componentes
Definir os termos recipientes, componentes e gerenciadores de layout e descrever como eles funcionam em conjunto para criar uma interface gráfica do usuário
Usar gerenciadores de layout
Usar os gerenciadores FlowLayout, BorderLayout e GridLayout para obter um layout dinâmico desejado
Adicionar componentes a um recipiente
Usar os recipientes Quadro (Frame) e Painel (Panel) adequadamente
Descrever como funcionam layouts complexos com recipientes aninhados
Manipulação de Eventos da Interface Gráfica do Usuário
Definir eventos e manipulação de eventos
Escrever código para manipular eventos que ocorrem na interface gráfica do usuário
Descrever o conceito de classes de adaptador, inclusive como e quando usá-las
Determinar a ação do usuário que originou o evento com base nos detalhes do objeto do evento
Identificar a interface de escuta adequada para diferentes tipos de eventos
Criar os métodos de manipulação de eventos adequados para diferentes tipos de eventos
Compreender o uso de classes internas e classes anônimas na manipulação de eventos
Aplicativos Baseados em Interface Gráfica do Usuário
Identificar os principais componentes do AWT e os eventos que acionam
Descrever como construir uma barra de menus, um menu e itens de menu em uma interface gráfica do usuário em Java
Aprender a alterar a cor e a fonte de um componente
Segmentos
Definir segmento
Criar segmentos separados em um programa em Java, controlando o código e os dados usados pelo segmento
Controlar a execução de um segmento e escrever código independente de plataforma com segmentos
Descrever as dificuldades que podem surgir quando vários segmentos compartilham dados
Usar wait e notify para comunicação entre segmentos
Usar synchronized para proteger os dados contra corrupção
Fluxos de Entrada e Saída Avançados
Descrever os principais recursos do pacote java.io
Construir fluxos de processamento e nós e usá-los adequadamente
Diferenciar leitores e gravadores de fluxos e selecioná-los adequadamente
Operação em Banco de Dados

são 120 horas, grato pela atenção