domingo, 29 de março de 2009

Meu Perfil

Eu sempre fui fascinado pelo computador, desde pequeno na minha casa já tinha um computador e comparado com o que é hoje era uma parafernália. Eu mal sabia escrever, mas sabia acessar os jogos via DOS. Ainda lembro do meu computador por volta de 98/99, não lembro do processador, mas o processamento era algo como 666mhz e apenas 64mb de memória Ramm com 2gb de HD, realmente era algo arcaico, e mal funcionava o WIN XP. Então o quadro onde vivi, sempre foi muito tecnológico, e sempre fui inserido nesse meio, paralelo ao meu gosto por computador, era o meu gosto por games, como os dois itens estão no mesmo meio foi unir o útil ao agradável. Então por volta dos 14 anos de idade, decidi começar a estudar programação, era algo que eu já sabia que existia mas não fazia idéia de como tudo se comportava. Conhecia umas pessoas envolvidas com o meio técnico na computação, e emprestei uma bíblia de Delphi e então comecei a praticar.

Tudo era muito difícil, era um mundo desconhecido e complicado, eu digitava os exemplos dos livros, e levava até dias pra conseguir compilar por não entender os erros que se passavam no compilador. Algumas vezes conseguia compilar, outras não, então minha experiência com Delphi não foi muito boa, afinal de contas, não consegui levar nada dessa linguagem. Dei um tempo, e após 1 ano, voltei a me interessar, só que dessa vez eu reuni mais conhecimentos sobre esse meio e dessa vez eu tentei estudar C. Reuni apostilas, meu irmão pediu um livro na biblioteca da faculdade dele então comecei a tentar aprender o que era o C, sabia que era uma linguagem potente, por isso despertei a curiosidade mas mesmo depois de ter uma experiência não muito agradável com Delphi, passei por muitas dificuldade com o C, sem saber que era uma linguagem difícil até mesmo para os mais ativos na área. Obtive algum sucesso, uma margem maior do que com Delphi, e então invadi C++, embora não estivesse usando orientação a objeto. Em C++, pratiquei somente aquilo que já havia aprendido em C, ainda tentei mexer com orientação a objeto em C++, mas como imaginado, não obtive sucesso.

meio a dificuldade, ouvi falar de uma linguagem bastante simples de programar e bem objetiva, era o VB 6(Visual Basic 6). Comecei a programar, logo na primeira impressão, consegui fazer coisas incríveis, que não faria se fosse no C, C++, Delphi. Foi tudo muito fácil, Orientação a Objeto parecia uma piada. Fui adentrando, aprendi livrarias, inclusão de DLLs e utilização de APIs, e então, cada vez que eu precisava de algo mais complexo, percebia que VB6 não era uma linguagem potente. Ela era uma linguagem na verdade, furada e desorganizada, quando se precisava fazer algo mais complexo, precisaria utilizar-se APIs, da qual raramente se encontra tutoriais e livros falando sobre. Li na internet, que a Microsoft teria feito uma nova versão do VB6, esse era o VB.net 2003, mas, que estava pra chegar o VB.net 2005, então esperei ansiosamente para migrar de VB6 para VB.net 2005. A migração foi muito simples, as duas linguagens são extremamente parecidas, mas VB.net 2005 era mais potente, tinha mais organização, embora fosse uma linguagem pesada que sempre tem necessidade de um framework grande e bem chato de instalar. Com VB.net 2005 eu fui capaz de fazer até programas e vende-los, fiz até um programa para um supermercado pequeno da cidade onde morava. Por ter algum conhecimento em C/C++, eu fui mexer um pouco em C#, que é como uma replica do vb.net só que com estrutura de C/C++, e obtive bons resultados, mas ainda preferi a organização lógica do VB.NET, que para mim era incomparável.

