terça-feira, 7 de julho de 2009

Alice - Ambiente didático de programação

Em conjunto, aqui mostramos a nossa análise do ambiente Alice.

O sistema Alice é um ambiente didático 3D para o aprendizado de programação, desenvolvido pela Carnegie Mellon utilizando-se Java. O Alice propõe uma nova forma de se aprender programação: em vez de se programar em telas em branco, digitando-se linhas e mais linhas de código e em troca receber mensagens de erro nada animadoras como "Segmentation Fault", aprende-se a programar com objetos comuns, em situações cotidianas. Basta inserir as ações desejadas e clicar em play para rodar um filme que exibe a rotina criada pelo usuário.

Figura 1 - Tela de edição do Alice

Um breve diário da nossa experiência: após o download no computador (aliás, nem houve instalação, bastou baixar e rodar o aplicativo, o que é muito prático), ao abrir o programa temos um tutorial bem passo-a-passo para orientar o novo usuário, mostrando a divisão das telas e um exemplo de execução. O vocabulário é um pouquinho complicado, mas para um nativo de país de língua inglesa a linguagem parece aceitável, mesmo se for uma criança. Ao se cometer um erro no tutorial, o sistema pede para voltarmos um passo, impedindo o usuário de se dispersar dos ensinamentos que o tutorial oferece.

Ao fim do primeiro tutorial, poderia ter sido avisado para se clicar no botão "Exit Tutorial" ou em "Next Chapter", que ficaram meio escondidos, podendo passar despercebido. Seria melhor que elas ficassem próximas às notas de leitura. A organização sequencial de métodos é bem intuitiva, bastando clicar e arrastar para se alterar a ordem dos métodos. Porém, algumas funcionalidades mais avançadas, como o "Do Together", poderiam ter sido melhor explicadas. Os outros tutoriais aprofundam as possibilidades do sistema. Aprende-se a criar novos métodos para objetos, novos eventos e novos ambientes, dando cada vez mais liberdade para o usuário criar seu mundo.

Nos tutoriais, tudo correu bem, mas ao criarmos nosso próprio mundo, percebemos que alguns detalhes poderiam ser melhorados:o sistema não é tão intuitivo, ferindo o paradigma de reconhecimento em vez de relembrança: depende-se muito do aprendizado no tutorial, é um pouco difícil aprender funcionalidades novas. Os botões de Undo e o Redo não funcionaram perfeitamente, pois ocorrem várias falhas de renderização ao se editar muito os objetos. Houve também uma certa dificuldade em manter os gráficos "realistas", como os personagens sempre em cima do chão em vez de flutuando, por exemplo. Ao criarmos um novo método, nós não podemos digitá-lo diretamente, apenas arrastar blocos como if/else, for e while. Em boa parte dos casos, isso é bom pois torna erros de sintaxe impossíveis. Porém, isso tira flexibilidade que usuários mais experientes poderiam ter.

Figura 2 - Rodando a rotina em filme

Apesar desses detalhes, em geral o sistema atende bem ao que se propõe: facilitar o aprendizado de programação permitindo ao usuário manipular sua rotina, seja através de eventos como clique ou teclado, seja através da criação de rotinas. Aliás, essa ideia de substituir o uso de código por funcionalidades como clicar e arrastar nos lembra muito o que fazíamos em VB e Delphi, com a diferença que aqui essa opção é obrigatória, não há como programar diretamente.

Existe uma demanda crescente por mais programadores, resultado da democratização dos computadores e do aumento do uso de serviços web. Infelizmente, o Brasil está muito atrás de países semelhantes, como Índia e China, formando pouquíssima mão-de-obra qualificada para programação. Métodos ou ferramentas de ensino que facilitem isso são muito bem-vindos, e o Alice é um ótimo exemplo. Inclusive, ele é voltado para o paradigma da moda, Orientação a Objetos, já que cada item do ambiente possui seus métodos e variáveis, e não há interferência direta (apenas através de chamada de métodos) entre cada objeto do ambiente.

