Blog de Helton Duarte

O seu portal de informações sobre TI

Programando melhor: Revisão

Olá pessoal!

Como a prova da primeira fase da OBI é amanhã resolvi fazer esse post para uma revisão rápida de vocês sobre algumas questões importantes.

Primeiramente, quero avisá-los para termos bastante atenção com a quantidade de loops feitos, pois diversos loops encadeados podem fazer você não passar em alguns dos testes feitos (normalmente passará nos mais simples, contudo não conseguirá a pontuação completa).

Segundo vim trazer mais um assunto possível para a prova, o qual explicarei posteriormente na aula sobre grafos, no entanto colocarei um exemplo de fácil entendimento da seção pratique da OBI, do nível 2, Batuíra (código resolvido abaixo):
#include

#define INF 1000000;

int main()
{
/* Batuíra */
int num = 1; /* Número do teste */
int n, x, y, z; /* Quantidade de pontos e variáveis para distância */
int dist[110][110]; /* Grafo para distância dos pontos */
int i, j, k; /* Contadores para loop for */

/* O Grafo dist[110][110] representa as distâncias entre os pontos de
repouso. Por exemplo, o valor de dist[i][j] é a distância entre os pontos
i e j */

/* Entrada do número de pontos */
scanf (“%d”, &n);

while (n != 0)
{
/* Coloca a distância padrão entre os pontos */
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n; j++)
{
if (i == j)
{
dist[i][j] = 0; /* A distância para o próprio
ponto de repouso é zero */
}
else
{
dist[i][j] = INF; /* Diz que a distância entre os pontos
é “infinita”, ou seja, não há ligação entre eles */
}
}
}

/* Lê os pontos e a distância entre eles */
scanf (“%d %d %d”, &x, &y, &z);
/* A distância do ponto x ao ponto y é igual a z */

while (x != 0) /* Quando qualquer valor for zero é o fim da
entrada dos pontos */
{
/* Coloca as distâncias nas duas direções */
dist[x][y] = z;
dist[y][x] = z;

/* Lê os pontos e a distância entre eles */
scanf (“%d %d %d”, &x, &y, &z);
}

/* Algoritmo de Floyd-Warshall */
for (k = 1; k <= n; k++)
{
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n; j++)
{
/* Se houver um ponto de repouso entre i e j com uma
menor distância, então o valor de pontos[i][j] é
substituído pelo de (dist[i][k] + dist[k][j]) */
if ((dist[i][k] + dist[k][j]) < dist[i][j])
{
dist[i][j] = dist[i][k] + dist[k][j];
dist[j][i] = dist[i][k] + dist[k][j];
}
}
}
}

/* Depois desse laço principal o valor de dist[1][n] é a menor
distância entre o ponto inicial e o final, a qual representa o valor
pedido pelo problema */

/* Saída de dados */
printf (“Teste %d\n%d\n\n”, num, dist[1][n]);

/* Incremento para o próximo caso de teste */
num++;

/* Entrada para o próximo caso de teste */
scanf (“%d”, &n);
}

return (0);
}

Fiquem bem atentos a parte de grafo, além do famoso algoritmo de Floyd-Warshall, o qual é suficientemente eficiente para esse problema.

Serão colocados comentários com dicas para os problemas “The Trip”, em Exercícios 1 (Parte I) e “Jolly Jumpers”, na Aula 2, pois foram resolvidos por mim no site do UVa Online Judge (finalmente).

Por fim, boa sorte a todos os que irão participar da competição amanhã (OBI), tomara que seja uma boa prova! Eu também participarei, esperando um bom resultado, se Deus quiser.

Posts interessantes:

E você, como se preparou para a OBI? Ah, quando a prova terminar, postem suas opiniões aqui e vamos discutir as questões! Comentem!

Helton de Melo Duarte

“Entrega o teu caminho ao Senhor, confia nEle e Ele tudo fará.” Salmos 37.5

