Ensinando estatística

Termina hoje a terceira disciplina de estatística que ministrei no Programa de Pós-Graduação em Ecologia e Conservação da Biodiversidade, aqui na UESC. Digo terceira porque, embora eu já tenha ministrado ela uma vez, mudei bastante o conteúdo e a forma nesta segunda edição, e é como se fosse uma outra disciplina; poucos materiais reaproveitei e algumas coisas adicionei a ela. E isso é recorrente; as primeiras versões dos cursos de Excel e de Past que ministrei pouco tinham a ver com as versões seguintes. Ou seja, eu nem espero que a primeira versão de um curso, uma disciplina, uma aula… seja em algo parecido com as versões subsequentes. Por mais que a disciplina seja planejada antes, “a diferença entre a teoria e a prática é que em teoria não há diferença” e “um plano de batalha só é válido até a primeira lança ser erguida”*.

montecarlo_uesc_2016

Turma da disciplina de Fundamentos de Estatística Monte Carlo e de Programação em R para Ecologia (o nome real da disciplina é outro, mas este é mais bonito! rs) – 2016

Neste post não darei conselhos sobre como ensinar estatística, nem sobre como ministrar disciplinas na pós-graduação (ou em qualquer outro lugar). Não me sinto qualificado para dar tais conselhos; não por enquanto. Quiçá daqui a alguns anos. Aqui vou apenas compartilhar algumas ideias que tenho sobre o assunto e um pouco da minha experiência.

Talvez a maior surpresa que tive nessas empreitadas foi que ensinar estatística é muito diferente de simplesmente dar um minicurso sobre um programa estatístico. Eu já havia ministrado cursos de um ou dois dias sobre Excel, Calc, Past e R, em diferentes universidades, e cheguei a pensar que dar uma disciplina seria parecido com isso. Não é. Um software é, afinal, apenas uma ferramenta, e não é necessário ensinar desenho arquitetônico para ensinar a usar uma furadeira. Não é necessário ensinar os fundamentos por trás da ANOVA para ensinar a usar o Past e tampouco os fundamentos da regressão linear para ensinar a fazer um gráfico e ajustar uma linha a ele em R.

Uma disciplina é mais do que isso.

montecarlo_uesc_2015

Turma da disciplina de Análise de Dados Ecológicos por Aleatorizações, Bootstrap e Monte Carlo – 2015, a primeira turma a quem busquei ensinar estatística.

Uma disciplina, a meu ver, precisa sim passar as ferramentas, mas não pode, exceto em casos muito específicos, se limitar a elas. Precisa passar os fundamentos, a teoria que existe naquela área, e fornecer subsídios para um aprimoramento independente após o término das aulas e a entrega dos trabalhos finais. Para isso, não basta analisar conjuntos de dados, copiar e rodar scripts – é preciso entender, ao menos superficialmente, o que acontece quando fazemos isso. E não basta analisar conjuntos de dados, copiar e rodar scripts e entender superficialmente a álgebra da análise – precisamos entender também os fundamentos teóricos por trás dela. E não basta analisar conjuntos de dados, copiar e rodar scripts, e entender superficialmente a álgebra da análise e os fundamentos teóricos que a sustentam – é preciso também perceber que há por trás de tudo isso uma filosofia que guia (ou não) a nossa tomada de decisão. Em se tratando de análise de dados ecológicos (não vou opinar sobre outras áreas), não há receitinha de bolo ou um esquema simples a ser seguido (mas veja isso).

E falando nisso – teoria e prática são dois lados da mesma moeda (ou do mesmo D2). Com isso em mente, eu sempre misturei a prática e a teoria nas minhas aulas e cursos. Eu explicava o funcionamento de um teste e logo em seguida rodava ele no Past ou no R. Mas não mais. Seguindo a sugestão de uma discente (valeu, A(n)drielle!), nesta última disciplina separei os conteúdos: dei aulas teóricas e aulas práticas em dias diferentes e intercalados. Assim, em um dia eu passava a teoria e no outro fazíamos práticas relacionadas à aula anterior. Nem sempre os dois tipos de aula andavam em conjunto – às vezes a teoria é simples mas a prática é complicada (cadeias de Markov) e às vezes é o contrário (bootstrap). De qualquer modo, me parece (estou falando isso sem base teórica alguma) que são formas diferentes de pensar. Pensar sobre a teoria subjacente a um teste estatístico e as aplicações dele é diferente de pensar sobre quais comandos escrever ou quais botões apertar para rodar este teste sobre um conjunto de dados. Sendo assim, faz sentido separar os dois aspectos, para que a pessoa não precise ficar alternando constantemente entre duas formas de pensamento.

