Falha em bilhete único em SP

Posted on by Elzo Brito

Hoje resolvi postar uma coisa diferente, foi descoberto que o bilhete único de SP contém uma falha de segurança meio grotesca, segue abaixo o texto postado no http://pastie.org/3375325 divirtam-se com com cautela =]

—————————————————————————————————

Engenharia reversa Bilhete Único (Full Disclosure)

Decidi fazer full disclosure, por não achar que o problema não é uma vulnerabilidade e sim uma escolha deliberada de usar chaves padrão para proteção do bilhete unico.

O Cartão é o MIFARE CLASSIC 4K. Os dados são organizados em setores, cada setor com 4 blocos de 16 bytes.
O primeiro bloco eh read-only e tem o UID do cartão + dados do fabricante do cartao
O ultimo bloco de cada sector sempre tem as chaves a e b e o direito de acesso. O ultimo sector estar organizado mais ou menos assim (olhar um hexdump qualquer):

chave A            direitos   chave b
—————– ———-  —————-
a0 a1 a2 a3 a4 a5 08 77 8f 69 b0 b1 b2 b3 b4 b5

exemplo de como os dados são organizados no cartão

0000000 9a 49 37 b1 50 08 04 00 62 63 64 65 66 67 68 69 bloco 0, sector 0: uid do cartão 9a4937b1, dados do fabricante 0804006263646566676869
0000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bloco 1, sector 0
0000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..
0000030 ff ff ff ff ff ff ff 07 80 69 ff ff ff ff ff ff bloco 3, sector 0: chave a, direitos de acesso e chave b
0000040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 bloco 0, sector 1
0000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..
0000060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ..
0000070 a0 a1 a2 a3 a4 a5 08 77 8f 69 b0 b1 b2 b3 b4 b5 bloco 3, sector 1: chave a, direitos de acesso e chave b

ferramentas usadas para ler e escrever dados no cartão:

* Um leitor de cartão (para mim as melhores são baseadas no chip PN532) um exemplo: http://www.adafruit.com/products/364
* mfoc (nfc-utils)
* nfc-mfclassic (nfc-utils)
* hexedit e vimdiff

O grande problema é que foram utilizada as chaves padrões e por isso em menos de 30 minutos o MFOC conseguiu recuperar todas as chaves para criptografar todos os setores. Por conta disso é possivel, se recarregar o cartão, fazer um backup dos dados, usar todo o cartão e gravar novamente o backup salvo no cartão. grau de dificuldade: 0.

testes que foram realizados:

p.s: vale salientar que nenhuma vez o cartão foi utilizado depois de carregar o backup no cartão. Só validamos o cartão nos pontos de verificação de saldo.

* Carregar novamente backup no mesmo cartão
* compramos o cartão novo, fizemos um backup, usamos o cartão até o fim, carregamos o backup novamente no cartão e o saldo estava lá novamente.

* Clonar o cartão em outro cartão virgem
* o backup pode ser copiado em outro cartão. É preciso no backup somente alterar o ID do cartão para o ID do cartão virgem, uma vez que essa área do cartão é read-only.

Porque até hoje eu não liberei estas informações?

Pois para mim, esse erro era esperado uma vez que, não é nenhuma surpresa, as empresas brasileiras, não ligarem a mínima para segurança. Outro ponto é que foi publicado na mídia que alguém "descobriu" isso, mas não foi revelado como. Para mim mais importante do que o disclosure conciente é o full disclosure, principalmente nos sistemas que afetam o dia-dia dos cidadãos. Outro ponto importante é que pessoas de outros estados e cidades, possam testar os próprios sistemas.

Tentei por meses, sem sucesso, entender o layout dos dados, ou como os dados são organizados no cartão. Infelizmente sem sucesso tb. O melhor teste aqui é, comprar um cartão carregado, gerar um dump, usar o cartão, gerar um novo dump e comparar quais campos mudaram.  Algumas coisas que descobri:

Sector 0, Sector 1, Sector 2 não há mudança
Sector 3 e Sector 4 são repetidos
 
o sector 3, block 3 guarda ou valor ou timestamp. isso porque ao usar 2 x ônibus no mesmo dia e sem cobrar de novo (dentro de período de 1 hora) os primeiros 7 bytes não mudaram. somente o ultimo (que pode ser a casa dos minutos em um timestamp ou um CRC para validar campo)

solução sugerida:

bom primeiro ponto sem duvida nenhuma é alterar as chaves default de criptografia dos cartões. Muito interessante é como fazer isso, sem impactar os clientes.