“O meu escudo está com Deus, que salva os retos de coração.” Salmos 7.10

Março 27, 2009 Publicado por Helton de Melo Duarte | Competições, Programando Melhor | , , | 2 Comentários

OBI vem aí!

Fiquem atentos, pessoal!

Para aqueles os quais ainda não sabem, a OBI (Olimpíada Brasileira de Informática) é uma competição realizada pela Sociedade Brasileira de Computação e Fundação Carlos Chagas com o objetivo de estimular o estudo da ciência da computação nos estudantes brasileiros de ensino fundamental e médio.

Ela é dividida em diversas modalidades e níveis, de acordo com a escolaridade do participante:

Modalidade Iniciação: não envolve conhecimentos em liguagens de programação propriamente ditas, apenas lógica para problemas diversos (para aqueles que não sabem o RN está tendo um desempenho muito bom nessas categorias nos últimos anos, tendo até um 2º lugar nacional, o Leon Deharbe, do CEI, no nível 1).

  • Nivel 1: alunos até o sétimo ano (sexta série) do Ens. Fund.
  • Nível 2: alunos até o nono ano (oitava série) do Ens. Fund.

Modalidade Programação: problemas que devem ser desenvolvidos em C, C++ ou Pascal e avaliados apenas pelo seu resultado, não havendo “meio certo”.

  • Nível Júnior: alunos do Ens. Fund.
  • Nível 1: alunos do 1º e 2º anos do Ens. Médio.
  • Nível 2: alunos do 3º ano do Ens. Médio ou que terminou-o até o ano passado (2008).

Os melhores colocados de cada nível (de acordo com sua modalidade) irão para a Unicamp (uma referência em computação em todo o Brasil), participar de um curso sobre Introdução à Programação (Iniciação), Programação Intermediária (Prog. Nível Júnior) e Programação Avançada (Prog. Níveis 1 e 2). Além disso, os alunos do nível 2 de Programação irão realizar uma seletiva (durante o período do curso) para a IOI (Olimpíada Internacional de Informática, em português), sendo 4 classificados do Brasil.

O cadastro das escolas (e de seus competidores) deverá ser feito até o dia 23 de março de 2009, pelo professor responsável. Informo também aos alunos do IF-RN (antigo CEFET-RN) que devem encaminhar um e-mail para o professor Leonardo Minora (minora@cefetrn.br), manifestando interesse em participar, para que ele possa contabilizar o número de inscritos e os dê mais orientações. Também precisará ser preenchido um formulário de inscrição, o qual será entregue ao professor, de acordo com sua idade. Veja: Menores de 18 anos; 18 anos ou mais.

As datas de realização das provas podem ser vistas no próprio site da OBI. Assim como qualquer dúvida pode ser tirada aqui mesmo ou por meio do site.

Blz pessoal? Lembrando que estou realizando nesse mesmo blog um curso preparatório para competições de programação, denominado “Programando melhor”, vejam!

Tirem suas dúvidas ou digam suas experiências em OBIs passadas! Vamos lá, comentem!

PS: Esse post foi criado a pedidos do professor Leonardo Minora, do IF-RN, para o aviso a todos os interessados na competição.

Posts interessantes:

Helton de Melo Duarte

“Oh! Quão bom e quão suave é que os irmãos vivam em união.” (Salmos 133.1)

“Em paz também me deitarei e dormirei, poruqe só tu, SENHOR, me fazes habitar em segurança.” (Salmos 4.8)

Março 7, 2009 Publicado por Helton de Melo Duarte | Competições | , , , , | 4 Comentários

Programando melhor: Aula 3 – Strings

Estou de volta!

Para aqueles que estavam ansiosos por mais uma aula preparatória para competições de programação (principalmente OBI, pois já está próxima), venho aqui para isso! A aula de hoje não será tão grande, contudo tem uma importância extrema (quem viu a prova da 2ª fase da OAH 2008 perceberá a importância desse assunto) e, como sempre, virá seguida de exercícios.

