terça-feira, 10 de novembro de 2009

Crise na Ciência da Computação II

Eis uma entrevista que fiz com o professor Fábio Kon da USP e diretor do Centro de Competência em Software Livre (CCSL). A entrevista foi produzida para o trabalho de Oficina de Jornalismo II. Espero que gostem.

Ciência da Computação em Crise no Brasil

A criação da Semana Nacional da Educação em Ciência da Computação pelo Congresso dos Estados Unidos da América, no último dia 20 de outubro, desperta nos pesquisadores e docentes brasileiros a necessidade de avaliar os motivos da crise na Ciência da Computação no Brasil e pensar formas de amenizá-la. O professor Fábio Kon, livre docente da USP e diretor do Centro de Competência em Software Livre (CCSL) diz que as presenças de especialistas nas escolas do ensino médio e novas políticas públicas podem reverter essa tendência. Veja a entrevista concedida.

(André Leon Gradvohl) Recentemente, o Congresso dos Estados Unidos da América aprovaram uma resolução que determina a semana do dia 7 de dezembro como a Semana Nacional da Educação em Ciência da Computação. O que o sr. acha dessa medida?

(Fábio Kon) Tanto nos Estados Unidos quanto no Brasil a procura por cursos de Ciência da Computação e outras áreas relacionadas ao desenvolvimento de software tem caído bastante. Essa resolução do congresso americano demonstra que há uma grande preocupação por parte daquele país em relação a esse problema. A resolução afirma que a educação em Ciência da Computação promove a inovação e o crescimento econômico. Infelizmente, no Brasil, os congressistas provavelmente nem sabem o que é Ciência da Computação e nunca ouviram falar do assunto.

(ALG) Em sua opinião, por que existe pouca procura por cursos de computação no Brasil? Há algo que possa reverter essa situação?

(FK) Isso é um grande mistério. Eu imagino que seja porque antigamente a computação era considerada algo futurista e hoje não mais. O maior problema é que os jovens não sabem direito o que é um curso de Ciência da Computação. Muitos vestibulandos acham que é um curso para aprender a mexer no Windows melhor. Outros vestibulandos não entendem direito a diferença entre os vários cursos de Computação e acabam optando de forma errada.

Boa parte dos cursinhos orienta os alunos de forma errada também. Já ouvi falar uma vez que um cursinho de São Paulo orientava da seguinte forma: "se quiser fazer teoria, vá fazer Ciência da Computação, se quiser prática, vá fazer Engenharia da Computação"; isso está completamente errado.

Para reverter essa situação, a comunidade brasileira de computação, talvez através da [Sociedade Brasileira de Computação] SBC, deveria iniciar um movimento coordenado de promoção da área e de disseminação de informações sobre a área.

(ALG) Em sua opinião, que tipo de ações são necessárias para que os brasileiros percebam que a Computação é um motor de inovação também no Brasil?

(FK) É preciso uma maior presença de especialistas da área em escolas do ensino médio e cursinhos para esclarecer os jovens sobre as profissões relacionadas à computação. É preciso também uma articulação em níveis superiores do governo para que haja políticas públicas neste sentido.

(ALG) Qual o papel do software livre/aberto para a Ciência da Computação no Brasil?

(FK) O Software Livre permite que o conhecimento esteja disponível a toda a sociedade e que seja colaborativamente desenvolvido em benefício de toda a sociedade. Para o Brasil, ele representa a diferença entre determos o conhecimento sobre as ferramentas de uso diário que movimentam a sociedade da informação ou usarmos caixas-pretas que não sabemos o que têm dentro.

Para a economia brasileira, o software livre apresenta um potencial enorme para a criação de uma indústria nacional de serviços de TI. Infelizmente, esse potencial ainda é pouco explorado.

(ALG) O sr. é o coordenador do Centro de Competência em Software Livre (CCSL). Quais são os principais projetos em andamento e quais os resultados mais significativos do CCSL?

(FK) O CCSL do IME-USP foi fundado em janeiro de 2009, então estamos ainda engatinhando. Mas já temos mais de 12 projetos de desenvolvimento de software livre caminhando muito bem, quase sempre desenvolvidos por nossos alunos. Temos também várias pesquisas de iniciação científica, mestrado, doutorado e até pós-doutorado relacionadas ao software livre. Além disso, outras áreas de pesquisa de nosso departamento também disseminam conhecimento em suas respectivas áreas através de software livre. Finalmente, temos tido minicursos e palestras interessantíssimas de especialistas nacionais e internacionais da área. Boa parte desse material está disponível em nosso portal em http://ccsl.ime.usp.br

