Rey e Derval dos Santos Rosa, pela iniciativa em estruturar uma discussão integrada em toda a UFABC sobre as seis disciplinas de base dos bacharelados interdisciplinares. De maneira especial, gostaríamos de agradecer nominalmente os professores que elaboraram este livro, sempre de maneira cooperativa e interativa. São eles: Alessandro S. Nascimento, Aline Neves, Carlos da Silva dos Santos, Cristiane Otero Reis Salum, Delmo Alves de Moura, Edson Pinheiro Pimentel, Harlen Costa Batagelo, Humberto Luiz Razente, Irineu Antunes Junior, João Paulo Gois, Juliana Cristina Braga, Letícia Rodrigues Bueno, Luiz Carlos da Silva Rozante, Maria Camila Nardini Barioni, Maria das 9 Graças Bruno Marietto, Márcio Eisencraft, Márcio Kaitsumi Oikawa, Peter Claessens, Ricardo Suyama, Ronaldo Cristiano Prati e Wagner Tanaka Botelho. A contribuição de cada um destes professores demonstra o domínio científico e técnico nos temas abordados em cada capítulo. Entretanto, a preocupação de todos foi muito além da transmissão pura e direta dos conhecimentos. O processo de formação acadêmica dos alunos que utilizarão este material didático sempre foi o norte de nossas discussões. Sendo assim, as decisões relacionadas à forma de transmissão dos conhecimentos foram direcionadas por perguntas tais como: (i) como apresentar conhecimentos amplos e complexos, de maneira que os alunos iniciantes entendam seus significados e abrangência? (ii) como apresentar os conhecimentos de Com- putação não como um fim em si mesmo, mas como uma importante e indispensável ferramenta para todos os profissionais do século XXI? (iii) como expor os alunos, de maneira gradativa e coerente, às várias situações de estudo e pesquisa envolvidas na vida acadêmica? A elaboração de um material didático o mais adequado possível para apoio às aulas é um grande desafio, mas também uma boa motivação para todos os docentes e para toda a comunidade acadêmica. Esperamos ter colaborado nesse processo de construção e que essas iniciativas colham prontamente bons frutos e produzam novas sementes. Maria das Graças Bruno Marietto Mário Minami Pieter Willem Westera Comissão da Disciplina Bases Computacionais da Ciência Santo André, São Paulo, Julho de 2013 11 capítulo 1 fundamentos da computação Edson Pinheiro Pimentel Juliana Cristina Braga 1.1 introdução Atualmente, é praticamente impensável fazer pesquisa científica sem o uso de com- putação. A presença de instrumentos computadorizados coletando dados o tempo todo e em todo lugar gera dados científicos em volumes que não podem mais ser entendidos com cálculos simples, sendo necessárias, muitas vezes, computações complexas. Por exemplo, a Sloan Digital Sky Survey está mapeando o céu com um telescópio e nos primeiros cinco anos de operação, gerou cerca de 6 TB de dados. Da mesma forma, simulações em grande escala de modelos climáticos a reatores de fusão geram enormes conjuntos de dados em semanas ou mesmo dias devido à disponibilidade de computadores cada vez mais rápidos. Tal volume de dados tem de ser analisado por técnicas de computação. À luz desta evolução da ciência, as futuras gerações de cientistas devem compreender que precisarão envolver cada vez mais computação em seu trabalho (Hambrusch et al., 2009:183). De fato, diversas áreas de pesquisa estão se tornando cada vez mais dependentes da computação. Segundo George Johnson, no artigo “All Science is Computer Science”, publicado no New York Times on the Web em 2001, toda ciência, ao que parece, está se tornando ciência da computação. Eis alguns depoimentos que embasam esta afirmação: • “Física é quase inteiramente computacional agora”, disse Thomas B. Kepler, vice-presidente para assuntos acadêmicos do Santa Fe Institute, um centro de pesquisa multidisciplinar, no Novo México, EUA. “Ninguém sonharia em fazer esses grandes experimentos do acelerador sem uma tremenda quantidade de poder computacional para analisar os dados”. • Mas a maior mudança, segundo ele, foi em biologia. “Dez anos atrás, os biólogos desconsideravam a necessidade de computação”, disse o Dr. Kepler. “Agora eles estão cientes de que não podem realmente fazer biologia sem ele”. • Há química computacional, neurociência computacional, genética computa- cional, imunologia computacional e biologia molecular computacional. Também, áreas como a sociologia e a antropologia estão lentamente sucumbindo à mudança. No Instituto Santa Fé, modelos de computador são usados para estudar os fatores que podem ter levado à ascensão e queda de culturas complexas, uma espécie de arqueologia artificial (Johnson, 2001:1). 12 O “Pensamento Computacional” ou “Raciocínio Computacional”, do inglês Computa- tional Thinking, tem sido considerado essencial para o aprendizado de técnicas como decomposição de tarefas ou modelagem de problemas, necessárias em diversas tarefas nas mais diversas áreas. De forma simplista seria como aprender a “pensar” como um computador. Segundo Henderson e colaboradores (2007:195) o “Pensamento Computacional” é o núcleo de todas as disciplinas modernas nas áreas de Ciências, Tecnologia, Engenharia e Matemática e é intrínseco a todas as outras disciplinas, de A a Z. É utilizado na vida cotidiana desde ao se fazer um bolo, ao se trocar um pneu ou quando escovamos nossos dentes. O cérebro humano está preparado para pensar computacionalmente, assim como estão os dispositivos de computação moderna. De certo modo, precisamos apenas despertar o raciocínio computacional para melhor aplicá-lo, quando e onde precisarmos. Pensamento Computacional é um processo de resolução de problemas que inclui as seguintes características, mas que não se limita a elas: • Formulação de problemas de modo que permita fazer uso do computador e outras ferramentas para ajudar a resolvê-los; • Representação de dados através da abstração, tais como modelagem e simulação; • Automatização de soluções através do pensamento algorítmico (uma se- quência de instruções); • Generalização e transferência do processo de solução de um problema para uma grande variedade de problemas relacionados (Wing, 2006:33). Assim, seja qual for o campo de atuação escolhido, será inevitável estudar e entender um pouco de computação ou informática. De fato, esse “pouco” deve ir além de uma “alfabetização digital básica”, e incluir a compreensão de termos como software ou hardware e também saber ligar um computador e navegar pela rede mundial de computadores. A organização americana CSTA – Computer Science Teachers Association (Associação de professores da Ciência da Computação) defende que o ensino da computação, como ciência, deve começar já no ensino médio. O documento “K–12 Computer Science Standards”, que estabelece padrões para a educação em Ciência da Computação no ensino médio americano apregoa que: Para ser cidadãos bem-educados em um mundo com utilização intensiva de computação e para ser preparado para as carreiras no século 21, os nossos es- tudantes devem ter uma compreensão clara dos princípios e práticas da ciência da computação. Nenhum outro assunto vai abrir tantas portas no século 21 como a ciência da computação, independentemente da área fim de estudo ou ocupação do estudante (Seehorn et al., 2011:ii). No entanto, o ideal é que esse processo educativo seja realizado não apenas com uma visão tecnicista, mas também seja amparado por diversas abordagens disciplinares e científicas. Dentro desse espírito, o livro Computer Science Unplugged (Bell, 2011), traduzido para diversas línguas, inclusive o Português, dispõe de uma coleção de atividades desen- 13 volvidas com o objetivo de ensinar os fundamentos da ciência da computação sem a necessidade de computadores. A concepção desse livro foi motivada pela necessidade de implementação de métodos lúdicos e