Porém, em parte achamos que o sistema precisa ligar melhor o usuário ao mundo da programação: o tutorial não aborda o uso de estruturas lógicas como if/else, for, e utilização de vetores. Sem essa abordagem, acreditamos que ainda haverá um choque muito grande quando o novo programador for utilizar linguagens de programação reais. É importante incentivar o novo programador a dominar essas estruturas, pois ele com certeza precisará delas. Poderia também haver um modo de programação direta, afinal ter erros de sintaxe também faz parte do aprendizado.

domingo, 5 de julho de 2009

Chrome - Análise de Usabilidade

Colocando mais lenha na fogueira da guerra entre navegadores, o Google lançou recentemente seu novo navegador, o Chrome, para concorrer com o Internet Explorer, da Microsoft, e o Mozilla Firefox, uma versão de código aberto, da Mozilla Foundation.

O texto a seguir mostra várias novas características do Chrome. Algumas delas são técnicas, como o fato do Chrome rodar Javascript com grande desempenho, ou criar um processo para cada nova aba, tornando a aplicação mais segura a falhas.

Porém, o foco do texto com certeza são as melhorias de usabilidade do Chrome. Uma delas é a primeira página conter miniaturas dos sites mais visitados, bastando clicar nelas para abrir a página, o que é muito mais prático que digitar todo o endereço no navegador. Outra praticidade é usar o mesmo espaço usado para digitar os endereços também ser usado para pesquisar termos em sites de busca, uma novidade. Obviamente, o Google é o buscador padrão, mas isso pode ser alterado.

Outra pequena novidade é, ao apertarmos Ctrl em um link, abrirmos esse link em uma nova aba. Isso, os outros browsers também faziam. Mas o Chrome foi o primeiro a colocar a nova aba ao lado da atual, em vez de inserí-la ao final da lista de abas. Isso faz muito sentido, pois assuntos semelhantes ficam agrupados, permitindo uma melhor organização das abas.

Para finalizar, temos outras duas novidades: o modo de navegação anônimo, que permite navegação sem salvar cookies ou endereços no navegador. E a busca interna (Ctrl + F), que é muito mais agradável que no Internet Explorer: em vez de abrir uma janela no meio do navegador, cortando completamente a interação com o site, o Chrome abre uma pequena aba em cima, onde indica os resultados da busca do termo na página, e indica na barra de rolagem suas ocorrências. Conveniente, não?

Confira o texto na íntegra aqui: http://www.interney.net/blogs/alexprimo/2008/09/16/ana-225-lise-da-interface-do-google-chro/

sábado, 4 de julho de 2009

NeuroFocus - A Ciência da Compra

Nesta matéria, o Discovery Channel exibe a NeuroFocus, uma empresa de Neuromarketing na Califórnia, que possui atualmente um grande centro de pesquisas para mapear como o cérebro humano reage às diferentes formas de propaganda.

Segundo o CEO da NeuroFocus, Dr.A.K.Pradeep, o impacto da propaganda pode ser medido em três fatores: atenção (o quanto o consumidor reparou naquele produto?), emoção (como ele reagiu a essa propaganda?) e memória (ele se lembrará de comprar o produto após a propaganda?).

Através de pesquisas anteriores feitas sobre transtornos cerebrais, como Transtorno de Falta de Atenção e Mal de Alzheimer, a neurologia se desenvolveu bastante, aprendendo a mapear com cada vez mais precisão quais zonas cerebrais são responsáveis por quais características humanas, como a memória, a tomada de decisão, o sentimento de bem-estar, e a concentração.

Confira o vídeo logo abaixo:

sexta-feira, 3 de julho de 2009

Prototipagem de Software do ponto de vista do Design de Interfaces

A prototipagem de software é um método que pode ser utilizado em várias etapas da produção de uma aplicação. A idéia é criar uma espécie de rascunho do sistema, o que pode ser feito usando desde ferramentas simples como papel e lápis, até os próprios construtores de interfaces que seram usados no projeto. Para a Engenharia de Software a criação de protótipos traz diversas vantagens, como uma melhor definição dos requisitos e uma diminuição na quantidade de retrabalho, já que é possível prever e corrigir certas inconsistências ainda na fase inicial.