sexta-feira, 23 de outubro de 2009

Congresso americano cria a National Computer Science Week

O congresso dos EUA reconheceu que a Ciência da Computação é uma prioridade e seu ensino permite maior crescimento econômico e mais inovação tecnológica. O reconhecimento veio através de resolução 558 de 21 de outubro de 2009 que estabelece a semana do dia 7 de dezembro como a National Computer Science Education Week ou Semana Nacional da Educação em Ciência da Computação.

A primeira semana de dezembro foi escolhida como Semana Nacional da Educação em Ciência da Computação nos EUA em homenagem à sra. Grace Murray Hopper, uma das pioneiras da Ciência da Computação que nasceu no dia 9 de dezembro de 1906. Aliás, Grace Hopper também empresta seu nome ao prêmio dado pela ACM (Association for Computing Machinery) e pelo Google ao mais brilhante e jovem (35 anos ou menos) profissional da Computação. Veja a lista dos últimos contemplados em http://awards.acm.org/hopper

Bom seria se o congresso nacional brasileiro imitasse essa iniciativa também. Será que alguém tem alguma sugestão a respeito de que data poderia ser? Fica a pergunta.

terça-feira, 20 de outubro de 2009

II Desafio de Robôs USF

Olá Pessoal,

Eis os vídeos do II Desafio de Robôs da Universidade São Francisco, campus Itatiba. As imagens estão meio escuras, mas dá para ver que o desafio foi empolgante.

Parte I:



Parte II:

quarta-feira, 23 de setembro de 2009

Vídeo estimulante sobre carreira em Computação

Olá Pessoal,

Mais um vídeo sobre o que se pode fazer com Computação. Nele podemos observar três tendências básicas:
1. robótica;
2. interfaces humano-computador;
3. inteligência artificial.

Vale a pena! Veja:

quarta-feira, 9 de setembro de 2009

O futuro é agora?

Excelente vídeo com a reportagem de Fábio Gandour ao Espaço Aberto, da Globo News, sobre a questão do futuro hoje! Será que as ideias de ontem estão se concretizando hoje? Ou que o futuro nada mais é do que uma repetição do passado com uma nova estética?

Dê uma olhada e comente!


quinta-feira, 20 de agosto de 2009

Dados interessantes

Vejam o vídeo a seguir:



Nessas horas fico pensando porque os cursos da área de Computação não estão "bombando", cheios de alunos. Será que são cursos tão difíceis que o pessoal não tem coragem de cursar?

Em breve, coloco mais um vídeo que é tão interessante quanto este.

Até breve.

segunda-feira, 3 de agosto de 2009

Google versus Yahoo + Bing

Depois de alguns dias de férias, voltei à ativa. Na verdade não foram Férias com "F" maiúsculo. Mas pude dormir até mais tarde alguns dias.

Bom, voltando à vaca fria... Vamos discutir um pouco sobre essa fusão Micro$oft e Yahoo através dos motores de busca (search engines em inglês).

Para começar, o usuário não sentirá muita diferença entre ambos os buscadores (www.google.com ou www.bing.com). Ambos darão resultados semelhantes e a interface é muito parecida. É difícil dizer se os resultados de um são melhores que os resultados do outro. Contudo, é bem possível que o Google leve alguma vantagem por ser um buscador mais antigo e portanto com mais informações sobre as buscas anteriores dos usuários (maior page rank).

No entanto, a novidade da fusão fez com que a participação combinada Bing + Yahoo tirasse mais 1% da fatia do bolo dos buscadores. Atualmente o bolo está dividido da seguinte forma (junho, julho 2009):
Bing *
8.23%
9.41%
Yahoo!
11.04%
10.95%
Bing * & Yahoo! Combined
19.27%
20.36%
Google
78.48%
77.54%
Fonte: Statcounter

Bom, para terminar - na verdade, ainda não voltei totalmente das férias - a meu ver será difícil superar o Google nas buscas nos próximos meses. Mas vamos ver o que a Micro$oft ainda tem a dizer e qual será a contrapartida do Google.