Outro ponto que evita a clonagem de cartão é manter uma base de cartão autorizados e fazer essa validação na hora em que o usuário tentar usar o cartão. O desafio aqui é como diariamente (via batch) ou online (duvido que os ônibus estão conectados a alguma rede, acredito que toda a operação é off-line).

de qualquer forma, pesquisadores Brasileiros, mãos a obra, não é possível que um sistema tão falho, ficou tanto tempo no ar. Precisamos olhar os sistemas ao nosso redor e procurarmos entender como eles funcionam e como pode ser burlados e melhorados. (hint: Urna Eletrônica)

Abraços

Alguém

Junior Dos Santos Highlights

Posted on by Elzo Brito

JOGO EDUCATIVO PARA AUXILIAR COMO FERRAMENTA EAD

Posted on by Elzo Brito

 

Elzo Brito dos Santos Filho

  • Palavras-chave
  • EAD, jogos, softwares

Introdução

A inclusão digital tornou-se praticamente uma obrigação no mundo globalizado em que vivemos, seja para trabalhar ou para o lazer, o computador virou uma ferramenta indispensável, pensando nisso a prefeitura da cidade de São Paulo tenta incluir digitalmente a população que ainda não teve contato com o computador por meio do programa Telecentros, porém a falta de ferramentas faz com que este trabalho acabe sendo complicado. O intuito deste trabalho é de auxiliar no processo de inclusão digital dos usuários dos Telecentros da cidade de São Paulo utilizando o sofware ABCDigital.

Inclusão Digital

O Plano de Inclusão Digital

O Plano de Inclusão Digital da Prefeitura de São Paulo tem como principais objetivos consolidar-se como a porta de entrada das comunidades à rede mundial de computadores e aos serviços e informações prestados aos cidadãos por Prefeituras, Estados e União, além de, incluir as pessoas das regiões de maior exclusão, na luta pelos seus direitos e no exercício de seus saberes coletivos, na busca de suas necessidades e no desenvolvimento de habilidades e competências necessárias ao cotidiano em constante transformação.
Quando foi criada em janeiro de 2001 a Coordenadoria do Portal e Inclusão Digital encontrou as áreas de exclusão social e econômica da cidade fora da rede, com milhões de excluídos digitais.

Cidade Tiradentes: o projeto piloto

A equipe da Coordenadoria do Portal e Inclusão Digital chegou à Cidade Tiradentes e reuniu o governo local (representação do governo municipal e organizações da sociedade civil que atuam na região) para explicar o projeto Telecentros.
Na região havia um conjunto habitacional bastante deteriorado, com sua área comercial quase totalmente abandonada. Sem verba orçamentária, juntando parceiros e vontade política, o telecentro foi implantado em um desses prédios, que depois teve sua área ampliada, sendo inaugurado no dia 18 de junho de 2001.
Construindo uma experiência de sucesso na Cidade Tiradentes, o Plano de Inclusão Digital foi aprimorado. Escolhendo os locais com base no Índice de Desenvolvimento Humano (IDH), foram implantadas novas unidades nas áreas de maior exclusão social da cidade.
O projeto foi iniciado ocupando espaços públicos que pertenciam à municipalidade, prédios que foram reformados, revitalizados e usados para esta nova atividade e depois foram firmados convênios com entidades de sociedade civil para que estes espaços abrigassem telecentros.

Como funciona

Os Telecentros são instalados em áreas de exclusão social da cidade, notadamente na periferia, de acordo com o Índice de Desenvolvimento Humano (IDH) do município (segundo dados do Mapa da Exclusão/Inclusão Social, elaborado em 2000 pela PUC/SP, Instituto Pólis e Inpe). Atualmente, são mais de 100 unidades em funcionamento que aproximadamente 500 mil pessoas monitoradas por orientadores especialmente treinados para cumprir as definições do Plano de Inclusão Digital.
São cerca de 20 computadores em cada Telecentro que funcionam com 75% deles dedicados à formação da população, ministrando cursos e oficinas de informática e os outros 25% reservados para o uso livre dos cidadãos.

Jogos

Jogar é uma das manifestações mais antigas da humanidade, se não a mais antiga, o ser humano joga por diversos motivos seja por celebração, por passatempo, por aproveitamento de laços comunitários por razões pedagógicas, por competir, o pesquisador alemão Schiller¹ afirmou que o ser humano quando brinca é plenamente humano. O jogo tem um papel importantíssimo no desenvolvimento de uma criança, a criança pode aprender de várias formas usando jogos e é jogando que o indivíduo constrói valores e explora suas capacidades mentais e corporais interagindo com outros jogadores. A utilização de jogos eletrônicos pode ser útil para acrescentar no desenvolvimento dessas crianças.