No lugar em que eu faço estágio, usamos protótipos de papel no início de um projeto para delimitar melhor o trabalho a ser realizado e até ajudar o cliente a descobrir o que ele precisa. Um problema que costumava ocorrer com bastante frequencia, era a requisição de diversas alterações na interface depois do sistema estar pronto. Além de contraproducente, o retrabalho era desestimulante para a equipe de desenvolvimento. Dessa forma, identificamos a necessidade de aproximar mais o cliente do sistema, antes mesmo da entrega final.

Os protótipos de papel foram escolhidos pela facilidade de criação, baixo custo e versatilidade. É possível visualizar rapidamente várias alterantivas para uma interface, a interação entre os componentes e levantar questões sobre a disposição das informações na tela. Depois, cada uma das telas criadas serve como base para a especificação das funcionalidades. Com o progresso do desenvolvimento os protótipos de papel são gradualmente substituídos por protótipos mais fiéis, feitos no computador.

Um ponto que, por causa do custo, pode ser considerado uma desvantagem, mas que é um dos diferenciais do método que adotamos, é que o cliente deve acompanhar de perto todas as fases da produção do sistema. Assim, conseguimos obter uma interface muito mais próxima do esperado pelo usuário final.

Bom Design, Boas Vendas

Já se sabe que quanto melhor a usabilidade de um sistema de vendas Web, maior será o lucro. Grandes empresas como IBM viram seu faturamento aumentar bastante em função de uma melhoria na usabilidade.
A facilidade de encontrar o que se deseja aliada a velocidade da compra, são fatores de peso nas vendas. Nesse contexo, Jakob Nielsen define 10 prioridades para um design de alta lucratividade.

Confira no link:
http://www.useit.com/alertbox/high-roi.html

quinta-feira, 2 de julho de 2009

Lembretes escritos no ar?

Quem nunca precisou anotar alguma informação, seja telefone ou endereço de uma pessoa ou loja, ou precisava marcar um lembrete para um compromisso importante e ficou em busca de uma caneta e um papel ou em alguns casos teve que confiar na memória e acabou esquecendo?!
Uma solução tecnológica para isso seria utilizar um celular com acelerômetro (componente responasável do celular de verificar os movimentos feitos pelo usuário, como exemplo virar a tela de acordo com a posição do celular) e escrever no ar. Depois disso ele envia este lembrete para o e-mail desejado ou para o Twitter. Ainda possui restrições, como ter que escrever mensagens curtas (são lembretes, deveriam ser textos curtos mesmo!) ou diagramas simples, assim como ter q escrever com letra grandes e pausadamente. O que esperam ser corrigidos na sua versão 2.0.

Abaixo o link de onde o texto foi retirado:

Tradução de páginas de internet para braile

Procurando assuntos sobre interfaces, achei este uma matéria sobre este projeto em desenvolvimento no Brasil, que traduz o texto das páginas de internet para braille.
Consiste em um dispositivo eletromecânico, que funciona em tempo real, que seria capaz de exibir todos os diferentes sinais do alfabeto braille em uma matriz de pontos que se elevam e abaixam em uma superfície de referência. Agrupando vários dispositivos em um teclado de leitura, que recebe as informações a serem exibidas em braille de um processador que executa essa tradução, seria criado um dispositivo para a leitura do deficiente visual.
A matéria foi retirada do link abaixo:

http://www.inovacaotecnologica.com.br/noticias/noticia.php?artigo=equipamento-desenvolvido-brasil-traduz-paginas-internet-braille&id=010150090622

O link de origem da matéria:

http://www.agencia.fapesp.br/materia/10644/especiais/internet-em-braille.htm

E um vídeo que ilustra a idéia deste dispositivo:

"If It Feels Good Do It" : Using Neuromarketing to Go Beyond

Enteder o funcionamento do cerebro é essencial para criação de boas propagandas. Porém, podemos usar esse conhecimento para criar também interfaces ou jogos de melhor qualidade. Nessa palestra do Google Tech Talks, André Marquis irá mostrar o poder das emoções no Universo da Propaganda. Elas são a origem de tudo, o cerebro obece ao modelo "feel -> do -> think". Por isso, um anúncio ou uma interface deve explorá-las da melhor maneira possível para que resultados desejados sejam atingidos.