Sempre tive muita curiosidade sobre o mercado de games, meu pai sempre me ajudou e então, pedi para ele alguns livros de programação para games. Eu lembro que o primeiro livro que pedi, eu ainda programava VB6 e tudo que consegui fazer foi fazer, jogos 2d em base de TILES que são imagens de 32x32 pixels organizadas lado a lado de uma forma bem simples, mas era o começo de tudo. O outro livro sobre Programação de games e engines 3d, foi quando eu já havia dominado C/C++ e estava lutando para entrar em orientação a objeto da mesma. O livro se chama Programação de Jogos com C++ e Directx de Andre Santee, editora novatec. E um outro livro que consegui em uma sebo de Manaus foi Programando em 3 dimensões de Christopher D. Watkins, editora Berkeley, extremamente velho, mas resolvi levar pois poderia contribuir comigo futuramente. Com o livro consegui fazer algumas coisas, mas ele é muito incompleto e não me deu o conhecimento necessário para pelo menos fazer um jogo básico. Na internet, busquei por vários livros sobre programação de games, em C++, coisa de uns 10 livros de programação em inglês e espanhol, tenho eles até hoje(acredito) em um DVD, junto com a livraria de programação do Directx 9c para C++.

Por volta de 1 ano atrás, comecei a me direcionar a WEB, aprendi o básico de HTML, então parti para CSS, em pouco tempo já estava mexendo em ASP.NET, utilizando a linguagem VB.net e framework 3.5 e Ajax. Agora me encontro no curso de Ciência da Computação na UFS e espero conseguir dominar melhor a programação de games, que sempre foi meu sonho.

Sobre o perfil do curso, eu já falei na minha primeira postagem, Primeira impressão da UFS e mais.

sábado, 28 de março de 2009

Lógica Matemática

Hoje vamos falar sobre Lógica Matemática, essa que usamos muito em nosso cotidiano de forma direta e até mesmo indireta.

Na lógica tratamos situações como Proposições e essas proposições,podem ter um valor verdadeiro ou não. De uma proposição, eu posso presumir valores para várias coisas como citarei de exemplo:

O homem chora. <- Uma proposição afirmativa.
Eu sou homem. <- Outra proposição afirmativa.
Botando as 2 proposições em prova, poderemos concluir que: Se eu sou homem, eu choro.

Essa foi uma lógica bem simples pra ter uma idéia inicial de como funciona.

A lógica foi inicialmente criada, para organizar a forma de pensar, para que ao desenvolver um raciocínio não se perca o foco da questão. Assim como sugere seu nome em grego(λογική logos), que significa pensamento, idéia, argumento, relato, razão lógica. Começarei falando da lógica Aristótelica.

Na época de Aristóteles a lógica já existia, e foi criado por Parmênides e Platão. Aristóteles, tomou a iniciativa de sistematizá-la e organizar. A lógica de hoje em dia, segue a organização de Aristóteles, todavia, muito mais complexa e implementada, os seguidores de Aristóteles tomaram a iniciativa de reunir os conhecimentos dele sobre lógica, em um livro chamado Organon. Dentre todas as contribuições de Aristóteles sobre a lógica, as mais importantes foram:
  • A separação da “validade formal do pensamento” e do “discurso da sua verdade material”.
  • Definir os conceitos básicos da lógica.
  • Introduzir caracteres especiais para os termos
  • E os termos fundamentais: “Válido”, “Não Válido”, “Contraditório”, “Universal” e “Particular”.

Aristóteles também contribuiu para a lógica com leis, essas são: A lei da não contradição e A lei do terceiro excluído. A lei da não contradição, diz que uma afirmação não pode ter dois valores lógicos, ou a afirmação é verdadeira, ou é falsa, ela não pode assumir os dois valores ao mesmo tempo. A lei do terceiro excluído, que diz: Ou A é x, ou A é y, não existe um terceiro. Pode ser demonstrador por A v ¬A. Exemplo: Ou esta pessoa é homem, ou não é.

Aristóteles achava muito importante a lógica, para que os pensamentos não se perdessem, para evitar o erro, e manter-se firme dentro de uma ordem.