Com a popularização dos computadores nas escolas, é cada vez maior a necessidade de softwares educacionais nas instituições de ensino, aumentando assim a demanda e a necessidade de renovar o estoque.

Este projeto tem como objetivo incentivar o desenvolvimento de jogos educativos para serem usados como instrumentos no processo de ensino- aprendizagem na educação a distancia.

jogos como instrumento de aprendizagem

Segundo John Neumann, criador de Vila e Santander (2003), o jogo é definido como qualquer “interação entre jogadores dentro de um conjunto definido de regras”, Sendo assim, o jogo pode reunir duas ou mais pessoas em um só ambiente interagindo com o computador, um vídeo game, ou qualquer outro objeto.

Um jogo pode ter um caráter competitivo ou cooperativo, um jogo competitivo tem como foco a realização de objetivos individuais, por uma pessoa ou um grupo (competição entre grupos), nos jogos cooperativos o objetivo do grupo sobre-sai aos interesses individuais, sendo assim os jogadores trabalham para um objetivo coletivo.

Independente do tipo de jogo, ele pode ser usado de diferentes formas conforme destaca Botelho (2004):

”[...] para treinamento de habilidade operacionais, conscientização e esforço motivacional, desenvolvimento de insight e percepção, treinamento em comunicação e cooperação, integração e aplicação prática de conceitos aprendidos e até mesmo avaliação da aprendizagem.”

Jogos podem se tornar ferramentas muito eficientes na aprendizagem, pois ao mesmo tempo que eles divertem eles motivam, facilitando assim a aprendizagem de conceitos, Um jogo também pode desenvolver capacidades cognitivas do cérebro, facilitando assim o desenvolvimento habilidades como por exemplo a obervação, identificação, comparação, classificação, além de desenvolver a criatividade.

Antunes (2000) recomenda que: “Em síntese, jamais pense em usar jogos pedagógicos sem um rigoroso e cuidadoso planejamento, marcado por etapas muito nítidas e que efetivamente acompanhem o progresso dos alunos”, ainda segundo Antunes: “Em geral, o elemento que separa um jogo pedagógico de um outro de caráter apenas lúdico é que os jogos ou brinquedos pedagógicos são desenvolvidos com a intenção explicita de provocar uma aprendizagem significativa, estimular a construção de um novo conhecimento e principalmente despertar o desenvolvimento de habilidades.”

Claro que o prazer e o aspecto lúdico devem estar presentes em um jogo educativo, pois se o jogo não tiver um caráter lúdico, não conseguira agradar e ao invés de ajudar pode atrapalhar o processo de aprendizagem.

Jogos Educativos

Um jogo educativo tem as mesmas características e propriedades de um jogo comum, com um intuito de divertir, mas também educar o jogador, ao se pensar no desenvolvimento de um jogo educativo deve-se levar em conta o seu público alvo, qual a faixa etária que se pretende atingir com o jogo, este capitulo demonstra de uma maneira prática como desenvolver um jogo educativo voltado para crianças de 5 a 10 anos com necessidades especiais ou não e como explorar o as capacidades de noção de espaço, de tempo e de velocidade.

Metodologia

O ABCDigital foi desenvolvido utilizando a linguagem de programação Java em sua versão 5 com a OpenJDK que é um conjunto de bibliotecas livres para a programação em Java, por ser uma linguagem portável e multiplataforma, o Java cria um documento chamado bytecode quando compila o código-fonte do programa para que Segundo Kathy e Bert no livro use a cabeça Java “qualquer dispositivo capaz de executar Java consiga Interpretar/Converter esse arquivo em algo que possa processar, assim o bytecode compilado é independente de plataforma”. O desenvolvimento se deu levando em consideração as maiores dificuldades dos alunos, a movimentação do cursor, a quantidade de cliques com o mouse para efetuar uma ação e a localização das letras no teclado.

Primeiros passos

O primeiro passo foi desenvolver uma interface simples e bem intuitiva como ilustra a Figura 1, para que os alunos não tivessem problemas de localização na tela do computador, então foi criada levando como base a figura 1 a interface básica do jogo

Figura 2.

clip_image002

Figura 1 – Ilustração de como seria a interface do jogo

clip_image004