quarta-feira, 8 de julho de 2009

Google Chrome OS - o novo sistema operacional do Google

Depois do Android - um sistema operacional leve, voltado para dispositivos portáteis como celulares e PDAs- o pessoal da Google resolveu investir no sistema operacional (SO) Chrome, projetado especialmente para notebooks e outros dispositivos que ficam ligados na web na maior parte do tempo. O lançamento está previsto para o 2o. semestre de 2010.


Cloud Computing
Aqui entre nós, é clara a iniciativa da Google em um conceito chamado Cloud Computing (prometo falar desse conceito em um outro post posterior - sem trocadilhos). Em linhas gerais, Cloud Computing ou computação nas nuvens é uma forma de acessar serviços - entenda-se uso de softwares - que estão disponíveis na web. Por exemplo: ao invés de utilizar um programa editor de texto no seu computador pessoal, você pode usar outro programa de edição de textos através do seu browser. Este outro programa está sendo executado em um servidor na web, portanto em outra máquina.

Na verdade, Cloud Computing é um nome novo para computação distribuída.

Características do
SO Chrome
Antes de mais nada, um sistema operacional que pretende ser voltado para a web deve ser muito leve. Em outras palavras, esse SO deve investir bastante no gerenciamento de entrada e saída (E/S), principalmente pela Internet e discos, e deixar um pouco de lado a parte de interfaces. Aliás, como boa parte das interfaces será implementada pela web, através do browser, não convém sobrecarregar o SO com o gerenciamento das interfaces.

Como não poderia deixar de ser, o SO Chrome terá um kernel baseado no sistema operacional Linux. Para quem não é da área, o kernel (núcleo) do sistema operacional é um conjunto de softwares responsáveis pelo gerenciamento de serviços básicos, e. g., abertura e fechamento de arquivos, conexões com a internet, gerenciamento de usuários, segurança etc.

Ter um kernel baseado em Linux significa segurança, robustez e leveza que são pré requisitos de um bom sistema operacional.

Dominação do Mercado
Dependendo da qualidade do SO Chrome, é bem possível que aquela empresa de software proprietário - Micro$-alguma-coisa - diminua sua fatia no mercado. Os seus sistemas operacionais costumam requerer muitos recursos, isto é, muita memória, muito disco. Com um sistema operacional mais leve, capaz de ser executado em plataformas mais baratas, talvez as pessoas optem pela mudança.

É claro que dois requisitos serão imprescindíveis para o sucesso do SO Chrome: uma placa de rede com altas taxas de transmissão e recepção e serviços de alta qualidade. Será necessário muito investimento no sistema, mas investimentos muito maiores na qualidade dos serviços prestados.

Em países como o Brasil, talvez o sucesso do SO Chrome demore um pouco mais.

Veremos!

terça-feira, 30 de junho de 2009

Firefox 3.5 - Shiretoko Shock

Shiretoko Shock é a campanha de lançamento do Firefox 3.5! Como não poderia deixar passar em branco - afinal também sou um entusiasta do Firefox -, aproveito para fazer minha parte na campanha! ;-)

Segundo o pessoal da Mozilla, organização que produz o navegador (browser), o objetivo da campanha é fazer um tsunami para o lançamento da nova versão do aplicativo para navegar na internet exatamente as 3:50 (o horário tem a ver com a versão do software 3.5 = 3:50). A Guerra dos Browsers vai continuar, pelo visto.

Dizem os desenvolvedores do Firefox 3.5 que o browser é duas vezes mais rápido que a versão anterior. Tenho minhas dúvidas sobre isso. Na verdade, nesse exato momento estou usando a versão beta4 do Firefox 3.5 e não notei tanta diferença assim. É claro que com a quantidade de plugins e abas que tenho abertas no momento (6 ao todo e 3 delas com sites que usam AJAX), talvez não sinta mesmo alguma diferença.

Bom, entre as principais features (funcionalidades) do browser estão:
  • Private browsing, isto é, navegação privativa. Em outras palavras, é uma forma de navegar pela internet sem que o seu percurso seja registrado no browser.
  • Location aware browsing que em português pode significar navegação sensível à localização. Traduzindo, o browser pode fornecer informações sobre o local - ponto geográfico - de onde você está acessando.
  • Suporte para HTML5, um novo padrão para a linguagem de hipertexto presente nas páginas da web - principalmente para áudio e vídeo.