Eu sei que muitos podem estar achando os exercícios complicados, e realmente são, mas preciso informá-los que a persistência é o melhor remédio, pois eu estava empacado em um deles a mais de semana, só que ontem consegui receber um “Accepted” no site da UVa Online Judge! =) Vamos, então, à batalha!

Aula 3 – Strings

Conteúdo: visão geral de como tratar strings, desde o modo em que elas aparecem nas diversas linguagens, até os principais métodos para lidar com elas.

Strings são estruturas fundamentais de crescente importância. Vocês verão que os problemas apresentados nessa aula são um pouco mais fáceis do que o passado, todavia eles revelam a forma de como strings e caracteres são representados, além dos melhores algoritmos para manipular esse tipo de dado.

Códigos dos caracteres: Os caracteres são apenas códigos os quais o computador associa a um símbolo, por esse motivo linguagens como C, C++ e Pascal tratam o tipo char como alguma coisa de 1 byte, nada mais do que isso. O American Standard Code for Information Interchange (ASCII), ou Código Padrão Americano para Troca de Informações, representa o caracter por 1 byte, tendo um total de 2^7 = 128 tipos diferentes. Eles não foram ordenados ao acaso, possuindo algumas propriedades interessantes para o programador:

  • Todos os caracteres não-imprimíveis possuem os 3 primeiros bits iguais a 0 (zero) ou os 7 menos sigficativos iguais a 1;
  • As letras minúsculas e maiúsculas aparecem ambas ordenadas sequencialmente, o que nos permite a criação de loops do primeiro (“a”) ao último (“z”);
  • Além do loop, podemos ver qual a posição apenas subtraindo pelo valor do início: “I” – “A” = 8;
  • Podemos converter de maiúscula para minúscula com operações simples como: “C” – “A” + “a”. Analogamente uma letra será maiúscula se estiver entre “A” e “Z”;
  • Ao ordenar um texto, estaremos simplesmente ordenando o seu código ASCII.

Códigos mais modernos, como Unicode, utilizam 2 ou até 3 bytes para representar um caracter, abrangendo qualquer língua do planeta.

Representando strings: aqui apenas diferenciarei os modos de linguagens básicas tratarem as strings.

  • Vetores terminados com NULO: C/C++ tratam strings apenas como vetores de caracteres, terminando com o “” (zero ASCII). A não colocação desse último caracter pode gerar muita confusão no decorrer do programa, pois seria uma string “infinita”. Vantagem: pode-se acessar cada valor apenas indexando-os, assim como vetores.
  • Vetor mais tamanho: Outro modo usual é utilizar o primeiro elemento do vetor para o tamanho da string, o que dispensa a utilização do caracter NULO. Essa forma é utilizada internamente pelo Java, apesar de ser mostrado ao programador como um objeto.

Manipulando strings: Para a sua manipulação será necessário o conhecimento de como sua linguagem trata esse dado, contudo para uma simplificação, iremos exemplificar com o suporte feito em C.

  • Computando o tamanho de uma String: Varre os caracteres, até encontrar o NULO, com um contador para o cálculo;
  • Copiando uma String: Ao menos que sua linguagem de programação suporte igualar dois vetores de uma só vez, você terá que copiar elemento por elemento. OBS: não esqueça de criar o caracter NULO no fim!;
  • String ao contrário: Se não for necessário manter a string original é preciso apenas trocar os elementos, num loop até a metade do tamanho. Caso seja preciso a primeira, então copia-se para outra string, só que da direita para a esquerda. OBS: novamente, não esqueça de criar o caracter NULO no fim!;
  • Por último, será apresentado um algoritmo, pouco eficaz, diga-se de passagem, mas SIMPLES, para contar quantas vezes alguma string p aparece em outra t.

Strings