estatisticabasica_uesc_2016

Turma da disciplina de Estatística Básica – 2016

E falando em teoria e prática – algo que pretendo começar a fazer é passar lições e exercícios relacionados à teoria. Tenho sempre passado vários exercícios, para serem feitos em sala de aula ou depois, mas sempre sobre a prática, a aplicação das ferramentas, e a teoria fica talvez relegada a um segundo plano. Fazer exercícios em sala de aula me parece muito bom para o aprendizado; e tento seguir nisso os exemplos de grandes professores com quem tive aula, como Marco Batalha e Marco Mello, ou cujas aulas acompanhei (Miltinho Ribeiro). E fazer lições em casa é importante para absorver, interiorizar o conteúdo. Muitas vezes podemos achar que estamos entendendo aquela matéria mas quando ficamos por conta própria todo o nosso entendimento se esvai. É quase como se estar na sala de aula distorcesse a realidade, da mesma forma que a presença do orientador faz

E falando em sedimentar conteúdo – ninguém adquire a faixa preta em uma arte marcial depois de um mês de treino intensivo (eu acho). Do mesmo modo, ninguém vira expert em um assunto depois de duas semanas de aulas intensivas sobre ele. Para de fato aprender algo – e não estou falando necessariamente de adquirir maestria de um assunto – é preciso praticar, ler, estudar, praticar, estudar, ler, praticar, aplicar aqueles conteúdos… Uma disciplina pode fornecer as bases para isso. Mas as disciplinas nos programas de pós em Ecologia que conheço são condensadas. E quando o assunto é complicado, talvez seja necessário um tempo para que os conteúdos sejam absorvidos, e avançar de um conceito básico (como aleatorizar dados) até um mais avançado (modelos autoregressivos) em uma ou duas semanas me parece um tanto surreal. Não é pela quantidade de horas de aula, e sim pelo tempo entre elas. Se houver um período de alguns dias entre uma aula e outra, neste tempo o material passado possa quiçá ser melhor apreendido e, assim, de fato aprendido – mesmo que haja outros conteúdos sendo passados neste período, em outras disciplinas. Muitas vezes não é possível – existe trabalho de campo, existem discentes e docentes vindos de fora; mas às vezes é. E a meu ver alguns conteúdos deveriam ser passados desta forma – com tempo para sedimentar, absorver, aprender e apreender o conteúdo. A solução parcial que achei para isso é dar um prazo bem grande para entrega de trabalhos finais, mas sinto que ainda falta algo.

…Mas isso sou eu falando sem nenhuma base teórica e com pouca prática, então sintam-se livre para ignorar tudo que escrevi. :-)

* Frase recorrente na série de livros Wheel of Time, do escritor Robert Jordan. É usada com variações: até a primeira flecha ser lançada, até a primeira espada ser desembainhada… A idéia é sempre a mesma: por mais que algo – uma batalha, mas eu aplico ela inclusive a atividades de educação ambiental – tenha sido bem planejado, há muito que não pode ser previsto, e é importante – eu diria essencial – manter certa flexibilidade e fazer mudanças nos planos. Eu inclusive penso que essa é uma diferença crucial entre uma aula e uma palestra: a aula requer mais flexibidade, justamente devido a uma maior interação entre docente e discentes.

Pensamento computacional

[Este é um post convidado, escrito por Marcos Henrique de P. D. da Silva, licenciado e mestrando em Matemática]

Enormes painéis cheios de luzes piscando e rolos de fita girando que são capazes de resolver os problemas de todos os seres humanos. É assim que os computadores do futuro eram mostrados na TV nos anos 60. Hoje rimos dessa visão, pois percebemos que o tamanho das máquinas e da população para quem elas resolvem os problemas, foi ficando cada vez menor. Mas nessa visão, regredimos no mais importante, que não é o tamanho das máquinas, mas para quem elas são úteis. Essa questão ficou obscura entre as ciências, havendo os adeptos a resolver os problemas da forma humana e os que se arriscavam nas “artes sombrias” de usar recursos computacionais; precisavam, nesta resolução, de muita cautela, pois para a sociedade o computador é um mistério e dele pode sair qualquer erro absurdo que um ser humano jamais cometeria.