Existem ainda outras funcionalidades que só interessam mesmo aos desenvolvedores mas que, acabam implicando em desempenho para os usuários finais.

É isso! Veja um vídeo com o resumo das funcionalidades (em inglês):

domingo, 28 de junho de 2009

Bibliometria x Cienciometria x Informetria -> Webometria

Indicadores de atividades científicas têm grande importância não só no meio acadêmico, mas também nos meios políticos e econômicos. Aliás, Robert K. Merton já havia definido as relações entre cientistas como um objeto de estudo da sociologia. Como tal, o reconhecimento de quem são os experts e quem são seus grupos é essencial para a manutenção do status quo.

Para reconhecer quem são os entes dominantes na Ciência, existem três linhas que pesquisam esses índices: Bibliometria, Cienciometria e Informetria.

Bibliometria
Segundo Tague-Sutcliffe, a bibliometria é o estudo dos aspectos quantitativos da produção, disseminação e uso da informação registrada. A Bibliometria, portanto, desenvolve padrões matemáticos para medir esses processos.

Os principais objetos observados pela bibliometria são livros, documentos, artigos e revistas, entre outros. O número de empréstimos, citações, referências, frequência de frases são os dados considerados através de rankings e distribuições.

Cienciometria
A Cienciometria por sua vez, ainda de acordo com Tague-Sutcliffe, é o estudo dos aspectos quantitativos da Ciência enquanto disciplina ou atividade econômica. A Cienciometria se sobrepõe à Bibliometria, visto que a primeira ajuda a estabelecer políticas científicas.

Os principais objetos são as disciplinas da Ciência, os assuntos, as áreas, os campos. Observa-se principalmente a forma como os cientistas se comunicam, através de periódicos, livros, eventos etc e onde os assuntos estão se concentrando.

Informetria
A Informetria também de acordo com Tague-Sutcliffe se ocupa da ocorrência de palavras, documentos, bases de dados etc. Nesse caso, a informetria mede a quantidade de recuperação de documentos, sua relevância (numéro de links para esse documento, por exemplo), a revocação etc. O principal objetivo da Informetria é a melhoria da eficiência na recuperação dos documentos.

Qual a relação com a Ciência da Computação?
É claro que para obter as informações que a Bibliometria, a Cienciometria e a Informetria precisam, é necessário conhecer técnicas de bancos de dados que possa contabilizar todas as informações. Mas muito mais do que isso, a Informetria depende de uma série de algoritmos que também são pesquisados pela Ciência da Computação.

O Google usa muitas dessas técnicas para rankear (classificar) as páginas mais relevantes. Uma delas, chamada Lei de Zipf, também conhecida como Lei do Mínimo Esforço, mede a frequência do aparecimento das palavras em vários textos e gera uma lista ordenada de termos.

Webometria
Com tantos avanços, não seria possível esquecer da maior fonte de pesquisas da atualidade: a Internet. Assim, segundo Björneborn and Ingwersen (2004), Webometria é o estudo de aspectos quantitativos da construção e uso de recursos, estruturas e tecnologias da Web. Nesse sentido, há uma confusão dos autores sobre o que é Web e o que é Internet. É claro que a segunda é mais ampla, pois incorpora a primeira.

Nesse caso ainda há muitas métricas a se desenvolver. Tudo indica que será um campo bem vasto para pesquisas e que vai aproximar mais ainda a Ciência da Computação da Ciência da Informação.

Bibliografia
TAGUE-SUTCLIFFE, J. An introduction to informetrics. Information Processing & Management, v. 28, n. 1, p. 1-3, 1992.

BJÖRNEBORN, L. e INGWERSEN, P. Toward a basic framework for webometrics. Journal of the American Society for Information Science and Technology 55 (14): 1216–1227.

domingo, 21 de junho de 2009

Bioinformática

Definições

A bioinformática é uma aplicação da tecnologia da informação na biologia molecular. A biologia molecular, por sua vez, se ocupa da compreensão da interação entre as moléculas de um sistema celular, incluindo as moléculas de DNA, RNA e a biosíntese de proteínas.