Figura 2 – Interface do jogo baseada na ilustração da Figura 1

O jogo foi criado utilizando como base uma Matriz de blocos de 5×6, com isso foi pensado diversas atividades, a primeira a de movimentação do cursor, pois é a que os alunos que nunca usaram um computador tem mais dificuldade.

Mouse

O mouse é, provavelmente a peça de hardware do PC que mais utilizamos. Seu inventor, Douglas Engelbart, apresentou-o pela primeira vez em 1968 como "XY Position Indicator For A Display System". Era uma caixinha de madeira e tinha apenas um botão. O invento de Engelbart ficou sem muita utilização devido a falta de necessidade de tal dispositivo. Afinal a maioria dos computadores utilizavam apenas textos sem cursores na tela.

O ABCDigital foi desenvolvido para auxiliar a aprendizagem do mouse e do teclado primeiramente foi desenvolvido o modulo de movimentação do mouse.

Movimentação do cursor

No modulo de movimentação do cursor tem como objetivo auxiliar a aprendizagem de movimentação do mouse, pois normalmente quem está começando a utilizar o computador tem dificuldades na movimentação do cursor na tela. Para isso foram desenvolvidos 9 fases, no qual o aluno tem que realizar diversos movimentos para passar de fase em fase. A Figura 3 ilustra o modulo de movimentação.

clip_image006

Figura 3 – Fase de movimentação do cursor.

Na fase de movimentação, o aluno tem que arrastar o cursor do mouse até o quadrado vermelho ao fazer isso o quadrado vermelho muda de posição fazendo o com que o aluno sempre tenha que arrastar o mouse para um local determinado. Em cada fase existe uma dificuldade diferente, assim o aluno vai evoluindo, caso ao terminar o exercício o aluno ainda não tenha alcançado o resultado desejado pode-se refazer a lição.

Cliques no mouse

Muitas vezes que precisamos abrir uma pasta ou mesmo executar uma ação precisamos dar uma sequencia de cliques com o mouse, com isso foi desenvolvido um modulo para cada quantidade de cliques como ilustra a figura 4. Os módulos de cliques utilizam as mesmas fases usadas no modulo de movimentação do cursor, porém ao invés de apenas arrastar o cursos para o quadrado vermelho o aluno ainda precisa clicar determinadas vezes com o mouse para que o quadrado mude de lugar, fazendo assim que ele seja forçado a aprender a clicar com o mouse para passar de fase.

clip_image008Figura 4 – Ilustração da quantidade de cliques

Segundo Passo

O segundo passo foi a criação de um modulo que fosse capaz de auxiliar o aluno a treinar o teclado, para tanto foi utilizado duas abordagens; A localização das teclas no teclado e a utilização do teclado para jogar um jogo onde as letras vão caindo e o aluno tem que pressionar a tecla indicada antes que a mesma “caia”.

Teclado

A origem dos teclados de hoje em dia veio da invenção da máquina de escrever criada por Christopher Latham Sholes em setembro de 1867. O teclado é a principal entrada de dados no computador e é imprescindível saber utilizar-ló corretamente.

O modulo de digitação foi desenvolvido levando em conta que ao utilizar o computador pela primeira vez não se tem ideia de onde as letras estão posicionadas no teclado, salvo é claro as pessoas que fizeram algum curso de datilografia. Primeiramente foi pensado apenas em criar um ambiente onde o aluno procurasse no teclado a letra representada na tela como ilustra a figura 5.

clip_image010

figura 5 – ilustração do exercício de digitação

No módulo de digitação o aluno deverá procurar a letra indicada pelo quadrado vermelho e pressionar a mesma no teclado fazendo assim a letra desaparecer e aparecer outra letra para ele digitar, como na figura 5 onde o aluno deve digitar a letra W.

Inicialmente foi apensado apenas em fazer a fase onde o aluno procuraria a letra indicada na tela e pressionasse, porém viu-se a necessidade de criar um método mais atrativo e que incentivasse a competição entre os alunos como indica a figura 6, então foi criado um jogo onde o aluno deveria digitar a letra indicada na tela antes que a mesma “cai-se”, caso o aluno conseguisse pressionar a tecla antes que a letra alcançasse a parte inferior da tela ele acumularia pontos para gerar assim uma competição de quem consegue mais pontos no jogo, da mesma forma que caso a letra alcance a parte inferior da tela o aluno perde ponto.

clip_image012

Figura 6 – jogo onde o aluno deve pressionar as rapidamente as teclas

Considerações finais

