<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8880953053777120773</id><updated>2012-01-26T12:21:07.898-08:00</updated><category term='mobile'/><category term='poscomp'/><category term='hilbert'/><category term='lógica matemática'/><category term='xor'/><category term='1 ano'/><category term='teoria dos grafos'/><category term='redes complexas'/><category term='pintura'/><category term='reconhecimento de padrões'/><category term='pós-graduação'/><category term='rup'/><category term='mccarthy'/><category term='C'/><category term='bolha'/><category term='latex'/><category term='código'/><category term='usp'/><category term='hash'/><category term='desencurta'/><category term='bancos de dados'/><category term='desencurtador de url'/><category term='computação científica'/><category term='pesquisa'/><category term='portas lógicas'/><category term='jogos'/><category term='inteligência artificial'/><category term='conjuntos'/><category term='sbc'/><category term='paciência'/><category term='informática biomédica'/><category term='combinatória'/><category term='unicamp'/><category term='concurso'/><category term='ramsey'/><category term='física'/><category term='not'/><category term='história'/><category term='faculdade'/><category term='dissertações'/><category term='aniversário'/><category term='dia do programador'/><category term='eureka'/><category term='aima'/><category term='and'/><category term='análise de algoritmos'/><category term='ensino médio'/><category term='ideias'/><category term='2008'/><category term='facebook'/><category term='seleção'/><category term='puc-rs'/><category term='rj'/><category term='dicas'/><category term='r-project'/><category term='gödel'/><category term='kasparov'/><category term='bibliotecas'/><category term='acm'/><category term='modelos'/><category term='insertion sort'/><category term='grafos'/><category term='bubble sort'/><category term='lncc'/><category term='computação'/><category term='harvard'/><category term='cassio campos'/><category term='notação binária'/><category term='online'/><category term='olimpíada brasileira de informática'/><category term='dicionário'/><category term='android'/><category term='biologia'/><category term='exercícios resolvidos'/><category term='teoria dos conjuntos'/><category term='a rede social'/><category term='teses'/><category term='boca'/><category term='complexidade de algoritmos'/><category term='1111 1111'/><category term='livros'/><category term='compre'/><category term='criatividade'/><category term='merge sort'/><category term='nand'/><category term='bioinfo'/><category term='cursos'/><category term='shell sort'/><category term='inserção'/><category term='aprendizado de máquina'/><category term='doutorado'/><category term='wanderley guimarães'/><category term='computação gráfica'/><category term='prova'/><category term='enade'/><category term='matemática discreta'/><category term='url'/><category term='sorteio'/><category term='slides'/><category term='questões de concurso'/><category term='online computer books'/><category term='lógica digital'/><category term='2011'/><category term='tutoriais'/><category term='palestras'/><category term='desencurtar url'/><category term='heap sort'/><category term='música'/><category term='álgebra Booleana'/><category term='programação'/><category term='dijkstra'/><category term='or'/><category term='estatística'/><category term='ordenação'/><category term='desenvolvimento'/><category term='arte'/><category term='sistemas operacionais'/><category term='download'/><category term='ibm'/><category term='estruturas de dados'/><category term='opengl'/><category term='python'/><category term='aulas'/><category term='steve jobs'/><category term='heapsort'/><category term='mário césar san felice'/><category term='ufc'/><category term='stanford'/><category term='funções'/><category term='indução'/><category term='obi'/><category term='medicina'/><category term='ime-usp'/><category term='mestrado'/><category term='certificados'/><category term='carlos ferreira'/><category term='árvores'/><category term='ribeirao preto'/><category term='crachás'/><category term='Escher'/><category term='robôs'/><category term='bot'/><category term='xadrez'/><category term='Bach'/><category term='paulo feofiloff'/><category term='álgebra relacional'/><category term='algoritmos de ordenação'/><category term='r'/><category term='videos'/><category term='2010'/><category term='academic earth'/><category term='norvig'/><category term='lisp'/><category term='OBM'/><category term='bbc'/><category term='maratona de programação'/><category term='berkeley'/><category term='larry wall'/><category term='supercomputadores'/><category term='MIT'/><category term='p=np'/><category term='off-topic'/><category term='grátis'/><category term='quick sort'/><category term='sql'/><category term='documentário'/><category term='twitter'/><category term='mark zuckerberg'/><category term='matemática'/><category term='linguagens'/><category term='algoritmos'/><category term='selection sort'/><category term='paradoxo de russell'/><category term='máquina de turing'/><category term='machine learning'/><category term='256'/><category term='gabarito'/><category term='akita'/><category term='edson borin'/><title type='text'>Estudar Computação</title><subtitle type='html'>Blog sobre o estudo da Ciência da Computação, pra quem gosta de pesquisar e aprender por conta própria.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>66</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-2794543175856372565</id><published>2011-12-05T04:25:00.001-08:00</published><updated>2011-12-05T04:44:22.986-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='r'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Como concatenar strings no R (como o join, no Python)</title><content type='html'>Tentando concatenar elementos de um vetor de strings (character) de forma a criar uma só string, deparei-me com a função &lt;b&gt;&lt;a href="http://stat.ethz.ch/R-manual/R-patched/library/base/html/paste.html"&gt;paste&lt;/a&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;A documentação do R mostra o seguinte, para a função:&lt;br /&gt;&lt;br /&gt;------------------------------------------------------&lt;br /&gt;&lt;br /&gt;&lt;h3 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #666666; font-family: monospace; font-size: large;"&gt;Description&lt;/h3&gt;Concatenate vectors after converting to character.&lt;br /&gt;&lt;h3 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #666666; font-family: monospace; font-size: large;"&gt;Usage&lt;/h3&gt;&lt;pre&gt;paste(..., sep = " ", collapse = NULL)&lt;br /&gt;&lt;/pre&gt;&lt;h3 style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: #666666; font-family: monospace; font-size: large;"&gt;Arguments&lt;/h3&gt;&lt;table summary="R argblock"&gt;&lt;tbody&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;code&gt;...&lt;/code&gt;&lt;/td&gt;&lt;td&gt;one or more&amp;nbsp;&lt;span style="color: #666666; font-family: 'Courier New', Courier;"&gt;&lt;b&gt;R&lt;/b&gt;&lt;/span&gt;&amp;nbsp;objects, to be converted to character vectors.&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;code&gt;sep&lt;/code&gt;&lt;/td&gt;&lt;td&gt;a character string to separate the terms. Not&amp;nbsp;&lt;code&gt;&lt;a href="http://stat.ethz.ch/R-manual/R-patched/library/base/html/NA.html" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue;"&gt;NA_character_&lt;/a&gt;&lt;/code&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;tr valign="top"&gt;&lt;td&gt;&lt;code&gt;collapse&lt;/code&gt;&lt;/td&gt;&lt;td&gt;an optional character string to separate the results. Not&amp;nbsp;&lt;code&gt;&lt;a href="http://stat.ethz.ch/R-manual/R-patched/library/base/html/NA.html" style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; color: blue;"&gt;NA_character_&lt;/a&gt;&lt;/code&gt;.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;------------------------------------------------------&lt;br /&gt;&lt;br /&gt;Mesmo com a descrição, talvez ainda cause confusão a diferença exata entre os argumentos &lt;b&gt;sep&lt;/b&gt; e &lt;b&gt;collapse&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;No exemplo da documentação, é mostrado o comando&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;b&gt;paste("A", 1:6, sep = "")&lt;/b&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;que gera o seguinte resultado:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;b&gt;[1] "A1" "A2" "A3" "A4" "A5" "A6"&lt;/b&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;De forma parecida, o comando&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;paste("A", 1:6, sep = "_")&lt;/b&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;gera o resultado:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;b&gt;[1] "A_1" "A_2" "A_3" "A_4" "A_5" "A_6"&lt;/b&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O problema é que eu gostaria de unir todos os elementos de um vetor em uma string só, como o comando &lt;a href="http://docs.python.org/library/stdtypes.html#str.join"&gt;join&lt;/a&gt; faz no &lt;a href="http://python.org/"&gt;Python&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Exemplo (em &lt;b&gt;Python&lt;/b&gt;):&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;gt;&amp;gt;&amp;gt; x = ['1',&amp;nbsp;'2',&amp;nbsp;'3',&amp;nbsp;'4',&amp;nbsp;'5',&amp;nbsp;'6']&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;gt;&amp;gt;&amp;gt; print 'bla'.join(x)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;1bla2bla3bla4bla5bla6&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Ou seja, o &lt;b&gt;join&lt;/b&gt; une os termos de &lt;b&gt;x&lt;/b&gt; separando-os pela string passada (no caso, 'bla').&lt;br /&gt;&lt;br /&gt;Para fazer de maneira semelhante, com o &lt;b&gt;paste&lt;/b&gt;, você deve usar o argumento &lt;b&gt;collapse&lt;/b&gt;, e não o &lt;b&gt;sep&lt;/b&gt;.&lt;br /&gt;A principal diferença é que o &lt;b&gt;sep&lt;/b&gt; é um separador usado na concatenação de cada termo. Já o &lt;b&gt;collapse&lt;/b&gt; serve para unir todos os termos.&lt;br /&gt;&lt;br /&gt;Veja a diferença:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;gt; paste("A", 1:6, &lt;span class="Apple-style-span" style="color: red;"&gt;sep&lt;/span&gt; = '*')&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[1] "A*1" "A*2" "A*3" "A*4" "A*5" "A*6"&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;gt; paste("A", 1:6, &lt;span class="Apple-style-span" style="color: red;"&gt;collapse&lt;/span&gt; = '*')&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;[1] "A 1*A 2*A 3*A 4*A 5*A 6"&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Dessa forma, para fazer o paste ter a mesma função do &lt;b&gt;join&lt;/b&gt;, use o &lt;b&gt;collapse&lt;/b&gt;, e não o &lt;b&gt;sep&lt;/b&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;É isso. Espero que o post ajude!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-2794543175856372565?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/2794543175856372565/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/12/como-concatenar-strings-no-r-como-o.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2794543175856372565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2794543175856372565'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/12/como-concatenar-strings-no-r-como-o.html' title='Como concatenar strings no R (como o join, no Python)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-8312161261589805472</id><published>2011-10-24T18:29:00.000-07:00</published><updated>2011-10-25T08:13:49.302-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lisp'/><category scheme='http://www.blogger.com/atom/ns#' term='mccarthy'/><category scheme='http://www.blogger.com/atom/ns#' term='inteligência artificial'/><category scheme='http://www.blogger.com/atom/ns#' term='linguagens'/><title type='text'>Luto - Morre John McCarthy, pioneiro da Inteligência Artificial</title><content type='html'>&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, freesans, sans-serif; font-size: 12px; line-height: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, freesans, sans-serif; font-size: 12px; line-height: 12px;"&gt;&lt;br /&gt;&lt;img alt="John McCarthy, pioneiro da Inteligência Artificial (Foto: null0/CC-BY-SA-2.0)" height="220" src="http://s.glbimg.com/jo/g1/f/original/2011/10/24/john_mccarthy.jpg" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; display: block; font-family: inherit; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="John McCarthy, pioneiro da Inteligência Artificial (Foto: null0/CC-BY-SA-2.0)" width="300" /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, freesans, sans-serif; font-size: 12px; line-height: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="materia-conteudo entry-content" id="materia-letra" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: inherit; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: inherit; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; font-family: inherit; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;div class="foto componente_materia midia-largura-300" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; float: left; font-family: inherit; font-size: 12px; margin-bottom: 2.5em; margin-left: 0px; margin-right: 1.75em; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; overflow-x: hidden; overflow-y: hidden; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; zoom: 1;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, freesans, sans-serif; font-size: 12px; line-height: 12px;"&gt;&lt;strong style="background-attachment: initial; background-clip: initial; background-color: #eeeeee; background-image: initial; background-origin: initial; display: block; font-family: inherit; font-size: 12px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0.67em; padding-left: 0.67em; padding-right: 0.67em; padding-top: 0.67em; text-align: left;"&gt;John McCarthy, pioneiro da Inteligência Artificial&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, freesans, sans-serif; font-size: 12px; line-height: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; letter-spacing: -0.02em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: arial, helvetica, freesans, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 12px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; letter-spacing: -0.02em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-family: arial, helvetica, freesans, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px; line-height: 12px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; color: #333333; font-family: inherit; font-size: 1.26em; letter-spacing: -0.02em; line-height: 1.45em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;O matemático e pesquisador da área de ciências da computação &lt;a href="http://en.wikipedia.org/wiki/John_McCarthy_(computer_scientist)"&gt;John McCarthy&lt;/a&gt;, responsável pela criação do termo “inteligência artificial” e inventor da &lt;a href="http://en.wikipedia.org/wiki/Lisp_(programming_language)"&gt;linguaguem de programação Lisp&lt;/a&gt;, morreu no último domingo (23) em Palo Alto, na região da Califórnia conhecida como Vale do Silício. A notícia foi divulgada pelo jornalista e escritor Steven Levy, editor da revista &lt;a href="http://www.wired.com/wiredenterprise/2011/10/john-mccarthy-father-of-ai-and-lisp-dies-at-84/"&gt;Wired&lt;/a&gt; e especialista em tecnologia.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; color: #333333; font-family: inherit; font-size: 1.26em; letter-spacing: -0.02em; line-height: 1.45em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;McCarthy, que trabalhou nas universidades de Stanford e no Massachusetts Institute of Technology (MIT), tinha &lt;strike&gt;85&lt;/strike&gt;&amp;nbsp;84 anos. Não há detalhes sobre a causa de sua morte.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; color: #333333; font-family: inherit; font-size: 1.26em; letter-spacing: -0.02em; line-height: 1.45em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Considerado um dos pioneiros do desenvovimento da Inteligência Artificial, McCarthy é o pai de tecnologias como a linguagem de programação Lisp e dos sistemas de computação por tempo compartilhado, que permitiam que diversas pessoas utilizassem o poder computacional ocioso dos chamados "mainframes". Os chamados "computadores pessoais" só viriam a existir mais de dez anos depois da criação do conceito de "time sharing".&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; color: #333333; font-family: inherit; font-size: 1.26em; letter-spacing: -0.02em; line-height: 1.45em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;O Lisp, linguagem criada por McCarthy para facilitar o desenvolvimento da Inteligência Artificial, é uma das mais antigas ainda em uso. Sua primeira versão foi publicada em 1958, apenas um ano após a chegada do Fortran. A primeira utilização da tecnologia foi na criação de programas capazes de enfrentar seres humanos em partidas de xadrez.&lt;/div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, freesans, sans-serif; font-size: 12px; line-height: 12px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; color: #333333; font-family: inherit; font-size: 1.26em; letter-spacing: -0.02em; line-height: 1.45em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, freesans, sans-serif; font-size: 12px; line-height: 12px;"&gt;Fonte: &lt;a href="http://g1.globo.com/tecnologia/noticia/2011/10/morre-john-mccarthy-pioneiro-da-inteligencia-artificial.html"&gt;G1&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="background-color: white; font-family: arial, helvetica, freesans, sans-serif; font-size: 12px; line-height: 12px;"&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; color: #333333; font-family: inherit; font-size: 1.26em; letter-spacing: -0.02em; line-height: 1.45em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; color: #333333; font-family: inherit; font-size: 1.26em; letter-spacing: -0.02em; line-height: 1.45em; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 1.5em; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Não sei se vocês se questionaram algum dia, mas John McCarthy é o senhor que aparece na foto do topo do blog. Uma homenagem por eu ter seguido sua linha de pesquisa nos primeiros anos de minha graduação, por influência do prof. &lt;a href="http://marpeq.wordpress.com/"&gt;Marcelino Pequeno&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-8312161261589805472?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/8312161261589805472/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/10/luto-morre-john-mccarthy-pioneiro-da.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8312161261589805472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8312161261589805472'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/10/luto-morre-john-mccarthy-pioneiro-da.html' title='Luto - Morre John McCarthy, pioneiro da Inteligência Artificial'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7272424505620093990</id><published>2011-10-11T09:47:00.000-07:00</published><updated>2011-10-11T09:48:19.035-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='2011'/><category scheme='http://www.blogger.com/atom/ns#' term='prova'/><category scheme='http://www.blogger.com/atom/ns#' term='gabarito'/><category scheme='http://www.blogger.com/atom/ns#' term='poscomp'/><title type='text'>Poscomp 2011 - prova e gabarito</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9GF4SHRNjmM/TLzCsyi03nI/AAAAAAAAAYA/oA_3FnkP2rg/s1600/poscomp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://1.bp.blogspot.com/-9GF4SHRNjmM/TLzCsyi03nI/AAAAAAAAAYA/oA_3FnkP2rg/s320/poscomp.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;No último domingo, dia 9 de outubro, ocorreu em todo o Brasil mais um Poscomp.&lt;br /&gt;&lt;br /&gt;Algumas discussões já estão acontecendo em alguns blogs, como o do &lt;a href="http://www.thborges.com.br/2011/10/poscomp-2001-erros-nas-questoes/"&gt;Thiago Borges&lt;/a&gt; sobre possíveis erros na prova.&lt;br /&gt;&lt;br /&gt;Aqui está o link da prova:&amp;nbsp;&lt;a href="http://www.cops.uel.br/concursos/112_poscomp_2011/11201.PDF"&gt;http://www.cops.uel.br/concursos/112_poscomp_2011/11201.PDF&lt;/a&gt;&lt;br /&gt;E o gabarito:&amp;nbsp;&lt;a href="http://www.cops.uel.br/concursos/112_poscomp_2011/G11201.PDF"&gt;http://www.cops.uel.br/concursos/112_poscomp_2011/G11201.PDF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;O que vocês acharam?&lt;br /&gt;&lt;br /&gt;* Se souberem de mais discussões, por favor coloquem aqui.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7272424505620093990?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7272424505620093990/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/10/poscomp-2011-prova-e-gabarito.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7272424505620093990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7272424505620093990'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/10/poscomp-2011-prova-e-gabarito.html' title='Poscomp 2011 - prova e gabarito'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-9GF4SHRNjmM/TLzCsyi03nI/AAAAAAAAAYA/oA_3FnkP2rg/s72-c/poscomp.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-4392417686179347173</id><published>2011-09-20T19:07:00.000-07:00</published><updated>2011-11-28T04:02:01.531-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mário césar san felice'/><category scheme='http://www.blogger.com/atom/ns#' term='olimpíada brasileira de informática'/><category scheme='http://www.blogger.com/atom/ns#' term='obi'/><category scheme='http://www.blogger.com/atom/ns#' term='maratona de programação'/><category scheme='http://www.blogger.com/atom/ns#' term='cassio campos'/><category scheme='http://www.blogger.com/atom/ns#' term='ime-usp'/><category scheme='http://www.blogger.com/atom/ns#' term='unicamp'/><category scheme='http://www.blogger.com/atom/ns#' term='carlos ferreira'/><category scheme='http://www.blogger.com/atom/ns#' term='wanderley guimarães'/><category scheme='http://www.blogger.com/atom/ns#' term='boca'/><category scheme='http://www.blogger.com/atom/ns#' term='edson borin'/><title type='text'>O que é a Maratona de Programação?</title><content type='html'>Oi pessoal!&lt;br /&gt;&lt;br /&gt;Estávamos devendo um post especial sobre a Maratona de Programação. Pois bem. Ei-lo aqui.&lt;br /&gt;Fomos ao Instituto de Matemática e Estatística (IME) da USP durante a seletiva (2011) para a Maratona de Programação.&lt;br /&gt;&lt;br /&gt;Além de filmarmos um pouco do evento, entrevistamos:&lt;br /&gt;- Prof. &lt;a href="http://www.ime.usp.br/~cef"&gt;Carlos Ferreira&lt;/a&gt;, do Departamento de Ciência da Computação da USP - um dos principais organizadores da Maratona de Programação no Brasil&lt;br /&gt;- &lt;a href="http://www.ime.usp.br/~wander"&gt;Wanderley Guimarães&lt;/a&gt;, doutorando no IME-USP - ex-participante e técnico tanto em Maratonas de Programação quanto na Olimpíada Brasileira de Informática, tendo ido várias algumas vezes a finais mundiais.&lt;br /&gt;- &lt;a href="http://www.ime.usp.br/~cassio/"&gt;Cassio de Campos&lt;/a&gt; - criador do &lt;a href="http://www.ime.usp.br/~cassio/boca/"&gt;BOCA&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Parte 1&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/0dwOyXE6D7c" width="420"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parte 2 &lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;(adicionada em 11/10/2011)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/9SWdDdAHSRk" width="420"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Parte 3 &lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;(adicionada em 28/10/2011)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/L56OD4h5qKQ" width="420"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-4392417686179347173?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/4392417686179347173/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/09/o-que-e-maratona-de-programacao.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4392417686179347173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4392417686179347173'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/09/o-que-e-maratona-de-programacao.html' title='O que é a Maratona de Programação?'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/0dwOyXE6D7c/default.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-2783806783125399344</id><published>2011-09-05T08:19:00.000-07:00</published><updated>2011-09-05T08:26:41.996-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='aprendizado de máquina'/><category scheme='http://www.blogger.com/atom/ns#' term='norvig'/><category scheme='http://www.blogger.com/atom/ns#' term='stanford'/><category scheme='http://www.blogger.com/atom/ns#' term='inteligência artificial'/><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>Aulas on-line da Universidade de Stanford</title><content type='html'>A Universidade de Stanford está disponibilizando 3 cursos de Ciência da Computação no 2º semestre de 2011. São eles:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.ai-class.org/"&gt;&lt;img border="0" height="152" src="http://4.bp.blogspot.com/-ZvbZQ7Mxopc/TmTnIGLR3YI/AAAAAAAAAe8/sLOcQkTug68/s320/artificial_intelligence_header.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Introdução a Inteligência Artificial (&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"&gt;&lt;a href="http://www.ai-class.org/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Introduction to Artificial Intelligence&lt;/a&gt;&lt;/span&gt;), pelos profs. Sebastian Thrun e Peter Norvig&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.ml-class.org/"&gt;&lt;img border="0" height="106" src="http://3.bp.blogspot.com/-Nk3dHOkf8dE/TmTnMuipJnI/AAAAAAAAAfA/PZWqeqQTajo/s320/ml-class.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Aprendizado de Máquina (&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"&gt;&lt;a href="http://www.ml-class.org/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Machine Learning&lt;/a&gt;&lt;/span&gt;), pelo prof.&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"&gt;&lt;a href="http://cs.stanford.edu/~ang/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Andrew Ng&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.db-class.org/"&gt;&lt;img border="0" height="106" src="http://2.bp.blogspot.com/-dOzRa6_QjD4/TmTnPxIM_AI/AAAAAAAAAfE/mqMwOBdGcsA/s320/db-final.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Introdução a Bancos de Dados (&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"&gt;&lt;a href="http://www.db-class.org/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Introduction to Databases&lt;/a&gt;&lt;/span&gt;), pela profa.&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: Helvetica, Arial, sans-serif; font-size: 14px; line-height: 21px;"&gt;&lt;a href="http://cs.stanford.edu/~widom/" style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: 14px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Jennifer Widom&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;As inscrições são gratuitas.&lt;/b&gt; A aulas começam dia &lt;b&gt;10 de outubro&lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;Entre nos sites e inscreva-se já!&lt;br /&gt;&lt;a href="http://www.ai-class.org/"&gt;http://www.ai-class.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ml-class.org/"&gt;http://www.ml-class.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.db-class.org/"&gt;http://www.db-class.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Abaixo um video sobre o curso de &lt;b&gt;Aprendizado de Máquina&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="345" src="http://www.youtube.com/embed/e0WKJLovaZg" width="560"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-2783806783125399344?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/2783806783125399344/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/09/aulas-on-line-da-universidade-stanford.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2783806783125399344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2783806783125399344'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/09/aulas-on-line-da-universidade-stanford.html' title='Aulas on-line da Universidade de Stanford'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ZvbZQ7Mxopc/TmTnIGLR3YI/AAAAAAAAAe8/sLOcQkTug68/s72-c/artificial_intelligence_header.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-4586857778512027962</id><published>2011-08-29T05:21:00.000-07:00</published><updated>2011-08-29T05:22:46.142-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maratona de programação'/><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='ime-usp'/><title type='text'>Estamos preparando um post especial sobre a Maratona de Programação</title><content type='html'>Olá a todos!&lt;br /&gt;&lt;br /&gt;No domingo dia 21 de agosto aconteceu no IME-USP a seletiva do IME para a Maratona de Programação. Fizemos algumas entrevistas com organizadores e participantes (incluindo o prof.&lt;a href="http://www.ime.usp.br/~cef/"&gt; Carlos Ferreira&lt;/a&gt;, o coach &lt;a href="http://www.ime.usp.br/~wander/"&gt;Wanderley Guimarães&lt;/a&gt; e o criador do sistema &lt;a href="http://www.ime.usp.br/~cassio/boca/"&gt;BOCA&lt;/a&gt;, &lt;a href="http://www.ime.usp.br/~cassio/"&gt;Cássio de Campos&lt;/a&gt;), e estas em breve estarão aqui no blog!&lt;br /&gt;&lt;br /&gt;Já é possível ver algumas fotos na nossa página no Facebook [&lt;a href="http://www.facebook.com/estudarcomputacao"&gt;facebook.com/estudarcomputacao&lt;/a&gt;] e esse video abaixo que mostra a preparação para uma das entrevistas.&lt;br /&gt;&lt;br /&gt;Aguardem por mais videos!&lt;br /&gt;=)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="345" src="http://www.youtube.com/embed/5rv3vkChclQ" width="420"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-4586857778512027962?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/4586857778512027962/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/08/estamos-preparando-um-post-especial.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4586857778512027962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4586857778512027962'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/08/estamos-preparando-um-post-especial.html' title='Estamos preparando um post especial sobre a Maratona de Programação'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/5rv3vkChclQ/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-9151457631469079837</id><published>2011-08-13T18:01:00.000-07:00</published><updated>2011-08-13T18:06:57.936-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mestrado'/><category scheme='http://www.blogger.com/atom/ns#' term='sbc'/><category scheme='http://www.blogger.com/atom/ns#' term='pós-graduação'/><category scheme='http://www.blogger.com/atom/ns#' term='doutorado'/><category scheme='http://www.blogger.com/atom/ns#' term='poscomp'/><title type='text'>Poscomp 2011 - As inscrições estão abertas</title><content type='html'>Estão abertas as inscrições para o &lt;b&gt;Poscomp 2011&lt;/b&gt;. Se você tem planos de fazer &lt;b&gt;pós-graduação&lt;/b&gt; na área de Computação, é importante se inscrever. Várias universidades tem o &lt;b&gt;Poscomp &lt;/b&gt;como pré-requisito para inscrição no mestrado e doutorado.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9GF4SHRNjmM/TLzCsyi03nI/AAAAAAAAAYA/oA_3FnkP2rg/s1600/poscomp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://1.bp.blogspot.com/-9GF4SHRNjmM/TLzCsyi03nI/AAAAAAAAAYA/oA_3FnkP2rg/s320/poscomp.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;As inscrições vão de &lt;b&gt;8 de agosto&lt;/b&gt;&amp;nbsp;a &lt;b&gt;8 de setembro&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;O valor da taxa de inscrição é de &lt;b&gt;R$ 55,00&lt;/b&gt; (cinquenta e cinco reais) para associados da&amp;nbsp;&lt;a href="http://www.sbc.org.br/"&gt;Sociedade Brasileira de Computação&lt;/a&gt; e de &lt;b&gt;R$ 70,00&lt;/b&gt; (setenta reais) para não associados.&lt;br /&gt;&lt;br /&gt;A prova será realizada dia &lt;b&gt;9 de outubro de 2011&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Veja o edital no link abaixo:&lt;br /&gt;&lt;a href="http://www.cops.uel.br/concursos/112_poscomp_2011/inscricao/1/"&gt;http://www.cops.uel.br/concursos/112_poscomp_2011/inscricao/1/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Já falamos sobre o &lt;b&gt;Poscomp&lt;/b&gt; em &lt;a href="http://estudarcomputacao.blogspot.com/2010/10/poscomp-2010-prova-e-gabarito.html"&gt;outro post&lt;/a&gt; aqui no blog. Você pode refazer as provas anteriores no &lt;a href="http://banpos.seccperu.org/"&gt;Banco de Questões do Poscomp&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-9151457631469079837?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/9151457631469079837/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/08/poscomp-2011-as-inscricoes-estao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/9151457631469079837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/9151457631469079837'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/08/poscomp-2011-as-inscricoes-estao.html' title='Poscomp 2011 - As inscrições estão abertas'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-9GF4SHRNjmM/TLzCsyi03nI/AAAAAAAAAYA/oA_3FnkP2rg/s72-c/poscomp.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-6583925206150815481</id><published>2011-08-07T08:21:00.000-07:00</published><updated>2011-08-07T16:44:02.492-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='desencurta'/><category scheme='http://www.blogger.com/atom/ns#' term='url'/><category scheme='http://www.blogger.com/atom/ns#' term='desencurtar url'/><category scheme='http://www.blogger.com/atom/ns#' term='desencurtador de url'/><title type='text'>[OFF] Desencurta - seu desencurtador de url</title><content type='html'>Com a chegada do Twitter, surgiu um serviço interessante. Trata-se do encurtamento de url's. Esse serviço nada mais é do que um redirecionamento de uma url curta (para caber em um &lt;i&gt;tweet&lt;/i&gt; ou para ser enviada por sms ou e-mail sem problemas) para uma url grande, o verdadeiro endereço.&lt;br /&gt;&lt;br /&gt;Há alguns serviços para encurtar url famosos, como o &lt;a href="http://bit.ly/"&gt;bit.ly&lt;/a&gt; ou o &lt;a href="http://goo.gl/"&gt;goo.gl&lt;/a&gt; (serviço da Google), e até uns brasileiros, como o famoso &lt;a href="http://migre.me/"&gt;migre.me&lt;/a&gt;, o &lt;a href="http://vai.la/"&gt;vai.la&lt;/a&gt; ou o &lt;a href="http://pqnin.in/"&gt;pqnin.in&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Bem, o único problema desses encurtadores de url é que você fica sem saber em quê está clicando. Os links podem conter conteúdo indesejável e até vírus.&lt;br /&gt;&lt;br /&gt;Foi pensando nisso que criamos (eu e o &lt;a href="http://franzejr.wordpress.com/"&gt;FranzéJr&lt;/a&gt;) o &lt;a href="http://desencurta.com/"&gt;Desencurta&lt;/a&gt;, um desencurtador de url's brasileiro. Basta colocar o link curto e &lt;i&gt;voilà&lt;/i&gt;! Ele te mostra o link real por trás do link encurtado.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-ZqclzaM1v7E/Tj6tNluu9fI/AAAAAAAAAeI/YLngLK_iLeg/s1600/desencurta.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-ZqclzaM1v7E/Tj6tNluu9fI/AAAAAAAAAeI/YLngLK_iLeg/s1600/desencurta.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Logo feita por &lt;a href="http://ricardobusta.wordpress.com/"&gt;Ricardo Bustamante&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Quer desencurtar uma url? Use o &lt;a href="http://desencurta.com/"&gt;Desencurta&lt;/a&gt;!&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Divulguem, pessoal!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-6583925206150815481?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/6583925206150815481/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/08/off-desencurta-seu-desencurtador-de-url.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6583925206150815481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6583925206150815481'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/08/off-desencurta-seu-desencurtador-de-url.html' title='[OFF] Desencurta - seu desencurtador de url'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-ZqclzaM1v7E/Tj6tNluu9fI/AAAAAAAAAeI/YLngLK_iLeg/s72-c/desencurta.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-9031685525075743764</id><published>2011-08-03T07:44:00.000-07:00</published><updated>2011-08-03T07:46:02.748-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dicionário'/><category scheme='http://www.blogger.com/atom/ns#' term='hash'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='ordenação'/><title type='text'>Como ordenar um dicionário em Python</title><content type='html'>&lt;span style="font-family: inherit;"&gt;A dica de hoje é pra ordenar um dicionário em Python. Precisei fazer isso esses dias e descobri que é possível ordenar o dicionário tanto pelas chaves quanto pelos valores facilmente. Vejam o código abaixo:&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# Vc vai precisar da função 'itemgetter',&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# da biblioteca 'operator'&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span style="color: magenta;"&gt;from&lt;/span&gt; operator &lt;span style="color: magenta;"&gt;import&lt;/span&gt; itemgetter&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# Crie seu dicionário&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;dic &lt;span style="color: magenta;"&gt;=&lt;/span&gt; {&lt;span style="color: #dd0000;"&gt;'um'&lt;/span&gt;:&lt;span style="color: blue;"&gt;1&lt;/span&gt;, &lt;span style="color: #dd0000;"&gt;'dois'&lt;/span&gt;:&lt;span style="color: blue;"&gt;2&lt;/span&gt;, &lt;span style="color: #dd0000;"&gt;'dez'&lt;/span&gt;:&lt;span style="color: blue;"&gt;10&lt;/span&gt;, &lt;span style="color: #dd0000;"&gt;'onze'&lt;/span&gt;:&lt;span style="color: blue;"&gt;11&lt;/span&gt;, &lt;span style="color: #dd0000;"&gt;'seis'&lt;/span&gt;:&lt;span style="color: blue;"&gt;6&lt;/span&gt;, &lt;span style="color: #dd0000;"&gt;'zero'&lt;/span&gt;:&lt;span style="color: blue;"&gt;0&lt;/span&gt;}&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# O método items() dos dicionários retorna o par (chave, valor)&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# como tuplas de tamanho 2&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;print dic.items()&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b style="background-color: black;"&gt;[('seis', 6), ('dez', 10), ('um', 1), ('zero', 0), ('dois', 2), ('onze', 11)]&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# A função 'sorted' recebe os ítens do dicionário e ordena&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# de acordo com a chave ('key') escolhida, que pode ser&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# o primeiro (0) ou o segundo (1) elementos das tuplas&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# Passando o '1' para o itemgetter, vc ordenará o&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# dicionário pelos valores.&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;print &lt;span style="color: maroon;"&gt;sorted&lt;/span&gt;(dic.items(), key&lt;span style="color: magenta;"&gt;=&lt;/span&gt;itemgetter(&lt;span style="color: blue;"&gt;1&lt;/span&gt;))&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: white; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b style="background-color: black;"&gt;[('zero', 0), ('um', 1), ('dois', 2), ('seis', 6), ('dez', 10), ('onze', 11)]&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# Passando o '0' para o itemgetter, vc ordenará o&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# dicionário pelas chaves (ou seja, nesse caso, os&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# nomes em ordem alfabética).&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;print &lt;span style="color: maroon;"&gt;sorted&lt;/span&gt;(dic.items(), key&lt;span style="color: magenta;"&gt;=&lt;/span&gt;itemgetter(&lt;span style="color: blue;"&gt;0&lt;/span&gt;))&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: white; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b style="background-color: black;"&gt;[('dez', 10), ('dois', 2), ('onze', 11), ('seis', 6), ('um', 1), ('zero', 0)]&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# Caso você queria ordenar decrescentemente, basta&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;# passar o parâmetro 'reverse=True' para a função 'sorted'&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;print &lt;span style="color: maroon;"&gt;sorted&lt;/span&gt;(dic.items(), key&lt;span style="color: magenta;"&gt;=&lt;/span&gt;itemgetter(&lt;span style="color: blue;"&gt;1&lt;/span&gt;), reverse&lt;span style="color: magenta;"&gt;=&lt;/span&gt;&lt;span style="color: green;"&gt;True&lt;/span&gt;)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: white; font-weight: normal;"&gt;&lt;b style="background-color: black;"&gt;[('onze', 11), ('dez', 10), ('seis', 6), ('dois', 2), ('um', 1), ('zero', 0)]&lt;/b&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-9031685525075743764?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/9031685525075743764/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/08/como-ordenar-um-dicionario-em-python.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/9031685525075743764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/9031685525075743764'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/08/como-ordenar-um-dicionario-em-python.html' title='Como ordenar um dicionário em Python'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-5583803172755406925</id><published>2011-07-31T16:27:00.000-07:00</published><updated>2011-08-17T14:06:46.807-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='larry wall'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>As 3 virtudes do programador</title><content type='html'>&lt;span class="Apple-style-span" style="color: #333333; font-family: Georgia, 'Bitstream Charter', serif; font-size: 16px; line-height: 24px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Post pelo amigo&amp;nbsp;&lt;a href="http://twitter.com/pvictorc"&gt;Victor Carvalho&lt;/a&gt;.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;/div&gt;&lt;h1 class="entry-title" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; color: black; font-family: 'Helvetica Neue', Arial, Helvetica, 'Nimbus Sans L', sans-serif; font-size: 21px; font-weight: bold; line-height: 1.3em; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Laziness, Impatience, and&amp;nbsp;Hubris&lt;/h1&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-Lb0JMrgt6gc/TjXkMFybplI/AAAAAAAAAeE/7ZgXR4n8zXE/s1600/250px-Larry_Wall_YAPC_2007.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-Lb0JMrgt6gc/TjXkMFybplI/AAAAAAAAAeE/7ZgXR4n8zXE/s200/250px-Larry_Wall_YAPC_2007.jpg" width="141" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://pt.wikipedia.org/wiki/Larry_Wall"&gt;Larry Wall&lt;/a&gt;, o criador da linguagem de programação &lt;a href="http://pt.wikipedia.org/wiki/Perl"&gt;Perl&lt;/a&gt; escreveu em seu livro&amp;nbsp;&lt;em style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-style: italic; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://www.submarino.com.br/produto/9/325473/programming+perl/?franq=294999"&gt;Programming Perl&lt;/a&gt;&lt;/em&gt;&amp;nbsp;que as maiores virtudes possíveis em um programador são as seguintes: preguiça, impaciência e arrogância.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Como pode ser?&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Vamos explicar. Estes “defeitos”, palavras altamente depreciativas, podem ser um grande trunfo para um programador, se virmos por outra ótica.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;b&gt;1) Preguiça&lt;/b&gt;&lt;/div&gt;&lt;div class="wp-caption alignnone" style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 632px !important; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 460px;"&gt;&lt;img alt="Laziness" height="300" src="http://www.impactlab.net/wp-content/uploads/2010/09/couchpotato.jpg" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" width="450" /&gt;&lt;br /&gt;&lt;div class="wp-caption-text" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #888888; font-family: 'Helvetica Neue', Arial, Helvetica, 'Nimbus Sans L', sans-serif; font-size: 12px; margin-bottom: 24px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Preguiça&lt;/div&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Preguiça garante que você irá tentar fazer o máximo possível para gastar o mínimo de energia ao fazer uma tarefa. Em vez de fazer tarefas rotinas repetitivas e produzir códigos trabalhosos de manter, o bom programador tenderá a escrever códigos que economizarão o próprio trabalho e facilitarão a manutenção posterior por outras pessoas, sem a necessidade de tanto trabalho para compreender. Temos então a primeira grande virtude de um programador.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;b&gt;2) Impaciência&lt;/b&gt;&lt;/div&gt;&lt;div class="wp-caption alignnone" style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 632px !important; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 251px;"&gt;&lt;img alt="" height="358" src="http://t0.gstatic.com/images?q=tbn:ummw-tp9EQXA6M:http://fc09.deviantart.net/fs11/i/2006/169/5/9/Impatience_by_SeeMyMask.jpg&amp;amp;t=1" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;" title="Impatience" width="241" /&gt;&lt;br /&gt;&lt;div class="wp-caption-text" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #888888; font-family: 'Helvetica Neue', Arial, Helvetica, 'Nimbus Sans L', sans-serif; font-size: 12px; margin-bottom: 24px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Impatience&lt;/div&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Alguém falou um dia que a paciência é a ciência da paz. Mas difícil é falar isso para quem está esperando um programa terminar de rodar em um computador. O bom programador fica incomodado com qualquer tempo de espera em seus programas. Isto faz com que ele queira escrever programas que não somente façam o necessário, mas o façam um pouco mais rápido. Ou pelo menos tenta otimizar os programas reduzindo os tempos de execução. Neste sentido a impaciência é algo positivo. Explicada a segunda grande virtude do programador.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;b&gt;3) Arrogância&lt;/b&gt;&lt;/div&gt;&lt;div class="wp-caption alignnone" style="background-attachment: initial; background-clip: initial; background-color: #f1f1f1; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; line-height: 18px; margin-bottom: 20px; margin-left: 0px; margin-right: 0px; margin-top: 0px; max-width: 632px !important; padding-bottom: 4px; padding-left: 4px; padding-right: 4px; padding-top: 4px; text-align: center; vertical-align: baseline; width: 415px;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-3a3dkyLQeTI/TkwtWCqjaTI/AAAAAAAAAeo/7umU7o750Xo/s1600/fall-of-icarus2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="177" src="http://4.bp.blogspot.com/-3a3dkyLQeTI/TkwtWCqjaTI/AAAAAAAAAeo/7umU7o750Xo/s320/fall-of-icarus2.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="wp-caption-text" style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #888888; font-family: 'Helvetica Neue', Arial, Helvetica, 'Nimbus Sans L', sans-serif; font-size: 12px; margin-bottom: 24px; margin-left: 5px; margin-right: 5px; margin-top: 5px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://pt.wikipedia.org/wiki/%C3%8Dcaro"&gt;Ícaro&lt;/a&gt;, o filho de &lt;s&gt;Cronos&lt;/s&gt; Dédalo* que não ouviu o conselho do seu pai e voou em direção ao céu, derretendo suas asas&lt;/div&gt;&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;O orgulho excessivo, algo que só os superpoderosos semi-deuses filhos de Zeus possuem. Esta é a qualidade que faz você escrever (e manter) programas de forma que outras pessoas não irão dizer coisas más sobre eles, com o máximo de esmero, denotando inequivocamente o seu conhecimento superior. Portanto, a terceira grande virtude do programador.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;* Obrigado pela correção, Fernando Cezar.&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Post original:&lt;/div&gt;&lt;div style="background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 24px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;a href="http://3virtues.wordpress.com/2010/10/20/laziness-impatience-and-hubris/"&gt;http://3virtues.wordpress.com/2010/10/20/laziness-impatience-and-hubris/&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-5583803172755406925?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/5583803172755406925/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/07/as-3-virtudes-do-programador.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5583803172755406925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5583803172755406925'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/07/as-3-virtudes-do-programador.html' title='As 3 virtudes do programador'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-Lb0JMrgt6gc/TjXkMFybplI/AAAAAAAAAeE/7ZgXR4n8zXE/s72-c/250px-Larry_Wall_YAPC_2007.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-5757633605001053914</id><published>2011-07-21T14:13:00.000-07:00</published><updated>2011-07-22T07:41:32.685-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pesquisa'/><category scheme='http://www.blogger.com/atom/ns#' term='computação científica'/><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='lncc'/><category scheme='http://www.blogger.com/atom/ns#' term='biologia'/><category scheme='http://www.blogger.com/atom/ns#' term='medicina'/><category scheme='http://www.blogger.com/atom/ns#' term='bioinfo'/><title type='text'>Reportagem sobre o Laboratório Nacional de Computação Científica (LNCC), no RJ</title><content type='html'>Veja abaixo a reportagem do &lt;a href="http://redeglobo.globo.com/globouniversidade"&gt;Globo Universidade&lt;/a&gt; sobre o&amp;nbsp;&lt;a href="http://www.lncc.br/"&gt;Laboratório Nacional de Computação Científica&lt;/a&gt;, o LNCC, em Petrópolis, Rio de Janeiro.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.lncc.br" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="132" src="http://4.bp.blogspot.com/-sw81_RTBXoo/TiiWdv282sI/AAAAAAAAAeA/EXbSYDz_Fbw/s320/LNCC_LOGO_PE.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;A reportagem traz diversos campos da Ciência da Computação que interagem com outras áreas (como Biologia, Medicina e Farmácia) para resolver problemas complexos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe allowtransparency="true" frameborder="0" id="globovideos_embed_1" marginheight="0" marginwidth="0" name="globovideos_embed_1" scrolling="no" src="http://playervideo.globo.com/webmedia/player/embed/GMCPlayMidia?midiaId=1525194&amp;amp;autoStart=false&amp;amp;idEmbed=1&amp;amp;banda=X&amp;amp;escondeFimVideo=true&amp;amp;escondeTrocaBanda=true&amp;amp;novoPlayer=true&amp;amp;hostNovoPlayer=s.videos.globo.com&amp;amp;ntr=true&amp;amp;nocache=1311282331743" style="height: 360px; position: relative; width: 640px;"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-5757633605001053914?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/5757633605001053914/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/07/reportagem-sobre-o-laboratorio-nacional.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5757633605001053914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5757633605001053914'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/07/reportagem-sobre-o-laboratorio-nacional.html' title='Reportagem sobre o Laboratório Nacional de Computação Científica (LNCC), no RJ'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-sw81_RTBXoo/TiiWdv282sI/AAAAAAAAAeA/EXbSYDz_Fbw/s72-c/LNCC_LOGO_PE.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-4484745956858883324</id><published>2011-06-17T11:17:00.000-07:00</published><updated>2011-07-11T17:07:48.254-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mark zuckerberg'/><category scheme='http://www.blogger.com/atom/ns#' term='a rede social'/><category scheme='http://www.blogger.com/atom/ns#' term='steve jobs'/><category scheme='http://www.blogger.com/atom/ns#' term='sorteio'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>I Sorteio de livros do blog</title><content type='html'>Fala, pessoal!&lt;br /&gt;&lt;br /&gt;Seguinte: iremos sortear 2 livros em comemoração à chegada das férias escolares. Você pode participar de duas maneiras:&lt;br /&gt;&lt;br /&gt;1. Basta postar a seguinte frase, no Twitter:&lt;br /&gt;"Quero ganhar um livro do Blog Estudar Computação. &lt;a href="http://kingo.to/G0U"&gt;http://kingo.to/G0U&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;2. Ou então se cadastrar na Promoção em nossa página no Facebook (precisa clicar em "Quero participar"):&lt;br /&gt;&lt;a href="http://sorteie.me/facebook/compartilhar.php?id=2248"&gt;http://sorteie.me/facebook/compartilhar.php?id=2248&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Iremos sortear os livros:&lt;br /&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://el2.me/5Z1V" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-AYIHavonHlY/TfufNs_x-sI/AAAAAAAAAcQ/GRBUcMqgNTY/s200/CabecaSteveJobs.jpg" width="200" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;"A Cabeça de Steve Jobs" &lt;a class="twitter-timeline-link" data-expanded-url="http://links.lomadee.com/ls/Ujc2aztWamJ6eXY4dzsyMzE4NjQxMDswOzE3NjszMzQ1NzMxMjswO0JS.html/" href="http://el2.me/5Z1V" rel="nofollow" target="_blank" title="http://links.lomadee.com/ls/Ujc2aztWamJ6eXY4dzsyMzE4NjQxMDswOzE3NjszMzQ1NzMxMjswO0JS.html/"&gt;http://el2.me/5Z1V&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://el2.me/5Z1V" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-pRz3uew1MN8/TfuiX97vyXI/AAAAAAAAAcU/8ZQlUeI5POI/s1600/BilionariosPorAcaso.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;"Bilionários por  Acaso" &lt;a class="twitter-timeline-link" data-expanded-url="http://links.lomadee.com/ls/VG9pMTtJNnV4SEQ5VTsyMzE4NjQxNDswOzE3NjszMzQ1NzMxMjswO0JS.html/" href="http://el2.me/5Z26" rel="nofollow" target="_blank" title="http://links.lomadee.com/ls/VG9pMTtJNnV4SEQ5VTsyMzE4NjQxNDswOzE3NjszMzQ1NzMxMjswO0JS.html/"&gt;http://el2.me/5Z26&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Um livro será sorteado pelo Twitter ("&lt;a href="http://el2.me/5Z1V"&gt;A Cabeça de Steve Jobs&lt;/a&gt;") e o outro pelo Facebook ("&lt;a href="http://el2.me/5Z26"&gt;Bilionários por  Acaso: A criação do Facebook&lt;/a&gt;").&lt;br /&gt;&lt;br /&gt;O sorteio será realizado na segunda-feira, dia &lt;b&gt;11 de julho&lt;/b&gt;. Após o sorteio, vou pedir aos ganhadores que enviem seu endereço para &lt;a href="mailto:lelimaufc@gmail.com"&gt;&lt;i&gt;lelimaufc@gmail.com&lt;/i&gt;&lt;/a&gt;, e o livro chegará na casa de cada um através dos Correios.&lt;br /&gt;&lt;br /&gt;Pode participar qualquer pessoa com endereço no Brasil.&lt;br /&gt;Você pode participar tanto no Twitter quanto no Facebook. Se tiver a grande sorte de ser sorteado nos dois, você (merecidamente) leva os dois livros.&lt;br /&gt;&lt;br /&gt;É isso. Divulguem aí!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red; font-size: large;"&gt;Atualização em 11/07/2011&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Resultado do sorteio via Twitter:&lt;br /&gt;&lt;a href="http://sorteie.me/1Qvm3u"&gt;http://sorteie.me/1Qvm3u&lt;/a&gt;&lt;br /&gt;Ganhador do livro&amp;nbsp;"&lt;a href="http://el2.me/5Z1V"&gt;A Cabeça de Steve Jobs&lt;/a&gt;":&amp;nbsp;&lt;a href="http://twitter.com/#!/danielrmatos"&gt;@danielrmatos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Resultado do sorteio via Facebook:&lt;br /&gt;&lt;a href="http://sorteie.me/fb/NL"&gt;http://sorteie.me/fb/NL&lt;/a&gt;&lt;br /&gt;Ganhadora do livro&amp;nbsp;"&lt;a href="http://el2.me/5Z26"&gt;Bilionários por Acaso: A criação do Facebook&lt;/a&gt;":&amp;nbsp;&lt;span class="Apple-style-span" style="color: #749c0a; font-family: Arial, Helvetica, sans-serif; font-size: 19px; line-height: 28px;"&gt;&lt;a href="http://facebook.com/profile.php?id=1624256531" style="color: #749c0a; text-decoration: underline;"&gt;Micaelly Priscila Soares&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Parabéns aos ganhadores! Enviem seu endereço para &lt;a href="mailto:lelimaufc@gmail.com"&gt;lelimaufc@gmail.com&lt;/a&gt; para que os livros possam ser enviados.&lt;br /&gt;&lt;br /&gt;Até a próxima promoção!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-4484745956858883324?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/4484745956858883324/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/06/i-sorteio-de-livros-do-blog.html#comment-form' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4484745956858883324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4484745956858883324'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/06/i-sorteio-de-livros-do-blog.html' title='I Sorteio de livros do blog'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-AYIHavonHlY/TfufNs_x-sI/AAAAAAAAAcQ/GRBUcMqgNTY/s72-c/CabecaSteveJobs.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-5430481680709440601</id><published>2011-06-12T12:33:00.000-07:00</published><updated>2011-08-09T06:24:36.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='robôs'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='bot'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Como criar um bot no Twitter (em Python)</title><content type='html'>Oi pessoal.&lt;br /&gt;&lt;br /&gt;Estive trabalhando num projeto de um bot para o Twitter. Como achei que é relativamente fácil fazer uma aplicação básica, resolvi compartilhar com vocês.&lt;br /&gt;Antes de tudo, você deve instalar o &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; e a API &lt;a href="http://code.google.com/p/python-twitter/"&gt;python-twitter&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-nViWDOpmro0/TfjWwrT_e2I/AAAAAAAAAcM/C3VsOSXmPvA/s1600/robot_bird.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-nViWDOpmro0/TfjWwrT_e2I/AAAAAAAAAcM/C3VsOSXmPvA/s1600/robot_bird.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;A palavra "bot" vem do inglês "robot" (robô)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;O segundo passo é criar uma conta no &lt;a href="https://www.twitter.com/"&gt;Twitter&lt;/a&gt; e registrar uma aplicação na página de&amp;nbsp;&lt;a href="http://dev.twitter.com/start"&gt;desenvolvimento de aplicativos&lt;/a&gt;&amp;nbsp;para o Twitter (clique em "&lt;b&gt;Register your own Twitter application&lt;/b&gt;").&lt;br /&gt;&lt;br /&gt;Após criar uma aplicação (e estando devidamente logado no &lt;a href="https://dev.twitter.com/apps"&gt;site&lt;/a&gt;), você deve buscar alguns códigos importantes, na seção "Your apps" (seus aplicativos). Já, já iremos falar deles. Vamos ao código:&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; color: #141312;"&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# Você deve importar a API&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# (é aqui que você confere se deu tudo certo na instalação)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span style="color: #ff80e0;"&gt;import&lt;/span&gt; twitter, time&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# Esses códigos aqui embaixo são encontrados&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/pre&gt;&lt;pre style="background-color: white; color: #141312;"&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# na seção que citei acima ("Your apps")&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;minha_consumer_key &lt;b&gt;=&lt;/b&gt; &lt;span style="color: #bf0303;"&gt;'AAAAAAAAAA'&lt;/span&gt;  &lt;i&gt;&lt;span style="color: #559955;"&gt;# Busque por 'Consumer key'&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;minha_consumer_secret &lt;b&gt;=&lt;/b&gt; &lt;span style="color: #bf0303;"&gt;'EEEEE'&lt;/span&gt; &lt;i&gt;&lt;span style="color: #559955;"&gt;# Busque por 'Consumer secret'&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# Esses dois códigos abaixo estão na seção 'My Access Token'&lt;br /&gt;# no menu do lado direito da tela&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;meu_oauth_token &lt;b&gt;=&lt;/b&gt; &lt;span style="color: #bf0303;"&gt;'IIIIIIIII'&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; color: #141312;"&gt;&lt;span style="color: #bf0303;"&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# Access Token (oauth_token)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;meu_oauth_token_secret &lt;b&gt;=&lt;/b&gt; &lt;span style="color: #bf0303;"&gt;'OOOOOOOOO'&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background-color: white; color: #141312;"&gt;&lt;span style="color: #bf0303;"&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# Access Token Secret (oauth_token_secret)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# Esse é o comando para se conectar à&lt;br /&gt;# API usando os dados do seu aplicativo&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;api&lt;b&gt;=&lt;/b&gt;twitter.Api(consumer_key        &lt;b&gt;=&lt;/b&gt; minha_consumer_key,    &lt;b&gt;\&lt;/b&gt;&lt;br /&gt;                consumer_secret     &lt;b&gt;=&lt;/b&gt; minha_consumer_secret, &lt;b&gt;\&lt;/b&gt;&lt;br /&gt;                access_token_key    &lt;b&gt;=&lt;/b&gt; meu_oauth_token,       &lt;b&gt;\&lt;/b&gt;&lt;br /&gt;                access_token_secret &lt;b&gt;=&lt;/b&gt; meu_oauth_token_secret)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# Como vamos fazer um bot respondedor automático de perguntas,&lt;br /&gt;# vamos verificar suas 'mentions'&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;mentions &lt;b&gt;=&lt;/b&gt; api.GetMentions()&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# Para vê-las, você pode executar o seguinte comando&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;print&lt;/b&gt; &lt;span style="color: #bf0303;"&gt;'Imprimindo mentions'&lt;/span&gt;&lt;br /&gt;&lt;b&gt;for&lt;/b&gt; m &lt;b&gt;in&lt;/b&gt; mentions:&lt;br /&gt;    &lt;b&gt;print&lt;/b&gt; m.&lt;span style="color: #0057ae;"&gt;id&lt;/span&gt;, m.user.screen_name, m.text&lt;br /&gt;&lt;i&gt;&lt;span style="color: #559955;"&gt;# As 'mentions' são tweets, e têm vários atributos legais,&lt;br /&gt;# que você pode ver executado o comando 'dir(mentions[0])'&lt;br /&gt;# No exemplo acima, estamos imprimindo o id da 'mention',&lt;br /&gt;# o nome do usuário que fez a 'mention' e o texto da mesma.&lt;br /&gt;# Quando você chama a função api.GetMentions(), é&lt;br /&gt;# possível obter o 'id' dela. Esse 'id' será&amp;nbsp;&lt;br /&gt;# importante para, a cada verificação das 'mentions',&lt;br /&gt;# identificar quais são novas. Basta, a cada&amp;nbsp;&lt;br /&gt;# verificação, comparar o 'id' com o maior 'id'&lt;br /&gt;# verificado anteriormente. Os 'ids' maiores&lt;br /&gt;# indicam 'ids' de 'mentions' novas.&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;ultima_mention &lt;/span&gt;&lt;b style="color: #141312;"&gt;=&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; mentions[&lt;/span&gt;&lt;span style="color: #b08000;"&gt;0&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;].&lt;/span&gt;&lt;span style="color: #0057ae;"&gt;id&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# a API dá as 'mentions' como uma lista, na&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# qual as 'mentions' mais novas vêm primeiro&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# Agora iremos tratar as 'mentions' e respondê-las&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;b style="color: #141312;"&gt;while&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; &lt;/span&gt;&lt;span style="color: #006e28;"&gt;True&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;:&lt;br /&gt;    &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# Iremos fazer o programa esperar um pouco a&lt;br /&gt;    # cada requisição, pois o Twitter não permite&lt;br /&gt;    # que se faça muitas requisições em um espaço&lt;br /&gt;    # curto de tempo (o intervalo de 20s é suficiente)&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;    time.sleep(&lt;/span&gt;&lt;span style="color: #b08000;"&gt;20&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;)&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# Pegando 'mentions' desde a última obtida&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;    mentions &lt;/span&gt;&lt;b style="color: #141312;"&gt;=&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; api.GetMentions(since_id &lt;/span&gt;&lt;b style="color: #141312;"&gt;=&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; ultima_mention)&lt;br /&gt;    &lt;/span&gt;&lt;b style="color: #141312;"&gt;for&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; m &lt;/span&gt;&lt;b style="color: #141312;"&gt;in&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; mentions:&lt;br /&gt;        &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# O texto, estará em m.text, e primeiramente iremos&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# retirar o nome da nossa aplicação do texto&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;        texto &lt;/span&gt;&lt;b style="color: #141312;"&gt;=&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; m.text.replace(&lt;/span&gt;&lt;span style="color: #bf0303;"&gt;'@perfil_da_aplicacao'&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;, &lt;/span&gt;&lt;span style="color: #bf0303;"&gt;''&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;)&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# Se houver a hashtag '#calcule', no tuíte...&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;b style="color: #141312;"&gt;if&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; texto.find(&lt;/span&gt;&lt;span style="color: #bf0303;"&gt;'#calcule'&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;) &lt;/span&gt;&lt;b style="color: #141312;"&gt;&amp;gt;=&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; &lt;/span&gt;&lt;span style="color: #b08000;"&gt;0&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;:&lt;br /&gt;            &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;#...iremos calcular como um comando comum&lt;br /&gt;            # do Python (usando a função '&lt;a href="http://docs.python.org/library/functions.html#eval"&gt;eval&lt;/a&gt;'&lt;br /&gt;            # (mas antes, retiramos a hashtag,&lt;br /&gt;            # com a função "replace")&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;            resultado &lt;/span&gt;&lt;b style="color: #141312;"&gt;=&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; &lt;/span&gt;&lt;span style="color: #0057ae;"&gt;str&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;(&lt;/span&gt;&lt;span style="color: #0057ae;"&gt;eval&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;(texto.replace(&lt;/span&gt;&lt;span style="color: #bf0303;"&gt;'#calcule'&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;,&lt;/span&gt;&lt;span style="color: #bf0303;"&gt;''&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;)))&lt;br /&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# Respondendo a 'mention':&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# A linha abaixo pega o nome (no perfil)&lt;/span&gt;&lt;/i&gt;&lt;/pre&gt;&lt;pre style="background-color: white;"&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;            # de quem fez a 'mention'&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;            quem_fez_a_mention &lt;/span&gt;&lt;b style="color: #141312;"&gt;=&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; m.user.screen_name&lt;br /&gt;            &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# A próxima já responde ao tuíte com&lt;/span&gt;&lt;/i&gt;&lt;/pre&gt;&lt;pre style="background-color: white;"&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;            # o resultado do cálculo&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;            status &lt;/span&gt;&lt;b style="color: #141312;"&gt;=&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; api.PostUpdate(&lt;/span&gt;&lt;span style="color: #bf0303;"&gt;'@'&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; &lt;/span&gt;&lt;b style="color: #141312;"&gt;+&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; quem_fez_a_mention &lt;/span&gt;&lt;b style="color: #141312;"&gt; \&lt;br /&gt;                                    +&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; &lt;/span&gt;&lt;span style="color: #bf0303;"&gt;': '&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; &lt;/span&gt;&lt;b style="color: #141312;"&gt;+&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; resultado)&lt;br /&gt;        &lt;/span&gt;&lt;b style="color: #141312;"&gt;else&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;:&lt;br /&gt;            &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# Ideias?&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;            &lt;/span&gt;&lt;b style="color: #141312;"&gt;pass&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# por enquanto, não faz nada&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;&lt;br /&gt;        &lt;/span&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt;# Essas linhas abaixo atualizam o id da última&lt;br /&gt;        # 'mention', para que nas próximas requisições&amp;lt;&lt;br /&gt;        # somente as novas&lt;/span&gt;&lt;/i&gt;&lt;i style="color: #141312;"&gt;&lt;span style="color: #559955;"&gt; 'mentions' sejam obtidas&lt;/span&gt;&lt;/i&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt;&lt;br /&gt;        &lt;/span&gt;&lt;b style="color: #141312;"&gt;if&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; m.&lt;/span&gt;&lt;span style="color: #0057ae;"&gt;id&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; &lt;/span&gt;&lt;b style="color: #141312;"&gt;&amp;gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; ultima_mention:&lt;br /&gt;            ultima_mention &lt;/span&gt;&lt;b style="color: #141312;"&gt;=&lt;/b&gt;&lt;span class="Apple-style-span" style="color: #141312;"&gt; m.&lt;/span&gt;&lt;span style="color: #0057ae;"&gt;id&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Pronto! Você já pode usar seu pode para fazer cálculos simples. Se você tiver outras ideias, basta incrementar mais o seu bot. Lembre-se de que, dependendo do que sua aplicação irá fazer, alguma complexidade a mais será adicionada. E não se esqueça de configurar o tipo de acesso da aplicação (&lt;span class="Apple-style-span" style="color: #082d3f; font-family: Arial, sans-serif; font-size: 14px; font-weight: bold;"&gt;"Default Access type"&lt;/span&gt;) para "&lt;span class="Apple-style-span" style="color: #082d3f; font-family: Arial, sans-serif; font-size: 14px;"&gt;Read, Write, &amp;amp; Private Message"&lt;/span&gt;, que permite que sua aplicação leia dados, escreva (adicione pessoas, tuíte, etc.) e envie DMs (Direct Messages).&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;Atualização (07/08/2011)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;A propósito: nessa brincadeira de criar bots, criamos esses 3 aí embaixo.&lt;br /&gt;&lt;a href="http://twitter.com/desencurta"&gt;@desencurta&lt;/a&gt;: Você tuíta "@desencurta uma-url-curta" (ex: "@desencurta http://kingo.to/G0U") aí ele te devolve uma DM com a url original (pra isso vc precisa seguir o @desencurta)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://twitter.com/descobreai"&gt;@descobreai&lt;/a&gt;: Esse ainda está adquirindo novas funcionalidades. Por enquanto ele responde a cálculos e descobre resultados de jogos de futebol (Brasileirão séries A e B e Libertadores).&lt;br /&gt;Basta vc tuitar "@descobreai #calcule um-cálculo" (ex:&amp;nbsp;"@descobreai #calcule 3+5*8")&amp;nbsp;ou "@descobreai time1 &amp;amp; time2 uma-data um-campeonato" (ex:&amp;nbsp;"@descobreai flamengo &amp;amp; coritiba 06/08 brasileirão") que ele te responde na hora!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://twitter.com/bandejao_usp"&gt;@bandejao_usp&lt;/a&gt;: Esse tuíta automaticamente o cardápio de todos os restaurantes (vulgo "bandejões") da USP (campus Butantã) todos os dias uma hora antes de os restaurantes abrirem.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://twitter.com/rudaufc"&gt;@RUdaUFC&lt;/a&gt;: Faz a mesma coisa que o &lt;a href="http://twitter.com/bandejao_usp"&gt;@bandejao_usp&lt;/a&gt;, mas para o Restaurante Universitário da &lt;a href="http://www.ufc.br/"&gt;Universidade Federal do Ceará&lt;/a&gt;. O código está disponível aqui:&amp;nbsp;&lt;a href="https://github.com/franzejr/RUdaUFC/"&gt;https://github.com/franzejr/RUdaUFC/&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-5430481680709440601?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/5430481680709440601/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/06/como-criar-um-bot-no-twitter.html#comment-form' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5430481680709440601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5430481680709440601'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/06/como-criar-um-bot-no-twitter.html' title='Como criar um bot no Twitter (em Python)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-nViWDOpmro0/TfjWwrT_e2I/AAAAAAAAAcM/C3VsOSXmPvA/s72-c/robot_bird.jpg' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-8814102486074656206</id><published>2011-05-30T11:56:00.000-07:00</published><updated>2011-05-30T11:56:09.568-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='criatividade'/><category scheme='http://www.blogger.com/atom/ns#' term='ideias'/><title type='text'>De onde vêm as boas ideias?</title><content type='html'>Veja abaixo, o video de Steven Johnson sobre o assunto. O que você acha?&lt;br /&gt;&lt;br /&gt;&lt;iframe allowfullscreen="" frameborder="0" height="349" src="http://www.youtube.com/embed/g6tgH2dWx5c" width="560"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-8814102486074656206?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/8814102486074656206/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/05/de-onde-vem-as-boas-ideias.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8814102486074656206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8814102486074656206'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/05/de-onde-vem-as-boas-ideias.html' title='De onde vêm as boas ideias?'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/g6tgH2dWx5c/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-6272296560819931328</id><published>2011-03-23T15:14:00.000-07:00</published><updated>2011-03-23T15:14:57.317-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='off-topic'/><title type='text'>[OFF] Meu ambiente de trabalho em 7 itens</title><content type='html'>Bem, o &lt;a href="http://elcio.com.br/meu-ambiente-de-trabalho-em-7-itens/"&gt;Élcio&lt;/a&gt; e o &lt;a href="http://peka.wordpress.com/2011/03/23/meu-ambiente-de-trabalho-em-7-itens/"&gt;Peka&lt;/a&gt; me convidaram pra essa corrente de blogs. Tenho que dizer 7 coisas indispensáveis para o dia-a-dia no trabalho (atualmente na área de Bioinformática). Então, lá vai:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. &lt;a href="http://www.ubuntu.org/"&gt;Ubuntu&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;Distribuição boa e prática pra instalar as coisas de que preciso. Para se trabalhar com Bioinfo, o Linux é essencial. Uso no trabalho e em casa.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;Aprendi com o &lt;a href="http://elcio.com.br/"&gt;Élcio&lt;/a&gt; em 2009 e hoje provavelmente é a linguagem que mais uso. Como o Ubuntu, tb é livre e muito fácil de usar. Para trabalhar com manipulação de textos e &lt;a href="http://networkx.lanl.gov/"&gt;redes complexas&lt;/a&gt;, é uma &lt;i&gt;hand on the wheel&lt;/i&gt;. ;-)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. &lt;a href="http://www.r-project.org/"&gt;Linguagem R&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;Linguagem para trabalhar com análises estatísticas, que são parte do meu trabalho. Para fazer cálculos rápidos com tabelas e criar gráficos, troque o seu Excel/Spreadsheet pelo &lt;a href="http://estudarcomputacao.blogspot.com/2010/09/breve-introducao-linguagem-r-e-seus.html"&gt;R&lt;/a&gt;, e comprove o poder dele! \o/&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. &lt;a href="http://kate-editor.org/"&gt;Kate&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;Aprendi a usar esse editor ainda na graduação, porque um &lt;a href="http://twitter.com/riversonlebon"&gt;professor&lt;/a&gt; fazia uma propaganda danada de coisas livres. Na verdade, qualquer outro editor que tenha sintaxe colorida, parentisação e identação automáticos e um terminal acoplado pode ser igualmente útil. Tb uso o &lt;a href="http://en.wikipedia.org/wiki/Vi"&gt;&lt;b&gt;vi&lt;/b&gt;&lt;/a&gt;, mas já ouvi falar q o Emacs tb é muito bom.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. &lt;a href="http://kile.sourceforge.net/"&gt;Kile&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;Editor livre de &lt;span&gt;&lt;span&gt;&lt;img alt="[; \LaTeX^1 ;]" src="http://www.codecogs.com/gif.latex?%20%5CLaTeX%5E1" style="display: inline;" title=" \LaTeX^1 " /&gt;&lt;/span&gt;&lt;/span&gt; (como o Kate, tb para do KDE). Provavelmente foi o primeiro que usei, e no Linux é o que uso até hoje. Uso para editar textos científicos (colocar equações, fórmulas matemáticas, tabelas, etc. tudo usando um código compilável).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;6. Terminal&lt;/b&gt;&lt;br /&gt;É o básico para mexer nos seus diretórios e procurar coisas, rodar comandos, etc. Ficou ainda melhor mexer nele depois q comecei a mexer com &lt;a href="http://en.wikipedia.org/wiki/Shell_script"&gt;&lt;b&gt;shell script&lt;/b&gt;&lt;/a&gt;. =)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. &lt;a href="http://projects.gnome.org/rhythmbox/"&gt;Rhythmbox&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;Legal pra escutar rádios on-line ou arquivos de audio em geral. Muitas coisas ficam melhores com música, inclusive trabalhar.&lt;br /&gt;&lt;br /&gt;E para continuar a corrente, convido agora o &lt;a href="http://twitter.com/evanildo_"&gt;Evanildo&lt;/a&gt;, o &lt;a href="http://twitter.com/dorfodiz"&gt;Dorfo&lt;/a&gt;, o &lt;a href="http://twitter.com/clederperez"&gt;Cléderson Perez&lt;/a&gt;, o &lt;a href="http://fmathias.blogspot.com/"&gt;Fábio Mathias&lt;/a&gt;, o &lt;a href="http://zero7.org/"&gt;Mário Dourado&lt;/a&gt; e o &lt;a href="http://www.silveiraneto.net/"&gt;Silveira&lt;/a&gt; a entrarem na onda.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img alt="[; ^1 ;]" src="http://www.codecogs.com/gif.latex?%20%5E1" style="display: inline;" title=" ^1 " /&gt;&amp;nbsp; Para colocar &lt;img alt="[; \LaTeX ;]" src="http://www.codecogs.com/gif.latex?%20%5CLaTeX" style="display: inline;" title=" \LaTeX " /&gt; no seu blog ou mesmo usá-lo no seu GTalk, use o &lt;a href="http://thewe.net/tex/"&gt;TeX the world&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-6272296560819931328?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/6272296560819931328/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/03/off-meu-ambiente-de-trabalho-em-7-itens.html#comment-form' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6272296560819931328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6272296560819931328'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/03/off-meu-ambiente-de-trabalho-em-7-itens.html' title='[OFF] Meu ambiente de trabalho em 7 itens'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-5105015531187883465</id><published>2011-03-09T00:54:00.000-08:00</published><updated>2011-03-10T12:54:22.552-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jogos'/><category scheme='http://www.blogger.com/atom/ns#' term='tutoriais'/><category scheme='http://www.blogger.com/atom/ns#' term='computação gráfica'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Material de Computação Gráfica e OpenGL</title><content type='html'>Dicas da lista de discussão dos &lt;a href="http://alu.dc.ufc.br/main/index.php"&gt;alunos&lt;/a&gt;&amp;nbsp;de &lt;a href="http://www.dc.ufc.br/"&gt;Ciência da Computação&lt;/a&gt; da &lt;a href="http://www.ufc.br/"&gt;Universidade Federal do Ceará&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Muita gente tem problemas ao iniciar os estudos em &lt;a href="http://pt.wikipedia.org/wiki/Computa%C3%A7%C3%A3o_gr%C3%A1fica"&gt;Computação Gráfica&lt;/a&gt;. Tanto pela dificuldade com a teoria quanto na hora de implementar os algoritmos/funções em alguma linguagem específica. Em C, principalmente, muitos têm dificuldade ao fazer a ligação correta dos programas com &amp;nbsp;as bibliotecas específicas.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-q9EHX5SUwQQ/TXc9QPaRsII/AAAAAAAAAao/tvY9dcoJ2DA/s1600/opengl_logo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh5.googleusercontent.com/-q9EHX5SUwQQ/TXc9QPaRsII/AAAAAAAAAao/tvY9dcoJ2DA/s1600/opengl_logo.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Uma das APIs mais utilizadas (acho que tanto pela qualidade quanto pelo fato de ser livre e multiplataforma) é a &lt;a href="http://www.opengl.org/"&gt;Open Graphics Library&lt;/a&gt;, ou &lt;a href="http://pt.wikipedia.org/wiki/OpenGL"&gt;OpenGL&lt;/a&gt;. E os links abaixo são relacionados ao uso dessa ferramenta, juntamente com o conhecimento necessário para a Computação Gráfica.&lt;br /&gt;&lt;br /&gt;Em português, temos o excelente site da profa.&amp;nbsp;Isabel Harb Manssour, da &lt;a href="http://www.inf.pucrs.br/"&gt;Faculdade de Informática&lt;/a&gt; da &lt;a href="http://www.pucrs.br/"&gt;PUC-RS&lt;/a&gt;, de&amp;nbsp;&lt;b&gt;Introdução à OpenGL&lt;/b&gt;:&lt;br /&gt;&lt;a href="http://www.inf.pucrs.br/%7Emanssour/OpenGL/Tutorial.html"&gt;http://www.inf.pucrs.br/~manssour/OpenGL/Tutorial.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.novateceditora.com.br/livros/opengl/?idA=249" imageanchor="1" style="clear: left; display: inline ! important; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh4.googleusercontent.com/-3pfjdZN7fgU/TXc8M6h9-gI/AAAAAAAAAak/fRZCjx688gw/s1600/livroOpenGL.jpeg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Não conheço o livro dela (imagem ao lado), mas como ele é uma extensão desse material da internet, acredito que também deva ser muito bom.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.novateceditora.com.br/livros/opengl/?idA=249"&gt;&lt;i&gt;OpenGL - Uma Abordagem Prática e Objetiva&lt;/i&gt;&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;i&gt;Marcelo Cohen; Isabel Harb Manssour&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Editora Novatec, 2006&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Outras dicas, em inglês, são:&lt;br /&gt;&lt;br /&gt;O tutorial de OpenGL do &lt;b&gt;&lt;i&gt;&lt;a href="http://www.swiftless.com/"&gt;Swiftless Tutorials&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; (tutoriais para programação de Jogos e Computação Gráfica)&lt;br /&gt;&lt;a href="http://www.swiftless.com/opengltuts.html"&gt;http://www.swiftless.com/opengltuts.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SDL com OpenGL 2.1, do &lt;b&gt;&lt;i&gt;&lt;a href="http://www.lazyfoo.net/"&gt;Lazy Foo&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.lazyfoo.net/SDL_tutorials/lesson36/index.php"&gt;http://www.lazyfoo.net/SDL_tutorials/lesson36/index.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Alguns exemplos de OpenGL com Qt, no &lt;b&gt;&lt;i&gt;&lt;a href="http://doc.trolltech.com/"&gt;TrollTech&lt;/a&gt;&lt;/i&gt;&lt;/b&gt; (&lt;b&gt;&lt;i&gt;&lt;a href="http://qt.nokia.com/"&gt;Nokia&lt;/a&gt;&lt;/i&gt;&lt;/b&gt;)&lt;br /&gt;&lt;a href="http://doc.trolltech.com/4.6/examples-opengl.html"&gt;http://doc.trolltech.com/4.6/examples-opengl.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;&lt;atualização 03="" 2011]="" [10=""&gt;&lt;/atualização&gt;&lt;/div&gt;Material de &lt;b&gt;Tópicos Especiais em Computação Gráfica&lt;/b&gt;, do prof. &lt;a href="http://www.inf.pucrs.br/%7Epinho"&gt;Márcio Sarroglia Pinho&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.inf.pucrs.br/%7Epinho/TCG/ApoioTCG.htm"&gt;http://www.inf.pucrs.br/~pinho/TCG/ApoioTCG.htm&lt;/a&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;&lt;/div&gt;&lt;br /&gt;Agradecemos ao aluno Ricardo Bustamante, pelas dicas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-5105015531187883465?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/5105015531187883465/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/03/material-de-computacao-grafica-e-opengl.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5105015531187883465'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5105015531187883465'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/03/material-de-computacao-grafica-e-opengl.html' title='Material de Computação Gráfica e OpenGL'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-q9EHX5SUwQQ/TXc9QPaRsII/AAAAAAAAAao/tvY9dcoJ2DA/s72-c/opengl_logo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-3793528699586920309</id><published>2011-02-27T11:02:00.000-08:00</published><updated>2011-02-28T04:09:50.428-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='aulas'/><title type='text'>Série "Arte &amp; Matemática" (TV Cultura)</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-hKzUxMumbwk/TWqhHtRLJ8I/AAAAAAAAAaY/MjoOtWhiZO4/s1600/arte_e_matematica_1280179814.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://lh4.googleusercontent.com/-hKzUxMumbwk/TWqhHtRLJ8I/AAAAAAAAAaY/MjoOtWhiZO4/s1600/arte_e_matematica_1280179814.png" /&gt;&lt;/a&gt;&lt;/div&gt;Há alguns dias encontrei por acaso essa série sobre &lt;a href="http://www2.tvcultura.com.br/artematematica/"&gt;Arte &amp;amp; Matemática&lt;/a&gt;. Descobri que é da &lt;a href="http://www2.tvcultura.com.br/"&gt;TV Cultura&lt;/a&gt;, mas nunca cheguei a assistí-la na televisão. Parece ser muito boa!&lt;br /&gt;&lt;br /&gt;São somente 13 episódios, apresentados pelo prof. Luiz Barco, da USP. Vale a pena ver os videos e acessar a &lt;a href="http://www2.tvcultura.com.br/artematematica"&gt;página oficial&lt;/a&gt; (&lt;a href="http://www2.tvcultura.com.br/artematematica"&gt;http://www2.tvcultura.com.br/artematematica&lt;/a&gt;), que é bem interativo e traz muito mais informações sobre a série!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-weight: bold;"&gt;Programa 01 - Do Zero ao Infinito&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed allowfullscreen="true" allowscriptaccess="always" id="VideoPlayback" src="http://video.google.com/googleplayer.swf?docid=752687167547784737&amp;amp;hl=pt-BR&amp;amp;fs=true" style="height: 326px; width: 400px;" type="application/x-shockwave-flash"&gt;&lt;/embed&gt; &lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-weight: bold;"&gt;Programa 02 - Arte e Números&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=-906592663155728845"&gt;http://video.google.com/videoplay?docid=-906592663155728845&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 03 - O artista e o matemático&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=-8801736183284420540"&gt;http://video.google.com/videoplay?docid=-8801736183284420540&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 04 - A Ordem no Caos&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=4468706923692128831"&gt;http://video.google.com/videoplay?docid=4468706923692128831&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 05 - Simetrias&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=1212375178241359770"&gt;http://video.google.com/videoplay?docid=1212375178241359770&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 06 - Número de Ouro&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=8016030212176353232"&gt;http://video.google.com/videoplay?docid=8016030212176353232&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 07 - Música nas Esferas&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=4240845702675535511"&gt;http://video.google.com/videoplay?docid=4240845702675535511&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 08 - A Matemática da Música&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=-8194634083625184410"&gt;http://video.google.com/videoplay?docid=-8194634083625184410&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 09 - Tempo e Infinito&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=2067938572152273882"&gt;http://video.google.com/videoplay?docid=2067938572152273882&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 10 - Forma dentro de Forma&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=-7973187731247452855"&gt;http://video.google.com/videoplay?docid=-7973187731247452855&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 11 - Forma que se transforma&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=-6833732472704596326"&gt;http://video.google.com/videoplay?docid=-6833732472704596326&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 12 - Caos&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=8251800456544014895"&gt;http://video.google.com/videoplay?docid=8251800456544014895&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Programa 13 - O Belo&lt;br /&gt;&lt;a href="http://video.google.com/videoplay?docid=-4231214792930952463"&gt;http://video.google.com/videoplay?docid=-4231214792930952463&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-3793528699586920309?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/3793528699586920309/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/02/serie-arte-matematica-tv-cultura.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3793528699586920309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3793528699586920309'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/02/serie-arte-matematica-tv-cultura.html' title='Série &quot;Arte &amp; Matemática&quot; (TV Cultura)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh4.googleusercontent.com/-hKzUxMumbwk/TWqhHtRLJ8I/AAAAAAAAAaY/MjoOtWhiZO4/s72-c/arte_e_matematica_1280179814.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-3732868906801119165</id><published>2011-01-16T12:19:00.000-08:00</published><updated>2011-01-16T12:20:57.075-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mobile'/><category scheme='http://www.blogger.com/atom/ns#' term='sistemas operacionais'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>O término da ilegalidade móvel</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;por &lt;a href="http://franzejr.wordpress.com/"&gt;FranzéJr&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OdqaItQlcIc/TTNSf3unSnI/AAAAAAAAAY8/S48C-8QjyHs/s1600/android01.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="199" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TTNSf3unSnI/AAAAAAAAAY8/S48C-8QjyHs/s320/android01.jpeg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Imagem:&amp;nbsp;&lt;a href="http://www.movebla.com/wp-content/uploads/2011/01/android01.jpeg"&gt;http://www.movebla.com/wp-content/uploads/2011/01/android01.jpeg&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;O &lt;b&gt;Android&lt;/b&gt; está crescendo cada vez mais. A venda de &lt;b&gt;Smartphones&lt;/b&gt; em geral também&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://g1.globo.com/tecnologia/noticia/2010/08/vendas-de-celulares-sobem-14-no-2o-trimestre-por-precos-menores.html" style="color: #005488;" target="_blank"&gt;está crescendo&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;. Há até algumas câmeras digitais que fazem com que seja possível a ligação do &lt;b&gt;Android&lt;/b&gt; com a câmera para tirar fotos (&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://www.revolucaodigital.net/2011/01/07/samsung-sh100/" style="color: #005488;" target="_blank"&gt;http://www.revolucaodigital.&lt;wbr&gt;&lt;/wbr&gt;net/2011/01/07/samsung-sh100/&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;wbr&gt;&lt;/wbr&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;. No &lt;b&gt;CES 2011&lt;/b&gt; (&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://www.cesweb.org/" style="color: #005488;" target="_blank"&gt;http://www.cesweb.org/&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;) estão sendo lançados, cada vez mais, tablets que também são as tendências dos próximos trimestres. Um exemplo é este&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://www.revolucaodigital.net/2011/01/11/samsung-galaxy-player-b1/" style="color: #005488;" target="_blank"&gt;http://www.revolucaodigital.&lt;wbr&gt;&lt;/wbr&gt;net/2011/01/11/samsung-galaxy-&lt;wbr&gt;&lt;/wbr&gt;player-b1/&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;b&gt;Samsung Galaxy&lt;/b&gt; rodando &lt;b&gt;Android&lt;/b&gt;. Não vou demorar muito tempo falando do &lt;b&gt;Android&lt;/b&gt; em si como sistema operacional, e sim vou falar um pouco de como ele poderá quem sabe tirar da "ilegalidade muitos celulares".&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Se você é programador/desenvolvedor e deseja saber maiores informaçoẽs em como começar no &lt;b&gt;Android&lt;/b&gt; você poderá visitar o blog &lt;b&gt;MobileIn&lt;/b&gt; (&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://mobilein.com.br/" style="color: #005488;" target="_blank"&gt;http://mobilein.com.br&lt;/a&gt;)&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;, lá você encontrará:&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;li style="margin-left: 15px;"&gt;Razões para estudar Android (&lt;a href="http://mobilein.com.br/?p=386" style="color: #005488;" target="_blank"&gt;http://mobilein.com.br/?p=386&lt;/a&gt;)&lt;/li&gt;&lt;li style="margin-left: 15px;"&gt;Tutoriais de como fazer programas no Android (&lt;a href="http://mobilein.com.br/?p=86" style="color: #005488;" target="_blank"&gt;http://mobilein.com.br/?p=86&lt;/a&gt;)&lt;/li&gt;&lt;li style="margin-left: 15px;"&gt;E outras tantas informações!&lt;/li&gt;&lt;/ul&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Você já deve ter visto por aí muitos celulares &lt;i&gt;Made in China&lt;/i&gt;, os quais prometem fazer de tudo. Dual SIM (tem alguns até de 4 chips), internet, visual blackberry e outras tantas &lt;i&gt;features&lt;/i&gt;. Alguma vez você já se perguntou qual sistema operacional eles utilizam? Com o &lt;b&gt;Android&lt;/b&gt; cada vez mais sendo falado, é notável as pessoas pensarem não mais em sistemas operacionais em Desktops/Laptops e sim em Mobiles. Fazendo uma pesquisa no google pude encontrar algumas informações sobre estes.&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;A maior parte dos chipsets aparelhos são produzidos pela Mediatek, você pode até ver alguns da Nokia falsos, o chipset é algo como &lt;b&gt;MTK&lt;/b&gt;.&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://www.mediatek.com/en/index.php" style="color: #005488;" target="_blank"&gt;http://www.mediatek.com/en/&lt;wbr&gt;&lt;/wbr&gt;index.php&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Alguns até possuem uma aparência bacana, outros nem tanto. Costumo dizer que existem os falsos bonzinhos e os outros que realmente dão para perceber, contudo todos estes não deixam de sere falsos.&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;O Sistema Operacional é o &lt;b&gt;MTK OS&lt;/b&gt; (&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://www.mentor.com/embedded-software/nucleus/" style="color: #005488;" target="_blank"&gt;http://www.mentor.com/&lt;wbr&gt;&lt;/wbr&gt;embedded-software/nucleus/&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;), feito não só para smartphones, mas também para robôs e aparelhos eletrônicos, sendo de fácil customização, eis o motivo de muitos o utilizarem, pois dessa forma podem "enganar" a maior parte das pessoas, pois o mesmo SO pode ter um look parecido com &lt;b&gt;iOS&lt;/b&gt; ou até mesmo com outro, por exemplo.&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OdqaItQlcIc/TTNSwm1DkBI/AAAAAAAAAZA/tUuOXPZQjh4/s1600/google-g1-android1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="288" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TTNSwm1DkBI/AAAAAAAAAZA/tUuOXPZQjh4/s320/google-g1-android1.jpg" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Imagem:&amp;nbsp;&lt;a href="http://www.franklinjr.com/blog/wp-content/uploads/2008/10/google-g1-android1.jpg"&gt;http://www.franklinjr.com/blog/wp-content/uploads/2008/10/google-g1-android1.jpg&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Se o &lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;b&gt;Android&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt; realmente continuar como está, a tendência é que a maior parte das pessoas (se não todas : - P ) utilizarem o Android, além de ter mais fácil o agregamento de ferramentas do Google como maps, reader, orkut, calendar, e outras tantas.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;O Ano está começando agora e isso são apenas previsões! Vejamos como será no decorrer dos próximos meses!&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;Se você ficou com água na boca e deseja saber como é o Android realmente pode ver o vídeo da última versão que está para ser lançada, a versão 3 HoneyComb, para quem gosta do visual do iOS está até parecido:&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;a href="http://www.revolucaodigital.net/2011/01/06/google-android3-honeycomb-oficial/" style="color: #005488;" target="_blank"&gt;http://www.revolucaodigital.&lt;wbr&gt;&lt;/wbr&gt;net/2011/01/06/google-&lt;wbr&gt;&lt;/wbr&gt;android3-honeycomb-oficial/&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-3732868906801119165?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/3732868906801119165/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/01/o-termino-da-ilegalidade-movel.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3732868906801119165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3732868906801119165'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/01/o-termino-da-ilegalidade-movel.html' title='O término da ilegalidade móvel'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OdqaItQlcIc/TTNSf3unSnI/AAAAAAAAAY8/S48C-8QjyHs/s72-c/android01.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7582536174319912782</id><published>2011-01-09T10:27:00.000-08:00</published><updated>2011-01-09T10:27:37.331-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='inteligência artificial'/><category scheme='http://www.blogger.com/atom/ns#' term='notação binária'/><category scheme='http://www.blogger.com/atom/ns#' term='teoria dos conjuntos'/><title type='text'>Representação de conjuntos por notação binária</title><content type='html'>Quantos subconjuntos podemos formar com os elementos de um conjunto?&lt;br /&gt;&lt;br /&gt;Deixe-me explicar melhor: suponha que voce tenha o conjunto A = {1, 2, 4}. Quantos subconjuntos podemos formar com os elementos de A?&lt;br /&gt;Bem, como A tem 3 elementos, é claro que podemos formar subconjuntos de 0 a 3 elementos.&lt;br /&gt;Para ser mais exato, são eles:&lt;br /&gt;- Nenhum elemento: {} ou&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: x-small; line-height: 15px;"&gt;∅&lt;/span&gt;&amp;nbsp;(o conjunto vazio)&lt;br /&gt;- 1 elemento:&amp;nbsp;{1},&amp;nbsp;{2} e&amp;nbsp;{4}.&lt;br /&gt;- 2 elementos:&amp;nbsp;{1, 2},&amp;nbsp;{1, 4} e&amp;nbsp;{2, 4}.&lt;br /&gt;- 3 elementos:&amp;nbsp;{1, 2, 4}, o próprio conjunto A.&lt;br /&gt;Total: 8 subconjuntos.&lt;br /&gt;&lt;br /&gt;Mas e se A tivesse 4, 10 ou 100 elementos? Há uma maneira de calcular a quantidade de subconjuntos para um n qualquer?&lt;br /&gt;&lt;br /&gt;Antes de prosseguirmos, porém, gostaria de dizer que esses conjuntos de todos os subconjuntos de um conjunto qualquer é chamado &lt;a href="http://pt.wikipedia.org/wiki/Conjunto_de_partes"&gt;&lt;b&gt;conjunto das partes&lt;/b&gt;&lt;/a&gt; (ou &lt;a href="http://en.wikipedia.org/wiki/Power_set"&gt;&lt;b&gt;power set&lt;/b&gt;&lt;/a&gt;, em inglês), também denotado por&amp;nbsp; &lt;img alt="[; \mathcal{P}(A) ;]" src="http://www.codecogs.com/gif.latex?%20%5Cmathcal%7BP%7D%28A%29" style="display: inline;" title=" \mathcal{P}(A) " /&gt;.&lt;br /&gt;&lt;br /&gt;É possível provar &lt;a href="http://www.math.utah.edu/~alfeld/math/sets/powerproof.html"&gt;por indução&lt;/a&gt; que a quantidade de elementos de &lt;img alt="[; \mathcal{P}(S) ;]" src="http://www.codecogs.com/gif.latex?%20%5Cmathcal%7BP%7D%28S%29" style="display: inline;" title=" \mathcal{P}(S) " /&gt; é &lt;img alt="[; 2^n ;]" src="http://www.codecogs.com/gif.latex?%202%5En" style="display: inline;" title=" 2^n " /&gt;, onde n é a quantidade de elementos de um conjunto S qualquer.&lt;br /&gt;&lt;br /&gt;É também possível observar que há uma relação entre a quantidade de subconjuntos com k elementos observando as linhas do &lt;a href="http://pt.wikipedia.org/wiki/Tri%C3%A2ngulo_de_Pascal"&gt;Triângulo de Pascal&lt;/a&gt;. Cada linha &lt;img alt="[; n ;]" src="http://www.codecogs.com/gif.latex?%20n" style="display: inline;" title=" n " /&gt; deste Triângulo é formada da seguinte maneira:&lt;br /&gt;&lt;br /&gt;&lt;img alt="[; {n \choose 0} + {n \choose 1} + {n \choose 2} + ... + {n \choose n-1} + {n \choose n} ;]" src="http://www.codecogs.com/gif.latex?%20%7Bn%20%5Cchoose%200%7D%20+%20%7Bn%20%5Cchoose%201%7D%20+%20%7Bn%20%5Cchoose%202%7D%20+%20...%20+%20%7Bn%20%5Cchoose%20n-1%7D%20+%20%7Bn%20%5Cchoose%20n%7D" style="display: inline;" title=" {n \choose 0} + {n \choose 1} + {n \choose 2} + ... + {n \choose n-1} + {n \choose n} " /&gt; &lt;br /&gt;&lt;br /&gt;cuja soma dá exatamente &lt;img alt="[; 2^n ;]" src="http://www.codecogs.com/gif.latex?%202%5En" style="display: inline;" title=" 2^n " /&gt;. Cada combinação &lt;img alt="[; {n \choose k ;]" src="http://www.codecogs.com/gif.latex?%20%7Bn%20%5Cchoose%20k" style="display: inline;" title=" {n \choose k " /&gt; indica a combinação de &lt;img alt="[; n ;]" src="http://www.codecogs.com/gif.latex?%20n" style="display: inline;" title=" n " /&gt;, escolhidos &lt;img alt="[;k;]" src="http://www.codecogs.com/gif.latex?k" style="display: inline;" title="k" /&gt; (ou a combinação de &lt;img alt="[; n ;]" src="http://www.codecogs.com/gif.latex?%20n" style="display: inline;" title=" n " /&gt;, &lt;img alt="[;k;]" src="http://www.codecogs.com/gif.latex?k" style="display: inline;" title="k" /&gt; a &lt;img alt="[;k;]" src="http://www.codecogs.com/gif.latex?k" style="display: inline;" title="k" /&gt;), que é justamente a quantidade de subconjuntos possíveis com &lt;img alt="[;k;]" src="http://www.codecogs.com/gif.latex?k" style="display: inline;" title="k" /&gt; elementos.&lt;br /&gt;&lt;br /&gt;Uma outra maneira (para mim a mais fácil) de computar a quantidade de possíveis subconjuntos é usando a notação binária. De alguma forma, os elementos precisam ser ordenados, e iremos usar n símbolos, dentro do conjunto {0, 1} para identificar um subconjunto. É fácil perceber que, &lt;b&gt;a cada configuração de subconjunto, ou um elemento está ou não está neste subconjunto&lt;/b&gt;.&lt;br /&gt;Por exemplo, no exemplo com A = {1, 2, 4}, temos as seguintes representações:&lt;br /&gt;&lt;br /&gt;- Nenhum elemento: {} =&amp;gt; &lt;b&gt;000&lt;/b&gt;&lt;br /&gt;- 1 elemento:&amp;nbsp;{1},&amp;nbsp;{2} e&amp;nbsp;{4} =&amp;gt; &lt;b&gt;100&lt;/b&gt;, &lt;b&gt;010&lt;/b&gt; e &lt;b&gt;001&lt;/b&gt;&lt;br /&gt;- 2 elementos:&amp;nbsp;{1, 2},&amp;nbsp;{1, 4} e&amp;nbsp;{2, 4} =&amp;gt; &lt;b&gt;110&lt;/b&gt;, &lt;b&gt;101&lt;/b&gt; e &lt;b&gt;011&lt;/b&gt;&lt;br /&gt;- 3 elementos:&amp;nbsp;{1, 2, 4} =&amp;gt; &lt;b&gt;111&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Assim, só precisamos calcular quantas combinações de 0's e 1's são possíveis, usando n posições. E a resposta é exatamente 2 x 2 x 2 x ... x 2 (n vezes) = &lt;img alt="[; 2^n ;]" src="http://www.codecogs.com/gif.latex?%202%5En" style="display: inline;" title=" 2^n " /&gt;.&lt;br /&gt;;-)&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_OdqaItQlcIc/TSn5wM84VQI/AAAAAAAAAY0/sbdNz4op3oQ/s1600/Knapsack.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="277" src="http://3.bp.blogspot.com/_OdqaItQlcIc/TSn5wM84VQI/AAAAAAAAAY0/sbdNz4op3oQ/s320/Knapsack.png" width="320" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Imagem:&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://commons.wikimedia.org/wiki/File:Knapsack.svg"&gt;http://commons.wikimedia.org/wiki/File:Knapsack.svg&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Vamos ver uma aplicação legal com essa representação de notação binária para representação de conjuntos.&lt;br /&gt;Você conhece o &lt;a href="http://pt.wikipedia.org/wiki/Problema_da_mochila"&gt;problema da mochila&lt;/a&gt;? Resumidamente, nesse problema você deseja colocar alguns objetos dentro de uma mochila que suporta um peso máximo. Cada objeto tem um peso e um valor. O que se pretende é alcançar o valor máximo possível sem ultrapassar o peso máximo suportado pela mochila. Uma das maneiras de representar quais elementos você deseja colocar na mochila é pela representação binária. Suponha que temos 6 objetos, e desejamos levar o 1º, o 3º e o 6º. Assim, a configuração será 101001.&lt;br /&gt;&lt;br /&gt;Uma maneira de resolver o problema da mochila é usando &lt;a href="http://pt.wikipedia.org/wiki/Algoritmo_gen%C3%A9tico"&gt;algoritmos genéticos&lt;/a&gt;, e para esse tipo de algoritmo, precisa-se representar uma configuração/estado do problema formando palavras com caracteres de um dado alfabeto. Nesse caso, a notação binária funciona perfeitamente!&lt;br /&gt;&lt;br /&gt;Só pra matar a curiosidade de quem ainda não conhece &lt;a href="http://pt.wikipedia.org/wiki/Algoritmo_gen%C3%A9tico"&gt;algoritmos genéticos&lt;/a&gt;, vou mostrar algumas operações simples desse tipo de algoritmo.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_OdqaItQlcIc/TSn6AXABiHI/AAAAAAAAAY4/7tRTekALzr0/s1600/crossing_over.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_OdqaItQlcIc/TSn6AXABiHI/AAAAAAAAAY4/7tRTekALzr0/s1600/crossing_over.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Imagem:&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://www.genomenewsnetwork.org/gnn_images/whats_a_genome/crossing_over.jpg"&gt;http://www.genomenewsnetwork.org/gnn_images/whats_a_genome/crossing_over.jpg&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Por exemplo, o &lt;a href="http://pt.wikipedia.org/wiki/Recombina%C3%A7%C3%A3o_gen%C3%A9tica"&gt;crossing-over&lt;/a&gt;, feita com a combinação de 2 estados:&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;101001&lt;/span&gt;&lt;/b&gt;&amp;nbsp;(significa colocar na mochila os elementos 1, 3 e 6) e&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;110111&amp;nbsp;&lt;/span&gt;&lt;/b&gt;(os elementos 1, 2, 4, 5 e 6 na mochila),&lt;br /&gt;que se quebram (depois da 3ª posição, p. ex.) e se rearranjam:&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;101&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="color: red; font-weight: bold;"&gt;111&lt;/span&gt; (a primeira parte do estado 1 e a segunda parte do estado 2, que são&amp;nbsp;os elementos 1, 3, 4, 5 e 6 na mochila)&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;span class="Apple-style-span" style="color: black; font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;&lt;span class="Apple-style-span" style="color: black; font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;span class="Apple-style-span" style="color: black; font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;110&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;001&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&amp;nbsp;(a primeira parte do estado 2 e a segunda parte do estado 1, que são&amp;nbsp;os elementos 1, 2 e 6 na mochila)&lt;br /&gt;&lt;br /&gt;Recombinando os estados dessa forma, espera-se encontrar combinações que sejam bons subconjuntos de elementos a serem postos na mochila.&lt;br /&gt;&lt;br /&gt;Em um próximo post, falarei mais sobre esse tipo de algoritmo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7582536174319912782?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7582536174319912782/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2011/01/representacao-de-conjuntos-por-notacao.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7582536174319912782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7582536174319912782'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2011/01/representacao-de-conjuntos-por-notacao.html' title='Representação de conjuntos por notação binária'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OdqaItQlcIc/TSn5wM84VQI/AAAAAAAAAY0/sbdNz4op3oQ/s72-c/Knapsack.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-6732804416871877995</id><published>2010-12-19T08:54:00.000-08:00</published><updated>2010-12-26T11:39:48.390-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xadrez'/><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='kasparov'/><category scheme='http://www.blogger.com/atom/ns#' term='inteligência artificial'/><category scheme='http://www.blogger.com/atom/ns#' term='ibm'/><category scheme='http://www.blogger.com/atom/ns#' term='supercomputadores'/><title type='text'>Humanos versus máquinas - a história de Deep Blue contra Kasparov</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_OdqaItQlcIc/TQ44oBgDeFI/AAAAAAAAAYk/SP96-enQ09o/s1600/deep-blue-kasparov.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="195" src="http://4.bp.blogspot.com/_OdqaItQlcIc/TQ44oBgDeFI/AAAAAAAAAYk/SP96-enQ09o/s320/deep-blue-kasparov.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://pt.wikipedia.org/wiki/Deep_Blue"&gt;&lt;i&gt;&lt;b&gt;Deep Blue&lt;/b&gt;&lt;/i&gt;&lt;/a&gt; foi um supercomputador desenvolvido pela &lt;a href="http://pt.wikipedia.org/wiki/IBM"&gt;&lt;b&gt;IBM &lt;/b&gt;&lt;/a&gt;nos anos 90 para jogar xadrez e desafiar os melhores enxadristas do mundo. Na época, ficou bastante conhecido o duelo feito contra &lt;a href="http://pt.wikipedia.org/wiki/Garry_Kasparov"&gt;Garry Kasparov&lt;/a&gt;, azerbaijanês radicado na Rússia, e melhor jogador de xadrez da época (alguns dizem que de todos os tempos).&lt;br /&gt;&lt;br /&gt;Entre derrotas e vitórias, alguns detalhes dessa história ficaram parcialmente encobertos, e diz-se que há "a possibilidade desta vitória ter sido armada para elevar o valor das ações da companhia." (Fonte: &lt;a href="http://pt.wikipedia.org/wiki/Deep_Blue"&gt;Wikipedia&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Isso é o que diz o documentário de 2003 chamado "Game Over: Kasparov and the Machine" ("Fim de Jogo", em português), da BBC. Veja abaixo a primeira parte. Os links para as outras partes estão logo em seguida.&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Bo5_rH0I1OA?fs=1&amp;amp;hl=pt_BR"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/Bo5_rH0I1OA?fs=1&amp;amp;hl=pt_BR" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Parte 2/9: &lt;a href="http://www.youtube.com/watch?v=P9upyoaEzOg"&gt;http://www.youtube.com/watch?v=P9upyoaEzOg&lt;/a&gt;&lt;br /&gt;Parte 3/9: &lt;a href="http://www.youtube.com/watch?v=o0QasMw_Tms"&gt;http://www.youtube.com/watch?v=o0QasMw_Tms&lt;/a&gt;&lt;br /&gt;Parte 4/9: &lt;a href="http://www.youtube.com/watch?v=Fn96zf70JrQ"&gt;http://www.youtube.com/watch?v=Fn96zf70JrQ&lt;/a&gt; &lt;br /&gt;Parte 5/9: &lt;a href="http://www.youtube.com/watch?v=vgb73cGtQ54"&gt;http://www.youtube.com/watch?v=vgb73cGtQ54&lt;/a&gt;&lt;br /&gt;Parte 6/9: &lt;a href="http://www.youtube.com/watch?v=oCunA2iT6kQ"&gt;http://www.youtube.com/watch?v=oCunA2iT6kQ&lt;/a&gt; &lt;br /&gt;Parte 7/9: &lt;a href="http://www.youtube.com/watch?v=dg8uZeahR0A"&gt;http://www.youtube.com/watch?v=dg8uZeahR0A&lt;/a&gt;&lt;br /&gt;Parte 8/9: &lt;a href="http://www.youtube.com/watch?v=svUJyjadFo8"&gt;http://www.youtube.com/watch?v=svUJyjadFo8&lt;/a&gt; &lt;br /&gt;Parte 9/9: &lt;a href="http://www.youtube.com/watch?v=2GY2_wI-RQo"&gt;http://www.youtube.com/watch?v=2GY2_wI-RQo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-6732804416871877995?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/6732804416871877995/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/12/humanos-versus-maquinas-historia-de.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6732804416871877995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6732804416871877995'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/12/humanos-versus-maquinas-historia-de.html' title='Humanos versus máquinas - a história de Deep Blue contra Kasparov'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OdqaItQlcIc/TQ44oBgDeFI/AAAAAAAAAYk/SP96-enQ09o/s72-c/deep-blue-kasparov.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-5302729958843522903</id><published>2010-10-31T06:47:00.000-07:00</published><updated>2010-10-31T07:07:56.629-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='robôs'/><category scheme='http://www.blogger.com/atom/ns#' term='ime-usp'/><category scheme='http://www.blogger.com/atom/ns#' term='inteligência artificial'/><category scheme='http://www.blogger.com/atom/ns#' term='palestras'/><title type='text'>I.A. - Inteligência Artificial ou Imbecilidade Automatizada? Máquinas podem pensar e sentir?</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_OdqaItQlcIc/TM1zYl8k5jI/AAAAAAAAAYg/Xnn3rp3cAx8/s1600/vwsetzer.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OdqaItQlcIc/TM1zYl8k5jI/AAAAAAAAAYg/Xnn3rp3cAx8/s1600/vwsetzer.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;O título acima é também o tema de uma palestra dada pelo prof.&amp;nbsp;&lt;a href="http://www.ime.usp.br/~vwsetzer/"&gt;Valdemar W. Setzer&lt;/a&gt; (do &lt;a href="http://www.ime.usp.br/"&gt;IME&lt;/a&gt;-&lt;a href="http://www.usp.br/"&gt;USP&lt;/a&gt;). Em sua &lt;a href="http://www.ime.usp.br/~vwsetzer/"&gt;página&lt;/a&gt;, ele faz um breve resumo do que é tratado na apresentação e também coloca um texto mais longo&amp;nbsp;sobre o assunto.&lt;br /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;RESUMO&lt;/b&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;ol&gt;&lt;li&gt;O ser humano é uma máquina? O que é um computador. Dado e informação. Sintaxe e semântica. O "quarto chinês" de Searle e a semântica. O pensar como processo singular e como ponte entre a percepção e o conceito. Exemplo da visão e da perspectiva linear. Intuição: xadrez eletrônico e Kasparov vs. Deep Blue. O que é compreender e aprender. A auto-determinação do pensar e a liberdade.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Qual o papel do cérebro? O cérebro é um computador? A atividade neuronal produz o pensamento ou vice-versa? Crítica a R. Kurzweil e suas profecias. Objeções de Penrose (o pensamento não é algorítmico) e de Fetzer (semiótica). As questões da autodeterminação do pensamento e a liberdade.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;O que é inteligência? Tipos de inteligência (Gardner e Goleman). Inteligência incorporada em minerais, plantas, animais, seres humanos e máquinas. Inteligência criativa no ser humano. Máquinas podem ser inteligentes? O Teste de Turing e suas extensões (Harnad). Comparação com o "quarto chinês". Inteligência Artificial ou Imbecilidade Automatizada?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;O que é ter sentimentos? Subjetividade e individualidade dos sentimentos. A universalidade das máquinas e a possibilidade de terem sentimentos. J. McCarthy e o seu "termostato com opinião". Pensar, sentir e querer.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Consciência e auto-consciência. As&lt;uinas podem=""&gt;&amp;nbsp;máquinas podem ter consciência?&lt;br /&gt;&lt;/uinas&gt;&lt;/li&gt;&lt;li&gt;Análise dos filmes&amp;nbsp;&lt;i&gt;The Bicentennial Man&lt;/i&gt;&amp;nbsp;de Columbus e&amp;nbsp;&lt;i&gt;Artificial Intelligence&lt;/i&gt;&amp;nbsp;de Spielberg. Absurdos presentes nos filmes. Mensagens dos filmes. Influências na mentalidade, principalmente em crianças.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Conclusões. O mundo e a humanidade em perigo e a questão da visão de mundo.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&amp;nbsp;Leia mais sobre o assunto em:&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~vwsetzer/IAtrad.html"&gt;http://www.ime.usp.br/~vwsetzer/IAtrad.html&lt;/a&gt; (texto mais longo, em português)&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~vwsetzer/AI.html"&gt;http://www.ime.usp.br/~vwsetzer/AI.html&lt;/a&gt;&amp;nbsp;(original, em inglês)&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~vwsetzer/apresentacoes/IA-reduzida.pps"&gt;http://www.ime.usp.br/~vwsetzer/apresentacoes/IA-reduzida.pps&lt;/a&gt; (apresentação)&lt;br /&gt;&lt;br /&gt;Vale a pena!&lt;br /&gt;&lt;br /&gt;* Aproveite e dê uma fuçada na &lt;a href="http://www.ime.usp.br/~vwsetzer/"&gt;página do Prof. Setzer&lt;/a&gt; e leia mais textos dele. Você vai gostar!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-5302729958843522903?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/5302729958843522903/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/10/ia-inteligencia-artificial-ou.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5302729958843522903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5302729958843522903'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/10/ia-inteligencia-artificial-ou.html' title='I.A. - Inteligência Artificial ou Imbecilidade Automatizada? Máquinas podem pensar e sentir?'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OdqaItQlcIc/TM1zYl8k5jI/AAAAAAAAAYg/Xnn3rp3cAx8/s72-c/vwsetzer.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-3227729602500843580</id><published>2010-10-18T14:51:00.000-07:00</published><updated>2010-11-10T07:29:57.874-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prova'/><category scheme='http://www.blogger.com/atom/ns#' term='2010'/><category scheme='http://www.blogger.com/atom/ns#' term='gabarito'/><category scheme='http://www.blogger.com/atom/ns#' term='poscomp'/><title type='text'>Poscomp 2010 - Prova e gabarito</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_OdqaItQlcIc/TLzCsyi03nI/AAAAAAAAAYA/WPwCjKOzKCQ/s1600/poscomp.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://4.bp.blogspot.com/_OdqaItQlcIc/TLzCsyi03nI/AAAAAAAAAYA/WPwCjKOzKCQ/s320/poscomp.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;*** Atenção!&lt;/b&gt; ***&lt;br /&gt;Dia 5 de novembro foi divulgado um novo gabarito.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Novo: &lt;/b&gt;&lt;br /&gt;Baixe a prova &lt;a href="http://www.vision.ime.usp.br/%7Ellima/poscomp/prova_e_gabarito_poscomp_2010_versao-2010-11-05.pdf"&gt;aqui&lt;/a&gt;  e o gabarito novo &lt;a href="http://www.vision.ime.usp.br/%7Ellima/poscomp/gabarito_poscomp_2010_versao-2010-11-05.pdf"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Gabarito Poscomp 2010 (novo&lt;span style="color: red;"&gt;*&lt;/span&gt;, divulgado em 5/11/2010)&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;Matemática&lt;/b&gt;&lt;br /&gt;1 C &amp;nbsp;&amp;nbsp;2 A &amp;nbsp;&amp;nbsp;3 E &amp;nbsp;&amp;nbsp;4 B &amp;nbsp;&amp;nbsp;5 &lt;span style="color: red;"&gt;A&lt;/span&gt; &lt;strike&gt;D&lt;/strike&gt;&lt;br /&gt;6 C &amp;nbsp;&amp;nbsp;7 A &amp;nbsp;&amp;nbsp;8 &lt;span style="color: red;"&gt;*&lt;/span&gt; &lt;strike&gt;D&lt;/strike&gt; &amp;nbsp;&amp;nbsp;9 B &amp;nbsp;&amp;nbsp;10 &lt;span style="color: red;"&gt;C&lt;/span&gt; &lt;strike&gt;E&lt;/strike&gt;&lt;br /&gt;11 E &amp;nbsp;&amp;nbsp;12 B &amp;nbsp;&amp;nbsp;13 D &amp;nbsp;&amp;nbsp;14 A &amp;nbsp;&amp;nbsp;15 C&lt;br /&gt;16 C &amp;nbsp;&amp;nbsp;17 A &amp;nbsp;&amp;nbsp;18 E &amp;nbsp;&amp;nbsp;19 D &amp;nbsp;&amp;nbsp;20 B&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fundamentos de Computação&lt;/b&gt;&lt;br /&gt;21 &lt;span style="color: red;"&gt;D&lt;/span&gt; &lt;strike&gt;A&lt;/strike&gt; &amp;nbsp;&amp;nbsp;22 B &amp;nbsp;&amp;nbsp;23 C &amp;nbsp;&amp;nbsp;24 C &amp;nbsp;&amp;nbsp;25 E&lt;br /&gt;26 D &amp;nbsp;&amp;nbsp;27 A &amp;nbsp;&amp;nbsp;28 A &amp;nbsp;&amp;nbsp;29 E &amp;nbsp;&amp;nbsp;30 D&lt;br /&gt;31 B &amp;nbsp;&amp;nbsp;32 &lt;span style="color: red;"&gt;*&lt;/span&gt; &lt;strike&gt;E&lt;/strike&gt; &amp;nbsp;&amp;nbsp;33 C &amp;nbsp;&amp;nbsp;34 D &amp;nbsp;&amp;nbsp;35 B&lt;br /&gt;36 D &amp;nbsp;&amp;nbsp;37 E &amp;nbsp;&amp;nbsp;38 A &amp;nbsp;&amp;nbsp;39 B &amp;nbsp;&amp;nbsp;40 A&lt;br /&gt;41 C &amp;nbsp;&amp;nbsp;42 E &amp;nbsp;&amp;nbsp;43 D &amp;nbsp;&amp;nbsp;44 &lt;span style="color: red;"&gt;*&lt;/span&gt; &lt;strike&gt;B&lt;/strike&gt; &amp;nbsp;&amp;nbsp;45 &lt;span style="color: red;"&gt;*&lt;/span&gt; &lt;strike&gt;C&lt;/strike&gt;&lt;br /&gt;46 A &amp;nbsp;&amp;nbsp;47 B &amp;nbsp;&amp;nbsp;48 D &amp;nbsp;&amp;nbsp;49 A &amp;nbsp;&amp;nbsp;50 C&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tecnologia da Computação&lt;/b&gt;&lt;br /&gt;51 E &amp;nbsp;&amp;nbsp;52 C &amp;nbsp;&amp;nbsp;53 C &amp;nbsp;&amp;nbsp;54 A &amp;nbsp;&amp;nbsp;55 B&lt;br /&gt;56 A &amp;nbsp;&amp;nbsp;57 C &amp;nbsp;&amp;nbsp;58 E &amp;nbsp;&amp;nbsp;59 D &amp;nbsp;&amp;nbsp;60 B&lt;br /&gt;61 B &amp;nbsp;&amp;nbsp;62 D &amp;nbsp;&amp;nbsp;63 C &amp;nbsp;&amp;nbsp;64 A &amp;nbsp;&amp;nbsp;65 A&lt;br /&gt;66 B &amp;nbsp;&amp;nbsp;67 E &amp;nbsp;&amp;nbsp;68 D &amp;nbsp;&amp;nbsp;69 E &amp;nbsp;&amp;nbsp;70 D&lt;br /&gt;&lt;br /&gt;&lt;b style="color: red;"&gt;Novo:&lt;/b&gt; &lt;br /&gt;*Obs: As questões &lt;b&gt;5&lt;/b&gt;, &lt;b&gt;10&lt;/b&gt; e &lt;b&gt;21&lt;/b&gt; tiveram o gabarito modificado.&lt;br /&gt;Nas questões com &lt;b style="color: red;"&gt;*&lt;/b&gt; (8, 32, 44 e 45) todos os candidatos vão receber os pontos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-3227729602500843580?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/3227729602500843580/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/10/poscomp-2010-prova-e-gabarito.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3227729602500843580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3227729602500843580'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/10/poscomp-2010-prova-e-gabarito.html' title='Poscomp 2010 - Prova e gabarito'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OdqaItQlcIc/TLzCsyi03nI/AAAAAAAAAYA/WPwCjKOzKCQ/s72-c/poscomp.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7561800732418858763</id><published>2010-10-11T06:52:00.000-07:00</published><updated>2010-10-17T04:30:52.377-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lógica matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='Escher'/><category scheme='http://www.blogger.com/atom/ns#' term='música'/><category scheme='http://www.blogger.com/atom/ns#' term='pintura'/><category scheme='http://www.blogger.com/atom/ns#' term='gödel'/><category scheme='http://www.blogger.com/atom/ns#' term='arte'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><category scheme='http://www.blogger.com/atom/ns#' term='Bach'/><title type='text'>Gödel, Escher, Bach</title><content type='html'>&lt;div style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;a href="http://www.amazon.com/gp/product/0465026567?ie=UTF8&amp;amp;tag=studycompusci-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0465026567"&gt;&lt;img src="http://www.bilerico.com/2010/05/godel%20escher%20bach-thumb-200x288-11666.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;Ainda quando eu estava na metade da graduação em Computação, nosso professor de Lógica, &lt;a href="http://marpeq.wordpress.com/"&gt;Marcelino Pequeno&lt;/a&gt;, nos recomendava o livro &lt;span class="hP" id=":1x3"&gt;&lt;a href="http://www.amazon.com/gp/product/0465026567?ie=UTF8&amp;amp;tag=studycompusci-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0465026567"&gt;Gödel, Escher, Bach&lt;/a&gt; (ou &lt;a href="http://pt.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach"&gt;&lt;i&gt;&lt;b&gt;GEB&lt;/b&gt;&lt;/i&gt;&lt;/a&gt;, de &lt;/span&gt;&lt;a href="http://pt.wikipedia.org/wiki/Douglas_Hofstadter" title="Douglas Hofstadter"&gt;Douglas Hofstadter&lt;/a&gt;&lt;span class="hP" id=":1x3"&gt;). Mesmo que eu tivesse lido naquela época, se fosse reler de novo agora, com certeza seria com uma outra mente. É um livro que está entre os próximos na fila de espera. Mas mesmo sem ter lido, não acho que seria arriscado indicá-lo, por tudo que falam dele e por tudo que já vi por aí. A verdade é que o simples título já nos atrai. Seja quem goste de &lt;a href="http://pt.wikipedia.org/wiki/Kurt_G%C3%B6del"&gt;Matemática&lt;/a&gt; ou &lt;a href="http://pt.wikipedia.org/wiki/Maurits_Cornelis_Escher"&gt;Pintura&lt;/a&gt; ou &lt;a href="http://pt.wikipedia.org/wiki/Johann_Sebastian_Bach"&gt;Música&lt;/a&gt; ou os três ou nenhum. Gênios. Arte a ser estudada, admirada.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="hP" id=":1x3"&gt;Tenho visto alguns links interessantes na internet, e gostaria de compartilhá-los.&lt;/span&gt;&lt;br /&gt;&lt;span class="hP" id=":1x3"&gt;Há alguns blogs/sites que já falaram sobre o assunto:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="hP" id=":1x3"&gt;- O &lt;b&gt;&lt;a href="http://www.cienciaviva.pt/"&gt;Ciência Viva&lt;/a&gt;&lt;/b&gt;, de Portugal:&lt;/span&gt;&lt;br /&gt;&lt;span class="hP" id=":1x3" style="font-size: x-small;"&gt;&lt;a href="http://www.cienciaviva.pt/diga/index.asp?accao=showler&amp;amp;id_queremosler=6" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://www.cienciaviva.pt/diga/index.asp?accao=showler&amp;amp;id_queremosler=6&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="hP" id=":1x3"&gt;- O blog &lt;b&gt;&lt;a href="http://blog.ricbit.com/2008/06/como-aprender-computao.html#links"&gt;Brain Dump&lt;/a&gt;&lt;/b&gt;, &lt;/span&gt;&lt;span class="hP" id=":1x3"&gt;do Ricardo Bittencourt,&lt;/span&gt;&lt;span class="hP" id=":1x3"&gt; traz uma lista de 10 livros para começar a estudar Computação, da qual o GEB é o primeiro da lista!&lt;/span&gt;&lt;br /&gt;&lt;span class="hP" id=":1x3" style="font-size: x-small;"&gt;&lt;a href="http://blog.ricbit.com/2008/06/como-aprender-computao.html"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://blog.ricbit.com/2008/06/como-aprender-computao.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;span class="hP" id=":1x3"&gt;- O blog &lt;a href="http://maquinacriadora.wordpress.com/2010/01/16/eternal-golden-braid/trackback/"&gt;&lt;b&gt;Máquina Criadora&lt;/b&gt;&lt;/a&gt;, do Daniel Ferreira, faz uma breve análise sobre o livro.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span class="hP" id=":1x3" style="font-size: x-small;"&gt;&lt;a href="http://maquinacriadora.wordpress.com/2010/01/16/eternal-golden-braid/"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://maquinacriadora.wordpress.com/2010/01/16/eternal-golden-braid/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img height="217" src="http://www.walyou.com/img/lego-waterfall-mc-escher.jpg" style="margin-left: auto; margin-right: auto;" width="320" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Obra &lt;b&gt;Waterfall&lt;/b&gt;, de &lt;b&gt;Escher&lt;/b&gt;, feita em &lt;b&gt;Lego&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/center&gt;&lt;span class="hP" id=":1x3"&gt;Encontrei também uma série de video-aulas do MIT, chamadas &lt;b&gt;Gödel, Escher, Bach: A Mental Space Odyssey&lt;/b&gt; (você pode baixar as aulas no &lt;a href="http://ocw.mit.edu/high-school/courses/godel-escher-bach/video-lectures/"&gt;site do MIT&lt;/a&gt; ou vê-las no &lt;a href="http://www.youtube.com/watch?v=5jFhq3Rj6DI"&gt;YouTube&lt;/a&gt;).&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;span class="hP" id=":1x3"&gt;&lt;a href="http://ocw.mit.edu/high-school/courses/godel-escher-bach/"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://ocw.mit.edu/high-school/courses/godel-escher-bach/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/5jFhq3Rj6DI?fs=1&amp;amp;hl=pt_BR&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/5jFhq3Rj6DI?fs=1&amp;amp;hl=pt_BR&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Outro site que achei muito interessante foi o &lt;a href="http://www.tumblr.com/"&gt;tumblr&lt;/a&gt; com vários posts sobre o assunto, incluindo o video abaixo, de uma música de Bach cuja partitura é colocada sobre uma &lt;a href="http://pt.wikipedia.org/wiki/Fita_de_M%C3%B6bius"&gt;Fita de Möbius&lt;/a&gt;, e é tocada pra frente e pra trás ao mesmo tempo.&lt;br /&gt;&lt;a href="http://godelescherbach.tumblr.com/"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://godelescherbach.tumblr.com/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xUHQ2ybTejU?fs=1&amp;amp;hl=pt_BR&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xUHQ2ybTejU?fs=1&amp;amp;hl=pt_BR&amp;amp;color1=0x2b405b&amp;amp;color2=0x6b8ab6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="hP" id=":1x3"&gt;&lt;span style="font-family: inherit;"&gt;&lt;b&gt;&lt;span style="color: red;"&gt;*&lt;/span&gt; Obs:&lt;/b&gt; Não sei se a versão em português (&lt;i&gt;Gödel, Escher, Bach: um Entrelaçamento de Gênios Brilhantes&lt;/i&gt;) é boa, mas caso queira conferir, é só clicar &lt;a href="http://www.submarino.com.br/produto/1/283304/?franq=294999"&gt;aqui&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7561800732418858763?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7561800732418858763/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/10/godel-escher-bach.html#comment-form' title='7 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7561800732418858763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7561800732418858763'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/10/godel-escher-bach.html' title='Gödel, Escher, Bach'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-5245404082637169498</id><published>2010-10-03T14:10:00.000-07:00</published><updated>2010-10-04T04:58:10.912-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reconhecimento de padrões'/><category scheme='http://www.blogger.com/atom/ns#' term='estatística'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>Breve introdução ao Reconhecimento Estatístico de Padrões</title><content type='html'>&lt;a href="http://www.rii.ricoh.com/%7Estork/DHS.html" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://laplace.dcc.ufmg.br/npdi/uploads/img487cbdafc5891.jpg" width="140" /&gt;&lt;/a&gt;Este post foi retirado do cap. 1 do livro "&lt;a href="http://rii.ricoh.com/%7Estork/DHS.html"&gt;Pattern Classification&lt;/a&gt;", 2ª edição, de Richard O. Duda, Peter E. Hart and David G. Stork (ed. &lt;a href="http://www.wiley.com/WileyCDA/WileyTitle/productCd-0471056693.html"&gt;Wiley&lt;/a&gt;). As imagens e o exemplo foram usados com o consentimento do autor.&lt;br /&gt;&lt;br /&gt;---------- &lt;br /&gt;&lt;br /&gt;A facilidade com que reconhecemos um rosto, compreendemos palavras pronunciadas, lemos caracteres escritos a mão, identificamos as chaves do carro no bolso pelo tato, e decidimos se uma maçã está madura pelo seu cheiro, dá uma falsa ideia do quão complexo é o processo por trás do Reconhecimento de Padrões. Reconhecimento de Padrões -- o ato de obter dados brutos e executar uma ação baseado na categoria do padrão -- tem sido crucial para nossa sobrevivência, e com o passar de milhares de anos temos desenvolvido sistemas cognitivos e neurais altamente sofisticados para estas tarefas.&lt;br /&gt;&lt;br /&gt;É natural que desejássemos planejar e construir máquinas que possam reconhecer padrões. De reconhecimento de fala automático, identificação de impressões digitais, reconhecimento ótico de caracteres (o famoso &lt;a href="http://pt.wikipedia.org/wiki/Reconhecimento_%C3%B3tico_de_caracteres"&gt;OCR&lt;/a&gt;), identificação de sequências de DNA e muito mais, é claro que reconhecimento de padrões através de máquinas que seja confiável e acurado seria imensamente útil. Além disso, ao resolver os milhares de problemas necessários para construir tais sistemas, ganhamos um conhecimento mais profundo e apreciação por sistemas de reconhecimento de padrões no mundo natural -- mais particularmente em humanos. Para algumas aplicações, tais como reconhecimento visual e de fala, nossa abordagem deve de fato ser influenciada pelo conhecimento de como estes problemas são resolvidos na natureza, tanto nos algoritmos que empregamos quanto no planejamento de estruturas de hardware para propósitos especiais.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Um Exemplo&lt;/b&gt;&lt;br /&gt;Para ilustrar a complexidade de alguns dos tipos de problemas envolvidos, vamos considerar a seguinte situação. Suponha que uma peixaria queira automatizar o processo de organização dos peixes por espécie a partir de uma esteira rolante. Como um projeto piloto, decide-se tentar separar salmão de robalo através de sensor ótico. Configuramos uma câmera, obtemos algumas imagens como amostras e começamos a notar algumas diferenças físicas entre os dois tipos de peixe -- comprimento, claridade, largura, quantidade e formato das barbatanas, posição da boca, e por aí vai -- e estas sugerem &lt;i&gt;características&lt;/i&gt; a serem exploradas para usarmos em nosso classificador. Também notamos alguns ruídos e variações nas imagens -- variações na luminosidade, posição do peixe na esteira, e até mesmo falhas por problemas eletrônicos da câmera.&lt;br /&gt;&lt;br /&gt;Dado que existem diferenças reais&amp;nbsp; entre as populações de robalo e salmão, vemos esses como tendo diferentes &lt;i&gt;modelos&lt;/i&gt; -- diferentes descrições, que são tipicamente matemáticas em sua forma. &lt;b&gt;A abordagem e o objetivo globais em reconhecimento de padrões são fazer hipóteses sobre as classes desses modelos, processar os dados obtidos para eliminar ruídos (não devidos aos modelos), e para qualquer padrão detectado escolher o modelo que corresponde melhor. &lt;/b&gt;Quaisquer técnicas que favorecem este fim deveriam estar na caixa de ferramentas conceitual do criador de sistemas de reconhecimento de padrões.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.vision.ime.usp.br/%7Ellima/dhs/Fig1_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://www.vision.ime.usp.br/%7Ellima/dhs/Fig1_1.png" width="382" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://laplace.dcc.ufmg.br/npdi/uploads/img487cbdafc5891.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;Nosso sistema protótipo para realizar esta tarefa bastante específica deve ter a forma mostrada na Fig. 1.1. Primeiro a câmera captura uma imagem do peixe. Depois, os sinais da câmera são &lt;i&gt;preprocessados&lt;/i&gt; para simplificar as operações subsequentes sem perder informação relevante. Em particular, devemos usar a operação de &lt;i&gt;segmentação&lt;/i&gt;, na qual as imagens dos diferentes peixes são separadas entre si e do fundo da imagem. As informações de um único peixe são enviadas para um extrator de características, cujo propósito é reduzir os dados medindo certas "características" ou "propriedades". Essas características (ou, mais precisamente, os valores dessas características) são então passados para o &lt;i&gt;classificador&lt;/i&gt; que avalia as evidências apresentadas e toma uma decisão final quanto às espécies.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Características &lt;/b&gt;&lt;br /&gt;Suponha que alguém na peixaria nos diga que um robalo é geralmente maior que o salmão. Isso, então, nos dá tentativa de modelos para o peixe: robalo tem um tamanho típico, e é maior que o do salmão. Então, o tamanho se torna uma característica óbvia, e devemos tentar classificar o peixe meramente pelo tamanho, verificando se o tamanho &lt;img alt="[; l ;]" src="http://www.codecogs.com/gif.latex?%20l" style="display: inline;" title=" l " /&gt; de um peixe ultrapassa ou não um valor crítico &lt;img alt="[; l^* ;]" src="http://www.codecogs.com/gif.latex?%20l%5E*" style="display: inline;" title=" l^* " /&gt;. Para escolher &lt;img alt="[; l^* ;]" src="http://www.codecogs.com/gif.latex?%20l%5E*" style="display: inline;" title=" l^* " /&gt; deveríamos obter algum &lt;i&gt;projeto&lt;/i&gt;/&lt;i&gt;design &lt;/i&gt;ou amostras de treinamento dos diferentes tipos de peixe, (de alguma forma) fazer as medições dos tamanhos e olhar os resultados.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.vision.ime.usp.br/%7Ellima/dhs/Fig1_2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://www.vision.ime.usp.br/%7Ellima/dhs/Fig1_2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Suponha que obtenhamos os histogramas da Fig. 1.2. Podemos ver na figura que não é possível afirmar que o robalo é sempre maior que o salmão. Isso acontece, em média; mas utilizar somente esta características para tentar distinguir os dois padrões acarretaria em um grande erro, seja qual fosse a escolha de &lt;img alt="[; l^* ;]" src="http://www.codecogs.com/gif.latex?%20l%5E*" style="display: inline;" title=" l^* " /&gt;.&lt;br /&gt;&lt;br /&gt;Desanimados por esses resultados não promissores, nós tentamos uma outra característica -- a claridade média das escamas dos peixes. Agora temos que ser cuidadosos em eliminar variações de luminosidade, dado que estas podem confundir os modelos e corromper nosso novo classificador. Os histogramas resultantes, mostrados na Fig. 1.3, são muito mais satisfatórios -- as classes são separados bem melhor.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.vision.ime.usp.br/%7Ellima/dhs/Fig1_3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://www.vision.ime.usp.br/%7Ellima/dhs/Fig1_3.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Até agora temos assumido implicitamente que as consequências de nossas ações são igualmente custosas: decidir se um peixe é robalo quando de fato é salmão é tão indesejável quanto o oposto. Tal simetria no &lt;i&gt;custo&lt;/i&gt; ocorre com frequência, mas este não é sempre o caso. Por exemplo, como uma companhia frigorífica de peixes devemos saber que nossos clientes aceitam mais facilmente pedaços de salmão em uma lata de robalo do que o contrário. Se desejamos permanecer no negócio, devemos ajustar nosso limite de decisão para evitar contrariar nossos clientes, mesmo que isso signifique haja mais salmão em latas de robalo do que o contrário. Nesse caso, devemos mover nosso limite de decisão &lt;img alt="[; x^* ;]" src="http://www.codecogs.com/gif.latex?%20x%5E*" style="display: inline;" title=" x^* " /&gt; para valores menores de luminosidade, reduzindo assim a quantidade de robalo classificado como salmão (Fig. 1.3). Quanto mais os clientes se opuserem a comprar robalo rotulado como salmão -- i.e., mais custoso é este tipo de erro -- menor devemos escolher o limiar de decisão &lt;img alt="[; x^* ;]" src="http://www.codecogs.com/gif.latex?%20x%5E*" style="display: inline;" title=" x^* " /&gt; da Fig. 1.3.&lt;br /&gt;&lt;br /&gt;Tais considerações sugerem que há um custo único geral associado com nossa decisão, e nossa real tarefa é criar uma &lt;i&gt;regra de decisão&lt;/i&gt; para minimizar tal custo. Esta é a tarefa central da &lt;i&gt;&lt;b&gt;teoria da decisão&lt;/b&gt;&lt;/i&gt;, da qual a classificação de padrões é talvez a sub-área mais  importante.&lt;br /&gt;&lt;br /&gt;Mesmo que saibamos os custos reais associados a nossas decisões e escolhamos o limite de decisão &lt;img alt="[; x^* ;]" src="http://www.codecogs.com/gif.latex?%20x%5E*" style="display: inline;" title=" x^* " /&gt; ótimo, ainda ficaremos insatisfeitos como a performance resultante. Nossa primeiro impulso deve ser ainda encontrar uma característica diferente pela qual separar os peixes. Vamos assumir, entretanto, que nenhuma outra característica tomada sozinha tenha melhor desempenho que a separação baseada na luminosidade. Para melhorar esse reconhecimento, então, devemos tentar usar &lt;i&gt;mais de uma característica&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Em nossa busca por outras características, devemos tentar tirar proveito do fato de que o robalo é em geral mais largo que o salmão. Agora temos duas características para classificar os peixes -- a claridade/luminosidade &lt;img alt="[; x_1 ;]" src="http://www.codecogs.com/gif.latex?%20x_1" style="display: inline;" title=" x_1 " /&gt; e a largura &lt;img alt="[; x_2 ;]" src="http://www.codecogs.com/gif.latex?%20x_2" style="display: inline;" title=" x_2 " /&gt;. Se ignorarmos como essas características são medidas na prática, nós percebemos que o extrator de características reduziu a imagem de cada peixe a um ponto ou um &lt;i&gt;vetor de características&lt;/i&gt;&lt;b&gt; &lt;/b&gt;&lt;img alt="[; $\mathbf{x}$ ;]" src="http://www.codecogs.com/gif.latex?%20$%5Cmathbf%7Bx%7D$" style="display: inline;" title=" $\mathbf{x}$ " /&gt; em um &lt;i&gt;espaço de características&lt;/i&gt; de duas dimensões, onde&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;img alt="[; $$ \mathbf{x} = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}. $$ ;]" src="http://www.codecogs.com/gif.latex?%20$$%20%5Cmathbf%7Bx%7D%20=%20%5Cbegin%7Bbmatrix%7D%20x_1%20%5C%5C%20x_2%20%5Cend%7Bbmatrix%7D.%20$$" style="display: inline;" title=" $$ \mathbf{x} = \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}. $$ " /&gt;&amp;nbsp;&lt;/div&gt;&lt;br /&gt;Nosso problema agora é particionar o espaço de características em duas regiões, em que para todos os padrões em uma região possamos dizer que é robalo e todos os padrões na outra região podemos dizer que é salmão.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.vision.ime.usp.br/%7Ellima/dhs/Fig1_4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="290" src="http://www.vision.ime.usp.br/%7Ellima/dhs/Fig1_4.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;(continua...) &lt;br /&gt;&lt;span id="goog_1674430636"&gt;&lt;/span&gt;&lt;span id="goog_1674430637"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-5245404082637169498?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/5245404082637169498/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/10/breve-introducao-ao-reconhecimento.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5245404082637169498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5245404082637169498'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/10/breve-introducao-ao-reconhecimento.html' title='Breve introdução ao Reconhecimento Estatístico de Padrões'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-8308813650432016411</id><published>2010-09-27T06:29:00.000-07:00</published><updated>2010-10-20T12:23:51.139-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='estatística'/><category scheme='http://www.blogger.com/atom/ns#' term='r-project'/><category scheme='http://www.blogger.com/atom/ns#' term='linguagens'/><category scheme='http://www.blogger.com/atom/ns#' term='r'/><title type='text'>Breve introdução à linguagem R e seus comandos básicos</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_OdqaItQlcIc/TKCdyggeFdI/AAAAAAAAAW0/jcf5UqAHyWw/s1600/Rlogo.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OdqaItQlcIc/TKCdyggeFdI/AAAAAAAAAW0/jcf5UqAHyWw/s1600/Rlogo.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;O &lt;b&gt;&lt;a href="http://pt.wikipedia.org/wiki/R_%28linguagem_de_programa%C3%A7%C3%A3o%29"&gt;R&lt;/a&gt;&lt;/b&gt; é uma linguagem de programação relativamente nova, mas já bastante utilizada. Na verdade, o &lt;b&gt;R&lt;/b&gt; é uma implementação livre da linguagem &lt;b&gt;S&lt;/b&gt;, da qual existe uma versão comercial, chamada &lt;a href="http://www.insightful.com/products/splus/default.asp"&gt;&lt;b&gt;S-PLUS&lt;/b&gt;&lt;/a&gt;. Como o &lt;b&gt;R&lt;/b&gt; tem muitas funções/&lt;a href="http://cran.r-project.org/"&gt;bibliotecas&lt;/a&gt;/&lt;a href="http://cran.r-project.org/web/packages/"&gt;pacotes&lt;/a&gt; para análise de dados, é bastante difundida na comunidade científica (por exemplo estatística e &lt;a href="http://www.bioconductor.org/"&gt;bioinformática&lt;/a&gt;).&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://addictedtor.free.fr/graphiques/RGraphGallery.php?graph=143" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TKChJ-q0X2I/AAAAAAAAAXA/-dLHvxtlauE/s320/graph_143.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://www.r-project.org/news.html"&gt;A cada dia&lt;/a&gt;, mais &lt;a href="http://developer.r-project.org/"&gt;desenvolvedores&lt;/a&gt;/&lt;a href="http://developer.r-project.org/"&gt;colaboradores&lt;/a&gt; adicionam seus pacotes ao R, o que torna a linguagem cada vez mais poderosa e fácil de ser usada em problemas bem específicos, como (esses são só alguns exemplos):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Análise financeira:&lt;/b&gt; pacote &lt;a href="http://cran.r-project.org/web/packages/RBloomberg/index.html"&gt;RBloomberg&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Análise de redes sociais:&lt;/b&gt; pacote &lt;a href="http://cran.r-project.org/web/packages/sna/index.html"&gt;sna&lt;/a&gt; (de Social Network Analysis)&lt;br /&gt;&lt;b&gt;Avaliação da acurácia de diagnósticos:&lt;/b&gt; pacote &lt;a href="http://cran.r-project.org/web/packages/DiagnosisMed/index.html"&gt;DiagnosisMed&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Epidemiologia:&lt;/b&gt; pacote &lt;a href="http://cran.r-project.org/web/packages/epitools/index.html"&gt;pitools&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Análise de microarray&lt;/b&gt; (falarei sobre isso em um post não muito distante): pacotes &lt;a href="http://cran.r-project.org/web/packages/anapuce/index.html"&gt;anapuce&lt;/a&gt;, &lt;a href="http://cran.r-project.org/web/packages/IsoGene/index.html"&gt;IsoGene&lt;/a&gt;, &lt;a href="http://cran.r-project.org/web/packages/knorm/index.html"&gt;knorm&lt;/a&gt;, &lt;a href="http://cran.r-project.org/web/packages/metaMA/index.html"&gt;metaMA&lt;/a&gt;, &lt;a href="http://cran.r-project.org/web/packages/samr/index.html"&gt;samr&lt;/a&gt;, ...&lt;br /&gt;&lt;b&gt;Ferramentas para Bioinformática&lt;/b&gt; em geral: projeto &lt;a href="http://www.bioconductor.org/"&gt;Bioconductor&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OdqaItQlcIc/TKCd_7tfpJI/AAAAAAAAAW4/pgEjgKnfR5g/s1600/logo_bioconductor.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TKCd_7tfpJI/AAAAAAAAAW4/pgEjgKnfR5g/s1600/logo_bioconductor.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;E esses são só alguns exemplos!&lt;br /&gt;Esses dias encontrei até um pacote específico para análise de dados da famosa rede social/microblog &lt;a href="http://twitter.com/"&gt;twitter&lt;/a&gt;: o pacote &lt;b&gt;&lt;a href="http://cran.r-project.org/web/packages/twitteR/index.html"&gt;twitteR&lt;/a&gt;&lt;/b&gt;!&lt;br /&gt;&lt;br /&gt;O R tem uma &lt;a href="http://blog.revolutionanalytics.com/local-r-groups.html"&gt;comunidade grande&lt;/a&gt;, e existem vários &lt;a href="http://www.meetup.com/R-Users/"&gt;encontros&lt;/a&gt;/&lt;a href="http://www.meetup.com/nyhackr/"&gt;seminários&lt;/a&gt;/&lt;a href="http://www.r-project.org/conferences.html"&gt;conferências&lt;/a&gt; sobre a linguagem.&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TKCe0IrhrXI/AAAAAAAAAW8/19O_bBGp9J4/s200/links.jpg" style="margin-left: auto; margin-right: auto;" width="200" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Imagem gerada pelo pacote &lt;a href="http://csde.washington.edu/statnet/"&gt;statnet&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OdqaItQlcIc/TKCe0IrhrXI/AAAAAAAAAW8/19O_bBGp9J4/s1600/links.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;Mas então se a linguagem é tão boa, vamos logo começar a programar! ;-) &lt;br /&gt;&lt;br /&gt;Aqui você encontra mais informações sobre a instalação do R, que é bem fácil:&lt;br /&gt;&lt;a href="http://cran.r-project.org/mirrors.html"&gt;http://cran.r-project.org/mirrors.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nos links abaixo você pode encontrar alguns bons tutoriais:&lt;br /&gt;An Introduction to R (em inglês): &lt;a href="http://cran.r-project.org/doc/manuals/R-intro.html"&gt;http://cran.r-project.org/doc/manuals/R-intro.html&lt;/a&gt;&lt;br /&gt;Tutorial de R com conceitos básicos de estatística: &lt;a href="http://www.cyclismo.org/tutorial/R/"&gt;http://www.cyclismo.org/tutorial/R/&lt;/a&gt;&lt;br /&gt;Guia de referência básico, com principais comandos: &lt;a href="http://cran.r-project.org/doc/contrib/Short-refcard.pdf" target="_blank"&gt;http://cran.r-project.org/doc/contrib/Short-refcard.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cyclismo.org/tutorial/R/"&gt;&lt;/a&gt;&amp;nbsp; &lt;br /&gt;Fiz uma lista dos comandos básicos com um pequena explicação. Enjoy!&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; color: #141312;"&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Comandos básicos do R&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Por Leandro Lima, para o blog "Estudar Computação"&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Atribuição a variáveis (não é necessário declará-las)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;x &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;span style="color: #b08000;"&gt;5&lt;/span&gt;&lt;br /&gt;y &lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt; &lt;span style="color: #b08000;"&gt;7&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Listar objetos (variáveis) criadas&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;ls&lt;/b&gt;()&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Obtendo diretório de trabalho &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;getwd&lt;/b&gt;() &lt;i&gt;&lt;span style="color: #888786;"&gt;# Get Working Directory&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Indicando/atribuindo diretório de trabalho &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;setwd&lt;/b&gt;(&lt;span style="color: #bf0303;"&gt;'/home/users/seu_nome'&lt;/span&gt;) &lt;i&gt;&lt;span style="color: #888786;"&gt;# Set Working Directory&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Criando vetores a partir de valores (função 'c', combinar)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;z &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;c&lt;/b&gt;(x, y)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Criando vetores a partir de vetores&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;A &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;c&lt;/b&gt;(&lt;span style="color: #b08000;"&gt;1&lt;/span&gt;, &lt;span style="color: #b08000;"&gt;2&lt;/span&gt;, &lt;span style="color: #b08000;"&gt;3&lt;/span&gt;)&lt;br /&gt;B &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;c&lt;/b&gt;(&lt;span style="color: #b08000;"&gt;6&lt;/span&gt;, &lt;span style="color: #b08000;"&gt;7&lt;/span&gt;, &lt;span style="color: #b08000;"&gt;8&lt;/span&gt;)&lt;br /&gt;C &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;c&lt;/b&gt;(A, B)&lt;br /&gt;D &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;c&lt;/b&gt;(A, &lt;span style="color: #b08000;"&gt;7&lt;/span&gt;, &lt;span style="color: #b08000;"&gt;10&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Acessando elementos do vetor&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;A[&lt;span style="color: #b08000;"&gt;2&lt;/span&gt;]&lt;br /&gt;D[&lt;span style="color: #803f00;"&gt;-&lt;/span&gt;&lt;span style="color: #b08000;"&gt;4&lt;/span&gt;]&lt;br /&gt;D[&lt;span style="color: #b08000;"&gt;2&lt;/span&gt;&lt;span style="color: #803f00;"&gt;:&lt;/span&gt;&lt;span style="color: #b08000;"&gt;4&lt;/span&gt;]&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Modificando elementos do vetor&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;A[&lt;span style="color: #b08000;"&gt;2&lt;/span&gt;] &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;span style="color: #b08000;"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Criando vetores a partir de sequências&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;S1 &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;seq&lt;/b&gt;(&lt;span style="color: #b08000;"&gt;10&lt;/span&gt;)       &lt;i&gt;&lt;span style="color: #888786;"&gt;# ou S1 &amp;lt;- 1:10&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;                    &lt;i&gt;&lt;span style="color: #888786;"&gt;# Sequência de valores, com valor máximo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # 10 (e valor mínimo 1, por padrão)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;S2 &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;seq&lt;/b&gt;(&lt;span style="color: #b08000;"&gt;5&lt;/span&gt;,&lt;span style="color: #b08000;"&gt;20&lt;/span&gt;)     &lt;i&gt;&lt;span style="color: #888786;"&gt;# ou S2 &amp;lt;- 5:20&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;                    &lt;i&gt;&lt;span style="color: #888786;"&gt;# Sequência de valores (com valor mínimo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # 5 e valor máximo 20)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;S3 &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;seq&lt;/b&gt;(&lt;span style="color: #b08000;"&gt;3&lt;/span&gt;,&lt;span style="color: #b08000;"&gt;6&lt;/span&gt;,&lt;span style="color: #b08000;"&gt;0.2&lt;/span&gt;)  &lt;i&gt;&lt;span style="color: #888786;"&gt;# Sequência de valores (com valor mínimo&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # 3, valor máximo 6 e incremento 0.2.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Nesse caso, o 6 não necessariamente&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # listado, pois ele é o valore máximo).&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Ex: S4 &amp;lt;- seq(3,6,0.9)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Criando matrizes a partir de vetores...&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# ...Combinando linhas ('rows')&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;M &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;rbind&lt;/b&gt;(A, B)&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# resultado&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; M&lt;br /&gt;  [,&lt;span style="color: #b08000;"&gt;1&lt;/span&gt;] [,&lt;span style="color: #b08000;"&gt;2&lt;/span&gt;] [,&lt;span style="color: #b08000;"&gt;3&lt;/span&gt;]&lt;br /&gt;A    &lt;span style="color: #b08000;"&gt;1&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;2&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;3&lt;/span&gt;&lt;br /&gt;B    &lt;span style="color: #b08000;"&gt;6&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;7&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# ...Combinando colunas ('columns')&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;N &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;cbind&lt;/b&gt;(A, B)&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# resultado&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; N&lt;br /&gt;     A B&lt;br /&gt;[&lt;span style="color: #b08000;"&gt;1&lt;/span&gt;,] &lt;span style="color: #b08000;"&gt;1&lt;/span&gt; &lt;span style="color: #b08000;"&gt;6&lt;/span&gt;&lt;br /&gt;[&lt;span style="color: #b08000;"&gt;2&lt;/span&gt;,] &lt;span style="color: #b08000;"&gt;2&lt;/span&gt; &lt;span style="color: #b08000;"&gt;7&lt;/span&gt;&lt;br /&gt;[&lt;span style="color: #b08000;"&gt;3&lt;/span&gt;,] &lt;span style="color: #b08000;"&gt;3&lt;/span&gt; &lt;span style="color: #b08000;"&gt;8&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Aplicando funções a vetores&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Somatório&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Soma_D &lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt; &lt;b&gt;sum&lt;/b&gt;(D)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Média ('Mean')&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Media_D &lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt; &lt;b&gt;mean&lt;/b&gt;(D)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Mediana ('Median')&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;Mediana_D &lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt; &lt;b&gt;median&lt;/b&gt;(D)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Desvio padrão ('Standard deviation')&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;DP_D &lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt; &lt;b&gt;sd&lt;/b&gt;(D)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Plotando gráficos comuns&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;boxplot&lt;/b&gt;(N)&lt;br /&gt;&lt;b&gt;boxplot&lt;/b&gt;(&lt;b&gt;data.frame&lt;/b&gt;(N))&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Para carregar um script&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;source&lt;/b&gt;(&lt;span style="color: #bf0303;"&gt;'nome_do_script.R'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Dando nomes aos campos&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;notas &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;c&lt;/b&gt;(&lt;span style="color: #b08000;"&gt;7.5&lt;/span&gt;, &lt;span style="color: #b08000;"&gt;8&lt;/span&gt;, &lt;span style="color: #b08000;"&gt;5.7&lt;/span&gt;)&lt;br /&gt;&lt;b&gt;names&lt;/b&gt;(notas) &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;c&lt;/b&gt;(&lt;span style="color: #bf0303;"&gt;'Joao'&lt;/span&gt;, &lt;span style="color: #bf0303;"&gt;'Pedro'&lt;/span&gt;)&lt;/pre&gt;&lt;pre style="background-color: white; color: #141312;"&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Mas como um valor está faltando &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;o resultado será...&lt;/span&gt;&lt;/i&gt;&lt;/pre&gt;&lt;pre style="background-color: white; color: #141312;"&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;&lt;/span&gt;&lt;/i&gt;&amp;gt; &lt;b&gt;names&lt;/b&gt;(notas)&lt;br /&gt;[&lt;span style="color: #b08000;"&gt;1&lt;/span&gt;] &lt;span style="color: #bf0303;"&gt;"Joao"&lt;/span&gt;  &lt;span style="color: #bf0303;"&gt;"Pedro"&lt;/span&gt; &lt;span style="color: #006e28;"&gt;NA&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Dando nomes a conjuntos de campos&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;names&lt;/b&gt;(A)[&lt;span style="color: #b08000;"&gt;3&lt;/span&gt;] &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;span style="color: #bf0303;"&gt;'Carlos'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Aumentando o vetor&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;notas &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;c&lt;/b&gt;(notas, &lt;span style="color: #b08000;"&gt;10&lt;/span&gt;, &lt;span style="color: #b08000;"&gt;9.5&lt;/span&gt;, &lt;span style="color: #b08000;"&gt;6.5&lt;/span&gt;)&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Resultado&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; notas&lt;br /&gt;  Joao  Pedro Carlos&lt;br /&gt;   &lt;span style="color: #b08000;"&gt;7.5&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;8.0&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;5.7&lt;/span&gt;   &lt;span style="color: #b08000;"&gt;10.0&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;9.5&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;6.5&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Agora os nomes faltantes estarão vazios&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; &lt;b&gt;names&lt;/b&gt;(notas)&lt;br /&gt;[&lt;span style="color: #b08000;"&gt;1&lt;/span&gt;] &lt;span style="color: #bf0303;"&gt;"Joao"&lt;/span&gt;   &lt;span style="color: #bf0303;"&gt;"Pedro"&lt;/span&gt;  &lt;span style="color: #bf0303;"&gt;"Carlos"&lt;/span&gt; &lt;span style="color: #bf0303;"&gt;""&lt;/span&gt;       &lt;span style="color: #bf0303;"&gt;""&lt;/span&gt;       &lt;span style="color: #bf0303;"&gt;""&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Completando nomes&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;b&gt;names&lt;/b&gt;(notas) &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;c&lt;/b&gt;(&lt;b&gt;names&lt;/b&gt;(notas[&lt;span style="color: #b08000;"&gt;1&lt;/span&gt;&lt;span style="color: #803f00;"&gt;:&lt;/span&gt;&lt;span style="color: #b08000;"&gt;3&lt;/span&gt;]), &lt;span style="color: #bf0303;"&gt;'Vivi'&lt;/span&gt;, &lt;span style="color: #bf0303;"&gt;'Ana'&lt;/span&gt;, &lt;span style="color: #bf0303;"&gt;'Mario'&lt;/span&gt;)&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Resultado&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; &lt;b&gt;names&lt;/b&gt;(notas)&lt;br /&gt;[&lt;span style="color: #b08000;"&gt;1&lt;/span&gt;] &lt;span style="color: #bf0303;"&gt;"Joao"&lt;/span&gt;   &lt;span style="color: #bf0303;"&gt;"Pedro"&lt;/span&gt;  &lt;span style="color: #bf0303;"&gt;"Carlos"&lt;/span&gt; &lt;span style="color: #bf0303;"&gt;"Vivi"&lt;/span&gt;   &lt;span style="color: #bf0303;"&gt;"Ana"&lt;/span&gt;    &lt;span style="color: #bf0303;"&gt;"Mario"&lt;/span&gt; &lt;br /&gt;&amp;gt; notas&lt;br /&gt;  Joao  Pedro Carlos   Vivi    Ana  Mario&lt;br /&gt;   &lt;span style="color: #b08000;"&gt;7.5&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;8.0&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;5.7&lt;/span&gt;   &lt;span style="color: #b08000;"&gt;10.0&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;9.5&lt;/span&gt;    &lt;span style="color: #b08000;"&gt;6.5&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Notou que no vetor names(notas) apareceu o índice [1] e no&lt;br /&gt;# vetor notas não mais? É porque agora os campos tem nomes.&lt;br /&gt;# Nem é necessário ficar mostrando o índice.&lt;/span&gt;&lt;/i&gt; &lt;i&gt;&lt;span style="color: #888786;"&gt;Mesmo assim,&lt;br /&gt;# você pode continuar acessando os campos pelo índice&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; notas[&lt;span style="color: #b08000;"&gt;2&lt;/span&gt;]&lt;br /&gt;Pedro&lt;br /&gt;    &lt;span style="color: #b08000;"&gt;8&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# E agora também pelo nome&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; notas[&lt;span style="color: #bf0303;"&gt;'Ana'&lt;/span&gt;]&lt;br /&gt;Ana&lt;br /&gt;&lt;span style="color: #b08000;"&gt;9.5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Verificando elementos por condição&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; notas &amp;gt; &lt;span style="color: #b08000;"&gt;7&lt;/span&gt;&lt;br /&gt;  Joao  Pedro Carlos   Vivi    Ana  Mario &lt;br /&gt;  &lt;span style="color: #006e28;"&gt;TRUE&lt;/span&gt;   &lt;span style="color: #006e28;"&gt;TRUE&lt;/span&gt;  &lt;span style="color: #006e28;"&gt;FALSE&lt;/span&gt;   &lt;span style="color: #006e28;"&gt;TRUE&lt;/span&gt;   &lt;span style="color: #006e28;"&gt;TRUE&lt;/span&gt;  &lt;span style="color: #006e28;"&gt;FALSE&lt;/span&gt; &lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# O resultado é um vetor Booleano&lt;br /&gt;# (só valores TRUE, verdadeiro, ou FALSE, falso)&lt;br /&gt;# E se eu quiser mostrar só os elementos maiores que 7?&lt;br /&gt;# Pra fazer isso, você deve passar a condição como&lt;br /&gt;# indicadora dentro dos colchetes,&lt;br /&gt;# pois estes delimitam o vetor&lt;br /&gt;# Resultado&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; notas[notas &amp;gt; &lt;span style="color: #b08000;"&gt;7&lt;/span&gt;]&lt;br /&gt; Joao Pedro  Vivi   Ana&lt;br /&gt;  &lt;span style="color: #b08000;"&gt;7.5&lt;/span&gt;   &lt;span style="color: #b08000;"&gt;8.0&lt;/span&gt;  &lt;span style="color: #b08000;"&gt;10.0&lt;/span&gt;   &lt;span style="color: #b08000;"&gt;9.5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# Para isso, tambem é possivel usar o comando which(),&lt;br /&gt;# que por padrão retorna quais elementos são verdadeiros&lt;br /&gt;# para uma dada condição&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&amp;gt; &lt;b&gt;which&lt;/b&gt;(notas &amp;gt; &lt;span style="color: #b08000;"&gt;7&lt;/span&gt;)&lt;br /&gt; Joao Pedro  Vivi   Ana&lt;br /&gt;    &lt;span style="color: #b08000;"&gt;1&lt;/span&gt;     &lt;span style="color: #b08000;"&gt;2&lt;/span&gt;     &lt;span style="color: #b08000;"&gt;4&lt;/span&gt;     &lt;span style="color: #b08000;"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: #888786;"&gt;# O comando mostrou os indices dos elementos maiores que 7,&lt;br /&gt;# e em cima seus respectivos nomes&lt;/span&gt;&lt;/i&gt;&amp;nbsp;&lt;/pre&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;&lt;span style="font-size: x-small;"&gt;[Atualização1]&lt;/span&gt;&lt;/div&gt;Grupo brasileiro de discussão sobre R:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;&lt;a href="http://br.groups.yahoo.com/group/R_STAT/"&gt;http://br.groups.yahoo.com/group/R_STAT/&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="color: red;"&gt;&lt;span style="font-size: x-small;"&gt;[Atualização1]&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Você gostaria de adquirir um livro sobre R em português? Existe o "&lt;a href="http://www.submarino.com.br/produto/1/21781176/linguagem+r+-+programacao+para+a+analise+de+dados/?franq=294999"&gt;&lt;b&gt;Linguagem R - Programação para a Análise de Dados&lt;/b&gt;&lt;/a&gt;", do professor português &lt;a href="http://www.liaad.up.pt/%7Eltorgo/"&gt;&lt;b&gt;Luis Torgo&lt;/b&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.submarino.com.br/produto/1/21781176/linguagem+r+-+programacao+para+a+analise+de+dados/?franq=294999" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://www.liaad.up.pt/pub/2009/Tor09/capa.jpg" width="157" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-8308813650432016411?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/8308813650432016411/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/09/breve-introducao-linguagem-r-e-seus.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8308813650432016411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8308813650432016411'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/09/breve-introducao-linguagem-r-e-seus.html' title='Breve introdução à linguagem R e seus comandos básicos'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OdqaItQlcIc/TKCdyggeFdI/AAAAAAAAAW0/jcf5UqAHyWw/s72-c/Rlogo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-6322696509861168560</id><published>2010-09-13T17:26:00.000-07:00</published><updated>2010-09-15T04:13:01.699-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='1111 1111'/><category scheme='http://www.blogger.com/atom/ns#' term='256'/><category scheme='http://www.blogger.com/atom/ns#' term='dia do programador'/><title type='text'>Feliz Dia do Programador!</title><content type='html'>Neste ano, cai exatamente hoje!&lt;br /&gt;&lt;br /&gt;O &lt;b&gt;Dia do Programador&lt;/b&gt; é comemorado no &lt;b&gt;256º&lt;/b&gt; dia do ano (ou 13 ou 12 de setembro, se o ano for bissexto).&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.programmerday.info/" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_OdqaItQlcIc/TI68-nHxcHI/AAAAAAAAAWE/whl3CdNfBV8/s320/ProgrammerDay.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;Mas por quê?&lt;/b&gt;&lt;br /&gt;Um byte pode ter 256 valores possíveis, e bytes são muito importantes para programadores. Não porque eles são necessários para o programa funcionar, mas porque o sistema de folha de pagamentos e as caixas registradoras do Krispy Kreme Doughnuts precisam deles.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OdqaItQlcIc/TI67XzOONMI/AAAAAAAAAV8/zifKlr_Wr6E/s1600/krispykreme.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TI67XzOONMI/AAAAAAAAAV8/zifKlr_Wr6E/s200/krispykreme.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;E como o Dia do Programador é comemorado?&lt;/b&gt;&lt;br /&gt;Do jeito que você quiser! Aqui vão algumas sugestões:&lt;br /&gt;- Fale só em código (ou &lt;a href="http://pt.wikipedia.org/wiki/Pseudoc%C3%B3digo"&gt;pseudocódigo&lt;/a&gt;) o dia todo!&lt;br /&gt;- Decore uma árvore com 0's e 1's para fazer uma &lt;a href="http://pt.wikipedia.org/wiki/%C3%81rvore_bin%C3%A1ria"&gt;árvore binária&lt;/a&gt;!&lt;br /&gt;- Faça cartões de &lt;b&gt;Feliz Dia do Programador&lt;/b&gt; em &lt;a href="http://pt.wikipedia.org/wiki/ASCII_art"&gt;Ascii Ar&lt;/a&gt;t&lt;br /&gt;- Faça um concurso de melhor trocadilho ou piada de programação&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Mas e o logo, por que é 1111 1111?&lt;/b&gt; (pois 1111 1111 = 255)&lt;br /&gt;Como 1111 1111 = 255 é uma conversão direta, este é exatamente o 256º valor. 1º de janeiro é 0000 0000, então se você comemorar o &lt;b&gt;Dia do Programador&lt;/b&gt; no 255º dia você cometerá um &lt;a href="http://en.wikipedia.org/wiki/Off-by-one_error"&gt;erro off-by-one&lt;/a&gt;! *&lt;br /&gt;256 é a potência de 2 mais alta menor que 365.&lt;br /&gt;&lt;br /&gt;Pela mesma lógica, a cor branca foi escolhida porque representa o maior número em hexadecimal antes do overflow (0xFFFFFF). Logo, os programadores usam branco no mundo todo para comemorar este dia!&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_OdqaItQlcIc/TI7A_3_jWyI/AAAAAAAAAWM/vB4TLQA-4DI/s1600/programmers_day.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OdqaItQlcIc/TI7A_3_jWyI/AAAAAAAAAWM/vB4TLQA-4DI/s320/programmers_day.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Imagem: &lt;a href="http://lanix.org/blog/comments.php?y=07&amp;amp;m=09&amp;amp;entry=entry070913-110204"&gt;http://lanix.org/blog/comments.php?y=07&amp;amp;m=09&amp;amp;entry=entry070913-110204&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Fonte:&lt;br /&gt;&lt;a href="http://www.programmerday.info/"&gt;&lt;b&gt;http://www.programmerday.info&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://en.wikipedia.org/wiki/Programmers%27_Day"&gt;http://en.wikipedia.org/wiki/Programmers'_Day&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://pt.wikipedia.org/wiki/Dia_do_Programador"&gt;http://pt.wikipedia.org/wiki/Dia_do_Programador&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;*&lt;/b&gt; Erro off-by-one: erro muito comum ao se fazer um laço &lt;a href="http://en.wikipedia.org/wiki/For_loop"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/a&gt;, por exemplo, e programamos para o laço fazer uma iteração a mais ou a menos do que deveria.&lt;br /&gt;&lt;b&gt;**&lt;/b&gt; Obrigado ao &lt;a href="http://franzejr.wordpress.com/"&gt;FranzéJr&lt;/a&gt;, por ter me ajudado neste post.&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dica:&lt;/b&gt; Aproveite e comemore o &lt;b&gt;Dia do Programador&lt;/b&gt; com a série do &lt;a href="http://www.submarino.com.br/produto/1/21660760/colecao+guia+mochileiro+das+galaxias+-+5+volumes/?franq=294999"&gt;&lt;b&gt;Guia do Mochileiro das Galáxias&lt;/b&gt;&lt;/a&gt; (5 livros) por apenas &lt;b&gt;R$ 49,90&lt;/b&gt;!!!&lt;br /&gt;(praticamente R$ 10 por livro! Muito barato!)&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.submarino.com.br/produto/1/21660760/colecao+guia+mochileiro+das+galaxias+-+5+volumes/?franq=294999" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TJCon6AsSyI/AAAAAAAAAWU/NmiPFLdxOSs/s320/colecao_guia_do_mochileiro.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-6322696509861168560?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/6322696509861168560/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/09/feliz-dia-do-programador.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6322696509861168560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6322696509861168560'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/09/feliz-dia-do-programador.html' title='Feliz Dia do Programador!'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OdqaItQlcIc/TI68-nHxcHI/AAAAAAAAAWE/whl3CdNfBV8/s72-c/ProgrammerDay.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-4163637910086150568</id><published>2010-09-07T12:36:00.000-07:00</published><updated>2010-09-07T13:27:20.060-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='compre'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>Compre livros sempre que puder</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;Quando estamos na graduação, período em que ainda estamos iniciando em nossa carreira, muitas vezes não vemos outra alternativa para estudar por bons livros e materiais senão baixando uma cópia da internet.&lt;br /&gt;&lt;br /&gt;No entanto, quando vamos nos encaminhando melhor no mercado de trabalho, temos mais condições de comprar esses bons materiais.&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_OdqaItQlcIc/TIadijNs_pI/AAAAAAAAAVk/m72f1C19_wM/s320/cormen.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OdqaItQlcIc/TIadijNs_pI/AAAAAAAAAVk/m72f1C19_wM/s320/cormen.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Meu livro &lt;a href="http://www.amazon.com/Introduction-Algorithms-Third-Thomas-Cormen/dp/0262033844/ref=sr_1_1?s=books&amp;amp;ie=UTF8&amp;amp;qid=1283887928&amp;amp;sr=1-1"&gt;Introduction to Algorithms&lt;/a&gt;, comprado na &lt;a href="http://amazon.com/"&gt;Amazon.com&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Este post é uma forma de incentivo aos leitores a comprarem bons livros. Eu, pessoalmente, prefiro livros de papel do que arquivos para ler no computador. É bem certo que algum dia os livros de papel se tornem menos populares, até por questões ecológicas e porque leitores digitais serão mais acessíveis. [[&lt;b&gt;&lt;a href="http://www.baixaki.com.br/info/3934-livro-digital-ou-de-papel-.htm"&gt;leia mais sobre isso aqui&lt;/a&gt;&lt;/b&gt;]]&lt;br /&gt;&lt;br /&gt;Mas a ideia do post não é comparar livros de papel com e-books... Enfim, a ideia é incentivar a compra de bons livros, sempre que você puder, em vez de simplesmente baixar o arquivo de forma ilegal.&lt;br /&gt;&lt;br /&gt;E não digo isso apenas pra livros de &lt;a href="http://www.submarino.com.br/busca?q=computa%C3%A7%C3%A3o&amp;amp;dep=+&amp;amp;x=0&amp;amp;y=0/?franq=294999"&gt;Computação&lt;/a&gt;. Digo para bons livros de maneira geral. Sejam de &lt;a href="http://www.submarino.com.br/menu/1061/administracao+e+negocios/?franq=294999"&gt;Administração&lt;/a&gt;, &lt;a href="http://www.submarino.com.br/busca?q=biologia+molecular&amp;amp;dep=+&amp;amp;x=0&amp;amp;y/?franq=294999"&gt;Biologia Molecular&lt;/a&gt;, &lt;a href="http://www.submarino.com.br/busca?q=historia+geral&amp;amp;dep=+&amp;amp;x=0&amp;amp;y=0/?franq=294999"&gt;História Geral&lt;/a&gt;, livros sobre &lt;a href="http://www.submarino.com.br/busca?q=%22hist%C3%B3rias+de+rob%C3%B4s%22+asimov&amp;amp;dep=+&amp;amp;x=0&amp;amp;y=0/?franq=294999"&gt;Histórias de Robôs&lt;/a&gt;, &lt;a href="http://www.submarino.com.br/busca?q=machado+de+assis&amp;amp;dep=+&amp;amp;x=0&amp;amp;y=0/?franq=294999"&gt;livros de Machado de Assis&lt;/a&gt;, etc.&lt;br /&gt;&lt;br /&gt;Há excelentes autores em Computação, e esses livros ajudam e muito em nossa formação. Acho que quando você tem condições, o ato de comprar um livro, além de um investimento, é uma forma de agradecimento aos autores que você leu sem ter comprado o livro antes.&lt;br /&gt;;-)&lt;br /&gt;&lt;br /&gt;A propósito, há na barra lateral do Blog uma lista dos bons livros em português que são amplamente usados e recomendados em diversas universidades do País.&lt;br /&gt;&lt;br /&gt;Recomendo!&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OdqaItQlcIc/TIaKD8UGg4I/AAAAAAAAAVU/5o33zXjeJAM/s1600/DSC00757.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TIaKD8UGg4I/AAAAAAAAAVU/5o33zXjeJAM/s320/DSC00757.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Meu livro &lt;a href="http://www.submarino.com.br/produto/1/21867646/estruturas+de+dados+e+seus+algoritmos/?franq=294999"&gt;Estruturas de Dados e Seus Algoritmos, 3ª edição, 2010&lt;/a&gt;, comprado no &lt;a href="http://www.submarino.com.br/?franq=294999"&gt;Submarino&lt;/a&gt; (chegou hoje!)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-4163637910086150568?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/4163637910086150568/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/09/compre-livros-sempre-que-puder.html#comment-form' title='6 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4163637910086150568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4163637910086150568'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/09/compre-livros-sempre-que-puder.html' title='Compre livros sempre que puder'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OdqaItQlcIc/TIadijNs_pI/AAAAAAAAAVk/m72f1C19_wM/s72-c/cormen.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-3538627502123620829</id><published>2010-08-26T13:26:00.000-07:00</published><updated>2011-10-31T09:47:46.459-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='norvig'/><category scheme='http://www.blogger.com/atom/ns#' term='ime-usp'/><category scheme='http://www.blogger.com/atom/ns#' term='aulas'/><category scheme='http://www.blogger.com/atom/ns#' term='slides'/><category scheme='http://www.blogger.com/atom/ns#' term='inteligência artificial'/><category scheme='http://www.blogger.com/atom/ns#' term='aima'/><title type='text'>Material de Inteligência Artificial</title><content type='html'>E aí, computólogos! Tudo bem com vocês?&lt;br /&gt;&lt;br /&gt;Eu decidi, para facilitar a busca de materiais específicos no blog, que para cada assunto vou postar todos os materiais em um único post. Assim, tudo fica concentrado em um lugar.&lt;br /&gt;&lt;br /&gt;Nesse post, venho divulgar um material de &lt;b&gt;Inteligência Artificial&lt;/b&gt; usado por professores do &lt;a href="http://www.ime.usp.br/"&gt;IME-USP&lt;/a&gt; e o site de um professor da &lt;a href="http://www.ucpel.tche.br/"&gt;UCPel&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Slides da &lt;a href="http://www.ime.usp.br/~leliane"&gt;Profa. Leliane Barros&lt;/a&gt; (&lt;a href="http://www.ime.usp.br/"&gt;IME-USP&lt;/a&gt;)&lt;br /&gt;Introdução à Inteligência Artificial (&lt;a href="http://www.ime.usp.br/"&gt;IME-USP&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~leliane/IAcurso2001/cronograma.html"&gt;http://www.ime.usp.br/~leliane/IAcurso2001/cronograma.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~leliane/IAcurso2006/slides/"&gt;http://www.ime.usp.br/~leliane/IAcurso2006/slides/&lt;/a&gt; &lt;br /&gt;&lt;a href="http://www.ime.usp.br/~leliane/IAcurso2007/"&gt;http://www.ime.usp.br/~leliane/IAcurso2007/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Laboratório de Inteligência Artificial (&lt;a href="http://www.ime.usp.br/"&gt;IME-USP&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~leliane/LabIA/"&gt;http://www.ime.usp.br/~leliane/LabIA/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sites interessantes sobre Inteligência Artificial (&lt;a href="http://www.ime.usp.br/"&gt;IME-USP&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~leliane/IAcurso2001/sitios-interes.html"&gt;http://www.ime.usp.br/~leliane/IAcurso2001/sitios-interes.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Site do &lt;a href="http://www.ime.usp.br/~mfinger"&gt;Prof. Marcelo Finger&lt;/a&gt; (&lt;a href="http://www.ime.usp.br/"&gt;IME-USP&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~mfinger/2008/IA/index.html"&gt;http://www.ime.usp.br/~mfinger/2008/IA/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Site do &lt;a href="http://gpia.ucpel.tche.br/~lpalazzo"&gt;Prof. Luiz A. M. Palazzo&lt;/a&gt; (&lt;a href="http://www.ucpel.tche.br/"&gt;UCPel&lt;/a&gt;)&lt;br /&gt;&lt;a href="http://gpia.ucpel.tche.br/~lpalazzo/Aulas/IA/"&gt;http://gpia.ucpel.tche.br/~lpalazzo/Aulas/IA/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://www.submarino.com.br/produto/1/223050/inteligencia+artificial/?franq=294999"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_OdqaItQlcIc/THbM1gghbRI/AAAAAAAAAVE/XyqmZWecZ6Q/s320/ia_book.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;(Imagem: &lt;a href="http://aima.cs.berkeley.edu/bella.jpg"&gt;http://aima.cs.berkeley.edu/bella.jpg&lt;/a&gt;)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Site oficial do livro "&lt;b&gt;Artificial Intelligence: A Modern Approach&lt;/b&gt;" (&lt;a href="http://aima.cs.berkeley.edu/"&gt;AIMA&lt;/a&gt;), de &lt;a href="http://www.cs.berkeley.edu/~russell"&gt;Stuart Russell&lt;/a&gt; e &lt;a href="http://www.norvig.com/"&gt;Peter Norvig&lt;/a&gt;&lt;br /&gt;&lt;a href="http://aima.cs.berkeley.edu/"&gt;http://aima.cs.berkeley.edu/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Slides dos autores do livro (em inglês)&lt;br /&gt;&lt;a href="http://aima.eecs.berkeley.edu/slides-pdf/"&gt;http://aima.eecs.berkeley.edu/slides-pdf/&lt;/a&gt;&lt;br /&gt;(em breve pretendo publicar aqui no blog esse slides traduzidos)&lt;br /&gt;&lt;br /&gt;Clique &lt;a href="http://www.submarino.com.br/produto/1/223050/inteligencia+artificial/?franq=294999"&gt;aqui&lt;/a&gt; para adquirir o livro AIMA em português ("&lt;b&gt;&lt;a href="http://www.submarino.com.br/produto/1/223050/inteligencia+artificial/?franq=294999"&gt;Inteligência Artificial: Uma Abordagem Moderna&lt;/a&gt;&lt;/b&gt;")&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;&lt;span style="font-size: x-small;"&gt;[atualização1]&lt;/span&gt;&lt;/div&gt;Material do prof. Paulo E. Santos, da &lt;a href="http://www.fei.edu.br/"&gt;FEI&lt;/a&gt;, São Paulo. &lt;br /&gt;&lt;a href="http://www.fei.edu.br/~psantos/slidesIA/aulas_IA.HTML"&gt;http://www.fei.edu.br/~psantos/slidesIA/aulas_IA.HTML&lt;/a&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;&lt;span style="font-size: x-small;"&gt;[/atualização1]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="color: red; font-size: medium;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;[atualização2 (31/10/2011)]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="color: black; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;Slides do prof. Ronaldo Prati (baseados nos slides do livro "&lt;a href="http://aima.cs.berkeley.edu/"&gt;AIMA&lt;/a&gt;"), da &lt;a href="http://www.ufabc.edu.br/"&gt;UFABC&lt;/a&gt;,&amp;nbsp;São Paulo.&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://professor.ufabc.edu.br/~ronaldo.prati/InteligenciaArtificial/2011-1.html"&gt;http://professor.ufabc.edu.br/~ronaldo.prati/InteligenciaArtificial/2011-1.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: red; font-size: medium;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: x-small;"&gt;[/atualização2]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;Aproveitem!&lt;br /&gt;&lt;br /&gt;* Você conhece outros bons materiais de Inteligência Artificial? Comente aqui!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E por falar em Inteligência Artificial,&amp;nbsp; que tal ler a coleção &lt;b&gt;Histórias de Robôs&lt;/b&gt;, de &lt;a href="http://www.submarino.com.br/portal/Artista/3107/+isaac+asimov?offset=20&amp;amp;limit=20&amp;amp;p1=3107&amp;amp;p2=+isaac+asimov/?franq=294999"&gt;&lt;b&gt;Isaac Asimov&lt;/b&gt;&lt;/a&gt; (incluem "&lt;b&gt;Eu, Robô&lt;/b&gt;" e "&lt;b&gt;O homem bicentenário&lt;/b&gt;")?&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.submarino.com.br/produto/1/730271/historias+de+robos+-+vol.+1/?franq=294999"&gt;&lt;img border="0" src="http://i.s8.com.br/images/books/cover/img1/730271.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.submarino.com.br/produto/1/730274/historias+de+robos+-+vol.+2/?franq=294999"&gt;&lt;img border="0" src="http://i.s8.com.br/images/books/cover/img4/730274.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://www.submarino.com.br/produto/1/730275/historias+de+robos+-+vol.+3/?franq=294999"&gt;&lt;img border="0" src="http://i.s8.com.br/images/books/cover/img5/730275.jpg" /&gt;&lt;/a&gt;&lt;/td&gt; &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-3538627502123620829?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/3538627502123620829/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/08/material-de-inteligencia-artificial.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3538627502123620829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3538627502123620829'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/08/material-de-inteligencia-artificial.html' title='Material de Inteligência Artificial'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OdqaItQlcIc/THbM1gghbRI/AAAAAAAAAVE/XyqmZWecZ6Q/s72-c/ia_book.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-4719982116333254162</id><published>2010-08-20T10:45:00.000-07:00</published><updated>2010-08-20T10:45:56.708-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algoritmos de ordenação'/><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><title type='text'>Os sons dos Algoritmos de Ordenação</title><content type='html'>Que sons fariam os algoritmos de ordenação?&lt;br /&gt;&lt;br /&gt;Um cara resolveu dar diferentes frequências sonoras de acordo com os valores sendo comparados. Resultou no que se vê abaixo. É interessante perceber como diferentes algoritmos se comportam. &lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/t8g-iYGHpEA?fs=1&amp;amp;hl=en_US&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/t8g-iYGHpEA?fs=1&amp;amp;hl=en_US&amp;amp;color1=0x006699&amp;amp;color2=0x54abd6" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Como o próprio autor cita no &lt;a href="http://www.youtube.com/watch?v=t8g-iYGHpEA"&gt;video do YouTube&lt;/a&gt;, algumas pessoas já tinham feito algo parecido antes.&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;&lt;a dir="ltr" href="http://www.pillowsopher.com/blog/?p=116" rel="nofollow" target="_blank" title="http://www.pillowsopher.com/blog/?p=116"&gt;http://www.pillowsopher.com/blog/?p=116&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;&lt;a href="http://www.math.ucla.edu/%7Ercompton/musical_sorting_algorithms/musical_sorting_algorithms.html"&gt;http://www.math.ucla.edu/~rcompton/musical_sorting_algorithms/musical_sorting_algorithms.html&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;Dica do &lt;a href="http://twitter.com/maddbr"&gt;Mario Dourado&lt;/a&gt;, do &lt;a href="http://zero7.org/"&gt;Zero7.org&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-4719982116333254162?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/4719982116333254162/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/08/os-sons-dos-algoritmos-de-ordenacao.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4719982116333254162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4719982116333254162'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/08/os-sons-dos-algoritmos-de-ordenacao.html' title='Os sons dos Algoritmos de Ordenação'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-8608914955823957167</id><published>2010-08-18T13:47:00.000-07:00</published><updated>2010-08-18T13:55:56.640-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grafos'/><category scheme='http://www.blogger.com/atom/ns#' term='teoria dos grafos'/><category scheme='http://www.blogger.com/atom/ns#' term='combinatória'/><category scheme='http://www.blogger.com/atom/ns#' term='ramsey'/><title type='text'>Material de Combinatória (PICME - IME - USP)</title><content type='html'>Meu amigo &lt;a href="http://www.ime.usp.br/%7Emota"&gt;Guilherme Mota&lt;/a&gt;, doutorando em Computação no &lt;a href="http://www.ime.usp.br/"&gt;IME-USP&lt;/a&gt;, está sendo monitor das aulas de Combinatória do &lt;a href="http://www.obmep.org.br/picme.html"&gt;Programa PICME&lt;/a&gt;, no IME-USP.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_OdqaItQlcIc/TGxH7fMB5NI/AAAAAAAAAUs/wIiMaJkk22I/s1600/cube3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="265" src="http://1.bp.blogspot.com/_OdqaItQlcIc/TGxH7fMB5NI/AAAAAAAAAUs/wIiMaJkk22I/s320/cube3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-size: x-small;"&gt;(Figura: &lt;a href="http://www.math.mcgill.ca/%7Esonnerat/pictures/cube3.jpg"&gt;http://www.math.mcgill.ca/~sonnerat/pictures/cube3.jpg&lt;/a&gt;)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Em seu site, ele disponibiliza o material de todas as aulas do Prof. &lt;a href="http://www.ime.usp.br/%7Eyoshi"&gt;Yoshiharu  Kohayakawa&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Para quem quer se aprofundar mais em nesses assuntos, que incluem vários tópicos de &lt;a href="http://pt.wikipedia.org/wiki/Teoria_dos_grafos"&gt;Teoria dos Grafos&lt;/a&gt;, vale a pena conferir o material.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ime.usp.br/%7Emota/PICME/combinatoria/" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;http://www.ime.usp.br/~mota/PICME/combinatoria/&lt;/b&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saiba mais sobre o Programa PICME:&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.obmep.org.br/picme.html" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://www.obmep.org.br/picme.html&lt;/a&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-8608914955823957167?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/8608914955823957167/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/08/material-de-combinatoria.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8608914955823957167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8608914955823957167'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/08/material-de-combinatoria.html' title='Material de Combinatória (PICME - IME - USP)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OdqaItQlcIc/TGxH7fMB5NI/AAAAAAAAAUs/wIiMaJkk22I/s72-c/cube3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-2506766470149236828</id><published>2010-08-09T07:44:00.000-07:00</published><updated>2010-08-09T17:56:10.110-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prova'/><category scheme='http://www.blogger.com/atom/ns#' term='complexidade de algoritmos'/><category scheme='http://www.blogger.com/atom/ns#' term='p=np'/><title type='text'>Lançada (mais uma) prova de que P não é igual a NP (P != NP)</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_OdqaItQlcIc/TGARDWvcpqI/AAAAAAAAAUY/-QsEQQjrP2U/s1600/Deolalikar.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_OdqaItQlcIc/TGARDWvcpqI/AAAAAAAAAUY/-QsEQQjrP2U/s200/Deolalikar.jpg" width="132" /&gt;&lt;/a&gt;Foi publicada semana passada uma prova para o famoso problema &lt;a href="http://pt.wikipedia.org/wiki/P_versus_NP"&gt;P=NP&lt;/a&gt;(?). Para conseguir resolver o problema, usou-se até teoria de &lt;a href="http://pt.wikipedia.org/wiki/F%C3%ADsica_estat%C3%ADstica"&gt;Física Estatística&lt;/a&gt;. Abaixo segue a tradução do resumo (abstract) do artigo.&lt;br /&gt;&lt;br /&gt;A prova foi feita por &lt;a href="http://www.hpl.hp.com/personal/Vinay_Deolalikar/"&gt;Vinay Deolalikar&lt;/a&gt; (foto), um pesquisador da &lt;a href="http://www.hpl.hp.com/"&gt;HP Labs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;O artigo original pode ser baixado no link abaixo:&lt;br /&gt;&lt;a href="http://www.hpl.hp.com/personal/Vinay_Deolalikar/Papers/pnp12pt.pdf" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;b&gt;http://www.hpl.hp.com/personal/Vinay_Deolalikar/Papers/pnp12pt.pdf&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Se tudo estiver correto, Vinay ganhará o prêmio merecido de 1 milhão de dólares, já que o problema está listado como um dos 7 &lt;a href="http://www.claymath.org/millennium/"&gt;problemas de 1 milhão de dólares&lt;/a&gt; (&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;a href="http://pt.wikipedia.org/wiki/Problemas_do_Pr%C3%A9mio_Millenium"&gt;http://pt.wikipedia.org/wiki/Problemas_do_Prêmio_Millenium&lt;/a&gt;&lt;/b&gt;).&lt;br /&gt;&lt;br /&gt;----------&lt;br /&gt;Resumo&lt;br /&gt;&lt;br /&gt;Nós demonstramos a separação da classe de complexidade &lt;b&gt;NP&lt;/b&gt; da sua subclasse &lt;b&gt;P&lt;/b&gt;. Ao longo da nossa prova, observamos que a capacidade de calcular a propriedade sobre as estruturas em tempo polinomial está intimamente relacionado às noções de estatística de independência condicional e &lt;a href="http://en.wikipedia.org/wiki/Sufficient_statistic"&gt;estatísticas suficientes.&lt;/a&gt; A presença de independências condicionais manifesta sob a forma de parametrizações econômica da distribuição conjunta de covariáveis. Para aplicar essa análise para o espaço de soluções de problemas de satisfação com restrições aleatórias, nós utilizamos e expandimos ideias de diversos campos que abrangem lógica, estatística, &lt;a href="http://en.wikipedia.org/wiki/Graphical_model"&gt;modelos gráficos&lt;/a&gt;, conjuntos aleatórios e física estatística.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Começamos por introduzir o necessário quadro de modelos gráficos para um conjunto de variáveis que interagem. Nós nos concentramos sobre a correspondência entre Markov e propriedades de Gibbs para modelos diretos e indiretos como refletidos na fatoração de sua distribuição conjunta, e o número de parâmetros independentes necessários para especificar a distribuição.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Em seguida, construímos a contribuição central deste trabalho. Nós mostramos que há relações conceituais fundamentais entre a computação em tempo polinomial, o qual é completamente capturado pela lógica FO(LFP) em algumas classes de estruturas e algumas propriedades de Markov diretas em termos de independência condicional e estatística suficientes. A fim de demonstrar essas relações, nós vemos um cálculo LFP como "fatorando através de" diversas etapas dos cálculos de primeira ordem, e depois utilizar as limitações da lógica de primeira ordem. Especificamente, nós exploramos a limitação de que a lógica de primeira ordem só pode expressar as propriedades em termos de um número limitado de vizinhanças locais da estrutura fundamental.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Em seguida, apresentamos ideias a partir da quebra de simetria de réplicas 1RSB "ansatz" de física estatística. Nós lembramos a descrição da fase aglomerada do d1RSB para o k-SAT aleatório, que surge quando a densidade da cláusula é suficientemente elevada. Nesta fase, uma fração arbitrariamente grande de todas as variáveis em núcleos congelam dentro de exponencialmente muitos clusters no limite termodinâmico, como a densidade de cláusula é aumentada para o limiar SAT-unSAT para k suficientemente grande. A distância de Hamming entre uma solução que consiste em um cluster e que está em outro é O(n).&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Em seguida, codificamos fórmulas &lt;i&gt;k&lt;/i&gt;-SAT como estruturas em que FO(LFP) captura tempo polinomial. Ao pedir a FO(LFP) para ampliar as atribuições parciais em conjuntos aleatórios de &lt;i&gt;k&lt;/i&gt;-SAT, vamos construir as distribuições das soluções. Em seguida, construímos um modelo gráfico dinâmico em um espaço do produto que capta toda a informação que flui através das várias fases de um cálculo de um LFP sobre conjuntos de estruturas &lt;i&gt;k&lt;/i&gt;-SAT. Distribuições calculadas por LFP devem satisfazer este modelo. Este modelo é direcionado, o que nos permite calcular fatorações localmente e parametrizar usando potenciais de Gibbs em cliques. Em seguida, usamos os resultados de conjuntos de gráficos de fator aleatório &lt;i&gt;k&lt;/i&gt;-SAT para limitar os diversos fluxos de informação no modelo gráfico direcionado. Nós parametrizamos as distribuições resultantes de uma forma que demonstra que as interações irredutíveis entre covariáveis - ou seja, aqueles que não podem ser fatorados a não ser através de independências condicionais - não podem crescer mais rápido do que poly(log&lt;i&gt;n&lt;/i&gt;) nas distribuições LFP calculadas. Esta caracterização permite-nos analisar o comportamento de toda a classe de algoritmos de tempo polinomial em conjuntos simultaneamente. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Usando as já citadas limitações de LFP, demonstramos que uma solução em tempo polinomial para &lt;i&gt;k&lt;/i&gt;-SAT resultaria em espaço de solução que é uma mistura de distribuições cada uma com uma parametrização exponencialmente menor do que é coerente com as fases d1RSB altamente restritas do &lt;i&gt;k&lt;/i&gt;-SAT. Nós mostramos que isto estaria em contradição com o comportamento exibido pelo espaço de soluções na fase d1RSB. Isso corresponde à figura intuitiva fornecida pela física sobre a emergência das extensas (significango &lt;i&gt;O(n)&lt;/i&gt;) correlações de longo alcance entre as variáveis nesta fase e também explica a observação empírica de que todos os conhecidos algoritmos de tempo polinomial param nesta fase.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Nosso trabalho mostra todo algoritmo de tempo polinomial pode falhar em produzir soluções para instâncias de problema suficientemente grandes de &lt;i&gt;k&lt;/i&gt;-SAT na fase d1RSB. Isso mostra que os algoritmos de tempo polinomial não são capazes de resolver problemas &lt;b&gt;NP&lt;/b&gt;-completos em suas fases difíceis, e demonstra a separação de &lt;b&gt;P&lt;/b&gt; e &lt;b&gt;NP&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;----------&lt;br /&gt;&lt;br /&gt;Saiba mais sobre o problema:&lt;br /&gt;&lt;b&gt;&lt;a href="http://pt.wikipedia.org/wiki/P_versus_NP" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://pt.wikipedia.org/wiki/P_versus_NP&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;Atualização&lt;/span&gt;&lt;br /&gt;A propósito, o amigo &lt;a href="http://twitter.com/iSoron"&gt;Álinson Santos&lt;/a&gt; indicou o site abaixo, onde já existem listadas quase 60 provas sobre o assunto (algumas provando que P=NP, e outras provando justamente o contrário).&lt;br /&gt;&lt;a href="http://www.win.tue.nl/%7Egwoegi/P-versus-NP.htm"&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://www.win.tue.nl/~gwoegi/P-versus-NP.htm&lt;/b&gt;&lt;/a&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-2506766470149236828?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/2506766470149236828/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/08/lancada-prova-de-que-p-nao-e-igual-np-p.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2506766470149236828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2506766470149236828'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/08/lancada-prova-de-que-p-nao-e-igual-np-p.html' title='Lançada (mais uma) prova de que P não é igual a NP (P != NP)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OdqaItQlcIc/TGARDWvcpqI/AAAAAAAAAUY/-QsEQQjrP2U/s72-c/Deolalikar.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-3566517262183312805</id><published>2010-08-03T09:19:00.000-07:00</published><updated>2010-08-03T12:17:05.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='latex'/><category scheme='http://www.blogger.com/atom/ns#' term='certificados'/><category scheme='http://www.blogger.com/atom/ns#' term='modelos'/><category scheme='http://www.blogger.com/atom/ns#' term='teses'/><category scheme='http://www.blogger.com/atom/ns#' term='dissertações'/><category scheme='http://www.blogger.com/atom/ns#' term='crachás'/><title type='text'>[OFF] Modelos de dissertação/tese, slides, crachás e certificados em LaTeX</title><content type='html'>Ontem um amigo do &lt;a href="http://www.vision.ime.usp.br/"&gt;Grupo de Visão Computacional e Processamento de Imagens &lt;/a&gt;do &lt;a href="http://www.ime.usp.br/"&gt;IME-USP&lt;/a&gt; me deu essa excelente dica!&lt;br /&gt;&lt;br /&gt;No site dele, ele colocou alguns modelos de coisas que nós estudantes geralmente usamos. E são coisas que dão certo trabalho para serem feitas.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_OdqaItQlcIc/TFhBZoj4K0I/AAAAAAAAAUQ/8hTs4KHqHNE/s1600/LaTeX-logo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_OdqaItQlcIc/TFhBZoj4K0I/AAAAAAAAAUQ/8hTs4KHqHNE/s320/LaTeX-logo.png" /&gt;&lt;/a&gt;&lt;/div&gt;Jesús Mena-Chalco criou modelos em &lt;a href="http://pt.wikipedia.org/wiki/LaTeX"&gt;LaTeX&lt;/a&gt; para textos de teses e dissertações, crachás e certificados (para congressos, colóquios, etc.). No caso desses dois últimos, você pode gerar vários crachás e certificados automaticamente a partir de um arquivo de texto simples tipo &lt;a href="http://pt.wikipedia.org/wiki/Comma-separated_values"&gt;csv&lt;/a&gt;!&lt;br /&gt;&lt;br /&gt;Os modelos estão muito bem feitos. Mesmo que você não seja tão experiente em LaTeX, não terá dificuldade para usar o material.&lt;br /&gt;&lt;br /&gt;Guarde esses links!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vision.ime.usp.br/%7Ejmena/"&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://www.vision.ime.usp.br/~jmena/&lt;/b&gt;&lt;/a&gt; (seção &lt;b&gt;Some material stuff&lt;/b&gt;) ou &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vision.ime.usp.br/%7Ejmena/stuff/"&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://www.vision.ime.usp.br/~jmena/stuff/&lt;/b&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-3566517262183312805?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/3566517262183312805/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/08/off-modelos-de-dissertacaotese-slides.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3566517262183312805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3566517262183312805'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/08/off-modelos-de-dissertacaotese-slides.html' title='[OFF] Modelos de dissertação/tese, slides, crachás e certificados em LaTeX'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OdqaItQlcIc/TFhBZoj4K0I/AAAAAAAAAUQ/8hTs4KHqHNE/s72-c/LaTeX-logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-1488132300602868975</id><published>2010-07-23T09:38:00.000-07:00</published><updated>2011-02-02T12:32:25.629-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funções'/><category scheme='http://www.blogger.com/atom/ns#' term='aniversário'/><category scheme='http://www.blogger.com/atom/ns#' term='estatística'/><category scheme='http://www.blogger.com/atom/ns#' term='código'/><category scheme='http://www.blogger.com/atom/ns#' term='linguagens'/><title type='text'>Função aggregate do R (exemplo simples)</title><content type='html'>Fala, pessoal! Blz?&lt;br /&gt;&lt;br /&gt;De vez em quando vou colocar aqui algumas dicas de funções em linguagens que já trabalho ou que estou aprendendo.&lt;br /&gt;&lt;br /&gt;A linguagem &lt;a href="http://pt.wikipedia.org/wiki/R_%28linguagem_de_programa%C3%A7%C3%A3o%29"&gt;R&lt;/a&gt; é uma linguagem de programação &lt;b&gt;livre&lt;/b&gt; que inicialmente foi criada para trabalhar com análises estatísticas, mas hoje em dia já têm coisas de muitas outras áreas implementadas em R.&lt;br /&gt;&lt;br /&gt;A dica é sobre a função aggregate, que, como o nome já diz, agrega/une dados. O exemplo a seguir traz uma tabela com dados numéricos quaisquer para cada ítem (população, por exemplo, ou quantidade de qualquer coisa). &lt;br /&gt;&lt;br /&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;estado&amp;nbsp; cidade&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bairro&amp;nbsp;&amp;nbsp;&amp;nbsp; qtd&lt;br /&gt;CE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crato&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Centro&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;br /&gt;CE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crato&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Outro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&lt;br /&gt;CE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fortaleza&amp;nbsp; Centro&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&lt;br /&gt;CE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Fortaleza&amp;nbsp; Outro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&lt;br /&gt;SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Campinas&amp;nbsp;&amp;nbsp; Centro&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;br /&gt;SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Campinas&amp;nbsp;&amp;nbsp; Outro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;br /&gt;SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sampa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Centro&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;br /&gt;SP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sampa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Outro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Essa tabela está salva em txt ("tabela.txt", digamos), com os campos separados por tabulação.&lt;br /&gt;&lt;br /&gt;&lt;pre style="background-color: white; color: black;"&gt;&lt;i&gt;&lt;span style="color: grey;"&gt;# Carregando tabela na variável "tabela"&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;tabela &lt;b&gt;&lt;span style="color: #336366;"&gt;&amp;lt;-&lt;/span&gt;&lt;/b&gt; &lt;b&gt;read.delim&lt;/b&gt;(&lt;span style="color: #dd0000;"&gt;'tabela.txt'&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey;"&gt;# Agregando a tabela por estados, pegando a soma&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;tab_por_estados &lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt; &lt;b&gt;aggregate&lt;/b&gt;(&lt;br /&gt;tabela&lt;span style="color: #803f00;"&gt;$&lt;/span&gt;qtd, &lt;b&gt;list&lt;/b&gt;(&lt;span style="color: #dd0000;"&gt;'Estado'&lt;/span&gt;&lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt;tabela&lt;span style="color: #803f00;"&gt;$&lt;/span&gt;estado),&lt;span style="color: maroon;"&gt;FUN=&lt;/span&gt;sum)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey;"&gt;# Agregando a tabela por cidades, pegando a média&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;tab_por_cidades &lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt; &lt;b&gt;aggregate&lt;/b&gt;(&lt;br /&gt;tabela&lt;span style="color: #803f00;"&gt;$&lt;/span&gt;qtd, &lt;b&gt;list&lt;/b&gt;(&lt;span style="color: #dd0000;"&gt;'Cidade'&lt;/span&gt;&lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt;tabela&lt;span style="color: #803f00;"&gt;$&lt;/span&gt;cidade),&lt;span style="color: maroon;"&gt;FUN=&lt;/span&gt;mean)&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey;"&gt;# Explicação&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;tabela&lt;span style="color: #803f00;"&gt;$&lt;/span&gt;qtd&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey;"&gt;# ~&amp;gt; Campo a ser modificado&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;list&lt;/b&gt;(&lt;span style="color: #dd0000;"&gt;'nome_novo_do_campo'&lt;/span&gt;&lt;b&gt;&lt;span style="color: #336366;"&gt;=&lt;/span&gt;&lt;/b&gt;tabela&lt;span style="color: #803f00;"&gt;$&lt;/span&gt;cidade)&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey;"&gt;# ~&amp;gt; O campo será renomeado para 'nome_novo_do_campo'&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey;"&gt;# ~&amp;gt; depois do igual ('='), deve ter o campo da&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey;"&gt;#    tabela originala ser agrupado&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: maroon;"&gt;FUN=&lt;/span&gt;mean&lt;br /&gt;&lt;i&gt;&lt;span style="color: grey;"&gt;# ~&amp;gt; A função usada para agrupar os dados (ex: mean, sum, ...)&lt;/span&gt;&lt;/i&gt;&lt;/pre&gt;&lt;br /&gt;As novas variáveis tab_por_estados e tab_por_cidades conterão, respectivamente:&lt;br /&gt;&lt;br /&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;gt; tab_por_estados&lt;br /&gt;&amp;nbsp; Estado&amp;nbsp; x&lt;br /&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CE 10&lt;br /&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SP 26&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;gt; tab_por_cidades&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Cidade&amp;nbsp;&amp;nbsp; x&lt;br /&gt;1&amp;nbsp; Campinas 5.5&lt;br /&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Crato 1.5&lt;br /&gt;3 Fortaleza 3.5&lt;br /&gt;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sampa 7.5&lt;/b&gt;&lt;br /&gt;Em breve vou postar mais sobre essa super-linguagem!&lt;br /&gt;&lt;br /&gt;Para mais informações sobre o R:&lt;br /&gt;Wikipedia: &lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;a href="http://pt.wikipedia.org/wiki/R_%28linguagem_de_programa%C3%A7%C3%A3o%29"&gt;http://pt.wikipedia.org/wiki/R_(linguagem_de_programação)&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;Site oficial: &lt;b&gt;&lt;a href="http://www.r-project.org/" style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;http://www.r-project.org/&lt;/a&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-1488132300602868975?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/1488132300602868975/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/07/funcao-aggregate-do-r-exemplo-simples.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1488132300602868975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1488132300602868975'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/07/funcao-aggregate-do-r-exemplo-simples.html' title='Função aggregate do R (exemplo simples)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-4938649818587682361</id><published>2010-07-20T17:44:00.000-07:00</published><updated>2010-07-20T17:44:53.716-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='aulas'/><category scheme='http://www.blogger.com/atom/ns#' term='física'/><category scheme='http://www.blogger.com/atom/ns#' term='usp'/><title type='text'>Videoteca do Instituto de Física da USP</title><content type='html'>Segundo o &lt;a href="http://video.if.usp.br/aulas"&gt;site&lt;/a&gt;, você encontra diversas aulas digitalizadas, que poderão ser assistidas através de página ou você pode baixar para o seu computador.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OdqaItQlcIc/TEZCkoPjCNI/AAAAAAAAAT0/FLVxy5TBq-w/s1600/2009-10-07-300.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TEZCkoPjCNI/AAAAAAAAAT0/FLVxy5TBq-w/s320/2009-10-07-300.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;(imagem :&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;a href="http://video.if.usp.br/files/thumb/2009-10-07-300.jpg"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;http://video.if.usp.br/files/thumb/2009-10-07-300.jpg&lt;/i&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;i&gt;)&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Além dos videos, dá pra baixar vários arquivos de áudio.&lt;br /&gt;&lt;br /&gt;As gravações são de aulas dadas no &lt;a href="http://www.if.usp.br/"&gt;IF-USP&lt;/a&gt;, durante colóquios, congressos ou mesmo aulas do Instituto.&lt;br /&gt;&lt;br /&gt;Material muito bom, de excelente qualidade!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://video.if.usp.br/aulas"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;http://video.if.usp.br/aulas&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-4938649818587682361?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/4938649818587682361/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/07/videoteca-do-instituto-de-fisica-da-usp.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4938649818587682361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4938649818587682361'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/07/videoteca-do-instituto-de-fisica-da-usp.html' title='Videoteca do Instituto de Física da USP'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OdqaItQlcIc/TEZCkoPjCNI/AAAAAAAAAT0/FLVxy5TBq-w/s72-c/2009-10-07-300.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-2637128563526242543</id><published>2010-07-15T18:30:00.000-07:00</published><updated>2011-02-12T15:18:41.883-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='estruturas de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><category scheme='http://www.blogger.com/atom/ns#' term='árvores'/><title type='text'>Material de Estruturas de Dados</title><content type='html'>Postando mais uma vez para divulgar material de estudo. Sempre!&lt;br /&gt;=)&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_OdqaItQlcIc/TD-10sphY4I/AAAAAAAAATs/824eZEb8G9g/s1600/AVL_TREE.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_OdqaItQlcIc/TD-10sphY4I/AAAAAAAAATs/824eZEb8G9g/s320/AVL_TREE.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(imagem:&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;a href="http://www.beaumontpublic.com/_img/main/AVL_TREE.jpg"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://www.beaumontpublic.com/_img/main/AVL_TREE.jpg&lt;/span&gt;&lt;/i&gt;&lt;/a&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;Dessa vez é um material de &lt;b&gt;Estruturas de Dados&lt;/b&gt;, conteúdo básico de Ciência da Computação. Nessa disciplina, estudamos algumas estruturas básicas, como listas, pilhas, filas e árvores. Essas estruturas são usadas em algoritmos mais avançados como componentes auxiliares para organizar os dados.&lt;br /&gt;&lt;br /&gt;Além do dicionário já divulgado &lt;a href="http://estudarcomputacao.blogspot.com/2009/12/dicionario-de-algoritmos-e-estruturas.html"&gt;aqui no blog&lt;/a&gt;, também vou divulgar alguns materiais on-line de cursos de ED de universidades brasileiras:&lt;br /&gt;&lt;br /&gt;- O&amp;nbsp;&lt;a href="http://www2.dc.ufscar.br/~bsi/materiais/ed/"&gt;livro on-line&lt;/a&gt; do&amp;nbsp;Prof. Dr. Roberto Ferrari, do &lt;a href="http://www.dc.ufscar.br/"&gt;Departamento de Computação da UFSCar&lt;/a&gt;:&lt;br /&gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;a href="http://www2.dc.ufscar.br/~bsi/materiais/ed/"&gt;http://www2.dc.ufscar.br/~bsi/materiais/ed/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-&amp;nbsp;&lt;a href="http://www.ic.uff.br/~boeres/slides_ed/links_est_dados.html"&gt;Links interessantes sobre Estrutura de Dados&lt;/a&gt;, do site da professora &lt;a href="http://www.ic.uff.br/~boeres/"&gt;Cristina Boeres&lt;/a&gt;, do &lt;a href="http://www.ic.uff.br/"&gt;Instituto de Computação da UFF&lt;/a&gt;:&lt;br /&gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;a href="http://www.ic.uff.br/~boeres/slides_ed/links_est_dados.html"&gt;http://www.ic.uff.br/~boeres/slides_ed/links_est_dados.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-&amp;nbsp;Material Didático da Disciplinas Algoritmos e Estruturas de Dados I, das profas Graça Pimentel, Maria Cristina e Rosane, do&amp;nbsp;Departamento de Computação e Estatística (SCE), &lt;a href="http://www.icmc.usp.br/"&gt;ICMC-USP&lt;/a&gt;:&lt;br /&gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;a href="http://www.icmc.usp.br/~sce182/"&gt;http://www.icmc.usp.br/~sce182/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Também acho legal esse site com animações em Java (applets) simulando árvores AVL e rubro-negras.&lt;br /&gt;&amp;gt;&amp;gt;&amp;nbsp;&lt;a href="http://webdiis.unizar.es/asignaturas/EDA/AVLTree/avltree.html"&gt;http://webdiis.unizar.es/asignaturas/EDA/AVLTree/avltree.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;[atualização - 12/02/2011]&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;No site do prof. Feofiloff, da Computação da USP, há vários algoritmos implementados em C:&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~pf/algoritmos/"&gt;http://www.ime.usp.br/~pf/algoritmos/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Também recomendo a leitura dos slides do livro dele (ALGORITMOS em linguagem C):&lt;br /&gt;&lt;a href="http://www.ime.usp.br/~pf/algoritmos-livro/slides/SLIDES-A.pdf"&gt;http://www.ime.usp.br/~pf/algoritmos-livro/slides/SLIDES-A.pdf&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;[/atualização]&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Espero que gostem!&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;*&lt;/span&gt; Obs:&lt;/b&gt; A "AVL Tree" da figura não é AVL de&amp;nbsp;G.M. &lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;A&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;delson-&lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;V&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;elskii and E.M. &lt;/span&gt;&lt;/i&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;L&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;andi, inventores da árvore &lt;b&gt;AVL&lt;/b&gt;. Mesmo assim, achei legal e coloquei aqui.&lt;/span&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-2637128563526242543?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/2637128563526242543/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/07/material-de-estruturas-de-dados.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2637128563526242543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2637128563526242543'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/07/material-de-estruturas-de-dados.html' title='Material de Estruturas de Dados'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OdqaItQlcIc/TD-10sphY4I/AAAAAAAAATs/824eZEb8G9g/s72-c/AVL_TREE.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-1817015642864590698</id><published>2010-07-09T13:00:00.000-07:00</published><updated>2010-07-09T13:02:07.884-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='estatística'/><category scheme='http://www.blogger.com/atom/ns#' term='história'/><title type='text'>Revista sobre a História da Estatística</title><content type='html'>A dica de hoje é sobre o &lt;b&gt;&lt;a href="http://www.jehps.net/"&gt;Electronic Journal for History of Probability and Statistics&lt;/a&gt;&lt;/b&gt;&amp;nbsp;(&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;b&gt;&lt;i&gt;JEHPS&lt;/i&gt;,&lt;/b&gt; do francês&amp;nbsp;&lt;b&gt;&lt;i&gt;Journal Electronique d'Histoire des Probabilités et de la Statistique&lt;/i&gt;&lt;/b&gt;),&lt;/span&gt;&amp;nbsp;revista científica francesa semestral sobre a História da Estatística.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OdqaItQlcIc/TDd_Z0ZtrKI/AAAAAAAAATk/qEB89Gv0oYA/s1600/logorevue.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TDd_Z0ZtrKI/AAAAAAAAATk/qEB89Gv0oYA/s200/logorevue.jpg" width="165" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;A revista traz artigos sobre os diversos nomes importantes da Estatística, como &lt;b&gt;Laplace&lt;/b&gt;, &lt;b&gt;Pearson&lt;/b&gt; e &lt;b&gt;Bernoulli&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Algumas temas são bem interessantes divididos por épocas, como:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Medieval Probabilities (A Probabilidade na época Medieval)&lt;/li&gt;&lt;li&gt;Romantic probabilities (1800-1840)&lt;/li&gt;&lt;li&gt;Probability and Statistics around First World War (1905-1925) (Probabilidade e Estatística durante a Primeira Guerra Mundial)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Não deixe de conferir!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.jehps.net/"&gt;http://www.jehps.net&lt;/a&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-1817015642864590698?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/1817015642864590698/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/07/revista-sobre-historia-da-estatistica.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1817015642864590698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1817015642864590698'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/07/revista-sobre-historia-da-estatistica.html' title='Revista sobre a História da Estatística'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OdqaItQlcIc/TDd_Z0ZtrKI/AAAAAAAAATk/qEB89Gv0oYA/s72-c/logorevue.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-1746057465024400050</id><published>2010-07-01T14:57:00.000-07:00</published><updated>2010-07-01T15:02:06.855-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='desenvolvimento'/><category scheme='http://www.blogger.com/atom/ns#' term='rup'/><category scheme='http://www.blogger.com/atom/ns#' term='ibm'/><title type='text'>Site com jogo para aprendar RUP (IBM Rational Unified Process)</title><content type='html'>Pra quem está afim de aprender a mexer com o &lt;a href="http://pt.wikipedia.org/wiki/IBM_Rational_Unified_Process"&gt;RUP&lt;/a&gt; (IBM Rational Unified Process).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_OdqaItQlcIc/TC0OmEXOZ-I/AAAAAAAAATA/7mPWgXALx8s/s1600/RUP.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="267" src="http://2.bp.blogspot.com/_OdqaItQlcIc/TC0OmEXOZ-I/AAAAAAAAATA/7mPWgXALx8s/s400/RUP.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ruppers experience&lt;/b&gt; &lt;br /&gt;&lt;a href="http://www.ruppers.com.br/overview/"&gt;http://www.ruppers.com.br/overview/ &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pra quem não sabe, o RUP é uma metodologia de desenvolvimento de software criada pela &lt;a href="http://pt.wikipedia.org/wiki/Rational_Software_Corporation" title="Rational Software Corporation"&gt;Rational Software Corporation&lt;/a&gt;,  adquirida pela &lt;a href="http://pt.wikipedia.org/wiki/IBM" title="IBM"&gt;IBM&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;No jogo, você atua como um gerente de projetos e deve tomar decisões para controlar bem seus objetivos,&amp;nbsp; seu tempo e seus recursos.&lt;br /&gt;&lt;br /&gt;Muito legal!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dica do &lt;a href="http://twitter.com/pvictorc"&gt;@pvictorc&lt;/a&gt;, no twitter.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-1746057465024400050?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/1746057465024400050/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/07/site-com-jogo-para-aprendar-rup-ibm.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1746057465024400050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1746057465024400050'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/07/site-com-jogo-para-aprendar-rup-ibm.html' title='Site com jogo para aprendar RUP (IBM Rational Unified Process)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OdqaItQlcIc/TC0OmEXOZ-I/AAAAAAAAATA/7mPWgXALx8s/s72-c/RUP.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-4729706695076903363</id><published>2010-06-26T19:10:00.000-07:00</published><updated>2010-06-26T19:10:51.783-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='ime-usp'/><category scheme='http://www.blogger.com/atom/ns#' term='estatística'/><category scheme='http://www.blogger.com/atom/ns#' term='física'/><category scheme='http://www.blogger.com/atom/ns#' term='exercícios resolvidos'/><category scheme='http://www.blogger.com/atom/ns#' term='computação'/><title type='text'>Listas de exercícios resolvidas - Computação, Estatística, Física e Matemática</title><content type='html'>Encontrei no site do &lt;a href="http://www.fernandohrosa.com.br/"&gt;Fernando Ferraz&lt;/a&gt;, estatístico do IME-USP, várias listas de exercícios resolvidas.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.feferraz.net/br/P/Listas_de_Exercicios_Resolvidas"&gt;http://www.feferraz.net/br/P/Listas_de_Exercicios_Resolvidas&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Além dessa seção do site, recomendo uma vasta pesquisa nas demais páginas, pois lá ele coloca várias dicas de livros e outros materiais para estudo (além de disciplinas de exatas, ele dá dicas de como melhorar seu inglês e alemão).&lt;br /&gt;&lt;br /&gt;Recomendo!&lt;br /&gt;&lt;a href="http://www.feferraz.net/"&gt;http://www.feferraz.net&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-4729706695076903363?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/4729706695076903363/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/06/listas-de-exercicios-resolvidas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4729706695076903363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4729706695076903363'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/06/listas-de-exercicios-resolvidas.html' title='Listas de exercícios resolvidas - Computação, Estatística, Física e Matemática'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-1850616915764761797</id><published>2010-06-19T20:36:00.000-07:00</published><updated>2010-07-06T14:12:22.531-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grafos'/><category scheme='http://www.blogger.com/atom/ns#' term='download'/><category scheme='http://www.blogger.com/atom/ns#' term='ime-usp'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>Material de Teoria dos Grafos para download</title><content type='html'>Esses dias dei uma breve motivação para o estudo de Teoria dos Grafos, numa aula de programação. Como passei para os alunos dicas de material, vou aproveitar pra colocar aqui também.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_OdqaItQlcIc/TB2MjONDlLI/AAAAAAAAAS4/W7oW49TYbLQ/s1600/Konigsberg.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_OdqaItQlcIc/TB2MjONDlLI/AAAAAAAAAS4/W7oW49TYbLQ/s320/Konigsberg.jpeg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;(&lt;/span&gt;&lt;a href="http://www2.warwick.ac.uk/fac/sci/dcs/people/alexander_tiskin/teach/Konigsberg.jpeg"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://www2.warwick.ac.uk/fac/sci/dcs/people/alexander_tiskin/teach/Konigsberg.jpeg&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se você deseja ter uma breve definição, não custa nada consultar a boa e velha wikipedia (&lt;a href="http://pt.wikipedia.org/wiki/Teoria_dos_grafos"&gt;http://pt.wikipedia.org/wiki/Teoria_dos_grafos&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;No entanto, se você deseja consultar um material com maior rigor matemático, eu recomendo fortemente o livro "&lt;span class="Apple-style-span" style="color: #000060;"&gt;&lt;i&gt;&lt;a href="http://www.ime.usp.br/%7Epf/teoriadosgrafos/texto/TeoriaDosGrafos.pdf" style="color: blue;"&gt;Uma Introdução Sucinta à Teoria dos Grafos&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;", dos professores&amp;nbsp;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&lt;i&gt;&lt;a href="http://www.ime.usp.br/%7Eyw/" style="color: blue;"&gt;Yoshiko Wakabayashi&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;,&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&lt;i&gt;&lt;a href="http://www.ime.usp.br/%7Eyoshi/" style="color: blue;"&gt;Yoshiharu Kohayakawa&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;e&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&lt;i&gt;&lt;a href="http://www.ime.usp.br/%7Epf/" style="color: blue;"&gt;Paulo Feofiloff&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;, todos do &lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&lt;a href="http://www.ime.usp.br/" style="color: blue;"&gt;Instituto de Matemática e Estatística&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;da&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&lt;a href="http://www.usp.br/" style="color: blue;"&gt;USP&lt;/a&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;O material encontra-se disponível para &lt;i&gt;download&lt;/i&gt; e você pode buscar mais informações nas páginas abaixo:&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #000060;"&gt;&lt;a href="http://www.ime.usp.br/%7Epf/teoriadosgrafos/"&gt;http://www.ime.usp.br/~pf/teoriadosgrafos/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No link abaixo, você encontra vários exercícios sobre o mesmo assunto, organizados pelo prof. Paulo Feofiloff:&lt;br /&gt;&lt;a href="http://www.ime.usp.br/%7Epf/grafos-exercicios/"&gt;http://www.ime.usp.br/~pf/grafos-exercicios/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;E nesse outro link você encontra mais uma série de links de livros (dessa lista, recomendo fortemente o livro &lt;span class="Apple-style-span" style="color: #000060;"&gt;&lt;a href="http://www.ecp6.jussieu.fr/pageperso/bondy/books/gtwa/gtwa.html" style="color: #0000d0; text-decoration: none;"&gt;&lt;i&gt;Graph Theory with Applications&lt;/i&gt;&lt;/a&gt;&lt;/span&gt;, de Bondy e Murty. Esse livro também está disponível para download, porém seu conteúdo está em inglês).&lt;br /&gt;&lt;a href="http://www.ime.usp.br/%7Epf/grafos-exercicios/bib.html"&gt;http://www.ime.usp.br/~pf/grafos-exercicios/bib.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para completar as dicas, recomendo mais dois links de material on-line, mas esses não conheço bem:&lt;br /&gt;- Material das profas. Graça Pimentel e Maria Cristina, do&amp;nbsp;Instituto de Ciências Matemáticas e de Computação (&lt;a href="http://www.icmc.usp.br/"&gt;ICMC&lt;/a&gt;) da USP:&amp;nbsp;&lt;a href="http://www.icmc.usp.br/manuals/sce183/grafos.html"&gt;http://www.icmc.usp.br/manuals/sce183/grafos.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;-&amp;nbsp;Material do prof.&amp;nbsp;&lt;a href="http://www.inf.ufsc.br/%7Emariani"&gt;Antonio Carlos Mariani&lt;/a&gt;, do depertamento de Informática e Estatística (&lt;a href="http://www.inf.ufsc.br/"&gt;INE&lt;/a&gt;) da&amp;nbsp;&lt;a href="http://www.ufsc.br/"&gt;UFSC&lt;/a&gt;:&amp;nbsp;&lt;a href="http://www.inf.ufsc.br/grafos/livro.html"&gt;http://www.inf.ufsc.br/grafos/livro.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Espero que gostem! Bom estudo!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-1850616915764761797?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/1850616915764761797/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/06/material-de-teoria-dos-grafos-para.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1850616915764761797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1850616915764761797'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/06/material-de-teoria-dos-grafos-para.html' title='Material de Teoria dos Grafos para download'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OdqaItQlcIc/TB2MjONDlLI/AAAAAAAAAS4/W7oW49TYbLQ/s72-c/Konigsberg.jpeg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-4346253200423928894</id><published>2010-06-08T13:28:00.000-07:00</published><updated>2010-06-08T13:31:32.256-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='documentário'/><category scheme='http://www.blogger.com/atom/ns#' term='história'/><category scheme='http://www.blogger.com/atom/ns#' term='bbc'/><title type='text'>A História da Matemática - série da BBC em 4 episódios (legendada)</title><content type='html'>Dica do amigo &lt;a href="http://www.twitter.com/luisbustamante"&gt;L. H. Bustamante&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/1yvuNFTOpC8&amp;hl=en_US&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/1yvuNFTOpC8&amp;hl=en_US&amp;fs=1&amp;color1=0x234900&amp;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Série &lt;b&gt;The Story of Maths&lt;/b&gt;, da BBC, com legendas em português.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Capítulo 1 - A Linguagem do Universo&lt;/b&gt;&lt;br /&gt;----------&lt;br /&gt;1/6) &lt;a href="http://www.youtube.com/watch?v=1yvuNFTOpC8" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=1yvuNFTOpC8&lt;/a&gt;&lt;br /&gt;2/6) &lt;a href="http://www.youtube.com/watch?v=WsIAbD5AvIE%0A3/6" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=WsIAbD5AvIE&lt;br /&gt;&lt;/a&gt;3/6) &lt;a href="http://www.youtube.com/watch?v=8ymF-hyBbJ0" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=8ymF-hyBbJ0&lt;/a&gt;&lt;br /&gt;4/6) &lt;a href="http://www.youtube.com/watch?v=2P_lk_PcOlk%0A5/6" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=2P_lk_PcOlk&lt;/a&gt;&lt;br /&gt;5/6) &lt;a href="http://www.youtube.com/watch?v=BJ9q2q0ZxIs" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=BJ9q2q0ZxIs&lt;/a&gt;&lt;br /&gt;6/6) &lt;a href="http://www.youtube.com/watch?v=sPxnFgmYMtk" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=sPxnFgmYMtk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Capítulo 2 - &lt;span class="long-title" title="The Story of Maths (Legendado) - Cap. 2 - O Gênio do Oriente 1/6"&gt;O Gênio do Oriente&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;----------&lt;br /&gt;1/6) &lt;a href="http://www.youtube.com/watch?v=Z4duoSt7-7Q" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=Z4duoSt7-7Q&lt;/a&gt;&lt;br /&gt;2/6) &lt;a href="http://www.youtube.com/watch?v=N5nB_DtJaE4%0A3/6" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=N5nB_DtJaE4&lt;/a&gt;&lt;br /&gt;3/6) &lt;a href="http://www.youtube.com/watch?v=nnaCvA51FyM" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=nnaCvA51FyM&lt;/a&gt;&lt;br /&gt;4/6) &lt;a href="http://www.youtube.com/watch?v=sH2Y6xK7x_Y%0A5/6" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=sH2Y6xK7x_Y&lt;/a&gt;&lt;br /&gt;5/6) &lt;a href="http://www.youtube.com/watch?v=1-p2agwe1dw" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=1-p2agwe1dw&lt;/a&gt;&lt;br /&gt;6/6) &lt;a href="http://www.youtube.com/watch?v=62cO-XLf8e8" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=62cO-XLf8e8&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Capítulo 3 - &lt;span class="long-title" title="The Story of Maths (Legendado) - Cap. 3 - As Fronteiras do Espaço 1/7"&gt;As Fronteiras do Espaço&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;----------&lt;br /&gt;1/7) &lt;a href="http://www.youtube.com/watch?v=LTMr7rnHIwE" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=LTMr7rnHIwE&lt;/a&gt;&lt;br /&gt;2/7) &lt;a href="http://www.youtube.com/watch?v=8kkgkCLt9l4%0A3/7" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=8kkgkCLt9l4&lt;/a&gt;&lt;br /&gt;3/7) &lt;a href="http://www.youtube.com/watch?v=iT-QcM7DWlE" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=iT-QcM7DWlE&lt;/a&gt;&lt;br /&gt;4/7) &lt;a href="http://www.youtube.com/watch?v=t1OqErJCCZY%0A5/7" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=t1OqErJCCZY&lt;br /&gt;&lt;/a&gt;5/7) &lt;a href="http://www.youtube.com/watch?v=IaykXKDEXC0" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=IaykXKDEXC0&lt;/a&gt;&lt;br /&gt;6/7) &lt;a href="http://www.youtube.com/watch?v=_-H4vVaqDUU%0A7/7" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=_-H4vVaqDUU&lt;br /&gt;&lt;/a&gt;7/7) &lt;a href="http://www.youtube.com/watch?v=AesjoROblCQ" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=AesjoROblCQ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Capítulo 4 - &lt;span class="long-title" title="The Story of Maths (Legendado) - Cap. 4 - Rumo ao Infinito e Mais Além 1/7"&gt;Rumo ao Infinito e Mais Além&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;----------&lt;br /&gt;1/7) &lt;a href="http://www.youtube.com/watch?v=-9BIzPKutPI" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=-9BIzPKutPI&lt;/a&gt;&lt;br /&gt;2/7) &lt;a href="http://www.youtube.com/watch?v=H6reYKF4-e8%0A3/7" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=H6reYKF4-e8&lt;br /&gt;&lt;/a&gt;3/7) &lt;a href="http://www.youtube.com/watch?v=g0aaJT2SlzM" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=g0aaJT2SlzM&lt;/a&gt;&lt;br /&gt;4/7) &lt;a href="http://www.youtube.com/watch?v=8_NppwNNqhg%0A5/7" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=8_NppwNNqhg&lt;br /&gt;&lt;/a&gt;5/7) &lt;a href="http://www.youtube.com/watch?v=7JrFc3dEufI" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=7JrFc3dEufI&lt;/a&gt;&lt;br /&gt;6/7) &lt;a href="http://www.youtube.com/watch?v=O8TL2C-_rY4%0A7/7" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=O8TL2C-_rY4&lt;br /&gt;&lt;/a&gt;7/7) &lt;a href="http://www.youtube.com/watch?v=uQcTTS3W-iQ" target="_blank"&gt;http://www.youtube.com/watch?&lt;wbr&gt;&lt;/wbr&gt;v=uQcTTS3W-iQ&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;=)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-4346253200423928894?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/4346253200423928894/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/06/historia-da-matematica-serie-da-bbc-em.html#comment-form' title='8 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4346253200423928894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/4346253200423928894'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/06/historia-da-matematica-serie-da-bbc-em.html' title='A História da Matemática - série da BBC em 4 episódios (legendada)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-2901889676127152713</id><published>2010-05-30T10:38:00.000-07:00</published><updated>2010-05-30T11:59:13.486-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIT'/><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='grátis'/><category scheme='http://www.blogger.com/atom/ns#' term='stanford'/><category scheme='http://www.blogger.com/atom/ns#' term='online'/><category scheme='http://www.blogger.com/atom/ns#' term='berkeley'/><category scheme='http://www.blogger.com/atom/ns#' term='aulas'/><category scheme='http://www.blogger.com/atom/ns#' term='academic earth'/><category scheme='http://www.blogger.com/atom/ns#' term='harvard'/><title type='text'>Mais video-aulas de Ciência da Computação on-line</title><content type='html'>&lt;a href="http://academicearth.org/subjects/computer-science" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5477134209119738770" src="http://4.bp.blogspot.com/_OdqaItQlcIc/TAKwi0m425I/AAAAAAAAASY/xd_XNOrj7NI/s320/academic-earth.png" style="cursor: pointer; float: left; height: 195px; margin: 0pt 10px 10px 0pt; width: 320px;" /&gt;&lt;/a&gt;Pessoal, mais dicas de &lt;span style="font-weight: bold;"&gt;aulas de Computação&lt;/span&gt; para assistir livremente na internet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A primeira dica é o site &lt;a href="http://academicearth.org/subjects/computer-science"&gt;&lt;span style="font-weight: bold;"&gt;Academic Earth&lt;/span&gt;&lt;/a&gt;, com videos das seguintes universidades:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.stanford.edu/"&gt;Stanford University&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://berkeley.edu/"&gt;University of California, Berkeley&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.harvard.edu/"&gt;Harvard University&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://mit.edu/"&gt;Massachusetts Institute of Technology&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;A segunda dica é o site &lt;a href="http://www.scitv.com/computerscience.html"&gt;Science Television&lt;/a&gt;, que também traz uma lista de videos de várias universidades.&lt;br /&gt;&lt;br /&gt;Não deixe de conferir!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-2901889676127152713?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/2901889676127152713/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/05/mais-video-aulas-de-ciencia-da.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2901889676127152713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2901889676127152713'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/05/mais-video-aulas-de-ciencia-da.html' title='Mais video-aulas de Ciência da Computação on-line'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OdqaItQlcIc/TAKwi0m425I/AAAAAAAAASY/xd_XNOrj7NI/s72-c/academic-earth.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-1104119607871266210</id><published>2010-05-25T14:18:00.000-07:00</published><updated>2010-05-25T14:31:18.838-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grafos'/><category scheme='http://www.blogger.com/atom/ns#' term='redes complexas'/><category scheme='http://www.blogger.com/atom/ns#' term='bibliotecas'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Biblioteca para manipular grafos em Python</title><content type='html'>Essa é uma dica de um amigo físico, que também mexe com uma área similar a Teoria dos Grafos: Redes Complexas.&lt;br /&gt;&lt;br /&gt;O pacote &lt;span style="font-weight: bold;"&gt;NetworkX&lt;/span&gt; é fácil de instalar e fácil de usar (você pode usar o comando &lt;span style="font-weight: bold;font-family:courier new;" &gt;'easy_install networkx'&lt;/span&gt;). Basta saber o básico de &lt;span style="font-weight: bold;"&gt;Python&lt;/span&gt; para poder começar a usufruir.&lt;br /&gt;=)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://networkx.lanl.gov/"&gt;http://networkx.lanl.gov&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A seguir, um exemplo de uso rápido.&lt;br /&gt;&lt;br /&gt;   &lt;table style="margin-left: 20px;" align="center"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="50%"&gt; &lt;div class="highlight-python"&gt;&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span style="font-weight: bold; color: rgb(255, 153, 0);font-size:130%;" class="gp" &gt;&gt;&gt;&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);font-size:130%;" class="k" &gt;import&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" class="nn" &gt;networkx&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);font-size:130%;" class="k" &gt;as&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);font-size:130%;" class="nn" &gt;nx&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" class="gp" &gt;&lt;span style="color: rgb(255, 153, 0);"&gt;&gt;&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;G&lt;/span&gt;&lt;span class="o"  style="font-size:130%;"&gt;=&lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;nx&lt;/span&gt;&lt;span class="o"  style="font-size:130%;"&gt;.&lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;Graph&lt;/span&gt;&lt;span class="p"  style="font-size:130%;"&gt;()&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" class="gp" &gt;&lt;span style="color: rgb(255, 153, 0);"&gt;&gt;&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;G&lt;/span&gt;&lt;span class="o"  style="font-size:130%;"&gt;.&lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;add_node&lt;/span&gt;&lt;span class="p"  style="font-size:130%;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(51, 153, 153);font-size:130%;" class="s" &gt;"spam"&lt;/span&gt;&lt;span class="p"  style="font-size:130%;"&gt;)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" class="gp" &gt;&lt;span style="color: rgb(255, 153, 0);"&gt;&gt;&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;G&lt;/span&gt;&lt;span class="o"  style="font-size:130%;"&gt;.&lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;add_edge&lt;/span&gt;&lt;span class="p"  style="font-size:130%;"&gt;(&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:130%;" class="mf" &gt;1&lt;/span&gt;&lt;span class="p"  style="font-size:130%;"&gt;,&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-size:130%;" class="mf" &gt;2&lt;/span&gt;&lt;span class="p"  style="font-size:130%;"&gt;)&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" class="gp" &gt;&lt;span style="color: rgb(255, 153, 0);"&gt;&gt;&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);font-size:130%;" class="k" &gt;print&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; &lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;G&lt;/span&gt;&lt;span class="o"  style="font-size:130%;"&gt;.&lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;nodes&lt;/span&gt;&lt;span class="p"  style="font-size:130%;"&gt;()&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="go"  style="font-size:130%;"&gt;[1, 2, 'spam']&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" class="gp" &gt;&lt;span style="color: rgb(255, 153, 0);"&gt;&gt;&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);font-size:130%;" class="k" &gt;print&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt; &lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;G&lt;/span&gt;&lt;span class="o"  style="font-size:130%;"&gt;.&lt;/span&gt;&lt;span class="n"  style="font-size:130%;"&gt;edges&lt;/span&gt;&lt;span class="p"  style="font-size:130%;"&gt;()&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="go"  style="font-size:130%;"&gt;[(1, 2)]&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;     &lt;/div&gt;&lt;/td&gt;     &lt;td width="50%"&gt; &lt;a href="http://networkx.lanl.gov/"&gt;&lt;img src="http://networkx.lanl.gov/_static/art1.png" alt="NetworkX art" align="right" /&gt;&lt;/a&gt; &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Aproveitem!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-1104119607871266210?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/1104119607871266210/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/05/biblioteca-para-manipular-grafos-em.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1104119607871266210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/1104119607871266210'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/05/biblioteca-para-manipular-grafos-em.html' title='Biblioteca para manipular grafos em Python'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-8866525229992207901</id><published>2010-05-21T08:20:00.000-07:00</published><updated>2010-07-06T14:13:21.382-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='grátis'/><category scheme='http://www.blogger.com/atom/ns#' term='online computer books'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Livros de Computação Grátis na Web</title><content type='html'>Essa dia é boa!&lt;br /&gt;=D&lt;br /&gt;&lt;br /&gt;Vários livros de Ciência da Computação livres para baixar.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Computação teórica&lt;/li&gt;&lt;li&gt;Linguagens de programação&lt;/li&gt;&lt;li&gt;Linux &amp;amp; Unix&lt;/li&gt;&lt;li&gt;Certificação Cisco&lt;/li&gt;&lt;li&gt;Redes&lt;/li&gt;&lt;li&gt;Bioinformática&lt;/li&gt;&lt;li&gt;Processamento de Sinais&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.freebookcentre.net/" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5473749319867189410" src="http://2.bp.blogspot.com/_OdqaItQlcIc/S_aqAVg4SKI/AAAAAAAAARc/AXEEMiboCRE/s320/FreeBookCentre.gif" style="cursor: pointer; float: left; height: 80px; margin: 0pt 10px 10px 0pt; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.freebookcentre.net/"&gt;http://www.freebookcentre.net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: red;"&gt;Atualização (10/06/2010)&lt;/div&gt;Aqui vai mais uma dica! Mais livros para baixar de graça! É o site&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.onlinecomputerbooks.com/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_OdqaItQlcIc/TBGXEFthGsI/AAAAAAAAASw/8EmiUGmpZlg/s320/onlinecomputerbooks.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Baixe livros sobre várias linguagens de programação, redes, TI, segurança, etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Aproveitem (mais ainda)!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-8866525229992207901?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/8866525229992207901/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/05/livros-de-computacao-gratis-na-web.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8866525229992207901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8866525229992207901'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/05/livros-de-computacao-gratis-na-web.html' title='Livros de Computação Grátis na Web'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OdqaItQlcIc/S_aqAVg4SKI/AAAAAAAAARc/AXEEMiboCRE/s72-c/FreeBookCentre.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7276892233440948316</id><published>2010-05-17T09:49:00.000-07:00</published><updated>2010-05-17T12:06:01.875-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='norvig'/><category scheme='http://www.blogger.com/atom/ns#' term='paciência'/><category scheme='http://www.blogger.com/atom/ns#' term='linguagens'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>RP "Aprenda a Programar em Dez Anos"</title><content type='html'>&lt;p&gt;Por &lt;b&gt;Alejandro Fernandez Moraga&lt;/b&gt;&lt;/p&gt;       &lt;div class="image"&gt;   &lt;img src="" alt="" href="%22http://www.norvig.com/resume.html%22" /&gt;Peter Norvig&lt;img src="http://www.moraga.com.br/a/articles/images/2008/11/peter-norvig.jpg" /&gt;   &lt;span&gt;&lt;a href="http://www.norvig.com/resume.html"&gt;Peter Norvig&lt;/a&gt;&lt;/span&gt;  &lt;/div&gt;    &lt;p&gt;Autoria de &lt;a href="http://norvig.com/" title="Site contém documentos técnicos, redações, relatórios, software e outros materiais por Peter Norvig."&gt;Peter Norvig&lt;/a&gt; (texto original em &lt;a href="http://norvig.com/21-days.html" title="Teach Yourself Programming in Ten Years"&gt;http://norvig.com/21-days.html&lt;/a&gt;), diretor de pesquisas do Google.&lt;br /&gt;Traduzido por Alejandro Fernandez Moraga.&lt;/p&gt;&lt;h3&gt;Por que todo mundo tem tanta pressa?&lt;/h3&gt;&lt;p&gt;Entre em qualquer livraria, e você vai ver &lt;em&gt;Aprenda Java em 7 dias&lt;/em&gt; juntamente com infinitas variações oferecendo ensinar Visual Basic, Window, Internet, e assim por diante, em poucos dias ou horas. Eu fiz a seguinte pesquisa no Amazon.com:&lt;/p&gt;&lt;blockquote&gt;pubdate: after 1992 and title: days and&lt;br /&gt;(title: learn or title: teach yourself)&lt;/blockquote&gt;&lt;p&gt;e foi retornado 248 resultados. Os primeiros 78 livros eram sobre computadores (o número 79 foi Aprenda bengali em 30 dias). Eu substituí "dias" por "horas" e obtive resultado muito semelhante: mais 253 livros, 77 de computadores seguido por &lt;em&gt;Aprenda Gramática em 24 horas, número 78.&lt;/em&gt; De 200 livros, 96% eram livros de computadores.&lt;/p&gt;&lt;p&gt;A conclusão é de que as pessoas estão com muita pressa de aprender sobre computadores, ou que aprender sobre computadores é fabulosamente mais fácil do do qualquer outra coisa. Não há livros de como aprender Beethoven, ou física quântica, ou até mesmo sobre adestramento de cães em poucos dias.&lt;/p&gt;&lt;p&gt;Vamos analisar o que um título como &lt;em&gt;Aprenda Pascal em 3 dias&lt;/em&gt; pode significar:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Aprenda:&lt;/strong&gt; Em 3 dias você não vai ter tempo para escrever muitos programas importantes, e aprender com o sucesso ou fracasso. Você não vai ter tempo para trabalhar com um programador experiente e entender o que é viver nesse ambiente. Em suma, você não vai ter muito tempo para aprender. Então, eles apenas podem falar superficialmente, e não de uma profunda compreensão. Tal como disse o Papa Alexandre, um pouco de conhecimento é uma coisa perigosa.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pascal:&lt;/strong&gt; Em 3 dias você não será capaz de aprender a sintaxe do Pascal (isso se você já conhece uma linguagem similar), mas não vai aprender muito como utilizar essa sintaxe. Resumindo, se fosse, digamos, um programador Basic, pode aprender a escrever programas no estilo de Basic usando a sintaxe do Pascal mas não vai saber o que é um Pascal bom (ou ruim). Onde queremos chegar? Alan Perlis disse uma vez: "Uma linguagem que afeta a maneira de você pensar sobre a programação não vale a pena ser aprendida". É diferente se você precisa aprender um pouco de Pascal (ou algo como Visual Basic ou Javascript) porque você precisa interagir com alguma ferramenta existente para uma tarefa específica. Mas você não vai estar aprendendo como programar; Vai estar aprendendo como completar a tarefa.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;&lt;strong&gt;Em 3 dias:&lt;/strong&gt; Infelizmente, não é o bastante, a próxima seção mostra por quê.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Você pode continuar lendo esse artigo &lt;a href="http://www.jarbs.com.br/aprenda-a-programar-em-dez-anos,83.html"&gt;aqui&lt;/a&gt; (do &lt;a href="http://www.jarbs.com.br/"&gt;www.jarbs.com.br&lt;/a&gt;, traduzido por Alejandro Fernandez Moraga) ou &lt;a href="http://pihisall.wordpress.com/2007/03/15/aprenda-a-programar-em-dez-anos/"&gt;aqui&lt;/a&gt; (do &lt;a href="http://pihisall.wordpress.com/"&gt;Pih is All&lt;/a&gt;, traduzido por Augusto Radtke). Ou, se você achar melhor, leia o original &lt;a href="http://norvig.com/21-days.html"&gt;aqui&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7276892233440948316?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7276892233440948316/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/05/rp-aprenda-programar-em-dez-anos.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7276892233440948316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7276892233440948316'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/05/rp-aprenda-programar-em-dez-anos.html' title='RP &quot;Aprenda a Programar em Dez Anos&quot;'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-8344929721335172245</id><published>2010-05-13T09:58:00.000-07:00</published><updated>2010-05-13T10:30:46.984-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dijkstra'/><category scheme='http://www.blogger.com/atom/ns#' term='akita'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>RP @AkitaOnRails: O Programador Humilde, por Edsger W. Dijkstra</title><content type='html'>&lt;p&gt;Vejam a seguir o interessantíssimo post do Fábio Akita, em seu blog. Lá, ele colocou um [Off-Topic], mas acredito que aqui nesse blog o post é totalmente On-Topic!&lt;/p&gt;&lt;p&gt;Trata-se de seus comentários sobre um texto do famoso &lt;a href="http://pt.wikipedia.org/wiki/Edsger_Dijkstra"&gt;E.W.Dijkstra&lt;/a&gt; (1930-2002), professor com o nome difícil mas que a maioria dos computeiros conhece por seu famoso &lt;a href="http://pt.wikipedia.org/wiki/Algoritmo_de_Dijkstra"&gt;algoritmo de menor caminho&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Confiram.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;-------------------&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Depois de escrever meu artigo na Info, &lt;a href="http://info.abril.com.br/noticias/rede/gestao20/software/fabrica-de-software-e-uma-besteira/"&gt;Fábrica de Software é uma Besteira&lt;/a&gt;, recebi um &lt;a href="http://twitter.com/YuriGitahy/status/12030443729"&gt;retweet&lt;/a&gt; com um link muito legal de um texto que eu não conhecia. &lt;a href="http://userweb.cs.utexas.edu/%7EEWD/transcriptions/EWD03xx/EWD340.html"&gt;The Humble Programmer&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;Claro, o autor é super conhecido, o grande &lt;a href="http://en.wikipedia.org/wiki/Edsger_W._Dijkstra"&gt;Edsger W. Dijkstra&lt;/a&gt;. Ele é mais conhecido pelo paper seminal &lt;a href="http://userweb.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/EWD215.html"&gt;A Case against the GO TO Statement&lt;/a&gt;. De qualquer forma o The Humble Programmer foi um discurso que ele deu ao receber o prêmio Alan Turing de 1972.&lt;/p&gt; &lt;p&gt;O texto é fantástico e deve ser lido na íntegra, mas resolvi retirar alguns trechos para comentar. O mais interessante é ler com o contexto do fim dos anos 60 em mente e como muito do que ele espera para o futuro é uma coisa que nós, 50 anos depois, ainda continuamos esperando. Não publiquei este texto na Info mesmo por dois motivos: primeiro porque é mais voltado a programadores, segundo porque este é um dos meus textos “tamanho Akita” :-)&lt;/p&gt;   &lt;blockquote&gt;Duas opiniões sobre programação vem desses dias. Eu os menciono agora, devo retornar a eles depois. Uma opinião era que um programador competente deveria ter mente voltada a quebra-cabeças e gostar muito de truques espertos; a outra opinião é que programação era nada mais do que otimizar a eficiência do processo computacional, em uma direção ou outra.&lt;/blockquote&gt; &lt;p&gt;Infelizmente, a imagem do programador mudou, mas para dois extremos: temos os super-programadores, autores renomados, mas a profissão me si se tornou uma commodity, um bem de consumo farto e barato, justamente pelo que comentei no artigo sobre fábricas de software. O barateamento artificial de profissão está levando a um sucateamento e uma demora maior para pesquisas e evoluções na área, especialmente se contarmos que a competição para baixar o preço não vem a partir de aumentar a qualidade técnicas dos processos e tecnologias, mas principalmente de usar a globalização para levar a tarefa para áreas onde os recursos humanos são mais baratos, como Índia e China. Não quer dizer que todos da profissão sejam operários, os que cresceram sozinhos e evoluíram tem posições e tarefas respeitáveis, mas isso se deve mais ao esforço individual.&lt;/p&gt; &lt;blockquote&gt;Essa última opinião era o resultado da circunstância frequente que, de fato, o equipamento disponível era dolorosamente lento, e nessa época se encontrava a expectativa ingênua que, assim que máquinas mais poderosas estivessem disponíveis, programação não seria mais um problema, e então o esforço de ir até os limites da máquina não seriam mais necessários e programação era basicamente isso, não era? Mas nas décadas seguintes uma coisa completamente diferente aconteceu: máquinas mais poderosas ficaram disponíveis. Mas em vez de nos encontrarmos num estado de perfeita harmonia com todos os problemas de programação resolvidos, nos encontramos até o pescoço na &lt;strong&gt;crise do software&lt;/strong&gt;! Como pode?&lt;/blockquote&gt; &lt;p&gt;Pelo menos hoje ninguém assume que só porque as máquinas serão melhores a programação será mais simples. Mas notem uma coisa que sempre repito: as pessoas acham que os problemas de software são coisas recentes, mas o termo “crise do software” foi cunhado ainda na década de 70 … e até hoje não foi resolvida.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.akitaonrails.com/2010/04/12/off-topic-o-programador-humilde-por-edsger-w-dijkstra"&gt;continue lendo...&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-8344929721335172245?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/8344929721335172245/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/05/rp-akitaonrails-o-programador-humilde.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8344929721335172245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/8344929721335172245'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/05/rp-akitaonrails-o-programador-humilde.html' title='RP @AkitaOnRails: O Programador Humilde, por Edsger W. Dijkstra'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-2437105000043771171</id><published>2010-04-15T12:04:00.000-07:00</published><updated>2010-04-15T12:39:09.381-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='aniversário'/><category scheme='http://www.blogger.com/atom/ns#' term='mestrado'/><category scheme='http://www.blogger.com/atom/ns#' term='1 ano'/><category scheme='http://www.blogger.com/atom/ns#' term='ribeirao preto'/><title type='text'>1 ano do blog "Estudar Computação"!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OdqaItQlcIc/S8dnDACVPUI/AAAAAAAAAQY/ky1NVO6ZV8M/s1600/computer.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_OdqaItQlcIc/S8dnDACVPUI/AAAAAAAAAQY/ky1NVO6ZV8M/s200/computer.JPG" alt="" id="BLOGGER_PHOTO_ID_5460446374457064770" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OdqaItQlcIc/S8dnCshYFtI/AAAAAAAAAQQ/xyI6M3KwoIA/s1600/3764496855_3e36761658.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 215px; height: 149px;" src="http://4.bp.blogspot.com/_OdqaItQlcIc/S8dnCshYFtI/AAAAAAAAAQQ/xyI6M3KwoIA/s200/3764496855_3e36761658.jpg" alt="" id="BLOGGER_PHOTO_ID_5460446369218565842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OdqaItQlcIc/S8dmLRXgB-I/AAAAAAAAAPw/zt1PZOxkEgw/s1600/xml-birthday-cake-large.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 218px; height: 155px;" src="http://3.bp.blogspot.com/_OdqaItQlcIc/S8dmLRXgB-I/AAAAAAAAAPw/zt1PZOxkEgw/s200/xml-birthday-cake-large.jpg" alt="" id="BLOGGER_PHOTO_ID_5460445417036580834" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OdqaItQlcIc/S8dl8IBL3wI/AAAAAAAAAPI/MEimXAiV-KU/s1600/452441_Computer-freak-birthday-cake_620.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 223px; height: 158px;" src="http://1.bp.blogspot.com/_OdqaItQlcIc/S8dl8IBL3wI/AAAAAAAAAPI/MEimXAiV-KU/s320/452441_Computer-freak-birthday-cake_620.jpg" alt="" id="BLOGGER_PHOTO_ID_5460445156829028098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OdqaItQlcIc/S8dmLqG5m6I/AAAAAAAAAP4/OQ9J9knnMeA/s1600/Computer_cake.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 136px; height: 126px;" src="http://1.bp.blogspot.com/_OdqaItQlcIc/S8dmLqG5m6I/AAAAAAAAAP4/OQ9J9knnMeA/s200/Computer_cake.jpg" alt="" id="BLOGGER_PHOTO_ID_5460445423677840290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OdqaItQlcIc/S8dmMMNikdI/AAAAAAAAAQA/lBg15IjsyAA/s1600/computer-birthday-cake-21134640.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 171px; height: 129px;" src="http://4.bp.blogspot.com/_OdqaItQlcIc/S8dmMMNikdI/AAAAAAAAAQA/lBg15IjsyAA/s200/computer-birthday-cake-21134640.jpg" alt="" id="BLOGGER_PHOTO_ID_5460445432832496082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OdqaItQlcIc/S8dl8ehrtxI/AAAAAAAAAPQ/g0YDsy9iWYA/s1600/19777118_6c0ea71bce.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 174px; height: 131px;" src="http://2.bp.blogspot.com/_OdqaItQlcIc/S8dl8ehrtxI/AAAAAAAAAPQ/g0YDsy9iWYA/s320/19777118_6c0ea71bce.jpg" alt="" id="BLOGGER_PHOTO_ID_5460445162870912786" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E aí pessoal!&lt;br /&gt;&lt;br /&gt;Criei esse blog exatamente há um ano, quando fui pra Ribeirão Preto-SP pra terminar meu &lt;a href="http://www.vision.ime.usp.br/%7Ellima/mestrado/"&gt;mestrado&lt;/a&gt; em &lt;span style="font-weight: bold;"&gt;Ciência da Computação&lt;/span&gt;. Até aqui foram 21 posts e pouco mais de 2.400 visitas. Ainda estamos engatinhando, mas aos poucos estamos crescendo. Agradeço a todos que deram dicas para posts e os que passam por aqui apenas para fazerem algumas consultas. Espero que a gente continue estudando essa Ciência fantástica que é a Computação por muito tempo mais.&lt;br /&gt;&lt;br /&gt;Obrigado a todos!&lt;br /&gt;&lt;br /&gt;Leandro Lima&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Imagens (&lt;a href="http://images.google.com.br/images?q=computer+birthday"&gt;http://images.google.com.br/images?q=computer+birthday&lt;/a&gt;):&lt;br /&gt;&lt;a href="http://www.coolfunpics.com/slides/Computer_cake.jpg"&gt;http://www.coolfunpics.com/slides/Computer_cake.jpg&lt;/a&gt;&lt;br /&gt;&lt;a href="http://s3.amazonaws.com/picable/2008/11/12/452441_Computer-freak-birthday-cake_620.jpg"&gt;http://s3.amazonaws.com/picable/2008/11/12/452441_Computer-freak-birthday-cake_620.jpg&lt;/a&gt;&lt;br /&gt;&lt;a href="http://farm3.static.flickr.com/2013/1590993819_76e5b0161e.jpg"&gt;http://farm3.static.flickr.com/2013/1590993819_76e5b0161e.jpg&lt;/a&gt;&lt;br /&gt;&lt;a href="http://farm3.static.flickr.com/2435/3764496855_3e36761658.jpg"&gt;http://farm3.static.flickr.com/2435/3764496855_3e36761658.jpg&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.cakes-you-can-bake.com/images/computer-birthday-cake-21134640.jpg"&gt;http://www.cakes-you-can-bake.com/images/computer-birthday-cake-21134640.jpg&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xmlgrrl.com/blog/wp-content/xml-birthday-cake-large.jpg"&gt;http://www.xmlgrrl.com/blog/wp-content/xml-birthday-cake-large.jpg&lt;/a&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_OmhqtV2VkQE/Rpmibnn-5fI/AAAAAAAAAjE/VQLKs-8k048/s400/computer.JPG"&gt;http://4.bp.blogspot.com/_OmhqtV2VkQE/Rpmibnn-5fI/AAAAAAAAAjE/VQLKs-8k048/s400/computer.JPG&lt;/a&gt;&lt;br /&gt;&lt;a href="http://farm1.static.flickr.com/16/19777118_6c0ea71bce.jpg"&gt;http://farm1.static.flickr.com/16/19777118_6c0ea71bce.jpg&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-2437105000043771171?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/2437105000043771171/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/04/1-ano-do-blog-estudar-computacao.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2437105000043771171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2437105000043771171'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/04/1-ano-do-blog-estudar-computacao.html' title='1 ano do blog &quot;Estudar Computação&quot;!'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OdqaItQlcIc/S8dnDACVPUI/AAAAAAAAAQY/ky1NVO6ZV8M/s72-c/computer.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-5117500768683614475</id><published>2010-04-12T16:23:00.000-07:00</published><updated>2010-04-12T16:39:43.498-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='nand'/><category scheme='http://www.blogger.com/atom/ns#' term='lógica digital'/><category scheme='http://www.blogger.com/atom/ns#' term='and'/><category scheme='http://www.blogger.com/atom/ns#' term='or'/><category scheme='http://www.blogger.com/atom/ns#' term='portas lógicas'/><category scheme='http://www.blogger.com/atom/ns#' term='xor'/><category scheme='http://www.blogger.com/atom/ns#' term='not'/><title type='text'>Simulador de portas lógicas</title><content type='html'>Está aprendendo &lt;span style="font-weight: bold;"&gt;portas lógicas&lt;/span&gt; e anda confuso com tanto símbolo e tanto &lt;span style="font-weight: bold;"&gt;0&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;?&lt;br /&gt;Pois seus problemas acabaram!&lt;br /&gt;=D&lt;br /&gt;&lt;br /&gt;Selecionei 2 &lt;span style="font-weight: bold;"&gt;simuladores de portas lógicas&lt;/span&gt; on-line super-fáceis de usar.&lt;br /&gt;&lt;br /&gt;Um do site Zutopedia, que também tem mais coisas legais: &lt;a href="http://www.zutopedia.com/auto/gates.html"&gt;http://www.zutopedia.com/auto/gates.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.zutopedia.com"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 62px;" src="http://3.bp.blogspot.com/_OdqaItQlcIc/S8OuakxjsDI/AAAAAAAAAPA/zK7mks_peAc/s320/zutopedia_english_large.jpg" alt="" id="BLOGGER_PHOTO_ID_5459398944874541106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E outro de um cara chamado Richard Bowles, que encontrei por acaso mas também é muito show:&lt;br /&gt;&lt;a href="http://richardbowles.tripod.com/dig_elec/tools/sim/sim.htm"&gt;http://richardbowles.tripod.com/dig_elec/tools/sim/sim.htm&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OdqaItQlcIc/S8OuaQqk-1I/AAAAAAAAAO4/FrNtItBCqIo/s1600/light.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 44px; height: 41px;" src="http://3.bp.blogspot.com/_OdqaItQlcIc/S8OuaQqk-1I/AAAAAAAAAO4/FrNtItBCqIo/s320/light.gif" alt="" id="BLOGGER_PHOTO_ID_5459398939476556626" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OdqaItQlcIc/S8OuZrs1T9I/AAAAAAAAAOo/Kv4Rq_V27VM/s1600/switch.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 44px; height: 41px;" src="http://1.bp.blogspot.com/_OdqaItQlcIc/S8OuZrs1T9I/AAAAAAAAAOo/Kv4Rq_V27VM/s320/switch.gif" alt="" id="BLOGGER_PHOTO_ID_5459398929553903570" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_OdqaItQlcIc/S8OuaH_VlaI/AAAAAAAAAOw/iHCKs-_IfYU/s1600/or.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 44px; height: 41px;" src="http://3.bp.blogspot.com/_OdqaItQlcIc/S8OuaH_VlaI/AAAAAAAAAOw/iHCKs-_IfYU/s320/or.gif" alt="" id="BLOGGER_PHOTO_ID_5459398937147708834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nesse, basta você ir clicando nas portas ou conexões e clicando no local onde você deseja que elas fiquem. Na saída final do circuito, você ainda pode colocar um lâmpada pra ver o resultado. Depois que o circuito estiver pronto, clique nas entradas para mudar seus estados e depois é só clicar em "Run"!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-5117500768683614475?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/5117500768683614475/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/04/simulador-de-portas-logicas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5117500768683614475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/5117500768683614475'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/04/simulador-de-portas-logicas.html' title='Simulador de portas lógicas'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OdqaItQlcIc/S8OuakxjsDI/AAAAAAAAAPA/zK7mks_peAc/s72-c/zutopedia_english_large.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7945135893098284408</id><published>2010-03-29T15:36:00.000-07:00</published><updated>2010-07-06T14:13:55.970-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIT'/><category scheme='http://www.blogger.com/atom/ns#' term='videos'/><category scheme='http://www.blogger.com/atom/ns#' term='grátis'/><category scheme='http://www.blogger.com/atom/ns#' term='online'/><category scheme='http://www.blogger.com/atom/ns#' term='aulas'/><title type='text'>Material grátis do MIT on-line (inglês e português)</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_OdqaItQlcIc/S7ExhkYuPgI/AAAAAAAAAOA/xFP4Ji9eV8k/s1600/mit_logo.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5454195076495195650" src="http://4.bp.blogspot.com/_OdqaItQlcIc/S7ExhkYuPgI/AAAAAAAAAOA/xFP4Ji9eV8k/s320/mit_logo.gif" style="cursor: pointer; float: left; height: 256px; margin: 0pt 10px 10px 0pt; width: 320px;" /&gt;&lt;/a&gt;E aí, pessoal!&lt;br /&gt;&lt;br /&gt;Vocês já imaginaram assistir aulas com os professores do MIT e usando o mesmo material que eles usam lá? É, meus amigos! Isso é possível sim!&lt;br /&gt;&lt;br /&gt;Bem, eu já sabia que o MIT (Massachusetts Institute of Technology) disponibilizava o conteúdo de suas aulas na internet (é o projeto &lt;a href="http://ocw.mit.edu/OcwWeb/web/home/home/index.htm"&gt;MIT Open Courseware&lt;/a&gt;). Só não sabia é que algumas delas estão sendo disponibilizadas &lt;a href="http://ocw.mit.edu/OcwWeb/web/courses/lang/index.htm"&gt;traduzidas&lt;/a&gt; (as línguas disponíveis por enquanto são: chinês, tailandês, espanhol, persa e português).&lt;br /&gt;&lt;br /&gt;Nem todas as disciplinas estão disponíveis em &lt;a href="http://ocw.mit.edu/OcwWeb/web/courses/lang/br/br.htm#ElectricalEngineeringandComputerScience"&gt;português&lt;/a&gt;, mas vale a pena dar um conferida.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ocw.mit.edu/OcwWeb/web/home/home/index.htm" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5454196513466537250" src="http://4.bp.blogspot.com/_OdqaItQlcIc/S7Ey1NhY1SI/AAAAAAAAAOQ/0s7emN5cj7I/s320/MIT_open_courseware.jpg" style="cursor: pointer; float: left; height: 49px; margin: 0pt 10px 10px 0pt; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Se você for bom no inglês (o que é importantíssimo pra quem quer ser bom estudante de Ciência da Computação), confira as aulas disponíveis em inglês:&lt;br /&gt;&lt;a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/"&gt;http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Todas as aulas são livres. Algumas tem somente texto. Outras tem audio/video. Aproveite!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mitpress.mit.edu/algorithms/" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5454197763413801938" src="http://1.bp.blogspot.com/_OdqaItQlcIc/S7Ez998Ce9I/AAAAAAAAAOY/sdXG1cO0EGY/s400/algorithms_3rd_edition.jpg" style="cursor: pointer; float: left; height: 170px; margin: 0pt 10px 10px 0pt; width: 150px;" /&gt;&lt;/a&gt;* Em especial, recomendo o curso &lt;a href="http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-046JFall-2005/CourseHome/index.htm"&gt;Introduction to Algorithms&lt;/a&gt;, que tem aulas dadas por um dos co-autores do famoso livro ao lado. O próprio Charles Leiserson.&lt;br /&gt;=D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Vai aqui abaixo uma primeira aulinha do cara.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="385" width="480"&gt;&lt;param name="movie" value="http://www.youtube.com/v/JPyuH4qXLZ0&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/JPyuH4qXLZ0&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7945135893098284408?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7945135893098284408/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/03/material-gratis-do-mit-on-line-ingles-e.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7945135893098284408'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7945135893098284408'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/03/material-gratis-do-mit-on-line-ingles-e.html' title='Material grátis do MIT on-line (inglês e português)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OdqaItQlcIc/S7ExhkYuPgI/AAAAAAAAAOA/xFP4Ji9eV8k/s72-c/mit_logo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-3177932900100289409</id><published>2010-03-26T09:14:00.000-07:00</published><updated>2010-03-26T09:23:54.079-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='questões de concurso'/><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='concurso'/><title type='text'>Questões de concurso relacionadas a Ciência da Computação</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OdqaItQlcIc/S6zff6FcjWI/AAAAAAAAANw/dmWdLS2pwuc/s1600/questoes_de_concursos.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 75px;" src="http://2.bp.blogspot.com/_OdqaItQlcIc/S6zff6FcjWI/AAAAAAAAANw/dmWdLS2pwuc/s320/questoes_de_concursos.png" alt="" id="BLOGGER_PHOTO_ID_5452978988099865954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Recebi do amigo Péricles, formado em Ciência da Computação na UFC, a mensagem abaixo.&lt;br /&gt;&lt;br /&gt;----------------&lt;br /&gt;&lt;br /&gt;Prezados,&lt;br /&gt;&lt;br /&gt;  Aqueles que já se cadastraram no Questões de Concursos e quiserem começar a colaborar com o site, existem algumas questões relacionadas à &lt;u&gt;&lt;b&gt;Computação&lt;/b&gt;&lt;/u&gt; que necessitam de uma classificação por assunto mais específica. Para visualizar, clique nas disciplinas abaixo:&lt;br /&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/algoritmos-e-estrutura-de-dados" target="_blank"&gt;Algoritmos e Estrutura de Dados&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/arquitetura-de-computadores" target="_blank"&gt;Arquitetura de Computadores&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/banco-de-dados" target="_blank"&gt;Banco de Dados&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/governanca-de-ti" target="_blank"&gt;Governança de TI&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/informatica" target="_blank"&gt;Informática&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/linguagem-de-programacao" target="_blank"&gt;Linguagem de Programação&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/nocoes-de-informatica" target="_blank"&gt;Noções de Informática&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/raciocinio-logico" target="_blank"&gt;Raciocínio-Lógico&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/redes-de-computadores" target="_blank"&gt;Redes de Computadores&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/seguranca-da-informacao" target="_blank"&gt;Segurança da Informação&lt;/a&gt;&lt;br /&gt;  - &lt;a href="http://www.questoesdeconcursos.com.br/classificar/assunto/sistemas-operacionais" target="_blank"&gt;Sistemas Operacionais&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;  Caso ainda não tenha feito o cadastro, clique &lt;b&gt;&lt;a rel="nofollow" href="http://www.questoesdeconcursos.com.br/signup" target="_blank"&gt;AQUI&lt;/a&gt;&lt;/b&gt; e no campo "&lt;u style="color: rgb(0, 0, 0);"&gt;Indicado por (login)&lt;/u&gt;", por favor escreva &lt;b style="color: rgb(255, 0, 0);"&gt;pericles&lt;/b&gt;. (minúsculo,  sem acento e sem espaços)&lt;br /&gt;&lt;br /&gt;  Abraço,&lt;br /&gt;&lt;span style="color:#888888;"&gt;&lt;br /&gt;  Péricles&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-3177932900100289409?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/3177932900100289409/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/03/questoes-de-concurso-relacionadas.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3177932900100289409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3177932900100289409'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/03/questoes-de-concurso-relacionadas.html' title='Questões de concurso relacionadas a Ciência da Computação'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OdqaItQlcIc/S6zff6FcjWI/AAAAAAAAANw/dmWdLS2pwuc/s72-c/questoes_de_concursos.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7820141800339091503</id><published>2010-03-25T07:39:00.000-07:00</published><updated>2010-07-06T14:14:56.257-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><category scheme='http://www.blogger.com/atom/ns#' term='linguagens'/><category scheme='http://www.blogger.com/atom/ns#' term='programação'/><title type='text'>Material de linguagem de programação C</title><content type='html'>Post rápido... depois ajeito melhor.&lt;br /&gt;&lt;br /&gt;Curso &lt;span class="il"&gt;de&lt;/span&gt; &lt;span class="il"&gt;C&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.mtm.ufsc.br/%7Eazeredo/cursoC/c.html" target="_blank"&gt;http://www.mtm.ufsc.br/~&lt;wbr&gt;&lt;/wbr&gt;azeredo/cursoC/&lt;span class="il"&gt;c&lt;/span&gt;.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Um pouco &lt;span class="il"&gt;de&lt;/span&gt; algoritmos&lt;br /&gt;&lt;a href="http://www.ime.usp.br/%7Epf/algoritmos/" target="_blank"&gt;http://www.ime.usp.br/~pf/&lt;wbr&gt;&lt;/wbr&gt;algoritmos/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Curso &lt;span class="il"&gt;de&lt;/span&gt; &lt;span class="il"&gt;C&lt;/span&gt; da Unicamp&lt;br /&gt;&lt;a href="http://lia.ufc.br/%7Ewladimir/obi/c.pdf" target="_blank"&gt;http://lia.ufc.br/~wladimir/&lt;wbr&gt;&lt;/wbr&gt;obi/&lt;span class="il"&gt;c&lt;/span&gt;.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Curso &lt;span class="il"&gt;de&lt;/span&gt; &lt;span class="il"&gt;C&lt;/span&gt; da UFMG&lt;br /&gt;&lt;a href="http://lia.ufc.br/%7Ewladimir/obi/Curso_de_C_da_UFMG.pdf" target="_blank"&gt;http://lia.ufc.br/~wladimir/&lt;wbr&gt;&lt;/wbr&gt;obi/Curso_de_C_da_UFMG.pdf&lt;/a&gt; (igual&lt;br /&gt;ao primeiro link, só q a versão pdf)&lt;br /&gt;&lt;br /&gt;Fatorial em &lt;span class="il"&gt;C&lt;/span&gt;:&lt;br /&gt;&lt;a href="http://www.htmlstaff.org/ver.php?id=8440" target="_blank"&gt;http://www.htmlstaff.org/ver.&lt;wbr&gt;&lt;/wbr&gt;php?id=8440&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Algumas funções matemáticas em &lt;span class="il"&gt;C&lt;/span&gt;:&lt;br /&gt;&lt;a href="http://www.ime.usp.br/%7Emjack/mac110/mac110.html" target="_blank"&gt;http://www.ime.usp.br/~mjack/&lt;wbr&gt;&lt;/wbr&gt;mac110/mac110.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Alguns desses links foram dicas do Wladimir, mais uma vez.&lt;br /&gt;&lt;br /&gt;* Vou ficar atualizando este post frequentemente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7820141800339091503?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7820141800339091503/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/03/material-de-linguagem-de-programacao-c.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7820141800339091503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7820141800339091503'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/03/material-de-linguagem-de-programacao-c.html' title='Material de linguagem de programação C'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7569975101950262293</id><published>2010-03-14T19:40:00.000-07:00</published><updated>2010-03-14T20:01:18.862-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='heap sort'/><category scheme='http://www.blogger.com/atom/ns#' term='algoritmos de ordenação'/><category scheme='http://www.blogger.com/atom/ns#' term='inserção'/><category scheme='http://www.blogger.com/atom/ns#' term='bubble sort'/><category scheme='http://www.blogger.com/atom/ns#' term='selection sort'/><category scheme='http://www.blogger.com/atom/ns#' term='quick sort'/><category scheme='http://www.blogger.com/atom/ns#' term='shell sort'/><category scheme='http://www.blogger.com/atom/ns#' term='bolha'/><category scheme='http://www.blogger.com/atom/ns#' term='seleção'/><category scheme='http://www.blogger.com/atom/ns#' term='merge sort'/><category scheme='http://www.blogger.com/atom/ns#' term='insertion sort'/><category scheme='http://www.blogger.com/atom/ns#' term='heapsort'/><title type='text'>Comparação de Algoritmos de Ordenação</title><content type='html'>Um cara teve a ideia de criar um site com animações comparando diversos tipos de algoritmos, com diferentes configurações e tamanhos de entrada.&lt;br /&gt;&lt;br /&gt;Você pode escolher rodar os algoritmos com entrada aleatória, entrada quase ordenada*, em ordem decrescente e com vários valores repetidos (poucos valores únicos).&lt;br /&gt;&lt;br /&gt;Muito bom!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sorting-algorithms.com/"&gt;http://www.sorting-algorithms.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;E o site ainda traz discussões sobre como diferentes algoritmos se comportam com as diferentes entradas, além de mostrar o passo a passo de cada um deles (Inserção, Seleção, Bolha, Shell, Merge, Heap, Quick e Quick3, um tipo especial de Quick Sort que divide a entrada em 3 partições, a cada iteração).&lt;br /&gt;&lt;br /&gt;Não deixem de conferir.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* entrada quase ordenada: tipo de entrada que pode ser em intervalos de ordem (I&lt;span style="font-size:78%;"&gt;1&lt;/span&gt;, I&lt;span style="font-size:78%;"&gt;2&lt;/span&gt;, ..., I&lt;span style="font-size:78%;"&gt;k&lt;/span&gt;), tais que se x está em I&lt;span style="font-size:78%;"&gt;a&lt;/span&gt; e y está em I&lt;span style="font-size:78%;"&gt;b&lt;/span&gt; e a &gt; b, então x &gt; y.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7569975101950262293?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7569975101950262293/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/03/comparacao-de-algoritmos-de-ordenacao.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7569975101950262293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7569975101950262293'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/03/comparacao-de-algoritmos-de-ordenacao.html' title='Comparação de Algoritmos de Ordenação'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-2018505221328871548</id><published>2010-02-12T05:58:00.000-08:00</published><updated>2010-02-12T06:06:49.538-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='álgebra Booleana'/><category scheme='http://www.blogger.com/atom/ns#' term='lógica matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='conjuntos'/><category scheme='http://www.blogger.com/atom/ns#' term='ime-usp'/><title type='text'>Material de Álgebra Booleana / Lógica Matemática</title><content type='html'>Divulgando mais uma vez aqui um excelente material de estudo.&lt;br /&gt;Álgebra Booleana é um dos assuntos fundamentais para a Ciência da Computação. Encontrei o material no &lt;a href="http://score.ime.usp.br/mac0329/mm_nina.html"&gt;site&lt;/a&gt; do professor &lt;a href="http://www.ime.usp.br/%7Eronaldo"&gt;Ronaldo F. Hashimoto&lt;/a&gt;, mas ele foi elaborado pela professora &lt;a href="http://www.ime.usp.br/%7Enina"&gt;Nina S. Hirata&lt;/a&gt;, ambos do &lt;a href="http://www.ime.usp.br/"&gt;Instituto de Matemática e Estatística&lt;/a&gt; da &lt;a href="http://www.usp.br/"&gt;USP&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.vision.ime.usp.br/%7Enina/cursos/mac0329-2007/conjuntos.pdf"&gt;Conjuntos&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vision.ime.usp.br/%7Enina/cursos/mac0329-2007/calculop.pdf"&gt;Cálculo Proposicional&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vision.ime.usp.br/%7Enina/cursos/mac0329-2007/algbool.pdf"&gt;Álgebra Booleana&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vision.ime.usp.br/%7Enina/cursos/mac0329-2007/aplicacoes.pdf"&gt;Exemplos de  Aplicações de Álgebra Boolena&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vision.ime.usp.br/%7Enina/cursos/mac0329-2007/boolfunc.pdf"&gt;Expressões e Funções Booleanas&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vision.ime.usp.br/%7Enina/cursos/mac0329-2007/minimiza.pdf"&gt;Lógica Combinacional Dois Níveis&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vision.ime.usp.br/%7Enina/cursos/mac0329-2007/sequencial.pdf"&gt;Lógica Seqüencial&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.vision.ime.usp.br/%7Enina/cursos/mac0329-2007/modular.pdf"&gt;Lógica Combinacional Modular e Multi-Níveis&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;O cronograma das aulas encontra-se nesse link: &lt;a href="http://www.vision.ime.usp.br/%7Enina/cursos/mac0329-2007/crono.html"&gt;http://www.vision.ime.usp.br/~nina/cursos/mac0329-2007/crono.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-2018505221328871548?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/2018505221328871548/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2010/02/material-de-algebra-booleana-logica.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2018505221328871548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2018505221328871548'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2010/02/material-de-algebra-booleana-logica.html' title='Material de Álgebra Booleana / Lógica Matemática'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-3433676447756014046</id><published>2009-12-22T13:54:00.000-08:00</published><updated>2009-12-22T14:08:16.362-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='eureka'/><category scheme='http://www.blogger.com/atom/ns#' term='OBM'/><category scheme='http://www.blogger.com/atom/ns#' term='indução'/><title type='text'>Lista completa de artigos da Eureka!, revista da OBM</title><content type='html'>Fiquei fascinado quando descobri essa lista! Tratam-se dos artigos da revista &lt;a href="http://www.obm.org.br/opencms/revista_eureka/"&gt;Eureka!&lt;/a&gt;, da Olimpíada Brasileira de Matemática (OBM).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.obm.org.br/opencms/revista_eureka/lista.html"&gt;http://www.obm.org.br/opencms/revista_eureka/lista.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.obm.org.br/opencms/revista_eureka/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 100px; height: 150px;" src="http://1.bp.blogspot.com/_OdqaItQlcIc/SzFCysf_dKI/AAAAAAAAAMo/qD_xfnUaxq4/s320/contracapa.JPG" alt="" id="BLOGGER_PHOTO_ID_5418185265409651874" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.obm.org.br/opencms/revista_eureka/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 104px; height: 150px;" src="http://1.bp.blogspot.com/_OdqaItQlcIc/SzFC3d90hkI/AAAAAAAAAMw/uIhCQSGsSTM/s320/capa.JPG" alt="" id="BLOGGER_PHOTO_ID_5418185347407578690" border="0" /&gt;&lt;/a&gt;Os artigos estão divididos nos níveis &lt;span style="font-style: italic;"&gt;Iniciante&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;Intermediário&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;Avançado&lt;/span&gt;. Tem artigos pra todos os gostos. Pra quem se interessa por Computação, especialmente, vale a pena ler "O Princípio da Indução", "Dois problemas sobre grafos" e "Teoria de Ramsey". Na verdade, se eu fosse você, leria todos!&lt;br /&gt;=)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-3433676447756014046?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/3433676447756014046/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/12/lista-completa-de-artigos-da-eureka.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3433676447756014046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3433676447756014046'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/12/lista-completa-de-artigos-da-eureka.html' title='Lista completa de artigos da Eureka!, revista da OBM'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OdqaItQlcIc/SzFCysf_dKI/AAAAAAAAAMo/qD_xfnUaxq4/s72-c/contracapa.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-613916146607648940</id><published>2009-12-02T13:54:00.000-08:00</published><updated>2009-12-02T13:59:14.330-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='estruturas de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='algoritmos'/><title type='text'>Dicionário de Algoritmos e Estruturas de Dados (em inglês)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OdqaItQlcIc/Sxbiy22VSvI/AAAAAAAAAMc/gleMj4DcfQ0/s1600-h/nist.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 229px; height: 43px;" src="http://1.bp.blogspot.com/_OdqaItQlcIc/Sxbiy22VSvI/AAAAAAAAAMc/gleMj4DcfQ0/s320/nist.gif" alt="" id="BLOGGER_PHOTO_ID_5410761365676968690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Trata-se de um site mantido pelo &lt;span style="font-weight: bold;"&gt;NIST&lt;/span&gt; (&lt;span style="font-weight: bold; font-style: italic;"&gt;National Institute of Standards and Technology&lt;/span&gt;), do governo americano.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.itl.nist.gov/div897/sqg/dads/"&gt;http://www.itl.nist.gov/div897/sqg/dads/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;* Dica do amigo Wladimir Tavares (prof. UFC - Campus Quixadá).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-613916146607648940?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/613916146607648940/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/12/dicionario-de-algoritmos-e-estruturas.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/613916146607648940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/613916146607648940'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/12/dicionario-de-algoritmos-e-estruturas.html' title='Dicionário de Algoritmos e Estruturas de Dados (em inglês)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OdqaItQlcIc/Sxbiy22VSvI/AAAAAAAAAMc/gleMj4DcfQ0/s72-c/nist.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-2558417889514947710</id><published>2009-12-01T12:50:00.000-08:00</published><updated>2009-12-01T12:56:02.155-08:00</updated><title type='text'>Afinal, os Biólogos deveriam estudar Ciências da Computação?</title><content type='html'>Este artigo foi publicado no &lt;a href="http://dfm.ffclrp.usp.br/infobio/joomla/"&gt;Portal Brasileiro de Informática Biomédica&lt;/a&gt;, dia 16 de agosto de 2009.&lt;br /&gt;Clique &lt;a href="http://dfm.ffclrp.usp.br/infobio/joomla/index.php/20090816184/Bioinformatica/afinal-os-biologos-deveriam-estudar-ciencias-da-computacao.html"&gt;aqui&lt;/a&gt; para ver o artigo original.&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt; &lt;div&gt;Artigo original escrito por &lt;a href="http://arstechnica.com/authors/john-timmer/"&gt;John Timmer&lt;/a&gt;. Esse artigo é uma resposta a dois artigos publicados na última edição da revista Nature sobre a necessidade do conhecimento de informática por biólogos e da necessidade de inclusão de disciplinas de ciências da computação em cursos de biologia.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt; &lt;div&gt;&lt;img style="float: right;" alt="laptop_dna_ars" src="http://dfm.ffclrp.usp.br/infobio/joomla/images/stories/laptop_dna_ars.jpg" width="242" height="136" /&gt;Como em qualquer outro campo da ciência, os computadores se tornaram uma parte essencial das pesquisas biológicas. Algoritmos complicados e análises que, antes levavam meses de trabalho feito por especialistas agora estão disponíveis como serviços Web, e grandes áreas de estudo, como a genômica, já podem ser perseguidas na íntegra in silíco. Mas, mesmo que a maioria biólogos saibam como submeter os seus dados e interpretar os resultados produzidos pelas ferramentas computacionais, poucos compreendem realmente a matemática que está acontecendo por trás dos processos, além disso a maioria dos cursos relacionados a biologia não exigem informática ou qualquer matemática mais avançada do que Cálculo.&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;Dois trabalhos publicados na última edição da revista Science argumentam que isso é uma coisa muito ruim. O primeiro se baseia na capacidade de representar o comportamento de sistemas biológicos, através da notação algébrica, uma área que está gravemente ignorada nos cursos de ciências e de matemática. O segundo foca de maneira geral na incorporação de matemática relacionada a biologia e informática no sistema de educação. Ambos pressupõem que a falta de uma base matemática é um problema muito grave.&lt;br /&gt;&lt;br /&gt;Em geral, como alguém que fez um um pouco de bioinformática e muito de biologia, sou o público-alvo perfeito para este argumento. Mas quando leio artigos científicos, tenho a sensação de que os autores colocam diferentes argumentos em conjunto de uma forma que confunde os verdadeiros problemas estudados. Então, o que se segue é a minha tentativa de separá-los e avaliar cada questão separadamente. O primeiro problema surge no artigo de Pevzner e Shamir, que trata os termos biologia computacional e bioinformática como dois nomes para a mesma disciplina. Isso pode ser entendido como coisas comuns, mas, para mim, pelo menos, são duas coisas diferentes. &lt;div&gt;&lt;br /&gt;Bioinformática, como seu nome sugere, é essencialmente centrada na análise assistida por computador de dados gerados em sistemas biológicos, tais como o genoma e análise de arrays de expressão gênica. Mas, iremos voltar a isso mais tarde. Biologia Computacional envolve a tentativa de modelar sistemas biológicos in silico. Estes modelos provêm da biologia, mas não necessariamente requerem nenhum dado biológico para a sua execução.&lt;br /&gt;&lt;br /&gt;Obviamente, qualquer pessoa trabalhando com biologia computacional precisa ter um bom conhecimento tanto em biologia quanto em matemática ou informática, ou então ele não será capaz de saber se os modelos são válidos e corrigi-los caso contrário. A mesma realidade não se aplica a bioinformática. Uma vez que há sempre dados biológicos reais como fonte de informação, a computação e a análise podem ser separadas. Um bioinformata pode simplesmente dirigir-se a um biólogo e verificar os resultados.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Fundamento, ferramenta ou serviço  ?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Então, mesmo se aceitarmos que todas as pessoas que estão fazendo análises em biologia computacional deveriam conhecer tanto matemática quanto biologia, o que ainda não prova que os biólogos necessitem de matemática. A maioria dos biólogos regulares acabaria usando ferramentas de bioinformática para alinhar sequências de DNA, desenhar primers, etc. Então, será que eles precisariam saber a matemática que ocorre por trás das ferramentas? Penso que para responder a essa pergunta, você tem que entender o que se entende por bioinformática ou o que eu chamo de espectro sobre fundamento / ferramenta / serviço.&lt;br /&gt;&lt;br /&gt;&lt;img style="float: left;" alt="bioinformatics" src="http://dfm.ffclrp.usp.br/infobio/joomla/images/stories/bioinformatics.jpg" width="239" height="260" /&gt;Para os biólogos, fundamentos são coisas como química orgânica. Todos que trabalham com biologia, dependem disso, e todo biólogo deveria realmente saber algo sobre química orgânica, mesmo biólogos de campo, que nesse caso teriam de considerar como o regime alimentar e substâncias químicas ambientais afetam os organismos que eles estudam. Bioinformática realmente não é um elemento fundamental; sabendo como certos cálculos são realizados não irão necessariamente te dizer alguma coisa sobre a biologia em si.&lt;br /&gt;&lt;br /&gt;Na verdade, é algo entre uma ferramenta e um serviço. Uma ferramenta é algo que boa parte dos biólogos acabará utilizando e que possui algo relacionado a biologia. Assim, por exemplo, é possível utilizar o PCR para amplificar amostras de DNA sem saber nada sobre o que está acontecendo no interior dos tubos utilizados para as reações. Mas é muito melhor se o biólogo souber, as reações que acontecem durante o PCR que ilustram alguns princípios biológicos e conhecimentos que são essenciais para a solução de problemas quando algo dá errado (o que inevitavelmente acontece). Em contraste, seqüenciamento de DNA, que costumava ser um instrumento, tornou-se um serviço. Você coloca o seu DNA na amostra do correio, e faz o download da seqüência de dados a partir de uma conta de FTP poucos dias mais tarde. As informações precisas sobre as reações de seqüenciamento que foram realizadas, na verdade, não importam muito.&lt;br /&gt;&lt;br /&gt;Para a maioria dos pesquisadores, tanto softwares de bioinformática quanto os utilizados para encontrar sequências ou fazer alinhamento são considerados como um serviço: o computador retorna um resultado útil, e você realmente não se importa como ele chegou a aquela solução. Se você não recebe um resultado aceitável, a sua primeira reação não seria procurar alguém que sabe matemática, e sim procurar alguém que conhece mais sobre o serviço, e sabe como ajustar os parâmetros de entrada. Conhecer a matemática por trás as coisas pode ajudar com os ajustes ou a interpretar os resultados biológicos, mas  em muitos casos a experiência pode ser mais útil.&lt;br /&gt;&lt;br /&gt;Em um cenário mais pessimista, naturalmente, biólogos podem sempre recorrer a alguém que tenha formação em bioinformática, da mesma forma que um bioquímico poderia contactar um imunologista se precisava saber mais sobre esse campo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Isso deveria ser útil? &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Se bioinformática é um serviço, porque não é suficiente saber usá-la como um serviço? Os autores simplesmente assumem isso, sem fornecer uma explicação. "Por exemplo, biólogos, as vezes utilizam ferramentas de bioinformática da mesma forma que um matemático desinformado poderia utilizar um kit de reação em cadeia da polimerase (PCR) ," eles escrevem, "sem saber como funciona o PCR e sem qualquer experiência em biologia". Presumivelmente, isso era para ser visto como um problema, embora os autores não expliquem exatamente o porque.&lt;br /&gt;&lt;br /&gt;O segundo artigo, de Robeva e Laubenbacher, também não é muito brilhante na maneira como defende seu ponto de vista. É uma espécie de tentativa de incentivar a educação em modelagem algébrica, o que aparentemente pode ser usado para representar os sistemas biológicos. Os autores fazem seu argumento usando o dado exemplo: o operon Lac é um modelo de regulação gênica que aparece várias vezes durante a educação de um biólogo, provavelmente começando no ciclo AMP durante o colegial. Em termos de modelagem, no entanto, o modelo operon Lac precisa de três equações para ser descrito, uma das quais assume a forma:&lt;br /&gt;&lt;br /&gt;L=kLβL(Le)βG(Ge)Q - 2ΦM(L)B - γLL&lt;br /&gt;&lt;br /&gt;Eles afirmam que apresentá-lo dessa forma, em termos Boleanos, conduz a um diagrama simplificado que ainda capta as características essenciais do sistema. Mesmo quando simplificado, no entanto, não é óbvio que o modelo acima é mais informativo do que qualquer descrição textual, que refere-se diretamente a biologia do modelo estudado. E eu não acredito que saber o modelo iria realmente melhorar a capacidade dos biolólogos de realizar uma investigação biológica.&lt;br /&gt;&lt;br /&gt;Isto provavelmente é um exagero, entretanto, os autores ainda têm um ponto válido: quanto mais os biólogos souberem sobre as ferramentas e serviços que dependem, melhor será sua visão sobre o problema biológico estudado. Pesquisadores que conhecem esses processos estão mais propensos a notar os resultados diferentes e conseguem obter mais informações dos seus dados através de uma melhor utilização das ferramentas existentes. E a sugestão dos autores de que deveriam ser criados novos cursos de matemática que iriam preparar os biólogos para resolverem os problemas que eles geralmente enfrentam, iria sem dúvida produzir uma educação mais fundamentada em matemática.&lt;br /&gt;&lt;br /&gt;Mas o mesmo tipo de coisa pode ser dito sobre bioestatística e físico-química, e é raro ver qualquer um desses como uma exigência para graduação ou doutorado em biologia. (O que teria sido muito útil em vários pontos na minha carreira, e atualmente ainda mais útil.)&lt;br /&gt;&lt;br /&gt;Se o argumento que está sendo feito é que os biólogos deveriam aprender mais sobre matemática e informática, então eles precisam explicar melhor o que, exatamente, os biólogos precisam entender sobre a ferramentas computacionais, e porque simplesmente saber como usar a ferramenta não é bom o suficientemente. Há também uma questão prática em jogo, os autores argumentam que estes cursos computação devem ser adicionados aos programas de educação em biologia que já estão sobrecarregados com outros cursos exigidos. Isso é difícil de se justificar, especialmente tendo em conta outros temas que já são omitidos na maioria dos programas.&lt;br /&gt;&lt;br /&gt;No fim, as principais questões são evitadas nesses artigos: o que, especificamente, os biólogos precisam aprender, e como isso irá ajudá-los a exercer sua função primária, ou seja, a investigação biológica. Sem essa informação, será realmente impossível de definir um curso que possa melhorar alguma coisa.&lt;br /&gt;&lt;br /&gt;Fonte: &lt;a href="http://arstechnica.com/science/news/2009/07/should-biologists-study-computer-science.ars"&gt;http://arstechnica.com/science/news/2009/07/should-biologists-study-computer-science.ars&lt;/a&gt;&lt;/div&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-2558417889514947710?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/2558417889514947710/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/12/afinal-os-biologos-deveriam-estudar.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2558417889514947710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/2558417889514947710'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/12/afinal-os-biologos-deveriam-estudar.html' title='Afinal, os Biólogos deveriam estudar Ciências da Computação?'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7350737651580286226</id><published>2009-11-03T13:10:00.000-08:00</published><updated>2009-11-03T13:25:32.449-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ime-usp'/><category scheme='http://www.blogger.com/atom/ns#' term='análise de algoritmos'/><category scheme='http://www.blogger.com/atom/ns#' term='paulo feofiloff'/><title type='text'>Material excelente de Análise de Algoritmos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OdqaItQlcIc/SvCe9VdBOnI/AAAAAAAAAL8/mbhbKJDISOA/s1600-h/pf.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 242px;" src="http://1.bp.blogspot.com/_OdqaItQlcIc/SvCe9VdBOnI/AAAAAAAAAL8/mbhbKJDISOA/s320/pf.jpg" alt="" id="BLOGGER_PHOTO_ID_5399990729785293426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Depois de algum tempo sem postar, retorno a escrever pra dar uma dica sobre um material muito bom de Análise de Algoritmos.&lt;br /&gt;&lt;br /&gt;Trata-se dos slides/aulas/textos do Prof. Paulo Feofiloff, do Departamento de Computação da USP. No site do Professor, podemos encontrar muita coisa disponível. Material que também é usado por vários outros professores.&lt;br /&gt;&lt;br /&gt;Confira!&lt;br /&gt;&lt;a href="http://www.ime.usp.br/%7Epf/analise_de_algoritmos/"&gt;http://www.ime.usp.br/~pf/analise_de_algoritmos/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* e no site abaixo, você encontra o material de Projeto de Algoritmos em C do professor Paulo.&lt;br /&gt;&lt;a href="http://www.ime.usp.br/%7Epf/algoritmos/"&gt;http://www.ime.usp.br/~pf/algoritmos/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O próximo post não vai demorar. Prometo!&lt;br /&gt;=)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7350737651580286226?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7350737651580286226/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/11/material-excelente-de-analise-de.html#comment-form' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7350737651580286226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7350737651580286226'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/11/material-excelente-de-analise-de.html' title='Material excelente de Análise de Algoritmos'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OdqaItQlcIc/SvCe9VdBOnI/AAAAAAAAAL8/mbhbKJDISOA/s72-c/pf.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-918988482504341332</id><published>2009-07-22T02:38:00.000-07:00</published><updated>2009-07-21T22:57:46.729-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='bancos de dados'/><category scheme='http://www.blogger.com/atom/ns#' term='conjuntos'/><category scheme='http://www.blogger.com/atom/ns#' term='álgebra relacional'/><title type='text'>Conjuntos e Bancos de Dados - parte 1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.rotapix.com/includes/images/database.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 212px;" src="http://1.bp.blogspot.com/_OdqaItQlcIc/SmaklZK7SuI/AAAAAAAAAKk/3cyXEifsGtY/s320/database.jpg" alt="" id="BLOGGER_PHOTO_ID_5361153368749984482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Um outro assunto que precisamos estudar bem quando queremos ser bons cientistas da Computação é a &lt;a href="http://pt.wikipedia.org/wiki/Teoria_dos_conjuntos"&gt;Teoria dos Conjuntos&lt;/a&gt;. Ela é dada logo no início do curso, justamente por ser a base para um monte de coisas que vem depois. Hoje vamos falar da ligação direta desse assunto com &lt;a href="http://pt.wikipedia.org/wiki/Banco_de_dados"&gt;Bancos de Dados&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Conjuntos são grupos de coisas quaisquer (porém especificadas), que são chamadas de elementos. Podemos ter conjuntos de carros, conjuntos de pessoas, conjuntos de números pares, conjuntos de números maiores que 10, etc. Podemos representá-los com gráficos, diagramas, expressões matemáticas, e por aí vai.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Operações sobre conjuntos&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Quando começamos a brincar com conjuntos, aprendemos algumas operações que tornam seu uso mais interessante. Entender bem essas simples operações nos faz compreender mais facilmente algumas operações em bancos de dados.&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://pt.wikipedia.org/wiki/Uni%C3%A3o_%28matem%C3%A1tica%29"&gt;União&lt;/a&gt;: determinada pela junção dos elementos de dois ou mais conjuntos.&lt;br /&gt;2. Diferença: determinada pelos conjunto de elementos pertencentes num conjunto e que não pertencem a outro(s).&lt;br /&gt;3. &lt;a href="http://pt.wikipedia.org/wiki/Interse%C3%A7%C3%A3o"&gt;Interseção&lt;/a&gt;: determinada pelo conjunto de elementos pertencentes a dois ou mais conjuntos simultaneamente.&lt;br /&gt;Ex:&lt;br /&gt;A = {1, 2, 4, 5}&lt;br /&gt;B = {1, 5, 7, 10}&lt;br /&gt;C = {2, 4, 6}&lt;br /&gt;A ∪ B = {1, 2, 4, 5, 7, 10}&lt;br /&gt;A ∪ C = {1, 2, 4, 5, 6, 7, 10}&lt;br /&gt;A - B = {2, 4}&lt;br /&gt;B - C = {1, 5, 7, 10}&lt;br /&gt;A ∩ C = {2, 4}&lt;br /&gt;B ∩ C = ∅&lt;br /&gt;&lt;br /&gt;Suponha que tenhamos uma tabela do tipo Pessoa (com cpf, nome e idade) e que tenhamos os seguintes registros:&lt;br /&gt;('015.176.998-06', 'Carlos Aguiar', 25)&lt;br /&gt;('772.993.456-08', 'João Henrique', 22)&lt;br /&gt;('598.451.230-77', 'Patrícia Silva', 25)&lt;br /&gt;('574.889.775-98', 'Pedro Souza', 29)&lt;br /&gt;('100.874.985.-12', 'Maria Fernandes', 19)&lt;br /&gt;&lt;br /&gt;Em &lt;a href="http://pt.wikipedia.org/wiki/%C3%81lgebra_relacional"&gt;Álgebra Relacional&lt;/a&gt; (depois iremos estudar esse assunto mais detalhadamente), que é uma base para linguagens para consulta de bancos de dados, essas 3 operações acima são definidas da mesma forma. Há também nessa álgebra duas operações importantes chamadas seleção (&lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;), que define uma condição que os elementos devem satisfazer, e projeção (&lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;pi;&lt;/span&gt;&lt;/span&gt;), que define um conjunto de atributos a serem escolhidos.&lt;br /&gt;&lt;br /&gt;Os símbolos que representam essas operações ficam fáceis de assimilar se relacionarmos a primeira letra do símbolo com a primeira letra da operação. Enquanto seleção e sigma (&lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;) começam com "s", projeção e pi (&lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;pi;&lt;/span&gt;&lt;/span&gt;) começam com "p".&lt;br /&gt;&lt;br /&gt;Sejam então as seguintes condições (&lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;):&lt;br /&gt;A: idade = 25&lt;br /&gt;B: nome = 'Carlos Aguiar'&lt;br /&gt;C: cpf = '598.451.230-77'&lt;br /&gt;&lt;br /&gt;Logo,&lt;br /&gt;&lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;   &amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;A&lt;/sub&gt;(Pessoa) = {('015.176.998-06', 'Carlos Aguiar', 25), ('598.451.230-77', 'Patrícia Silva', 25)};&lt;br /&gt;&lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;   &amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;B&lt;/sub&gt;(Pessoa) = {('015.176.998-06', 'Carlos Aguiar', 25)};&lt;br /&gt;&lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;   &amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;C&lt;/sub&gt;(Pessoa) = {('598.451.230-77', 'Patrícia Silva', 25)}.&lt;br /&gt;&lt;br /&gt;* Obs: a projeção tornaria possível recuperarmos apenas uma parte (alguns campos) dos registros, como só o nome, ou só o nome e a idade, só o cpf e o nome, etc.&lt;br /&gt;&lt;br /&gt;Que registros então seriam retornados nas seguintes operações?&lt;br /&gt;1. A união de &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;   &amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;A&lt;/sub&gt;(Pessoa) e &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;   σ&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;C&lt;/sub&gt;(Pessoa)&lt;br /&gt;2. A diferença entre &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;A&lt;/sub&gt;(Pessoa) e &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;σ&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;B&lt;/sub&gt;(Pessoa)&lt;br /&gt;3. A interseção de &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;A&lt;/sub&gt;(Pessoa) e &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;B&lt;/sub&gt;(Pessoa)&lt;br /&gt;4. A interseção de &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;B&lt;/sub&gt;(Pessoa) e &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;C&lt;/sub&gt;(Pessoa)&lt;br /&gt;&lt;br /&gt;E se definíssemos uma condição D: idade &gt; 20, qual seriam os registros retornados na diferença entre &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;B&lt;/sub&gt;(Pessoa) e &lt;span class="mw-headline"&gt;&lt;span class="texhtml"&gt;&amp;sigma;&lt;/span&gt;&lt;/span&gt;&lt;sub&gt;D&lt;/sub&gt;(Pessoa)?&lt;br /&gt;&lt;br /&gt;Você saberia criar essas 4 operações em &lt;a href="http://pt.wikipedia.org/wiki/Sql"&gt;SQL&lt;/a&gt;? Na parte 2 veremos todas essas respostas.&lt;br /&gt;&lt;br /&gt;Até lá!&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-918988482504341332?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/918988482504341332/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/07/conjuntos-e-bancos-de-dados-parte-1.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/918988482504341332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/918988482504341332'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/07/conjuntos-e-bancos-de-dados-parte-1.html' title='Conjuntos e Bancos de Dados - parte 1'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OdqaItQlcIc/SmaklZK7SuI/AAAAAAAAAKk/3cyXEifsGtY/s72-c/database.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7378625129868295307</id><published>2009-06-16T10:17:00.000-07:00</published><updated>2009-06-16T10:33:37.557-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enade'/><category scheme='http://www.blogger.com/atom/ns#' term='puc-rs'/><category scheme='http://www.blogger.com/atom/ns#' term='2008'/><title type='text'>ENADE 2008 comentado</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pucrs.br/edipucrs/enade/computacao2008.pdf"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 108px; height: 153px;" src="http://3.bp.blogspot.com/_OdqaItQlcIc/SjfV2_2ecBI/AAAAAAAAAKQ/70U9gxbwP_w/s320/computacao2008.jpg" alt="" id="BLOGGER_PHOTO_ID_5347978223355326482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Bem, isto é apenas uma divulgação para quem se interessa, quem fez ou vai fazer a prova do ENADE (saiba mais clicando &lt;a href="http://www.inep.gov.br/superior/enade/enade_oquee.htm"&gt;aqui&lt;/a&gt;). Estou divulgando aqui pelo simples fato de ser uma prova de Computação comentada. Só por isso.&lt;br /&gt;&lt;br /&gt;Não concordo que se deva estudar computação (fazendo um curso superior ou não) &lt;span style="font-weight: bold;"&gt;só&lt;/span&gt; com o intuito de fazer uma prova, mas sim com o propósito de aprender, construir uma boa base. De qualquer forma, talvez seja interessante saber como essas provas funcionam...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O pessoal da PUC do Rio Grande do Sul publicou a prova do ENADE (Computação) de 2008. Ainda não vi tudo, mas disseram que está muito bom.&lt;br /&gt;&lt;br /&gt;Dá pra encontrar mais informações sobre o livro &lt;a href="http://www.pucrs.br/edipucrs/online/livro34.html#livro"&gt;aqui&lt;/a&gt; e &lt;a href="http://www.pucrs.br/edipucrs/enade/computacao2008.pdf"&gt;&lt;span style="font-weight: bold;"&gt;baixar&lt;/span&gt;&lt;/a&gt; ele &lt;a href="http://www.pucrs.br/edipucrs/enade/computacao2008.pdf"&gt;aqui&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bom divertimento!&lt;br /&gt;=)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7378625129868295307?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7378625129868295307/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/06/enade-2008-comentado.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7378625129868295307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7378625129868295307'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/06/enade-2008-comentado.html' title='ENADE 2008 comentado'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_OdqaItQlcIc/SjfV2_2ecBI/AAAAAAAAAKQ/70U9gxbwP_w/s72-c/computacao2008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-975811668382296487</id><published>2009-06-08T08:30:00.000-07:00</published><updated>2009-06-08T10:14:43.865-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algoritmos de ordenação'/><category scheme='http://www.blogger.com/atom/ns#' term='bubble sort'/><category scheme='http://www.blogger.com/atom/ns#' term='bolha'/><title type='text'>Algoritmos de ordenação: A Bolha (Bubblesort)</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_OdqaItQlcIc/Si1G9e6EklI/AAAAAAAAAKI/nFvJVrOcx-I/s1600-h/c%C3%A9dric-porchez-bubbles.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 240px; height: 320px;" src="http://1.bp.blogspot.com/_OdqaItQlcIc/Si1G9e6EklI/AAAAAAAAAKI/nFvJVrOcx-I/s320/c%C3%A9dric-porchez-bubbles.jpg" alt="" id="BLOGGER_PHOTO_ID_5345006354841244242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Em alguns posts que virão, veremos alguns algoritmos de ordenação.&lt;br /&gt;&lt;br /&gt;Um algoritmo de ordenação recebe como entrada um vetor com elementos em uma ordem qualquer (por ex. [4, 9, 6, 1, 3, 5]) e retorna o vetor com seus elementos seguindo uma certa ordem (crescente, por ex., como em [1, 3, 4, 5, 6, 9] - ordenação do vetor do exemplo anterior).&lt;br /&gt;&lt;br /&gt;Um dos algoritmos de ordenação mais simples é o Bubble Sort, mais conhecida como "Algoritmo da Bolha" (em português). A ideia é ir comparando elementos dois a dois e trocá-los de ordem, dependendo de como se deseja ordenar o vetor. Após isso ser feito n vezes, o vetor final estará ordenado.&lt;br /&gt;&lt;br /&gt;Ex:&lt;br /&gt;- para cada elemento à direita do maior, vamos invertendo suas posições para que assim o maior chegue ao final&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5 6&lt;/span&gt; &lt;span&gt;9&lt;/span&gt; 3 7 4 2&lt;br /&gt;5 &lt;span style="font-weight: bold;"&gt;6 &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;9&lt;/span&gt; 3 7 4 2&lt;br /&gt;5 6 &lt;span style="font-weight: bold;"&gt;9&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; 3&lt;/span&gt; 7 4 2&lt;br /&gt;5 6 3 &lt;span style="font-weight: bold;"&gt;9&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; 7&lt;/span&gt; 4 2&lt;br /&gt;5 6 3 7 &lt;span style="font-weight: bold;"&gt;9&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; 4&lt;/span&gt; 2&lt;br /&gt;5 6 3 7 4 &lt;span style="font-weight: bold;"&gt;9&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;2&lt;/span&gt;&lt;br /&gt;5 6 3 7 4 2 &lt;span style="font-weight: bold;"&gt;9&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- no próximo passo, deixamos de verificar a parte já ordenada (em azul), pegamos apenas o subvetor restante e repetimos o processo&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5 6&lt;/span&gt; 3 &lt;span&gt;7&lt;/span&gt; 4 2 &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;5&lt;span style="font-weight: bold;"&gt; 6&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; &lt;span&gt;7&lt;/span&gt; 4 2 &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;&lt;/span&gt;&lt;br /&gt;5&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;3 &lt;span style="font-weight: bold;"&gt;6&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;7&lt;/span&gt; 4 2 &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;5&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;3 6&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;7&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;4&lt;/span&gt; 2 &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;5&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;3 6 &lt;span&gt;4&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; 7&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;2&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;br /&gt;&lt;/span&gt;5&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;3 6 &lt;span&gt;4&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; 7&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;&lt;br /&gt;&lt;/span&gt;- continuamos até que todos sejam verificados&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5 3&lt;/span&gt; 6 &lt;span&gt;4&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;3&lt;span style="font-weight: bold;"&gt; 5 6 &lt;/span&gt;&lt;span&gt;4&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;3&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;5&lt;span style="font-weight: bold;"&gt; 6 &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;4&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span&gt;2&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;3&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;5&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;4&lt;span style="font-weight: bold;"&gt; 6 &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;2&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;3&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;5&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;4&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;2&lt;span style="font-weight: bold;"&gt; 6 &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(é como se cada elemento maior encontrado fosse uma bolha que fosse flutuando até chegar ao topo)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 5 &lt;/span&gt;4&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;2&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;6&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;3 &lt;span style="font-weight: bold;"&gt;5 4 &lt;/span&gt;2&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;6&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;3 4 &lt;span style="font-weight: bold;"&gt;5 2 &lt;span style="color: rgb(0, 0, 153);"&gt;6&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;3 4 2&lt;span style="font-weight: bold;"&gt; 5 &lt;span style="color: rgb(0, 0, 153);"&gt;6&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 4&lt;/span&gt; 2&lt;span style="font-weight: bold;"&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;5&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;6&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;3 &lt;span style="font-weight: bold;"&gt;4 2 &lt;span style="color: rgb(0, 0, 153);"&gt;5&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;6&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;3 2 &lt;span style="font-weight: bold;"&gt;4 &lt;span style="color: rgb(0, 0, 153);"&gt;5&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;6&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* Observe que só precisamos executar o processo n-1 vezes, pois quando o penúltimo maior elemento foi colocado na posição correta, o vetor restante desordenado só contém 1 elemento, que é menor do que todos à sua direita. Portanto, o vetor final estará completamente ordenado.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; 2 &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;4&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;5&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;6&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;2 &lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;4&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;5&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;6&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;7&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;9&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Veja abaixo alguns videos que mostram a execução do algoritmo.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/myKlT30nl5Y&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/myKlT30nl5Y&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ddWtW1ceHDQ&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/ddWtW1ceHDQ&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/P00xJgWzz2c&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/P00xJgWzz2c&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/UnK5ueUgc88&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/UnK5ueUgc88&amp;amp;hl=pt-br&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Quer ler mais sobre o BubbleSort? &lt;a href="http://pt.wikipedia.org/wiki/Bubble_sort"&gt;Clique aqui&lt;/a&gt;. Na wikipedia você vai encontrar várias implementações desse algoritmo. Em posts futuros, falaremos sobre complexidade. Mas já adiantando, o BubbleSort é O(n²). Você saberia explicar por quê?&lt;br /&gt;&lt;br /&gt;=)&lt;br /&gt;&lt;br /&gt;Até a próxima!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-975811668382296487?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/975811668382296487/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/06/algoritmos-de-ordenacao-bolha.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/975811668382296487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/975811668382296487'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/06/algoritmos-de-ordenacao-bolha.html' title='Algoritmos de ordenação: A Bolha (Bubblesort)'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_OdqaItQlcIc/Si1G9e6EklI/AAAAAAAAAKI/nFvJVrOcx-I/s72-c/c%C3%A9dric-porchez-bubbles.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7213790136185106270</id><published>2009-05-25T07:34:00.000-07:00</published><updated>2009-05-25T09:57:39.904-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='paradoxo de russell'/><category scheme='http://www.blogger.com/atom/ns#' term='hilbert'/><category scheme='http://www.blogger.com/atom/ns#' term='máquina de turing'/><category scheme='http://www.blogger.com/atom/ns#' term='gödel'/><title type='text'>Crise da Matemática e a ciência da computação</title><content type='html'>O texto abaixo é do ex-aluno de Computação na UFC &lt;a href="http://www.lia.ufc.br/%7Ewladimir/"&gt;Wladimir Tavares&lt;/a&gt;, que passou recentemente num concurso para professor da UFC em Quixadá-CE.&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;&lt;br /&gt;Em 1900, no Segundo Congresso Internacional de Matemática, realizado em Paris, &lt;a href="http://pt.wikipedia.org/wiki/David_Hilbert"&gt;David Hilbert&lt;/a&gt; propôs uma lista de problemas de 10 problemas de grande envergadura, cuja solução desafiaria futuras gerações de matemáticos. Vários destes problemas estavam relacionados com questões fundamentais da matemática e sobre a verdadeira natureza da matemática.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.siam.org/images/news/451.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 137px; height: 185px;" src="http://www.siam.org/images/news/451.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hilbert era um grande defensor de uma corrente matemática chamada de formalismo. Hilbert queria organizar e fundamentar a matemática de forma sólida e concreta. Dessa maneira, a matemática poderia ser  entendida como um jogo quanto à forma.  Na verdade, para conseguir uma axiomatização ou formalização completa para a matemática precisava-se responder as seguintes matemática:&lt;br /&gt;&lt;br /&gt;1.       A matemática é completa, ou seja, todas as afirmações poderiam ser demonstradas através de um método formal.&lt;br /&gt;&lt;br /&gt;2.       A matemática é consistente, ou seja, nenhuma afirmação inválida poderia ser demonstrada.&lt;br /&gt;&lt;br /&gt;3.       A matemática é decídivel, ou seja, existe um método bem definido que possa ser aplicado a qualquer asserção matemática para demonstrar sua validade.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pt.wikipedia.org/wiki/Kurt_G%C3%B6del"&gt;Gödel&lt;/a&gt; assombrou o mundo matemático demonstrando que a matemática era imcompleta. Gödel mostrou como codificar fórmulas como inteiros e como codificar demonstrações como inteiros de forma que tinha toda a aritmética codificada dentro do seu sistema.  Seu sistema era tão expressivo que seria possível escrever fórmulas matemáticas com auto-referência.&lt;br /&gt;&lt;br /&gt;Gödel construi em seu sistema asserções do tipo “Essa asserção não é demonstrável”.  Dessa maneira, Gödel mostrou que a aritmética era incompleta. O problema da auto-referência era um problema bastante conhecido na matemática e originou vários paradoxos na matemática como o paradoxo do barbeiro (conhecido como &lt;a href="http://pt.wikipedia.org/wiki/Paradoxo_de_Russell"&gt;paradoxo de Russell&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;Se um barbeiro faz a barba de todos que não fazem a própria barba, então o barbeiro deve fazer a sua própria barba?&lt;br /&gt;&lt;br /&gt;A auto-referência causou problemas na teoria dos conjuntos de Cantor permitindo a existência de conjuntos de todos os conjuntos e um conjunto formado por elementos cujos elementos não pertencem a si mesmo.&lt;br /&gt;&lt;br /&gt;Gödel mostrou que a auto-referência surge em qualquer sistema formal que contenha pelo menos a aritmética deixando tal sistema formal incompleto. Mesmo a aritgmética, considerada a parte mais intuitiva da matemática, não estaria livre da auto-referência. Gödel demonstrou que a matemática não poderia ser demonstrada consistente dentro do seu próprio sistema.&lt;br /&gt;&lt;br /&gt;            A terceira questão sobre a decidibilidade  da matemática ainda estava sem solução.  Encontrar um método efetivo ou mecânico que pudesse ser aplicado a qualquer afirmação matemática e decidisse se a afirmação é valida ou não era um problema bastante difícil. O  grande problema era definir a natureza de um método efetivo. Um método é dito efetivo quando:&lt;br /&gt;&lt;br /&gt;1.       M é expresso em termos de um número finito de instruções  e cada instrução definida através de um número finito de símbolos.&lt;br /&gt;&lt;br /&gt;2.       M produz o resultado desejado em número finito de passos, quando executado sem erros.&lt;br /&gt;&lt;br /&gt;3.       M pode ser executado por um ser humano com papel e caneta ou por uma máquina&lt;br /&gt;&lt;br /&gt;4.       M não demanda  um discernimento superior ou ingenuidade na parte do ser humano.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.matesco.unican.es/maurica/2003/maquina.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 259px; height: 322px;" src="http://www.matesco.unican.es/maurica/2003/maquina.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Um exemplo de um método efetivo é o teste da tabela verdade para descobrir se uma fórmula proposicional é uma tautologia. A pergunta era se a matemática era totalmente algorítmica. Mas a definição de método efetivo ou mecanizável  ainda era bastante informal: que tipo de instruções podem ser executadas por máquinas , o que seria não assumir ingenuidade ou ainda não exigir um discernimento superior. Tudo isso ainda estava sem explicação até que Alan Turing propôs uma máquina chamada LCM (Logical Computer Machine) que ficou conhecida como &lt;a href="http://pt.wikipedia.org/wiki/M%C3%A1quina_de_Turing"&gt;Máquina de Turing&lt;/a&gt;. Este dispositivo formal foi concebido para ser um substituto formal para o predicado informal “o que pode ser calculado por meios de métodos efetivos”. A máquina de Turing era um dispositivo tão simples que a sua simples apresentação já era uma garantia da sua efetividade. O que assustou outros matemáticos é que outros modelos de computação propostos eram todos equivalentes a Máquina de Turing. Este fato motivou a preposição da famosa Tese de Church-Turing:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Toda função é efetivamente computável somente se for Turing computável.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Em certo sentido, a máquina de Turing capturaria a noção informal de procedimento efetivo ou computável.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7213790136185106270?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7213790136185106270/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/05/crise-da-matematica-e-ciencia-da.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7213790136185106270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7213790136185106270'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/05/crise-da-matematica-e-ciencia-da.html' title='Crise da Matemática e a ciência da computação'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-3351246878697628762</id><published>2009-05-20T17:10:00.000-07:00</published><updated>2010-07-06T14:16:06.786-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='matemática'/><category scheme='http://www.blogger.com/atom/ns#' term='ufc'/><category scheme='http://www.blogger.com/atom/ns#' term='acm'/><title type='text'>A importância da Matemática para Computação</title><content type='html'>Leiam abaixo o texto do professor Heron Carvalho, do Departamento de Computação da Universidade Federal do Ceará (UFC), de 26 de outubro de 2006:&lt;br /&gt;&lt;br /&gt;-----&lt;br /&gt;&lt;div&gt;&lt;span style="border-collapse: collapse;"&gt;Estive hoje na reunião do PET/Alunos com alguns professores, onde certas inquietações por parte dos estudante foram expostas. Dentre estas, uma que  causa o meu especial interesse é a não compreensão da importância de  algumas disciplinas do currículo, notadamente aquelas de forte cunho  teórico. Em particular, s&lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;emestre passado tive o prazer de ministrar a disciplina de Teoria da Computação, justamente aquela que introduz ao  aluno os conceitos básicos da teoria que propiciou o uso prático dos computadores para solução de problemas gerais. A computação, como tenho dito algumas vezes, é um dos poucos exemplos de artefatos desenvolvidos pelos seres humanos cujo uso prático veio a disseminar-se fortemente devido ao desenvolvimento de uma  teoria formal, no sentido matemático, durante as décadas de 20 e 30.&lt;br /&gt;&lt;br /&gt;A tensão dialética entre TEORIA e PRÁTICA nas universidades é recorrente em várias disciplinas do conhecimento e independente de região ou contexto&lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt; cultural, porém é bastante evidente na computação. Tomemos como exemplo a área de Medicina, na qual os alunos não costumam questionar a necessidade de conhecer as teorias que embasam sua prática, pois o não conhecimento destas os impediriam, por exemplo, de atuar em situações de risco nas quais nu&lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;nca foram "treinados" (este é apenas um dos motivos). Este caso particular me faz recordar a ação de um médico cirurgião do Hospital da Restauração na cidade do Recife, que salvou a vida de uma turista israelense baleada no coração durante em um assalto. Tendo em vista o caráter peculiar da lesão apresentada, a intervenção foi possível devido não apenas a um conhecimento técnico adquirido, mas de todo um embasamento teórico do &lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;cirurgião e sua equipe, que os permite intervir em situações novas que lhes são apresentadas em uma emergência daquel&lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;e porte. Outro exemplo é a engenharia. Já viram algum estudante de engenharia contestar o ensino do cálculo (I, II, III, IV) em seus currículos ? Estes sabem, e isto é evidente inclusive para os leigos, que a construção de edificações complexas, com uso otimizado dos recursos (tempo e dinheiro) e nível elevado de segurança, exigem aplicação da matemática contínua. Na maioria dos casos, para um não-engenheiro é &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="border-collapse: collapse;"&gt;possível subjetivamente saber se uma certa edificação é "complexa" ou não. Comparo então com o software. Quanto mais complexo este, os conhec&lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;imentos necessários para o seu desenvolvimento extrapolam o mero conhecer do uso de ferramentas de linguagens, exigindo do profissional o conhecimento teórico em áreas como algoritmos e estruturas de dados (qual a forma mais eficiente de implementar certo problema ?), controle de concorrência (como evitar a interferência entre processos concorrentes ?), teoria da computabilidade (é um certo prob&lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;lema possível de ser implementado ?), dentre outras questões. Mas, ao contrário de edificações, são exceções os casos onde a complexidade de um software é evidente para os usuários leigos, pelo simples fato de que um dos objetivos do bom engenheiro de software é esconder a complexidade do seu artefato por trás de uma interface elegante. Imaginem se usuários leigos de Windows, Linux, ou MacOS tivessem que enxergar a complexidade desses sistemas opera&lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;cionais para ser possível interagir com estes.&lt;br /&gt;&lt;br /&gt;O material em anexo é uma evidência a vocês, iniciantes no mundo da computação em sua perspectiva de ciência, de que a tensão e&lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;ntre teoria (leia-se matemática) e prática (leia-se uso de tecnologias) é recorrente nas melhores universidades do mundo. Isso também pode ser envidenciado pelos artigos que eu enviei anteriormente. Espero que possam ter tempo para ler essas coisas. São artigos publicados em um número da Communications of the ACM, respeitável publicação orientada a acadêmicos e profissionais.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="border-collapse: collapse;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="border-collapse: collapse;"&gt;Abraço,&lt;/span&gt;&lt;a href="http://portalparts.acm.org/910000/903893/cover/September2003.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" src="http://portalparts.acm.org/910000/903893/cover/September2003.jpg" style="cursor: pointer; float: right; height: 170px; margin: 0pt 0pt 10px 10px; width: 132px;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="border-collapse: collapse;"&gt;Heron&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: collapse;"&gt;&lt;br /&gt;----&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: collapse;"&gt;Os artigos citados estão todos em inglês. Em breve iremos fazer aqui &lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;a tr&lt;/span&gt;&lt;span style="border-collapse: collapse;"&gt;adução (bem, já deu pra notar também que pra Computação é muito bom saber inglês, né!). Segue a lista abaixo:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="mediumb-text" style="font-weight: bold;"&gt;Communications of the ACM&lt;/span&gt;&lt;br /&gt;&lt;span class="small-text"&gt; Volume 46 ,  Issue 9  (September 2003)&lt;/span&gt;&lt;br /&gt;&lt;a href="http://portal.acm.org/toc.cfm?id=903893&amp;amp;type=issue&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=36560032&amp;amp;CFTOKEN=34579468"&gt;&lt;span class="small-text" style="font-weight: bold;"&gt; Why CS students need math&lt;/span&gt;&lt;/a&gt; (Por que estudantes de Ciência da Computação precisam de matemática)&lt;br /&gt;Seção: &lt;a href="http://portal.acm.org/toc.cfm?id=903893&amp;amp;type=issue&amp;amp;coll=GUIDE&amp;amp;dl=GUIDE&amp;amp;CFID=36560032&amp;amp;CFTOKEN=34579468#903916"&gt;&lt;span style="font-weight: bold;"&gt;Why universities require computer science students to take math&lt;/span&gt;&lt;/a&gt; (Por que as universidades exigem que os estudantes de Ciência da Computação estudem matemática)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Introduction&lt;/span&gt;, por Keith Devlin&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Why math? &lt;/span&gt;(Por que matemática?), por Kim B. Bruce, Robert L. Scot Drysdale, Charles Kelemen, Allen Tucker&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mathematical reasoning in software engineering education&lt;/span&gt; (Raciocínio matemático no ensino de Engenharia de Software), por Peter B. Henderson&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What is the attraction to computing?&lt;/span&gt; (Qual é a motivação para a computação?), por Vicki L. Almstrum&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Em breve, mais artigos sobre o assunto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-3351246878697628762?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/3351246878697628762/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/05/importancia-da-matematica-para.html#comment-form' title='3 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3351246878697628762'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3351246878697628762'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/05/importancia-da-matematica-para.html' title='A importância da Matemática para Computação'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-7883597151045463828</id><published>2009-05-19T19:12:00.000-07:00</published><updated>2009-05-21T14:25:26.932-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='faculdade'/><title type='text'>É necessário fazer uma faculdade para trabalhar com Computação/Programação?</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);"&gt;Leia os &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:verdana;" &gt;posts ab&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;aixo e tire suas próprias c&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;onclusões:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://gc.blog.br/2009/05/18/o-que-eu-acho-sobre-faculdades-de-informatica/"&gt;O que eu acho sobre faculdades de informática&lt;/a&gt;, de &lt;a style="font-style: italic;" href="http://gc.blog.br/sobre-guilherme-chapiewski/"&gt;Guilherme Chapiewski&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://www.akitaonrails.com/2009/04/17/off-topic-devo-fazer-faculdade"&gt;Devo fazer faculdade?&lt;/a&gt;, de &lt;a style="font-style: italic;" href="http://www.akitaonrails.com/pages/about"&gt;Fábio Akita&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a style="font-weight: bold;" href="http://www.michelazzo.com.br/textos/steve-jobs-e-burro"&gt;Steve Jobs é Burro&lt;/a&gt;, de &lt;a style="font-style: italic;" href="http://www.michelazzo.com.br/pagina/curricula"&gt;Paulino Michelazzo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Em breve falaremos mais sobre isso.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-7883597151045463828?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/7883597151045463828/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/05/e-importante-fazer-uma-faculdade-para.html#comment-form' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7883597151045463828'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/7883597151045463828'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/05/e-importante-fazer-uma-faculdade-para.html' title='É necessário fazer uma faculdade para trabalhar com Computação/Programação?'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-6745389170860208154</id><published>2009-05-06T16:41:00.000-07:00</published><updated>2009-05-06T17:19:58.529-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cursos'/><category scheme='http://www.blogger.com/atom/ns#' term='informática biomédica'/><category scheme='http://www.blogger.com/atom/ns#' term='usp'/><title type='text'>Cursos: Informática Biomédica</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_OdqaItQlcIc/SgIn_BX7f4I/AAAAAAAAAHs/AOkLqTT1-e8/s1600-h/informaticabiomedica.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 266px; height: 320px;" src="http://4.bp.blogspot.com/_OdqaItQlcIc/SgIn_BX7f4I/AAAAAAAAAHs/AOkLqTT1-e8/s320/informaticabiomedica.jpg" alt="" id="BLOGGER_PHOTO_ID_5332868872414134146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Você já pensou em estudar Computação mas achava que iria gostar do curso de Medicina? Ou já pensou em fazer Medicina mas continuar estudando Computação?&lt;br /&gt;&lt;br /&gt;Enfim, se você tem afinidade pelas duas áreas e gostaria de estudar as duas coisas juntas, esse curso foi feito pra você!&lt;br /&gt;=)&lt;br /&gt;&lt;br /&gt;O departamento de Medicina na USP de Ribeirão Preto é bastante forte. E é interessante que com o passar dos anos outros cursos foram criados envolvendo a Medicina e outras áreas, como por exemplo o curso de Física Médica e o de Informática Biomédica.&lt;br /&gt;&lt;br /&gt;No início do curso, você recebe uma base de Ciências Exatas e Biológicas, e depois se especializa em uma destas 3 áreas:&lt;br /&gt;* Bioinformática;&lt;br /&gt;* Processamento de imagens e sinais e&lt;br /&gt;* Gerenciamento de registros clínicos e de Saúde Pública.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saiba mais!&lt;br /&gt;...sobre a área:&lt;br /&gt;&lt;a href="http://www.informaticabiomedica.com.br/"&gt;http://www.informaticabiomedica.com.br&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sabbatini.com/renato/slides/perspectivasprofissionaisinformaticabiomedica.pdf"&gt;http://www.sabbatini.com/renato/slides/perspectivasprofissionaisinformaticabiomedica.pdf&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.informaticamedica.org.br/"&gt;http://www.informaticamedica.org.br&lt;/a&gt;&lt;br /&gt;Wikipedia (em inglês):&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Biomedical_informatics"&gt;http://en.wikipedia.org/wiki/Biomedical_informatics&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.bibliomed.com.br/lib/ShowDoc.cfm?LibDocID=14028&amp;amp;ReturnCatID=20011"&gt;&lt;/a&gt;&lt;br /&gt;...sobre este curso:&lt;br /&gt;Página oficial do curso:&lt;br /&gt;&lt;a href="http://www.ffclrp.usp.br/graduacoes/fisicaematematica/bachareladoeminformaticabiomedica.html"&gt;http://www.ffclrp.usp.br/graduacoes/fisicaematematica/bachareladoeminformaticabiomedica.html&lt;/a&gt;&lt;br /&gt;Guia do Estudante:&lt;br /&gt;&lt;a href="http://guiadoestudante.abril.com.br/profissoes/ciencias-exatas-informatica/profissoes_279102.shtml"&gt;http://guiadoestudante.abril.com.br/profissoes/ciencias-exatas-informatica/profissoes_279102.shtml&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Clique &lt;a href="https://sistemas2.usp.br/jupiterweb/listarGradeCurricular?codcg=91&amp;amp;codcur=91010&amp;amp;codhab=1&amp;amp;tipo=N"&gt;aqui&lt;/a&gt; para ver toda a grade curricular.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-6745389170860208154?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/6745389170860208154/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/05/cursos-informatica-biomedica.html#comment-form' title='4 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6745389170860208154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6745389170860208154'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/05/cursos-informatica-biomedica.html' title='Cursos: Informática Biomédica'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_OdqaItQlcIc/SgIn_BX7f4I/AAAAAAAAAHs/AOkLqTT1-e8/s72-c/informaticabiomedica.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-879096420157118294</id><published>2009-04-28T17:53:00.000-07:00</published><updated>2009-04-28T18:43:39.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dicas'/><category scheme='http://www.blogger.com/atom/ns#' term='matemática discreta'/><category scheme='http://www.blogger.com/atom/ns#' term='livros'/><title type='text'>Dica de livro: Fundamentos Matemáticos para a Ciência da Computação - Judith L. Gersting</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_OdqaItQlcIc/SfesAF54qgI/AAAAAAAAAHk/NBaofo-kQss/s1600-h/c14873.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 203px;" src="http://2.bp.blogspot.com/_OdqaItQlcIc/SfesAF54qgI/AAAAAAAAAHk/NBaofo-kQss/s320/c14873.jpg" alt="" id="BLOGGER_PHOTO_ID_5329917801601214978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Para se ter uma boa base em para saber bem Ciência da Computação, não se engane: precisamos estudar matemática. Algumas coisas com aplicações diretas e outras nem tanto, mas que mesmo assim servirão para exercitar nosso raciocínio e para pensarmos logicamente.&lt;br /&gt;&lt;br /&gt;A dica de hoje é de um livro amplamente utilizado nos primeiros semestres dos cursos de Ciência da Computação no mundo todo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SUMÁRIO RESUMIDO&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt; Lógica Formal&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2&lt;/span&gt; Demonstrações, Recursão e Análise de Algoritmo&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; Conjuntos e Combinatória&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4&lt;/span&gt; Relações, Funções e Matrizes&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5&lt;/span&gt; Grafos e Árvores&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6&lt;/span&gt; Grafos e Algoritmos&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7&lt;/span&gt; Álgebra Booleana e Lógica de Computadores&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8&lt;/span&gt; Modelagem Aritmética, Computação e Linguagens&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Apêndice A&lt;/span&gt; - Notação de Somatório&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Apêndice B&lt;/span&gt; - A Função Logarítmica&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ao final, o livro ainda traz respostas para vários exercícios.&lt;br /&gt;&lt;br /&gt;Bom estudo!&lt;br /&gt;&lt;br /&gt;Pesquise o melhor lugar pra comprar:&lt;br /&gt;&lt;a href="http://compare.buscape.com.br/fundamentos-matematicos-para-a-ciencia-da-judith-l-gersting-8521614225.html"&gt;Buscapé&lt;/a&gt; e &lt;a href="http://www.jacotei.com.br/mod.php?module=jacotei.comparacao&amp;amp;prodid=262142&amp;amp;catid=215&amp;amp;mostra=true"&gt;JáCotei&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Dados do livro em português:&lt;/span&gt;&lt;br /&gt;Título: Fundamentos Matemáticos para a Ciência da Computação&lt;br /&gt;Autora: Judith L. Gersting&lt;br /&gt;Edição: 5ª&lt;br /&gt;Editora: LTC&lt;br /&gt;ISBN: 8521614225&lt;br /&gt;&lt;br /&gt;Título original (em inglês): &lt;span style="font-style: italic;"&gt;Mathematical Structures for Computer Science&lt;/span&gt;&lt;br /&gt;Página oficial do livro, na internet (em inglês): &lt;a href="http://www.whfreeman.com/gersting5e/"&gt;http://www.whfreeman.com/gersting5e/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-879096420157118294?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/879096420157118294/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/04/dica-de-livro-fundamentos-matematicos.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/879096420157118294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/879096420157118294'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/04/dica-de-livro-fundamentos-matematicos.html' title='Dica de livro: Fundamentos Matemáticos para a Ciência da Computação - Judith L. Gersting'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_OdqaItQlcIc/SfesAF54qgI/AAAAAAAAAHk/NBaofo-kQss/s72-c/c14873.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-3713412927580482322</id><published>2009-04-21T17:24:00.000-07:00</published><updated>2009-04-21T17:42:08.017-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ensino médio'/><category scheme='http://www.blogger.com/atom/ns#' term='rj'/><category scheme='http://www.blogger.com/atom/ns#' term='matemática discreta'/><title type='text'>Matemática Discreta?</title><content type='html'>No início do estudo de Ciência da Computação, tem um assunto que precisamos saber bem. A matemática discreta nos fornece uma boa base para termos um bom raciocínio lógico e pensar bem sobre algoritmos.&lt;br /&gt;&lt;br /&gt;É muito comum que os alunos sintam dificuldade, mas se estudarmos bem, teremos bem menos problemas em a aprender a programar bem, no futuro. Fora trabalhar bem com bancos de dados, análise de algoritmos, linguagens formais, etc.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/8cJ94cRsc9c&amp;amp;hl=pt-br&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/8cJ94cRsc9c&amp;amp;hl=pt-br&amp;amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Calma, pessoal... não é assim que iremos ficar!&lt;br /&gt;&lt;br /&gt;Mas antes de publicar conteúdo propriamente dito, gostaria que vocês vissem esses videos abaixo pra comprovar a importância da matemática discreta (eles são sobre a implantação do ensino da matemática discreta em turmas do ensino médio no Rio de Janeiro).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dominiopublico.gov.br/pesquisa/DetalheObraForm.do?select_action=&amp;amp;co_obra=21860"&gt;Video 1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dominiopublico.gov.br/pesquisa/DetalheObraForm.do?select_action=&amp;amp;co_obra=21861"&gt;Video 2&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dominiopublico.gov.br/pesquisa/DetalheObraForm.do?select_action=&amp;amp;co_obra=21862"&gt;Video 3&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Um abraço!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-3713412927580482322?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/3713412927580482322/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/04/matematica-discreta.html#comment-form' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3713412927580482322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/3713412927580482322'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/04/matematica-discreta.html' title='Matemática Discreta?'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8880953053777120773.post-6731973189170006620</id><published>2009-04-15T14:19:00.000-07:00</published><updated>2009-04-20T17:49:38.865-07:00</updated><title type='text'>Bem-vindos!</title><content type='html'>Olá, pessoal!&lt;br /&gt;&lt;br /&gt;Este é o primeiro post de muitos que virão (espero) sobre o estudo da computação.&lt;br /&gt;&lt;br /&gt;A ideia aqui é divulgar materiais diversos para quem gosta de aprender essas coisas por conta própria.&lt;br /&gt;&lt;br /&gt;Como motivação inicial, trago a tradução um artigo publicado na &lt;a href="http://computingcareers.acm.org/"&gt;Computing Careers&lt;/a&gt;, da &lt;a href="http://www.acm.org/"&gt;ACM&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Boa leitura!&lt;br /&gt;&lt;br /&gt;As 10 melhores razões para estudar computação (no original, &lt;a href="http://computingcareers.acm.org/?page_id=4"&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;Top 10 Reasons to Major in Computing&lt;/span&gt;&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. A Computação é parte de tudo o que fazemos!&lt;/span&gt;&lt;br /&gt;A Computação e a tecnologia de computadores são parte de tudo que entra em contato com nossas vidas, dos carros que dirigimos aos filmes que assistimos, até mesmo as formas como as empresas e o governo lidam conosco. Entender as diferentes dimensões da computação é parte de um conjunto de habilidades para uma pessoa que está no séc. XXI. Se você quer ser um cientista, desenvolver a última "&lt;span style="font-style: italic;"&gt;killer application&lt;/span&gt;"&lt;sup&gt;[1]&lt;/sup&gt;, ou apenas saber o que realmente significa quando alguém diz "o computador deu um erro", estudar computação irá te fornecer conhecimento valiosos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Especializar-se em computação irá te capacitar a resolver problemas complexos e desafiadores&lt;/span&gt;&lt;br /&gt;A Computação é uma disciplina que oferece possibilidades recompensadoras e desafiadoras para um grande grupo de pessoas independente de sua variedade de interesses. A computação requer e desenvolve capacidades em resolver problemas profundos e multidimensionais exigindo imaginação e sensibilidade em uma variedade de assuntos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. A Computação te capacita a fazer uma diferença positiva no mundo&lt;/span&gt;&lt;br /&gt;A Computação possibilita a inovação em ciências (projeto genoma humano, pesquisa da vacina da AIDS, monitoração e proteção do meio ambiente, apenas pra citar alguns), em engenharia, negócios, entretenimento e educação. Se você quer fazer uma diferença positiva no mundo, estude computação.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4. A Computação oferece vários tipos de carreiras lucrativas&lt;/span&gt;&lt;br /&gt;Os empregos relacionados a computação estão entre os mais bem pagos e têm os mais altos níveis de satisfação. A Computação é muito frequentemente associada com inovação, e desenvolvimento em Computação tende a possibilitar isso. Isto, por outro lado, é a chave pra competitividade nacional. Espera-se que as possibilidades para futuros desenvolvedores sejam maiores que as que existiam no passado.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Empregos relacionados à Computação estão aqui pra ficar, seja onde você estiver alocado&lt;/span&gt;&lt;br /&gt;Há realmente mais empregos com computação do que pessoas qualificadas para preenchê-los, nos Estados Unidos. O nível de emprego em TI nos E.U.A. foi 17% mais alto em 2004 que em 1999. O &lt;a href="http://www.bls.gov/"&gt;Bureau of Labor Statistics&lt;/a&gt; (uma espécie de instituto que estuda as estatísticas de trabalho, nos E.U.A.) diz que a Computação tem o maior potencial para novos empregos até 2014. Sim, alguns empregos em TI estão no exterior (dos E.U.A.). Se você considerar o crescimento esperado em Computação, é fácil ver que companhias simplesmente precisam de mais mentes talentosas. Não deixe de buscar o grande número de vagas disponíveis agora, aqui nos E.U.A. (e no Brasil também!)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6. Especializar-se em Computação ajuda você mesmo se sua profissão principal é alguma outra coisa&lt;/span&gt;&lt;br /&gt;Ter uma formação em Computação irá te dar uma base de conhecimento, solução de problemas e raciocínio lógico que irá servir como uma grande vantagem competitiva em sua carreira, em qualquer campo que você escolher.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7. A Computação oferece ótimas oportunidades para verdadeira criatividade e inovação&lt;/span&gt;&lt;br /&gt;Criar soluções em Computação de alta qualidade é uma atividade altamente criativa, e a Computação dá suporte ao trabalho criativo em muitas outras áreas. As melhores soluções em Computação mostram altos níveis de elegância e beleza.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8. A Computação tem espaço tanto pra trabalho colaborativo quanto pra esforço individual&lt;/span&gt;&lt;br /&gt;Em um time que necessita de pessoas com vários tipos diferentes de habilidades, frequentemente é necessário saber Computação. E ainda há bastante espaço para estilo e imaginação individuais.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;9. A Computação é uma parte essencial de uma preparação acadêmica bem variada&lt;/span&gt;&lt;br /&gt;Um número crescente de universidades e empresários vêem a conclusão bem sucedida de um curso de computação como sinal de uma preparação acadêmica bem variada.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;10. Não há fronteiras para oportunidades futuras em Computação&lt;/span&gt;&lt;br /&gt;A Computação é um dos campos em que é quase impossível predizer o que irá acontecer. Este é o porquê não podemos nem mesmo começar a imaginar todas as maneiras que você pode contribuir e que isto pode fazer o trabalho de sua vida excitante e real.&lt;br /&gt;&lt;br /&gt;[1] &lt;span style="font-style: italic;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Killer_application"&gt;Killer application&lt;/a&gt; &lt;/span&gt;(ou &lt;span style="font-style: italic;"&gt;killer app&lt;/span&gt;): termo usado para um video game, para um jogo que faz sua venda aumentar, justamente porque as pessoas irão comprar muito o video game só por causa do jogo. Termo aplicável também a programas de computadores.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8880953053777120773-6731973189170006620?l=www.estudarcomputacao.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.estudarcomputacao.com/feeds/6731973189170006620/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.estudarcomputacao.com/2009/04/bem-vindos.html#comment-form' title='11 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6731973189170006620'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8880953053777120773/posts/default/6731973189170006620'/><link rel='alternate' type='text/html' href='http://www.estudarcomputacao.com/2009/04/bem-vindos.html' title='Bem-vindos!'/><author><name>Leandro Lima</name><uri>http://www.blogger.com/profile/17810216644273118641</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='27' height='32' src='http://4.bp.blogspot.com/_OdqaItQlcIc/SdpfUWza2TI/AAAAAAAAAHA/DWdPpwa5cRM/S220/leandro.jpg'/></author><thr:total>11</thr:total></entry></feed>