Bibliotecas de funções para strings: Já estamos no final da aula, mas deixaremos para vocês dicas de algumas bibliotecas já presentes nas linguagens, para o tratamento de strings:

  • C => <ctype.h> Manipulação de caracteres; <string.h> Manipulação de strings;
  • C++ => as mesmas do C, além de uma classe string, a qual possui algumas funcionalidades interessantes. MAIS;
  • Java => A classe String, com diversas operações avançadas em java.text;
  • Pascal => Nativo do SysUtils, portanto todas as funções estão a sua disposição. MAIS.

Bem pessoal, o conteúdo era esse, agora vamos praticar! OBS: Novamente eu lembro que todos os exercícios dispostos abaixo estão no UVa Online Judge e eles possuem todos os direitos sobres os problemas.

Posts interessantes:

Nossa primeira batalha está por vir, se preparem, porque a OBI vem aí! Vão treinando com esses exercícios e os da seção pratique da OBI que na prova será moleza! Qualquer dúvida e/ou sugestão postem! Vamos lá! Comentem!

Helton de Melo Duarte

“Sonda-me, ó Deus, e conhece o meu coração; prova-me e conhece os meus pensamentos. E vê se há em mim algum caminho mau e guia-me pelo caminho eterno.” Salmos 139.23,24

Março 3, 2009 Publicado por Helton de Melo Duarte | Programando Melhor | , , , | 12 Comentários

Programando melhor: Aula 1 – Começando

Finalmente pessoal!

Hoje irá iniciar o curso de programação focado em competições existentes em todo o mundo. O curso terá como título “Programando melhor” e será composto de aulas iniciantes até programação pesada! Vamos embarcar comigo nessa empreitada!

Aula 1 – Começando

Conteúdo: introdução a competições de programação, assim como dicas iniciais e cuidados a serem tomados na criação de soluções para os problemas apresentados.

Existem por aí alguns sites que podem nos ajudar a exercitar nossos conhecimentos, pois disponibilizam juízes online para testar a eficiência do seu programa. Os principais sites para esse tipo de exercício são o da Universidad de Valladolid, o da Olimpíada Brasileira de Informática e o do livro Programming Challenges (base para o desenvolvimento desse curso). Cadastre-se neles (com excessão do site da OBI, que não precisa de cadastro) e comece a testar soluções para os mais diversos programas encontrados, inclusive para os exercícios que serão propostos aqui.

Como primeiro passo rumo a sua vitória em diversas dessas competições, você precisará primeiramente escolher em qual linguagem desenvolverá seus programas. Eu recomendo o C, pois é de fácil entendimento (sem a orientação a objeto presente no C++/Java) e é aceito em praticamente todas as competições. Pascal é uma boa recomendação apenas para quem está no ensino médio e deseja participar da OBI (pois é uma das únicas que ainda permite essa linguagem); Java é desagradável pela sua POO (programação orientada a objeto), algo bastante desagradável quando não se vai trabalhar com programas grandes os quais precisariam de reaproveitamento de algumas partes; C++ é aconselhável a programadores mais experientes, desejosos de participar do TopCoder (não aceita o C).

É preciso também tomar cuidados com algumas práticas do nosso dia-a-dia na programação que não devem ser praticadas por um competidor. Primeiramente, as entradas e saídas do seu programa devem ser exclusivamente as padrões, ou seja, não é permitida a abertura de arquivos ou funções desse estilo durante a programação. Já para programadores Java funções de internet e threads não são permitidas, além de nada poder ser público, até mesmo o Main, contudo pacotes como math, util e similares são possíveis.