O ABCDigital foi utilizado no curso de introdução à informática nos telecentros Jardim Santo André, São Mateus e CEU Sapopemba, foi notado um interesse maior dos alunos e uma absorção maior do conteúdo do que nos cursos que não foi utilizado, pretende-se também melhorar o Jogo adicionando mais funcionalidades para trabalhar outros conceitos por exemplo o “clica segura e arrasta”, para tentar auxiliar mais ainda os cursos de introdução à informática e com isso o processo de inclusão digital.

Bibliografia

SIERRA, Kathy, BERT Bates. Use a cabeça Java segunda edição, editora O’really Alta books Rio de janeiro 2009.

HULZINGA, Johan. Homo ludens: O jogo como elemento da cultura. São Paulo: Perspectiva, 2005.

O Plano de Inclusão Digital, disponível em:

http://www.prefeitura.sp.gov.br, acesso em 20 out 2011

PRINCIPIO DA INDISSOCIABILIDADE: É NECESSÁRIA A EXTENSÃO?

Posted on by Elzo Brito

 

Elzo Brito dos Santos Filho

Thiago Luiz Sartori

Vania E. Medrado

O “princípio da indissociabilidade” estabelece que a produção de novos conhecimentos, o ensino e divulgação dos mesmos ao conjunto da sociedade devem ser realizados de forma integrada e indissociada.

Segundo Marta Valentim as universidades se estruturam no tripé que desenvolvem ensino a pesquisa e a extensão.

Em seu artigo a autora denota a importância da indissociabilidade para o meio acadêmico para integrar a sociedade e universidade, sendo assim as universidades tem um compromisso social de construir o conhecimento para a formação social. Bem como para a vida pratica, comprometida com a construção dos processos culturais.

Maria Isabel de Cunha complementa esta ideia ao mencionar que a indissociabilidade é algo indivisível ocorrendo de maneira global, ou seja o ensino, a pesquisa e a extensão não podem ser trabalhados de maneira separada, mas sim uma ação interagindo com a outra.

De acordo com Ana Luiza Lima Souza, foi criado um grupo de pro-reitores para a definição e caracterização da extensão ensino e pesquisa, que Marta Valentim coloca como um elo que os integra. Desta forma Marta Valentim menciona que:

“A pesquisa, portanto, é alimento para a formação de questões para a construção de conhecimento, se a universidade tem como missão fundamental construir conhecimento, a pesquisa, portanto, deve perpassar o ensino e a exntensão. Nesse contexto, os grupos de pesquisa podem ser instrumentos valiosos para obtenção desta indissociabilidade.”

No que tange a extensão Ana Luiza Lima Souza aponta que o fórum nacional de pró-reitores de extensão caracteriza a extensão como um espaço estratégico de desenvolvimento de atividades acadêmicas em cunho interdisciplinar. Com o intuito de integrar grupos de diversas áreas do conhecimento, para produção de ciência.

O processo de ensino e aprendizagem e o processo ensino e ação somente serão fortalecidos a partir da construção do conhecimento. A pesquisa portanto é subsidio para esse processo, pois pesquisa significa estudo, significa dedicar-se a compreender fenômenos e a dar respostas às questões e problemas existentes.

A autora discute a cerca dos fóruns que foram construídos com o intuito de definir e normatizar a extensão, apontando que o conceito de extensão é uma construção histórica que esta em constante transformação, pois sempre há a necessidade de ser revista e avaliada de acordo com o momento e o contexto da universidade.

A mesma aponta que a extensão de acordo com as discursões nos fóruns deveria ocupar o mesmo espaço que o ensino e a pesquisa dentro do ambiente acadêmico. Entretanto os docentes apontam que diversos fatores, tais como a verba não propiciaram o desenvolvimento da extensão como uma ação articulada entre o ensino e pesquisa, ou seja para que ocorra uma extensão de mão dupla; universidade e sociedade.

Para Ana Luiza Lima Souza o papel da extensão é tornar o produto da academia – o conhecimento acessível a todos e não a uma camada privilegiada da sociedade (Negrito nosso).

Dizer somente que a extensão é um processo educativo não estaria contribuindo para clarear sua concepção pois o sucesso e ensino e a pesquisa também podem, com muita propriedade reclamar esse papel e proclamar sua deficiência, sem necessidade de ser complementados pela extação.

Destas forma, procura-se conseguir um espaço para a extensão entre os espaços já conquistados pelo outros. Como instrumento articulador ela não apresenta ameaça à existência das outras funções, o que torna mais cômoda sua presença, mesmo que seja somente entre brechas permitidas.

