<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PauloMotta.pro &#187; ALGORITMOS</title>
	<atom:link href="http://www.paulomotta.pro.br/tag/algoritmos/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.paulomotta.pro.br</link>
	<description>&#34;Qualquer tecnologia suficientemente avançada é indistinguível da mágica&#34; - Arthur C. Clarke</description>
	<lastBuildDate>Fri, 03 Sep 2010 11:39:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Previsão programada</title>
		<link>http://www.paulomotta.pro.br/2010/08/23/previsao-programada/</link>
		<comments>http://www.paulomotta.pro.br/2010/08/23/previsao-programada/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 18:01:16 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Inovação]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[Tendências]]></category>
		<category><![CDATA[ALGORITMOS]]></category>
		<category><![CDATA[ANÁLISE]]></category>
		<category><![CDATA[Ciências]]></category>
		<category><![CDATA[DISTRIBUIÇÃO]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[PARALELISMO]]></category>
		<category><![CDATA[Pesquisa]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>
		<category><![CDATA[WEB]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=839</guid>
		<description><![CDATA[A Google está lançando uma nova API de previsão que permite aos desenvolvedores incorporarem à suas aplicações o uso dos algoritmos de aprendizado de máquina da Google através de webservices RESTful. Através da análise de dados enviados para para os algoritmos você consegue mais informação dos seus usuários, desde a língua que usam até possíveis [...]]]></description>
			<content:encoded><![CDATA[<p>A Google está lançando uma nova API de previsão que permite aos desenvolvedores incorporarem à suas aplicações o uso dos algoritmos de aprendizado de máquina da Google através de webservices RESTful. Através da análise de dados enviados para para os algoritmos você consegue mais informação dos seus usuários, desde a língua que usam até possíveis interesses por compras ou mesmo comportamento suspeito. Aqui tem um vídeo de apresentação sobre a API, e a página oficial pode ser encontrada <a href="http://code.google.com/intl/pt-BR/apis/predict/" target="_blank">aqui</a>. Infelizmente ainda é uma coisa restrita apenas para quem for convidado e residente nos EUA.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/dbkwv1wjs3A" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/dbkwv1wjs3A"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/08/23/previsao-programada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>O que deve saber um programador &#8211; nível zero?</title>
		<link>http://www.paulomotta.pro.br/2010/08/18/o-que-deve-saber-um-programador-nivel-zero/</link>
		<comments>http://www.paulomotta.pro.br/2010/08/18/o-que-deve-saber-um-programador-nivel-zero/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 16:00:33 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ALGORITMOS]]></category>
		<category><![CDATA[JAVA]]></category>
		<category><![CDATA[LINGUAGEM]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=801</guid>
		<description><![CDATA[Semana passada eu comentei do que acho que é necessário que um programador nível básico precisa saber, enquanto escrevia pensei que para chegar ao nível básico o aspirante precisa passar por um caminho inicial até chegar no ponto de começar a aprender o que vai torná-lo enfim um programador nível básico.
Então sem mais delongas vamos [...]]]></description>
			<content:encoded><![CDATA[<p>Semana passada eu comentei do que acho que é necessário que um programador nível básico precisa saber, enquanto escrevia pensei que para chegar ao nível básico o aspirante precisa passar por um caminho inicial até chegar no ponto de começar a aprender o que vai torná-lo enfim um programador nível básico.</p>
<p>Então sem mais delongas vamos listar os passos necessários para percorrer esse caminho:</p>
<ol>
<li>Estude introdução a algoritmos &#8211; nesse tópico não estou falando de algoritmos sofisticados e sim da primeira etapa onde aprendemos a fazer pequenos algoritmos em pseudo-linguagem ou portunhol que geralmente descrevem os passos para fazer um bolo. Entenda como descrever os passos para resolver um problema de forma estruturada e lógica.</li>
<li>Saiba lógica matemática &#8211; sim a boa e velha tabela verdade, é necessário entender como funcionam as relações lógicas. Principalmente AND, OR e NOT.</li>
<li>Estude uma linguagem de programação &#8211; usando o manual da linguagem, aprenda as palavras reservadas, os comandos e blocos de construção de programas. Usando Java como exemplo temos a seguinte lista:
<ol>
<li>Tipos de dados &#8211; int, long, short, byte, char, float, double e boolean</li>
<li>Operadores &#8211; +, -, *, /, %, &lt;, &gt;, &lt;=, &gt;=, !=, == e alguns outros</li>
<li>Estruturas de decisão &#8211; if e switch</li>
<li>Estruturas de repetição &#8211; for, while e do/while</li>
<li>Declaração de métodos (ou funções se fosse em C)</li>
</ol>
</li>
<li>Faça muitos exercícios &#8211; uma coisa que as pessoas demoram a entender (ou aceitar) é que programação precisa de exercício, o programador precisa ser capaz de entender o problema em termos de construções básicas que fazem parte da linguagem com a qual trabalha. Precisa ser capaz de expressar a solução com essas construções e quanto mais programamos mais rapidamente identificamos quais serão os itens que expressarão a resposta. Uma estratégia que estou pensando que pode funcionar (tive essa ideia pensando na forma como estudamos música) é refazer os programas que já foram feitos várias vezes, não estou falando de escrever o programa copiando, e sim de resolver os mesmos problemas várias vezes adicionando um ou dois novos problemas por semana, aos poucos ganha-se mais experiência e mais confiança na resolução de problemas.</li>
<li>Aprenda a escrever claramente &#8211; sim, a interpretação de texto e a capacidade de descrever a solução do problema de forma clara são fundamentais na vida de um programador.</li>
<li>Aprenda a usar a entrada e saída via teclado &#8211; isso é importante para podermos começar a fazer programas com os quais o usuário pode interagir, programas que vão solicitar por exemplo que o usuário informe um número para cálculo, ou um conjunto de números para fazer uma média, e é claro será necessário imprimir pelo menos no console o resultado do processamento.</li>
<li>Entenda o que é um endereço de memória &#8211; em Java não podemos manipular diretamente a memória do computador, mas em C podemos indicar um endereço que queremos acessar, mesmo assim, Java tem variáveis de referência e precisamos entender o que essas variáveis fazem e para que são usadas.</li>
<li>Aprenda a criar e usar <a href="http://www.paulomotta.pro.br/2009/09/01/tipos-abstratos-de-dados/" target="_blank">tipos abstratos de dados</a> &#8211; o programador pode criar seus próprios tipos de dados para organizar melhor seus programas e isso pode ser feito agrupando os tipos básicos da linguagem em novos tipos. Nas linguagens orientadas a objeto, como Java, esses tipos de dados são criados em classes, já nas linguagens estruturadas, como C, usamos structs.</li>
<li>Aprenda a fazer um loop de aplicação &#8211; as aplicações profissionais costumam continuar executando até que o usuário escolha uma opção para encerrar o programa, isso pode ser feito, por exemplo, colocando um laço que só termina quando o usuário digita um valor específico. Enteder como criar esse mecanismo, mesmo em uma aplicação que não tem interface gráfica ajuda a desenvolver muito a habilidade de programação.No nível zero de programação eu costumo trabalhar com programas que tem interface baseada em caracteres, também chamadas CHUI (CHaracter User Interface). Neste modelo, imprimimos um pequeno menu texto e ficamos lendo o que o usuário digita, interpretamos a opção, e se ela for válida executamos a ação correspondente, senão imprimimos uma mensagem para o usuário.</li>
</ol>
<p>Acredito que isso seja o necessário para &#8220;passar de faixa&#8221; saindo assim da faixa branca <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/08/18/o-que-deve-saber-um-programador-nivel-zero/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ah como eu gosto de Lego :)</title>
		<link>http://www.paulomotta.pro.br/2010/08/18/ah-como-eu-gosto-de-lego/</link>
		<comments>http://www.paulomotta.pro.br/2010/08/18/ah-como-eu-gosto-de-lego/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 12:00:51 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Curiosidades]]></category>
		<category><![CDATA[Diversão]]></category>
		<category><![CDATA[Inovação]]></category>
		<category><![CDATA[LEGO]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ALGORITMOS]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>
		<category><![CDATA[Robôs]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=793</guid>
		<description><![CDATA[Há algum tempo atrás eu coloquei um post sobre Aikon, o robô desenhista, agora achei um diferente, que recebe as informações via software, não analisa a figura em tempo real, mas o legal é que esse é feito em Lego.

Decidi então fazer uma galeria de coisas legais feitas em Lego, vou procurá-las, caçá-las e colocar [...]]]></description>
			<content:encoded><![CDATA[<p>Há algum tempo atrás eu coloquei um post sobre <a href="http://www.paulomotta.pro.br/2010/04/15/aikon-o-desenhista/" target="_blank">Aikon, o robô desenhista</a>, agora achei um diferente, que recebe as informações via software, não analisa a figura em tempo real, mas o legal é que esse é feito em Lego.</p>
<p style="text-align: center;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="350" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.youtube.com/v/_ogQuLdEcBY" /><embed type="application/x-shockwave-flash" width="425" height="350" src="http://www.youtube.com/v/_ogQuLdEcBY"></embed></object></p>
<p style="text-align: left;">Decidi então fazer uma galeria de coisas legais feitas em Lego, vou procurá-las, caçá-las e colocar aqui para que todos possamos admirar e tentar fazer igual <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/08/18/ah-como-eu-gosto-de-lego/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IBM cria computador capaz de jogar em quiz</title>
		<link>http://www.paulomotta.pro.br/2010/07/07/ibm-cria-computador-capaz-de-jogar-em-quiz/</link>
		<comments>http://www.paulomotta.pro.br/2010/07/07/ibm-cria-computador-capaz-de-jogar-em-quiz/#comments</comments>
		<pubDate>Wed, 07 Jul 2010 12:00:21 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Inovação]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ALGORITMOS]]></category>
		<category><![CDATA[PROGRAMAÇÃO]]></category>
		<category><![CDATA[Robôs]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=623</guid>
		<description><![CDATA[Bom essa notícia é mais interessante pela evolução da inteligência artificial em si do que pelo jogo, pouco conhecido aqui no Brasil. A IBM criou uma máquina, poderosa claro, que roda um programa que é capaz de jogar Jeopardy (eu tive que ir ver na Wikipedia o que era exatamente). Este jogo parece com os [...]]]></description>
			<content:encoded><![CDATA[<p>Bom essa notícia é mais interessante pela evolução da inteligência artificial em si do que pelo jogo, pouco conhecido aqui no Brasil. A IBM criou uma máquina, poderosa claro, que roda um programa que é capaz de jogar <a href="http://pt.wikipedia.org/wiki/Jeopardy!" target="_blank">Jeopardy </a>(eu tive que ir ver na Wikipedia o que era exatamente). Este jogo parece com os que temos aqui no Brasil de perguntas e respostas, os participantes devem responder perguntas e tem o direito de responder o primeiro a apertar o botão. Até aí nada demais, mas uma coisa interessante é que o programa não tem (ainda não dá) a mesma intuição que os humanos, então para ele saber se deve ou não apertar o botão ele deve entender a pergunta em linguagem natural, verificar se tem a resposta em sua base de conhecimento, calcular o valor da resposta e calcular o risco em relação a sua posição atual. Tudo isso em segundos.</p>
<p>Ah sim, ele não pode usar a Internet <img src='http://www.paulomotta.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Acho que é um grande avanço, mas cada vez mais estamos dando mais poder aos computadores para que consigam pensar da mesma maneira que nós, só que muito mais rápido, espero que lembre das <a href="http://www.paulomotta.pro.br/2010/03/23/servicais-do-futuro/" target="_blank">3 leis da robótica do Asimov</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/07/07/ibm-cria-computador-capaz-de-jogar-em-quiz/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robô animal!</title>
		<link>http://www.paulomotta.pro.br/2010/06/29/robo-animal/</link>
		<comments>http://www.paulomotta.pro.br/2010/06/29/robo-animal/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 12:12:10 +0000</pubDate>
		<dc:creator>prmottajr</dc:creator>
				<category><![CDATA[Inovação]]></category>
		<category><![CDATA[Principal]]></category>
		<category><![CDATA[ALGORITMOS]]></category>
		<category><![CDATA[Robôs]]></category>

		<guid isPermaLink="false">http://www.paulomotta.pro.br/?p=601</guid>
		<description><![CDATA[A ciência tem buscado cada vez mais inspiração no mundo animal para desenvolver seus novos robôs, dentre os muitos que podem ser encontrados por aí dois me chamaram muito a atenção.

É mais fácil observar e copiar do que tentar criar um modelo matemático perfeito para representar aquilo. Conforme os cientistas descreveram no trabalho com o [...]]]></description>
			<content:encoded><![CDATA[<p>A ciência tem buscado cada vez mais inspiração no mundo animal para desenvolver seus novos robôs, dentre os muitos que podem ser encontrados por aí dois me chamaram muito a atenção.</p>
<p style="text-align: center;"><object id="flashObj" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="486" height="412" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=101406788001&amp;playerID=2227271001&amp;domain=embed&amp;dynamicStreaming=true" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://c.brightcove.com/services/viewer/federated_f9/2227271001?isVid=1" /><param name="name" value="flashObj" /><param name="flashvars" value="videoId=101406788001&amp;playerID=2227271001&amp;domain=embed&amp;dynamicStreaming=true" /><param name="allowfullscreen" value="true" /><embed id="flashObj" type="application/x-shockwave-flash" width="486" height="412" src="http://c.brightcove.com/services/viewer/federated_f9/2227271001?isVid=1" name="flashObj" allowscriptaccess="always" swliveconnect="true" allowfullscreen="true" seamlesstabbing="false" base="http://admin.brightcove.com" flashvars="videoId=101406788001&amp;playerID=2227271001&amp;domain=embed&amp;dynamicStreaming=true" bgcolor="#FFFFFF"></embed></object></p>
<p style="text-align: left;">É mais fácil observar e copiar do que tentar criar um modelo matemático perfeito para representar aquilo. Conforme os cientistas descreveram no trabalho com o lagarto-cobra não temos um modelo que descreva matematicamente como a areia se comporta, as vezes como sólido e as vezes como fluido no entanto o lagarto, sem qualquer capacidade intelectual maior é capaz de caminhar/nadar por entre a areia sem qualquer problema. A partir disso eles pesquisaram e descobriram que seria possível copiar os movimentos com um robô de 7 segmentos. A ideia desse tipo de robô é ajudar na busca de feridos em ambientes de catástrofes.</p>
<p style="text-align: left;">O segundo é inspirado em pinguins e pode nadar embaixo da água!</p>
<p style="text-align: center;"><object id="flashObj" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="486" height="412" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=20358143001&amp;playerID=2227271001&amp;domain=embed&amp;dynamicStreaming=true" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://c.brightcove.com/services/viewer/federated_f9/2227271001?isVid=1" /><param name="name" value="flashObj" /><param name="flashvars" value="videoId=20358143001&amp;playerID=2227271001&amp;domain=embed&amp;dynamicStreaming=true" /><param name="allowfullscreen" value="true" /><embed id="flashObj" type="application/x-shockwave-flash" width="486" height="412" src="http://c.brightcove.com/services/viewer/federated_f9/2227271001?isVid=1" name="flashObj" allowscriptaccess="always" swliveconnect="true" allowfullscreen="true" seamlesstabbing="false" base="http://admin.brightcove.com" flashvars="videoId=20358143001&amp;playerID=2227271001&amp;domain=embed&amp;dynamicStreaming=true" bgcolor="#FFFFFF"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.paulomotta.pro.br/2010/06/29/robo-animal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