Dicas de programador para programador:

  • Comece seu programa e cada uma das funções criadas comentando cada passo a ser realizado, pois isso facilitará seu entendimento do problema (se você não conseguir fazer isso, então não está entendendo o que é preciso fazer no programa). Esse esforço extra irá ajudar muito no futuro…
  • Faça o mesmo para cada variável, explicando qual será sua “função” no programa (não é preciso colocar nomes gigantes, como ModuloDoQuadradoDoVetorResultante, apenas comente bem (não é Elomar e Bryan? hehehehehe).
  • Crie, sempre que possível, constantes para representar números bastante utilizados no programa, como PI, TAMVETOR, etc., isso irá prevenir erros futuros e deixará BEM mais legível seu código (ajudando a encontrar bugs que possam aparecer).
  • Eficácia. Essa é a base para competições de progração (e para sua vida de programador). Evite ao máximo códigos redundantes, como
    • if (x == ‘A’) Código
    • else if (x == ‘B’) Código quase igual;
  • Além do mais (nunca pensei que iria falar isso na minha vida xD ): evite GAMBIARRAS! Você pode achar o máximo quando você faz uma daquelas bem grotescas, todavia isso pode lhe causar um belo de um “Time Limit Exceeded”, ou seja, seu programa pode ficar lento e não ser executado no tempo máximo permitido (é, existe um tempo máximo!). ^^
  • Por fim, é de extrema importância o conhecimento na arte de “DEBUGGAR”, ou seja, conheça o sistema de Debug do seu compilador ou faça isso manualmente (mandando imprimir o valor de certa variável em um determinado local – CUIDADO com doideras no código ao fazer isso). Esse item é muito bom caso receba alguma mensagem de erro do sistema de correção.

Um bom caminho a seguir é o de evitar tipos de dados não elementares, como POO, e até a utilização excessiva de ponteiros em C, o que pode gerar erros inesperados, sendo sempre bom recorrer aos bons e velhos Vetores. Tome também cuidados com Records/Structs/Registros, pois eles podem gerar uma grande dor de cabeça na hora de precisar alterar o seu código.

Bem, gostaria de finalizar esse post com um alerta para aqueles os quais desejam participar da OBI, pois durante a competição você não tem o acesso ao juiz dizendo se o seu programa passou nos testes ou não, isso só é disponibilizado na seção Pratique do site, portanto é necessária a sabedoria para você mesmo criar testes que poderiam dar erro em um programa, ok?

Os exercícios seguem no próximo post e eles estão todos disponibilizados no UVa Online Judge, para serem testados. Eles correspondem aos problemas do Capítulo 1 do livro Programming Challenges, de autoria de Miguel Revilla e Steven Skiena.

Posts interessantes:

E você, o que achou dessas dicas? Está pronto para começar essa jornada e se tornar um competidor dos mais fortes? Deixe seu comentário e tire as suas dúvidas!

Helton de Melo Duarte

“Porém o SENHOR disse a Samuel: Não atentes para a sua aparência, nem para a altura da sua estatura, porque o tenho rejeitado; porque o SENHOR não vê como vê o homem. Pois o homem vê o que está diante dos olhos, porém o SENHOR olha para o coração.” (1 Samuel 16.7)

Fevereiro 10, 2009 Publicado por Helton de Melo Duarte | Competições, Cursos, Programando Melhor | , , , , , | 12 Comentários

Curso de Programação – Confirmado!

Olá pessoal!!! =D

Eu venho aqui não para falar do novo Google Earth, como vocês poderiam imaginar, já que ele saiu hoje (apesar de ser uma boa falar dele)…mas para comunicá-los sobre uma novidade que eu já havia prometido para vocês leitores a algumas semanas, porém só foi confirmada hoje, após contatar Miguel Revilla e Steven Skiena (a nata da programação).

O curso de programação preparatório para competições desse assunto está confirmado no meu blog! Após resolver algumas pendências que poderiam vir, como direitos autorais e coisas do tipo, confirmei agora a pouco com os autores do livro Programming Challenges a elaboração desse meu projeto!

Livro para competições de programação

Livro para competições de programação

O curso consistirá basicamente de um abordagem sobre os assuntos desse livro citado (considerado a bíblia das competições de programação), para facilitar o acesso a esse tipo de assunto. O livro é completamente em inglês e, por isso, irei fazer esse resumo em português para vocês, além de abordar os exemplos em C e Pascal (pois no livro é apenas em C). Outro ponto importante que gostaria muito da colaboração de todos é a disponibilização de soluções para os problemas da seção Pratique, no site da OBI, as quais serão feitas por mim e por qualquer um que deseje colaborar conosco (mande as soluções para meu e-mail, em hm_duarte@hotmail.com , para que passe pela devida avaliação e, então seja postada também no blog, com seus devidos direitos ao autor). OBS: pode ser em C, C++ ou Pascal.

Peço a todos os leitores desse post para divulgarem esse assunto de toda a forma possível, pois espero que esse curso possa ajudar muitos a crescer como programadores, assim como lutar por sonhos que possam parecer distantes, como vencer esse tipo de competição.

PS: O direcionamento principal desse curso é para a participação na OBI (Olimpíada Brasileira de Informática), porém irá formar um programador completo, auxiliando, portanto, a OAH (Olimpíada de Algoritmo Hostnet), a ACM (ou online-judge, da Universidad de Valladolid) e TopCoder.

PS2: O objetivo do curso não é ensinar a linguagem C ou Pascal e sim métodos que possam auxiliar a resolver diversos problemas comuns em competições de programação e presentes no dia-a-dia, portanto tem-se como pré-requisitos desse curso o conhecimento em algoritmos e nas linguagens C ou Pascal.

Helton de Melo Duarte

“Um Vencedor respeita aqueles que são superiores a ele e tenta aprender alguma coisa com eles. Um Perdedor ressente-se daqueles que são superiores a ele e faz racionalizações a respeito de suas conquistas.

Um Vencedor explica; um Perdedor justifica.

Um Vencedor diz: ‘Vamos descobrir uma saída’; um Perdedor diz: ‘não há nenhuma saída’.

Um Vencedor enfrenta o problema; um Perdedor tenta contorná-lo.

Um Vencedor diz: ‘Deve haver um jeito melhor de fazer isso’; um Perdedor diz: ‘Isso sempre foi feito assim’.

Um Vencedor mostra que lamenta o fato de ter de compensar por algo; um Perdedor diz: ‘Eu lamento’, mas ele continua a fazer a mesma coisa.

Um Vencedor sabe pelo que lutar e com o que se comprometer; um Perdedor compromete-se com o que não deveria e luta por aquilo que não vale a pena lutar.

Um Vencedor trabalha mais duro que o Perdedor, e tem mais tempo; um Perdedor está sempre ‘muito ocupado’ para fazer o que é necessário.

Um Vencedor não tem medo da derrota; um Perdedor secretamente teme a vitória.

Um Vencedor compromete-se; um Perdedor faz promessas.”

GEORGE, Jim. Um Jovem segundo o coração de Deus, p. 159-160. CPAD, 2008.

Fevereiro 3, 2009 Publicado por Helton de Melo Duarte | Competições, Programando Melhor | , , , | 3 Comentários

Olimpíadas do Conhecimento

Olá pessoal!

Primeiramente, gostaria de pedir desculpas pelo tempo ausente do blog, porém quero dizer que estou de volta e, agora que ficarei de férias do CEFET (até março), pretendo trazer conteúdos muito interessantes para vocês conhecerem.

Hoje venho falar de um assunto muito interessante para todos nós, na verdade venho analisar aquela reportagem do jornal do CEFET-RN que trouxe para vocês. Iremos falar da magníficas oportunidades de tornar-se um “Atleta Olímpico”, mas não aqueles vistos na TV, os que ainda possuem pouca divulgação, contudo podem ser o futuro da nação. Você pode ter se desanimado pelo fato de ter pouca divulgação isso que irei mostrar-lhes, mas quero dizer que os ganhos obtidos na vida de algum participante deste tipo de competição possui um valor inestimado, pois não trata apenas de conhecimento, e sim de uma experiência de vida!

Se ainda não é do conhecimento de vocês, existem por aí diversas olimpíadas do conhecimento, como o título do post fala, como as Olimpíadas de Matemática, Física, Química, Astronomia, além das mais voltadas para a área de TI, como a OAH (Olimpíada de Algoritmo Hostnet), a OBI (Olimpíada Brasileira de Informática), a Maratona de Programação e competições menos conhecidas, como TopCoder e ImagineCup. Posso falar por experiência própria que vale MUITO a pena você se dedicar a competições de programação (para você que é desenvolvedor) e, para quem ainda não é, participar de OBM, OBF, etc., gera um diferencial em você para trabalhar em qualquer área, pois são provas que buscam o raciocínio lógico, não somente aqueles exercícios mecânicos vistos em sala de aula, fazendo a matéria parecer mais interessante e fazendo com que muitos comecem a gostar dessas disciplinas.

Agora você deve estar falando: “Ah, mas essas competições ganham só os Nerds, eu não tenho a mínima chance”. Pois saiba que isso não é verdade. É claro que sem esforço nada é possível conquistar, entretanto sua experiência neste tipo de competição irá mudar sua vida. Sempre gostei desses desafios, mas no meu colégio de ensino fundamental os professores não ligavam muito para isso, contudo, ao chegar no CEFET-RN, vi a oportunidade chegando novamente e resolvi participar das competições. (Irei contar minha experiência de vida para estimular vocês,  ^^) No meu 1º ano fiz a prova da OBMEP e não passei nem da primeira fase, fiquei um pouco abatido, mas resolvi estudar um pouco mais. Quando chegou no 2º ano eu consegui conquistar uma medalha de bronze e resolvi que faria a OBI no 3º ano, pois havia aprendido a programar. Na OBI minha colocação foi mais do que 100º, não lembro muito bem, contudo já consegui ser 4º lugar do RN em Matemática e acredito que possuo boas chances de ganhar medalha em outra OBMEP (não saiu o resultado ainda). Agora no finalzinho do ano passado, surgiu a oportunidade de participar da OAH, aí vi minha redenção em programação, pois fui campeão nacional juntamente com meus colegas Elomar França e Bryan Souza, com o apoio do professor Leonardo Minora (competição em equipe), prova essa que me rendeu um notebook de graça, como prêmio xD (vejam meu post sobre a competição). Agora digam: devo parar? Nunca! Esse ano irá acontecer novamente a OBI e estarei estudando para uma melhor colocação e, é claro, para obter mais conhecimento, pois nem sempre podemos ganhar, além disso vou participar de outras, como OBM, OBMEP, OBF, OBQ e, quem sabe, não me arrisco na OBA e até no TopCoder.

ruaweb-oah

Agora chegou a parte de falar com os professores, porque acredito que já estimulei os alunos o suficiente. Como foi visto na reportagem do jornal do CEFET-RN, no Brasil existem grandes alunos, com uma capacidade enorme, no entanto o apoio a esse tipo de competição é quase nulo, principalmente da parte dos professores, os quais só inscrevem as escolas, muitas vezes, a pedidos dos próprios estudantes. Monte um projeto na sua escola e acredite em nossos jovens, pois o estímulo é fundamental para o desenvolvimento futuro do estudante brasileiro. Apenas algumas horas por semana e você estará fazendo um bem ENORME a sociedade!

Bem pessoal, espero ter plantado uma semente importante para o Brasil, pois acredito que as competições internacionais precisam estar repletas de nossos estudantes! Vejam esses links: FATEC SJC, Blog do Glebe Jr.

PS: pretendo montar um curso durante essas férias, preparatório para competições de programação, baseado no livro Programming Challenges, de Steven S. Skiena e Miguel A. Revilla. Em breve trarei mais detalhes.

Até a próxima!

Helton de Melo Duarte

“A Vida de um indivíduo só faz sentido se ajuda a tornar as vidas das demais criaturas mais nobres e mais belas.” Albert Einstein

Janeiro 8, 2009 Publicado por Helton de Melo Duarte | Competições, Eventos | , , , , , , , , , , , | 3 Comentários