Entretanto ainda encontramos vestígios de um processo apenas educativo ou até mesmo assistencialista sem nenhum cunho acadêmico cientifico.

Segundo o artigo 1º do Estatuto das Universidades Brasileiras (Decreto n° 19.851 – de 11/04/1931); “O ensino universitário tem como finalidade: elevar o nível da cultura geral, estimular a investigação científica em quaisquer domínios dos conhecimentos humanos; habilitar ao exercício de atividades que requerem preparo técnico e científico superior; concorrer, enfim, pela educação do indivíduo e da coletividade, pela harmonia de objetivos entre professores e estudantes e pelo aproveitamento de todas as atividades universitárias, para a grandeza na Nação e para o aperfeiçoamento da Humanidade.”

Referencias

CUNHA. Maria Isabel da. Ensino com pesquisa: a pratica do professor universitário. cad pesq, são Paulo, n 97, p 31-46, 1996.

SOUZA. Ana Luiza Lima. Construindo uma concepção da extensão sob a ótica das instituições de ensino superior. Cap 4, p 83-115.

VALENTIM. Marta. Instrumentos integradores do ensino, pesquisa e extensão: o caso dos grupos de pesquisa.UNESP Revista F@ro nº 5 – monográfico.

Estatuto das Universidades Brasileiras (Decreto n° 19.851 – de 11/04/1931);

Declarações em JAVA

Posted on by Elzo Brito

Identificadores Legais