George Boole deu sua grande contribuição a lógica, com a álgebra booleana, e definindo que cada afirmação(proposição) tem um valor, verdadeiro, ou falso e finalmente a lógica ganhou um campo matemático, e até hoje, utilizamos de seus cálculos booleanos na teoria dos conjuntos e no esquema funcional de um computador. Outra grande contribuição dele, foi retirar restrições que a lógica tinha desde a época de Aristóteles, afirmando que existia uma infinidade de raciocínios validos e uma infinidade invalida. Ernest Schroder deu o acabamento na lógica de Boole.

Gotlob Frege foi o primeiro a apresentar o cálculo proposicional na forma moderna. Ele Organizou de maneira que fosse capaz de uma proposição ser escrita matematicamente, para isso ele criou um sistema ideográfico, na qual não tem tradução fonético, isso foi bom pois não precisaria de tradução para que entendesse os sistemas e poderíamos adaptar a forma gramática apenas conhecendo os conectores. Além disso ele introduziu a função proposicional, o uso de quantificadores e a formação de regras de inferência primitivas.

Aquele exemplo que utilizei acima:

“O homem chora." <- Uma proposição afirmativa.
"Eu sou homem." <- Outra proposição afirmativa.

Segundo a lógica matemática moderna, definida por Gotlob, poderíamos reescrever a lógica acima da seguinte maneira:
α = O homem chora.
ɤ = Eu sou homem.
α ^ ɤ é verdadeiro, pois O homem chora, e eu sou homem, então eu choro.
Poderia também reescrever como: ¬α ^ ɤ que resultaria em falso, pois, o homem não chora, eu sou homem, então eu não choro.
α ^ ¬ɤ que resultaria em falso, pois o homem chora, eu não sou homem, então eu não choro.
¬α ^ ¬ɤ que resultaria em verdadeiro, pois quem não é homem chora, eu não sou homem, então eu choro.
E hoje em dia temos centenas de operadores que pode botar a prova 1 ou mais proposições são exemplo o, ^, v, ¬ e <->, que são, "E", "OU", "Não" e "Se somente se", respectivamente.

quarta-feira, 18 de março de 2009

Primeira impressão da UFS e mais.

Sou novo em Aracaju nasci em Pernambuco minha mãe viajou para o Amazonas quando eu tinha 12 anos de idade para lecionar na Universidade do Estado do Amazonas(UEA), fui junto com ela e morei 5 anos no Amazonas. Voltei para esse nordestão que me fez muita falta e passei 1 ano em Pernambuco estudando para o vestibular em um pré-vestibular e no início de outubro vim para Aracaju. Colhi o meu esforço passando no vestibular da UFS(Universidade Federal de Sergipe).

Na primeira semana de aula, fiquei meio acanhado pois não conhecia muita gente, apenas 1 ou 2 pessoas e tivemos poucas aulas e isso foi bastante desestimulante, mas uma das aulas que me impressionou foi a aula da professora Leila, serviu para aumentar a estima e arranjar forças para entrar neste curso em que poucos concluem, e além disso, ela nos ensinou como funciona a estrutura do curso e da universidade.

A primeira coisa que você se pergunta quando entra na universidade é... "o que é o DAA"?

DAA é o Departamento de Administração Acadêmica, a partir do dia em que você põe o pé na universidade até o resto de sua vida, você vai usar o DAA,para administrar os seus dados acadêmicos, pode ser para ver notas, cadastrar-se em disciplinas, trancar, receber informações, entre muitas funcionalidades, o DAA é um departamento indispensável e o seu site,facilita muito a nossa vida, vide: Site do DAA.