Entre as principais atividades da bioinformática estão o mapeamento e análise do DNA e sequências de proteínas; alinhar diferentes sequências de DNA e proteínas; compará-las; criar e visualizar modelos em três dimensões das estruturas protéicas. Para tanto, algumas técnicas computacionalmente intensiva são bastante aplicadas. Por exemplo: mineração de dados, algoritmos para aprendizado automático e técnicas de visualização.


Subáreas

Entre as subáras da bioinformática estão as seguintes:
  1. Alinhamento de sequências: estratégias de arranjos de sequências de DNA, RNA ou proteínas para identificar regiões de similaridade que podem ser consequências de relações funcionais, estruturais ou evolucionárias entre sequências.

  2. Sequenciamento de genoma (Genômica): processo de marcação de genes e outras características biológicas no DNA. No sequenciamento, tenta-se associar trechos de sequências de DNA a características biológicas.

  3. Proteômica: estudo das proteínas, em particular suas estruturas e funções. Nesse caso, a estrutura em três dimensões provê informações para o desenvolvimento de drogas para interferem na ação de proteínas.

A relação com a Computação

A relação de Biologia com Computação exige algoritmos bastante robustos e com alta complexidade. Há muita informação codificada em DNAs. Por isso, a busca e decodificação dessas informações exige muito tempo computacional. Nesse sentido, o desenvolvimento de algoritmos capazes de tratar grandes volumes de informação são o grande foco da bioinformática.

Existe uma grande lista de laboratórios que tratam desse tema no Brasil. Essa lista está disponível em http://pt.wikipedia.org/wiki/Laboratórios_de_Bioinformática_do_Brasil

Para mais informações sobre o assunto, veja o site http://www.comciencia.br/reportagens/bioinformatica/creditos.shtml

quarta-feira, 27 de maio de 2009

Onde melhor publicar: revistas científicas, conferências ou livros?

Uma das discussões que retornam com frequência entre os cientistas da computação é onde publicar, ou melhor, em que meio a publicação pode ter maior impacto. Diferente das Ciências Hard Core ou do "núcleo duro" (particularmente não gosto muito dessa tradução), e. g. Física, Química e Biologia, onde a publicação em periódicos científicos é mais valorizada, na Ciência da Computação esse nem sempre é o melhor caminho.

Periódicos ou Conferências?
Em um artigo intitulado "Research evaluation for computer science" publicado em abril deste ano (2009) na ACM Communications e já citado em um post anterior, os autores defendem que por ser uma área de conhecimento que combina Ciência e Engenharia, a avaliação de pesquisas em Ciência da Computação não pode usar a mesma metodologia que se adota nas ciências do Hard Core.

Além disso, uma parte importante da Ciência da Computação produz artefatos (entenda-se sistemas e software). Na maioria das vezes, esses artefatos têm impacto maior do que uma publicação em um periódico. Afinal, o software chega mais rápido à comunidade do que o artigo em um periódico, cujo tramite do envio até a publicação por vezes é bastante demorado.

Exemplo prático? Que tal o algoritmo Page Rank que o Google usa para determinar a popularidade de uma página na WWW baseado na quantidade de links para aquela página (Sergey Brin and Lawrence Page: The anatomy of a large-scale hypertextual Web search engine, in Computer Networks and ISDN Systems, 33: 107-17, 1998). O impacto que o algoritmo em si teve na sociedade certamente é muito maior do que o impacto do artigo.

Também no editorial da ACM Communicatios de Maio de 2009, o editor Moshe Y. Vardi argumenta que a comunidade de cientistas da Computação talvez seja a única que prefere a publicação em conferências do que em qualquer outro meio (periódicos ou livros). Ainda segundo Vardi, essa preferência foi legitimada pelo artigo "Evaluating Computer Scientists and Engineers for Promotion and Tenure" publicada pela "Computing Research Association".

O critério Qualis-CC
A discussão ocorre inclusive no âmbito brasileiro. Na lista de discussão da Sociedade Brasileira de Computação (SBC-L), em maio deste ano principalmente, muito se discutiu sobre o critério de indexação que a CAPES está utilizando, o chamado Qualis-CC.