Mas em 2006 uma mulher da ciência lançou uma pedra contra esse muro de medos sobre o uso de computadores fora das ciências computacionais. Seu nome é Jeannette M. Wing, e em março desse ano surge um conceito que define a parceria humano + computador: o Pensamento Computacional. Sua ideia é que o ser humano tem um pensamento flexível e criativo enquanto que o computador tem uma gigantesca memória e uma velocidade absurda; assim, se os dois trabalharem juntos, atingirão grandes resultados. Exemplo: um enxadrista profissional que enfrenta um computador que calcule as melhores jogadas acompanhado de um enxadrista amador. O profissional pode armar estratégias que enganariam o algoritmo da máquina, mas o amador será capaz de perceber e não cair nessas armadilhas, assim como o profissional pensará em mais jogadas que o amador, mas a máquina será capaz de calcular mais jogadas que o profissional e indicar as melhores pro amador.

Já se passaram 10 anos desde que essa definição apareceu, mas ainda é muito confundida com programar, construir algoritmos ou usar o computador. O Pensar Computacionalmente NÃO significa passar qualquer problema para o computador resolver, ou transformar seres humanos em computadores. O Pensar Computacionalmente significa receber um problema, pegar um copo de refrigerante, sentar no sofá e pensar, qual é a melhor maneira de resolvê-lo? Ele é um problema pequeno o bastante para eu fazer sem me levantar? Possuo algum software que posso utilizar de imediato pra resolvê-lo? Alguém que pode me auxiliar? Encontrarei esse problema tantas vezes que valha a pena aprender algo novo para resolvê-lo? E tantas outras perguntas que levem a um veredito de como o problema será resolvido.

Mas tomar essa decisão com sabedoria exige um conhecimento que abrange a matemática, a ciência da computação e a engenharia. Afinal, o computador não é uma caixa preta, ele possui limitações e não são todos os algoritmos que chegam numa solução antes que o universo imploda. Exemplo: calcular um termo da sequência de Fibonacci é simples: ela começa em 0 e 1, sendo o termo seguinte a soma dos dois termos anteriores, assim o 3o termo é 0+1=1, o 4o termo é 1+1=2, o 5o termo é 2+1=3, o 6o termo é 2+3=5 (acho que você já entendeu). Então, existem dois agoritmos simples para descobrir o 100o termo dessa sequência, um que faz o cálculo diretamente (o iterativo) e um que faz o cálculo retornando seu próprio processo (o recursivo). Um ser humano deve levar uns 20 minutos para calcular diretamente o 100o termo da sequência, um computador comum pelo método iterativo, menos de 1 segundo, um computador comum pelo método recursivo, mais de 100 anos (sim, você não leu errado). Ambos os algoritmos (iterativo e recursivo) são óbvios a qualquer estudante de computação e parece que funcionarão, mas o problema esta no computador ter uma velocidade absurda, porém não infinita. Ou seja, transformar um problema qualquer em um formato que o computador resolva, NÃO é Pensar  Computacionalmente. Pensar Computacionalmente é exatamente escolher o método mais eficaz (ao alcance da pessoa) para resolver um problema. Veja que no último exemplo, se a pessoa conhece apenas o método recursivo, pode valer mais a pena resolver manualmente ou estudar um método computacional mais eficiente do que esperar 100 anos.

Assim, se você não concorda com nenhuma palavra lida até agora, apague uma a uma das letras desse texto, quanto tempo você levará? Selecionar tudo e apagar deve ser bem mais rápido, mas não posso te obrigar a pensar computacionalmente, né? Mas se você acha que o computador é algo para todos, inclusive você, tente entender mais como ele funciona, conhecer suas limitações, suas potencialidades, ver o que outras pessoas já fizeram (afinal não é necessário inventar a roda sempre que quisermos andar de bicicleta), adaptar ideias interessantes para suas necessidades e quando possível, invente (e divirta-se). Saiba quando é preciso ser criativo e adaptável, e quando ser rápido e com muita memória. O Pensamento Computacional é para todos e a todo momento, só que sem os grandes painéis, as luzes piscando e os rolos de fita girando.