Existe algum departamento acima do DAA?
Acima do DAA temos a Pro-Reitoria de Graduação(PROGRAD) e no mesmo nível da PROGRAD temos a ProEX. A PROGRAD, trabalha com tudo referente a Graduação, e a ProEX, com tudo referente a extensão e não existe subordinação entre as duas. Acima das pro-reitorias, temos a Reitoria e no mesmo nível do DAA existem outros departamentos que não foram bem apresentados ainda a nos, mas foram citados rapidamente pela professora Leila, segundo ela, a maioria desses departamentos são voltados aos professores e funcionários da universidade.

E os departamentos de ensino?
Os departamentos de ensino, é separado por áreas, por exemplo, o DCOMP, que é o departamento da computação, que engloba Ciência da computação, Sistema de Informação e Engenharia da Computação, outro departamento que posso citar é o DMAT, que está totalmente em debito com o departamento DCOMP(isso me da raiva -.-").

Além desses departamentos?
Temos duas entidades livres de todos esses departamentos, eles são o CALICOMP e a SOFTEAM. Embora livres, respondem com certa responsabilidade ao DCOMP.
  • CALICOMP - Centro Acadêmico Livre de computação, esse centro é livre da concessão de professores e de outras entidades e auxilia os alunos a resolver problemas academicos. Eles têm como objetivo:
    1. Representar os estudantes dos cursos do Departamento de Computação da U.F.S. em reuniões, congressos, encontros ou atividades congêneres.

    2. Representar e promover os interesses dos estudantes nos aspectos acadêmicos, sociais, econômicos, políticos e nos que se referem à formação do professor e do cidadão.

    3. Exercer o direito de representação junto aos órgãos colegiados da U.F.S.

  • SofTeam - É a empresa jr de desenvolvimento pertencente ao DCOMP, e também a mais velha empresa JR da UFS, com 13 anos de existência, nela, os alunos podem trabalhar, ganhar algum dinheiro, créditos para conclusão do curso, experiência no curriculo, e ajudar com a sociedade.A SofTeam foi uma ótima iniciativa do departamento de computação, para aprimorar a experiência de seus alunos ao lidar com o mercado. Visite o site deles, Site do Softeam.
Nós ainda possuímos, a SBC(Sociedade Brasileira de Computação), que é um órgão não oficial, que reúne muitos profissionais na área de computação. Seu papel é importantíssimo, pois no site eles discutem os grandes paradigmas da computação, nossos próximos obstáculos e tentam reunir e sistematizar os seus associados.

Agora me responda... Porque Ciência da Computação?
Temos outros 2 cursos da computação, que são Sistema da Informação e Engenharia da Computação.

Sistema da Informação, os alunos, são treinados para lidar com computação e gestão em mercado de trabalho, administração, e algumas matérias que te dão o conhecimento necessário para por exemplo, abrir uma empresa de computação, ou administrar um projeto. em SI(Sistema da Informação), você aprende a programar, de forma básica, você será capaz de fazer programas totalmente comerciais, como, programas para farmácias, supermercados, websites para empresas, e outros sistemas simples.

Na Ciência Da Computação o quadro já muda, você deixa de ter essas disciplinas de gestão empresarial, para pegar disciplinas de teorias complexas, dando possibilidade de trabalhar com sistemas mais complexos, com pesquisa de novas tecnologias, e muitas vezes, também fazemos o papel que SI faz, no caso de necessidade, claro.

Engenharia da Computação lida com a parte mais HARDWARE, diferente de Ciência da Computação e Sistema da Informação, que trabalha mais com Software. Eles tem varias disciplinas de física, e conseguem facilmente produzirem chips embarcados, que trabalham como um mini computador, pois tem informações de entrada e informações de saída, e um exemplo prático sobre o que pode ser esses chips embarcados é os menus de uma televisão, é um curso difícil assim como ciência da computação.

Foi isso que aprendi na aula da professora Leila, foi uma ótima aula, bem descontraida, objetiva e otimista.

E para quem está lendo este blog, recomendo ver o site que estou criando, é um site de leitura online de Mangá(história em quadrinhos japonês), acessem: Mangá Brasil e deixem um comentário/critica sobre neste blog.