Em resumo, nem todos os pesquisadores estão de acordo com os critérios adotados pela CAPES. O principal argumento é que a área de Ciência da Computação é multidisciplinar por natureza e, por isso, nem sempre uma publicação que não é muito citada por outras publicações deve ser avaliada como de baixo impacto. Na área de Ciência da Computação, por vezes algumas publicações geram produtos que não são descritos em periódicos científicos, mas têm grande relevância na sociedade.

E os Livros?
Ainda na área de Computação, os livros têm um papel importante. Além de consolidar alguns conhecimentos, há muito mais espaço para explicar e detalhar as ideias. O principal exemplo é a série de livros "The art of computer programming" de Donald E. Knuth, onde os algoritmos mais importantes para qualquer ramo da Ciência da Computação são detalhados.

Por outro lado, nem sempre os livros não passam por um comitê de especialistas de peso como pretensamente passam os artigos para as conferências ou periódicos científicos. Claro que existem editoras mais conceituadas que tem essa preocupação, mas sabe-se que não são a maioria.

Portanto...
É evidente que não existe demérito algum em publicar em periódicos, conferências ou livros. O importante é produzir conhecimento e ter uma maneira justa de avaliar o impacto dessa produção.

A grande questão é como medir o impacto dessas diferentes formas de divulgação do conhecimento. São meios e características diferentes, por isso é praticamente impossível ter uma única metodologia para todos. No entanto, não se pode desprezar nenhum deles.

sexta-feira, 15 de maio de 2009

Será o começo do fim do Google?


Este blog agora abre espaço para discutir um pouco de Tecnologia. Bom a pergunta no título pode parecer uma previsão que nunca vai se concretizar. Mas alguns acontecimentos nos últimos dias (14 de maio e 7 de maio) parece indicar que existe uma chance de que o começo do fim do Google está iniciando. Vamos ver os fatos.

Como se sabe, desde que foi fundado em 1996 - naquela época já consumindo muita largura de banda - o Google vem crescendo e recentemente, nos últimos cinco anos, tem adquirido vários outros serviços na rede. Entre eles estão o próprio buscador Google, o serviço de e-mail GMail, YouTube, Orkut, Mapas, Google Earth, GoogleDocs e até mesmo o servidor que suporta este blog. Com tantos serviços assim, imaginem a quantidade de pessoas e equipamentos mobilizados para prestar esses serviços.

A empresa Google.
Bom, o Google é uma empresa de capital aberto e, portanto, não basta prestar serviços. É importante prestar serviços de qualidade e que façam com que seus consumidores não pensem em outras alternativas quando precisam de algo na internet. Vale lembrar que o Google não é uma empresa "comunitária" e que presta serviços de graça. É uma empresa de Propaganda cujo principal serviço é divulgação direcionada para perfis específicos de usuários. Qualquer profissional de Marketing sabe que quando se tem um alvo específico, fica muito mais fácil tornar a divulgação eficiente.

Quer um exemplo? Está vendo esses links no começo da página, à direita? Note que todos eles são vinculados de alguma forma à Computação. A razão disso é que, como o Blog tem esse assunto como principal, o Google supõe que todos os interessados que lêem este post também estão interessados em produtos ligados à Computação. Por isso tantas propagandas sobre isso.

Experimente buscar algo no serviço de buscas. Verá que ao lado, na seção "links patrocinados" aparecerão vários produtos relacionados. E isso funciona para todos os serviços que o Google presta.

O conceito de Escalabilidade
Mas voltemos ao assunto principal do post. Por que pode ser o começo do fim do Google? A razão para essa especulação é um conceito chamado escalabilidade. Em redes de computadores ou sistemas distribuídos, escalabilidade é um conceito essencial. Basicamente, um sistema é escalável se, ao crescer em número de equipamentos (processadores, número de conexões, capacidade de armazenamento em disco), a sua capacidade computacional cresce proporcionalmente. Alguns sistemas têm um limite para escalabilidade.

Vejamos uma metáfora que explica bem o conceito. Imagine que você é um gerente em um restaurante com 3 garçons e você precisa gerenciá-los para atender os pedidos da sua clientela. Você quer aumentar a clientela, portanto o ideal é contratar mais garçons. A princípio o restaurante consegue atender mais clientes, mas a sua capacidade de gerenciamento fica mais difícil. Uma hora vai acontecer que haverão muitos clientes, mas você não pode aumentar o número de garçons porque você não consegue gerenciá-los. Alguns clientes ficarão insatisfeitos com o serviço e migrarão para a concorrência.