Os identificadores em JAVA devem ser compostos apenas por caracteres Unicode (http://www.tamasoft.co.jp/en/general-info/unicode.html), números, símbolos de moeda e caracteres de conexão ( _ ) underline. Os identificadores devem sempre começar com uma letra, um cifrão $ ou underline, depois do primeiro caractere os identificadores podem ter qualquer combinação de letras, números, caracteres de moedas ou underline. Não existe um limite para o tamanho de um identificador porem deixar um nome muito grande pode ser um pouco chato, também precisamos tomar um cuidado para não utilizar como nome de um identificador uma das palavras reservadas do JAVA listadas abaixo:

Modificadores de acesso
private: acesso apenas dentro da classe
protected: acesso por classes no mesmo pacote e subclasses
public: acesso de qualquer classe
Modificadores de classes, variáveis ou métodos
abstract: classe que não pode ser instanciada ou método que precisa ser implementado por uma subclasse não abstrata
class: especifica uma classe
extends: indica a superclasse que a subclasse está estendendo
final: impossibilita que uma classe seja estendida, que um método seja sobrescrito ou que uma variável seja reinicializada
implements: indica as interfaces que uma classe irá implementar
interface: especifica uma interface
native: indica que um método está escrito em uma linguagem dependente de plataforma, como o C
new: instancia um novo objeto, chamando seu construtor
static: faz um método ou variável pertencer à classe ao invés de às instâncias
strictfp: usado em frente a um método ou classe para indicar que os números de ponto flutuante seguirão as regras de ponto flutuante em todas as expressões
synchronized: indica que um método só pode ser acessado por uma thread de cada vez
transient: impede a serialização de campos
volatile: indica que uma variável pode ser alterada durante o uso de threads
Controle de fluxo dentro de um bloco de código
break: sai do bloco de codigo em que ele está
case: executa um bloco de código dependendo do teste do switch
continue: pula a execução do código que viria após essa linha e vai para a próxima passagem do loop
default: executa esse bloco de codigo caso nenhum dos teste de switch-case seja verdadeiro
do: executa um bloco de código uma vez, e então realiza um teste em conjunto com o whilepara determinar se o bloco deverá ser executado novamente
else: executa um bloco de código alternativo caso o teste if seja falso
for: usado para realizar um loop condicional de um bloco de código
if: usado para realizar um teste lógico de verdadeiro o falso
instanceof: determina se um objeto é uma instância de determinada classe, superclasse ou interface
return: retorna de um método sem executar qualquer código que venha depois desta linha (também pode retornar uma variável)
switch: indica a variável a ser comparada nas expressões case
while: executa um bloco de código repetidamente até que uma certa condição seja verdadeira
Tratamento de erros
assert: testa uma expressão condicional para verificar uma suposição do programador
catch: declara o bloco de código usado para tratar uma exceção
finally: bloco de código, após um try-catch, que é executado independentemente do fluxo de programa seguido ao lidar com uma exceção
throw: usado para passar uma exceção para o método que o chamou
throws: indica que um método pode passar uma exceção para o método que o chamou
try: bloco de código que tentará ser executado, mas que pode causar uma exceção
Controle de pacotes
import: importa pacotes ou classes para dentro do código
package: especifica a que pacote todas as classes de um arquivo pertencem
Primitivos
boolean: um valor indicando verdadeiro ou falso
byte: um inteiro de 8 bits (signed)
char: um caracter unicode (16-bit unsigned)
double: um número de ponto flutuante de 64 bits (signed)
float: um número de ponto flutuante de 32 bits (signed)
int: um inteiro de 32 bits (signed)
long: um inteiro de 64 bits (signed)
short: um inteiro de 32 bits (signed)
Variáveis de referência
super: refere-se a superclasse imediata
this: refere-se a instância atual do objeto
Retorno de um método
void: indica que o método não tem retorno
Palavras reservadas não utilizadas
const: Não utilize para declarar constantes; use public static final
goto: não implementada na linguagem Java por ser considerada prejudicial
Literais reservados
De acordo com a Java Language Specification, null, true e false são tecnicamente chamados de valores literais, e não keywords. Se você tentar criar algum identificador com estes valores, você também terá um erro de compilação.

Os identificadores em JAVA são case-sensitive portanto foo e Foo são diferentes assim como um e Um ou aluno e Aluno, veja abaixo alguns identificadores válidos.

  • · Int _a;
  • · Int $c;
  • · Int ___2_w;
  • · Int _$;

Bom agora esse identificadores são inválidos:

  • · Int :b;
  • · Int –b;
  • · Int e#ç
  • · Int .f;
  • · Int 7g;

Meu Curriculo

Posted on by Elzo Brito

Elzo Brito dos Santos Filho


Estado Civil: Solteiro
E-mail: elzo_brito@hotmail.com
Twitter: @elzobrito
Facebook: http://pt-br.facebook.com/elzobrito
Data de Nascimento: 11/01/1984

FORMAÇÃO ACADÊMICA:

Pós Graduando em Didática e metodologia de ensino superior – Universidade Mogi das Cruzes
Bacharel em Ciência da Computação – Universidade Nove de Julho

Cursos:
Inglês técnico

Informática

Sistemas Operarionais:
Windows 9x/2000/xp/7
Windows Server 2003/2008
MS-DOS
Linux

Pacote Office:

Office 97/2000/xp
Access
Word
PowerPoint
Excel
Outlook
Openoffice
Calc
Writer

Desenvolvimento WEB:
HTML/XHTML
CSS
ASP
Java Script
FireWorks
Flash
DreamWeaver
PHP

Programação:
Algoritmos e lógica de programação
Estrutura de Dados
Pascal
C/C++
Java
Visual Basic 6.0

Banco de dados
Microsoft Acess
Oracle 9g / PLSQL
MySql

Hardware:
Montagem e manutenção de micros

TELECENTRO Inácio Monteiro
Linux (GNU/Debian)
Openoffice
Desenvolvimento de Sistemas I – Modulo – banco de Dados

TELECENTRO Incubadora
PHP & MySql
HTML
GIMP

TELECENTRO BORACEIA
HTML
Linux (Intermediário)
Capacitação para inclusão no mercado de trabalho

Seminário – CEASP/SEBRAE
Construindo o fórum DLIS no Sertão do Pageú

IPEC – Instituto Paulista de Ensino e Cultura
Produtividade em Vendas
Administração de pequenos negócios

SEBRAE/SEP – Secretaria do Estado de Pernambuco
CNN – Criação de novos negócios
Saber Empreender
Formação Professional e Emprego

PREMIAÇÕES

Menção Honrosa durante o VI ENCONTRO DE INICIAÇÃO CIENTÍFICA – 2009 Uninove com o projeto: Detecção de desgastes e avarias em ferramentas de corte por meio do reconhecimento de padrões em imagens digitais

PUBLICAÇÕES

- ALGORITMOS BIOINSPIRADOS NA OTIMIZAÇÃO DE PARÂMETROS EM GESTÃO DE ESTOQUES, Boletim nº25 , 10º Simpósio de Iniciação Científica e Tecnológica, ISSN: 1518-9082 – FATEC-SP
http://bt.fatecsp.br/index.php?action=3&boletim=25&artigo=120
http://bt.fatecsp.br/arquivos/bt_25/173-athaly.pdf

- ALGORITMOS METAHEURISTICOS APLICADOS EM PROCESSO PRODUTIVO DE PARÂMETROS EM GESTÃO DE ESTOQUES, Resumo: Iniciação Cientifica Uninove, 5º Encontro de Iniciação Científica e II Seminario Nacional de Pesquisa, – Uninove -SP
http://www.uninove.br/pesquisa

http://www.uninove.br/Paginas/publicacao/EventosAnaisdosEventos.aspx

- DETECÇÃO DE DESGASTES E AVARIAS EM FERRAMENTAS DE CORTE POR MEIO DE RECONHECIMENTO DE PADRÕES EM IMAGENS DIGITAIS, Resumo: Iniciação Cientifica Uninove, 6º Encontro de Iniciação Científica, – Uninove -SP
http://www.uninove.br/pesquisa

http://www.uninove.br/Paginas/publicacao/EventosAnaisdosEventos.aspx

Temas sobre CSS publicados no site:
http://www.maujor.com/temas/index.php

Colunista no MX Studio:
http://www.mxstudio.com

TORNEIOS E MARATONAS
Maratona Nacional de Programação ACM – International Collegiate Programming Contest
2007 – Torneio de Programação – Uninove – 3° Colocado
2009 – Torneio de Programação – Uninove – 3° Colocado

SITE PESSOAL

http://www.elzobrito.com

PROGRAMAS PARA INTERNET

Programa de Digitação
http://elzobrito.com/anemona

Programa para guardar seus favoritos na internet

http://elzobrito.com/favoritos

Site da ETEC Cidade Tiradentes

http://www.etectiradentes.com.br/

Pesquisa e Desenvolvimento- CNPQ – Uninove
Projeto de iniciação cientifica, departamento de ciências exatas, Ciência da Computação, Universidade Nove de Julho.

Titulo do Projeto: Algoritmos Bioisnpirados na otimização de parâmetros de gestão de estoques.
Área de concentração: Departamento de ciências exatas, Ciência da Computação.
Eixo de Pesquisa: Estudos avançados em software livre / sistemas flexíveis de manufatura (EASL/SFM).

Titulo do Projeto: Algoritmos metaheurísticos aplicados em processos produtivos.
Área de concentração: Departamento de ciências exatas, Ciência da Computação.
Eixo de Pesquisa: Estudos avançados em software livre / sistemas flexíveis de manufatura (EASL/SFM).

Titulo do Projeto: Detecção de desgastes e avarias em ferramentas de corte por meio de reconhecimento de padrões em imagens digitais.
Área de concentração:
Departamento de ciências exatas, Ciência da Computação.
Eixo de Pesquisa: Estudos avançados em software livre / sistemas flexíveis de manufatura (EASL/SFM).

HISTORICO PROFISSIONAL

Atual – desde 01/06/2005

Empresa: IDORT – PMSP – Telecentro São Paulo
Cargo: Supervisor 1
Descrição do cargo: Responsável por uma unidade do programa Telecentros da cidade de São Paulo.

Empresa: ETEC – Centro Paula Souza
Cargo: Professor 1
Descrição do cargo: Professor de ensino técnico, das matérias

  • Aplicativos informatizados para Administração
  • Aplicativos informatizados para Logística
  • Aplicativos informatizados para Jurídico
  • Aplicativos informatizados para Saúde e segurança do trabalho
  • Representação digital em segurança do trabalho
  • Sistemas de informações gerenciais
  • Tecnologia da informação aplicada a logística

PROMOVIDO
Empresa: IDORT – PMSP – TeleCeu São Mateus
Cargo: Orientador III
Descrição do cargo: Atuando na criação de projetos em conjunto com os professores da rede pública de ensino fundamental da cidade de São Paulo.

PROMOVIDO
Empresa: Telecentro Inácio monteiro
Cargo: Voluntário

Empregos anteriores

Instituição: Universidade Nove de Julho
Cargo: Monitor da disciplina Algoritmos e lógica de programação
Descrição do cargo: Monitor aos sábados da disciplina Algoritmos e lógica de programação.
Tempo de serviço:1 ano

Empresa: Worktek
Cargo: Professor
Descrição do cargo: Professor de Informática básica e avançada.
Tempo de Serviço: 1 e 2 Meses.

Empresa: TRC – Taborda Rede de Cobrança
Cargo: Auxiliar de escritório
Descrição do cargo: Encarregado de cuidar das funções de Office boy dentro e fora da empresa, atuei também como técnico, dando suporte em Hardware e Software.
Tempo de Serviço: 6 Meses

Page optimized by WP Minify WordPress Plugin