terça-feira, 22 de dezembro de 2009

Código Universitário



Já faz algum tempo que concluí a graduação {2003} e mesmo assim consigo me lembrar dos primeiros dias {1998}. Foi um excelente período de aprendizado, ainda que um pouco prejudicado pelas greves. De qualquer forma aprendi muito nesses poucos anos, e me arrependo de não ter me dedicado mais. Mas o principal ensinamento que ficou foi: humildade. Entrei na Universidade após já ter codificado alguns sistemas e com isso acreditava já dominar a arte da programação. Grande engano! Além de não se tratar apenas de programação, existem muitos assuntos relacionados que são fundamentais para o entendimento desta arte. Mesmo depois de ter concluído esta fase tão boa, e após tantos cursos extras e especializações, percebo que ainda há muito o que aprender!

Durante este período produzi pequenos códigos que foram muito prazerosos de codificar. Infelizmente alguns deles foram perdidos - como os de openGL e alguns de Inteligência Artificial. Selecionei alguns dos que se salvaram e vou compartilhá-los com vocês. Não há nada de fantástico nestes códigos! São apenas alguns que me concederam nota máxima ou que de alguma maneira deixaram sua marca:


Programa para Cálculo de Funções Estatísticas

Não era necessário para concluir a disciplina de estatística, mas quem quisesse poderia codificar as diversas funções apresentadas em sala e utilizá-las na prova.



Sistema de Comparação entre Métodos de Ordenação

Código para comparação de eficiência entre os algoritmos QuickSort e InsertSort. A medida é feita em relação ao número de comparações executadas por cada algoritmo.



Benchmark para Funções de Pesquisa e Ordenação

Sistema para estimar o custo dos algoritmos: Bubble Sort, Insert Sort, Heap Sort, Select Sort, Shell Sort, Quick Sort, Binary Search e Linear Search, através do número de comparações e troca entre elementos de um vetor gerado aleatoriamente. Além dos algoritmos que eram o foco da atividade, foram desenvolvidas as rotinas para desenho de janelas e menus.



Banco de Dados baseado em tabela Hash com controle de fragmentação

Este software funciona como um mini banco de dados, utilizando tabela hash, com rotinas para controle de fragmentação, desfragmentação, controle de índices e tudo mais o que solicitava a especificação. Consumiu um carnaval inteiro para ser construído e recebeu um sarcástico A+ ao ser confrontado com um outro que recebeu um A. Este, inseria apenas 1 registro sem dar erro, consultava sempre o mesmo registro e a interface era um amontoado de textos. Ainda estou tentando entender o critério de avaliação...





Algoritmo de Árvore B (recursivo e elegante)

Este foi, sem sombra de dúvida, o algoritmo mais marcante de todos os que tive que produzir no período acadêmico. Não que existisse algo de tão fantástico assim em se construir uma árvore b. O que realmente fez a tarefa ficar divertida foi o: recursivo e elegante (gente), como adorava dizer nossa professora de Algoritmos III.

Provavelmente muitos destes executáveis não funcionarão diretamente no seu Windows 64 bits. Um Windows XP 32 bits em máquina virtual ou um DOSBox resolvem o problema.

Nenhum comentário:

Postar um comentário

Você se diverte lendo meus posts e eu lendo seus comentários! ;)