No caso descrito, o Google é o gerente, os garçons são os vários computadores (servidores) do Google e os clientes somos todos nós que utilizam o serviços. Para aqueles que querem uma visão mais técnica de como funciona o sistema de buscas no Google, acesse este endereço: http://www.google.com/corporate/tech.html

Começo do fim?
Enfim, se por um lado há uma capacidade computacional limitada - mesmo para uma empresa de capital aberto como o Google -, por outro há cada vez mais pessoas conectadas a mais tempo na rede. Ao não terem suas expectativas atendidas por um prestador de serviço, é natural que as pessoas busquem serviços alternativos. Isso causa um desinteresse dos investidores na empresa que diminuem seus investimentos. Com menos capital para investir, não se pode crescer, gerando mais descontentamento e entrando em uma espiral negativa.

É claro que estou especulando, mas muitas empresas de Internet terminaram assim. Lembra do Alta Vista, Netscape, Mosaic? Por que não o Google? Será que é o começo do fim?

quinta-feira, 23 de abril de 2009

Do que trata a Ciência da Computação.

Acredito que o título desse artigo é a principal dúvida da maioria das pessoas quando se depara com as palavras "Ciência da Computação". Afinal, o que essa ciência estuda? A que ela se propõe? Quem se forma nisso é o quê?

Seria muita prepotência da minha parte esgotar o tema. Por outro lado, como membro dessa área e educador, me sinto na obrigação de tentar esclarecer um pouco as dúvidas ou, pelo menos, indicar os caminhos.

"Vamos por partes" - como diria René Descartes e não Jack, o estripador.

O que essa ciência estuda?


O principal foco da Ciência da Computação é o estudo de Algoritmos e suas aplicações. Algoritmos são sequências de instruções, finitas, bem definidas, para a solução de um problema. Quando codificados em uma linguagem de programação, os algoritmos se transformam em programas de computador.
Parece trivial, não é? Afinal, até quando estamos escrevendo uma receita de bolo, estamos escrevendo um algoritmo.

Bom, na verdade, não é tão trivial assim. Afora essa sequência de passos, a Ciência da Computação estuda as estruturas de dados, ou seja, formas de armazenar os dados que os programas tratam na memória. As estruturas de dados podem influenciar na velocidade de execução do programa e no tamanho de memória que o programa necessita para execução. Por isso, saber como criar estruturas de dados na memória é essencial para um bom programa de computador.

Além dos algoritmos, a Ciência da Computação também estuda as plataformas onde esses algoritmos são executados. Entende-se por plataforma a combinação entre hardware e software básico. Em outras palavras, a Ciência da Computação também estuda a arquitetura dos computadores (como combinar os circuitos para fazer as operações básicas de lógica e matemática, para implementar a memória etc), os sistemas operacionais (um conjunto de operações básicas para gerência do computador) e as redes de computadores.

Há ainda as técnicas de engenharia de software que define e aplica práticas para o desenvolvimento de software e gerência de projetos nessa área. Essas prática englobam práticas englobam linguagens e técnicas de programação, modelos, processos, bancos de dados e várias outras técnicas para desenvolver software de qualidade.

Também não se pode esquecer das aplicações desses algoritmos. Entre essas aplicações estão as técnicas de computação gráfica, inteligência artificial, etc.

Enfim, como se pode notar, a Ciência da Computação é uma área bastante abrangente e muito interessante.

A que ela se propõe?


Toda ciência se propõe a explicar fenômenos através de formalismos e linguagens próprias. A Ciência da Computação não é diferente. O fenômeno que tenta explicar é o da transformação ou processamento da informação.

Importa ressaltar que transformação da informação não significa adulteração. Transformar ou processar nesse sentido significa obter novas associações ou relações entre informações e com isso obter outras novas informações.

Para ilustrar melhor, imagine um banco de dados simples com informações sobre nomes e notas de alunos. Se esse banco de dados puder fornecer informações sobre quantos alunos obtiveram notas acima da média, isso é uma nova informação obtida através do processamento das informações que já estavam no banco de dados.

É um exemplo bem simples, mas ilustra o fato que o processamento de informações pode gerar novas informações.

Quem se forma nisso é o quê?

Quem se forma em Ciência da Computação é Bacharel em Ciência da Computação. Não é analista de sistemas, nem programador, nem tampouco "computeiro". Aliás, é importante ressaltar que essa profissão não é regulamentada. Em outras palavras, não existe um conselho regional de computação, nem nenhum outro órgão de classe de classe que estabeleça normas para o exercício da profissão.

A falta de um órgão de classe tem vantagens e desvantagens. A meu ver, a principal desvantagem é que qualquer um pode se dizer analista de sistemas. Mesmo que não tenha sido formado para isso. Ou seja, matemáticos, engenheiros, administradores, físicos, programadores, técnicos em computação, enfim, qualquer um pode dizer que é um analista de sistemas.

Por outro lado, nenhum órgão de classe vai exigir que se pague a anuidade para poder exercer a profissão, como acontece com engenheiros e arquitetos. Enfim, um profissional da computação é livre para desenvolver software ou hardware da forma que desejar. É claro que existe uma questão ética envolvida nisso que gostaria de discutir em outro post.

Por ora, é necessário afirmar que o bacharel em Ciência da Computação é um profissional que pode atuar em um grande número de áreas diferentes, pois é uma atividade-meio. Em outras palavras, a Ciência da Computação dá suporte às atividades que compõem os objetivos da instituição. Por exemplo, em uma produtora de Cinema, o bacharel em Ciência da Computação pode desenvolver algoritmos que façam a animação de personagens.

Portanto, Ciência da Computação é uma área muito interessante e lida basicamente com o tratamento de informações em qualquer contexto. Afinal, em um mundo onde informação é poder, que tem informações está com a faca e o queijo nas mãos.

Para saber mais dê uma olhada nos artigos "Research evaluation in computer science" e "Is Computer Science Science?"

terça-feira, 7 de abril de 2009

Crise na Computação.

A Computação está em crise?
Segundo o Ministério da Educação, em reportagem publicada pela Folha (saiba mais aqui), os estudantes de ciências da computação, matemática e administração estão entre os que mais abandonam o ensino superior. A evasão média nessas áreas é de 28%. Entre as razões está a complexidade do curso de Ciência da Computação.

De fato, os conhecimentos da área de Computação não são triviais. Exige-se muito raciocínio lógico e abstrato - que também é exigido em Matemática, diga-se de passagem. No entanto, o estudante da área de Computação - seja ciência, engenharia ou tecnologia - tem expectativas que nem sempre são alcançadas nos primeiros semestres de curso.

Conversando com alguns estudantes ingressantes na universidade que leciono, percebi que alguns querem ser hackers, desenvolvedores de games ou desenvolver outras habilidades que consideram mais interessantes. No entanto, o que eles eles não consideram é que, para desenvolver essas habilidades, é necessário construir conhecimentos básicos principalmente na matemática, na lógica e em outros fundamentos. Depois dessa iniciação é que eles terão as credenciais para entrar na parte "interessante" da Computação.

Por outro lado, o mercado de trabalho também fomenta essa crise de uma forma muito paradoxal. Explico melhor: como o setor de TI está precisando de mão de obra, o pouco conhecimento acumulado nessa área já é suficiente para a contratação. Por isso, as vezes, nem é necessária uma formação completa no nível superior para ter um salário razoável (Veja aqui uma tabela de salários). Por isso, muitos estudantes, quando adquirem um certo nível de conhecimento, acabam evadindo, pois já atingem uma faixa salarial que julgam suficiente. Aí está o paradoxo: o mercado necessita de uma formação melhor, mas acaba encurtando o tempo de formação porque contrata logo. Esse paradoxo acaba fomentando a crise na área.

Inauguração

Inauguração do blog Computação e Ciência.

Hoje (7 de Abril de 2009), inicia-se o blog Computação e Ciência. Entre os objetivos desse blog estão:
  • Servir como plataforma para publicação de textos relevantes na área da Computação.
  • Discutir o papel da Computação no âmbito das Ciências de modo geral.
  • Discutir o papel do profissional em Computação na sociedade, em particular na brasileira.
São poucos objetivos, mas muito assunto para tratar.

Sejam bem vindos!