• Nenhum resultado encontrado

2.1 Os tipos (resultados) de aprendizagem e a aprendizagem de Algoritmos

2.1.1 Procedimentos e Algoritmos

Neste tópico será aprofundada a discussão sobre aprendizagem de procedimentos, particularmente, serão abordadas com maior detalhamento as características da técnica, a estratégia e o metaconhecimento, conforme a proposta de Pozo (2002). Nesse movimento, serão estabelecidas relações dos diferentes tipos de procedimentos com o conteúdo de algoritmos. O ensejo é mostrar que o “aprender a formular algoritmos” pode ser vinculado de forma direta à aprendizagem de procedimentos.

57 Conforme (Pozo, 2002, p. 228), um procedimento é “um conjunto de ações ordenadas, orientadas para a realização de uma meta”. Ele difere do conhecimento verbal pelo fato de que se refere a um saber fazer e não apenas saber dizer ou compreender algo.

Para que sejam aprendidos, nem sempre explicações verbais são suficientes. Isto porque, como já abordado na seção anterior, o conhecimento conceitual ou verbal e o conhecimento procedimental se dão/se estabelecem por meio de aprendizagens de naturezas distintas. Não é suficiente saber falar sobre um algoritmo e as estruturas que podem compor o mesmo para elaborá-los. Saber sobre algoritmos e saber-fazer/saber-

formular algoritmos, não se equivalem. Além de conhecer conceitos, algumas técnicas,

é preciso saber mobilizar em situações reais estes conhecimentos, considerando outros fatores situacionais que influenciam na construção de um procedimento. Pozo (2002, p. 229) diz que “[...] numerosos estudos mostram, por exemplo, que os alunos não sabem transformar seus conhecimentos acadêmicos, descritivos e conceituais em ações ou previsões eficazes”.

Por outro lado, muitas vezes, as pessoas aprendem apenas executar ou reproduzir um procedimento. Neste caso, os conhecimentos foram transformados em habilidades condensadas e automáticas em sua memória: numa técnica. Este é exatamente o objetivo de aprender alguns tipos procedimentos: “transformar o conhecimento declarativo [...] em procedimentos automatizados” (POZO, 2002, p. 230). A condensação e automatização dessa sequência de instruções, por sua vez, liberam recursos cognitivos para tarefas que pessoas inexperientes e sem conhecimento do procedimento normalmente não podem executar.

Conforme Pozo (2002, p. 78) uma técnica não é um hábito de conduta simples que se aprende de modo implícito, que se aprende a olhar um modelo. É algo mais complexo do que isso. São ações ligadas umas às outras, hierarquizadas de forma complexa. Normalmente necessitam ser treinadas por alguém que já as dominem até que sejam automatizadas e executadas com precisão.

Um exemplo de técnica a ser considerado é a reescrita de um algoritmo. Neste caso, o treinamento já foi efetuado pelo próprio criador da mesma enquanto o elaborava e/ou testava. Isto porque a sequência de instruções tornou-se conhecida pela pessoa que o elaborou. Quanto mais este repete a escrita, execução e/ou teste deste procedimento, mais terá treinado e condensado seus passos.

58 Outro exemplo de técnica na disciplina de Algoritmos é a aplicação e uso dos componentes da linguagem algorítmica, como por exemplo, a estrutura condicional SE. Toda vez que o aluno se deparar com um problema para o qual sua solução demande alguma tomada de decisão, este selecionará automaticamente esta estrutura para compor a escrita de seu algoritmo. Isto é possível, porque a informação de que o SE deve ser usado nestes casos já está condensada em sua memória.

Este processo ocorre com as demais estruturas e componentes da linguagem algorítmica. À medida que o professor as expõe para o aluno, este vai assimilando sua forma de representação e sua aplicabilidade, a ponto de que diante de problemas, sejam capazes de selecioná-las de forma automática e sem grandes esforços cognitivos.

Mesmo que aprender uma técnica seja um processo importante, é bastante limitado no que se refere à aprendizagem de procedimentos quando as condições dos problemas há resolver não são preestabelecidas, nem estáveis. É o que acontece com os algoritmos. Normalmente cada problema exige um procedimento peculiar e por isso “[...] repetir uma rotina automatizada pode ser insuficiente para poder aplicá-la a uma nova situação” (POZO, 2001. p. 233).

Algoritmos na Ciência da Computação se fazem necessários diante de problemas que possam ser resolvidos computacionalmente. Normalmente para estes, não existe ou não são conhecidos procedimentos automatizados bem definidos. É diante deste fato que surge a necessidade de reflexão e tomada de decisões sobre a sequência de passos que irão compor a solução.

Neste momento, faz-se necessário aprofundar a discussão sobre a diferença entre exercício e problema, já mencionada no capítulo 1. Conforme descrito, num exercício a solução pode ser rapidamente encontrada a partir do uso de mecanismos ou técnicas já disponíveis, pois não são situações novas. Já um problema se refere a

[...] uma situação somente pode ser concebida como um problema na medida em que exista um reconhecimento dela como tal, e na medida em que não disponhamos de procedimentos automáticos que nos permitam solucioná-los de forma mais ou menos imediata, sem exigir, de alguma forma, um processo de reflexão ou uma tomada de decisões sobre a sequência de passos a serem seguidos. [...] um problema é, de certa forma, uma situação nova ou diferente do que já foi aprendido, que requer a utilização estratégica de técnicas já conhecidas. (ECHEVERRÍA; POZO, 1998, p. 16)

Essa diferenciação é necessária, pois os alunos de Algoritmos devem ser capacitados para a solução de problemas, independentemente de seu grau de dificuldade. Para tanto não é suficiente apenas apreender a aplicar uma técnica, mas a

59 adequá-la aos recursos disponíveis, a fim de elaborar de uma solução customizada e suficiente para o problema em questão.

Exercícios, normalmente, demandam a aplicação de soluções semelhante ou iguais as já explicadas pelos professores, constituindo-se na aplicação de uma técnica. Problemas exigem mais do que uma técnica, exigem uma estratégia. Normalmente demandam a elaboração de uma solução singular e adequada, a qual se vale das técnicas, mas vai além destas.

Um problema exige mais esforço para elaboração de sua solução se comparado com uma técnica. Além de alguns conhecimentos prévios, já mencionados, exige administração de todos os componentes envolvidos, sejam eles apenas técnicas ou outros recursos. Esse entendimento sobre uma estratégia vem ao encontro com a definição de Pozo (2002, p. 236) em relação a esta aprendizagem: “[...] um uso deliberado e planificado de uma sequência composta de procedimentos dirigida para alcançar uma meta estabelecida”.

Normalmente quando há a necessidade de elaborar uma estratégia, existe um problema gerador dessa necessidade. É ele quem dita parte das condições – pois a outra parte geralmente depende da elaboração da solução – relaciona as técnicas necessárias e define o objetivo do procedimento que está sendo pensado. Da mesma forma, algoritmos são elaborados quando existe a necessidade de resolver um problema computacionalmente.

Entendo a natureza do conteúdo de algoritmos basicamente procedimental e relacionada à elaboração de estratégias. Mesmo que existam conceitos de variáveis, de estruturas de repetição, de condição, dentre outros, estes somente encontram fundamento na aprendizagem de algoritmos se forem condensados na memória, resultando na capacidade de escrever soluções para problemas num formato algorítmico.

É importante deixar claro também, que embora técnicas possam ser utilizadas na solução, elas precisam ser customizadas conforme as condições estabelecidas no problema. Esse conhecimento é chamado por Pozo (2002, p. 233) de conhecimento condicional e exige que os aprendizes conservem “[...] o controle do que estão fazendo, além das rotinas que têm automatizadas”.

Sendo assim, é possível considerar que todo algoritmo escrito para uma situação singular, para a qual não se conheça uma ou mais técnicas que possam ser aplicadas como solução suficiente, é uma estratégia. Esta última é definida por Pozo (2002, p.

60 235) como procedimento gerado “[...] de modo controlado, dentro de um plano projetado deliberadamente com o fim de conseguir uma meta fixada”.

Por isso, toda vez que a elaboração de um algoritmo exigir planejamento, sendo diferente de qualquer outro, se estará produzindo uma estratégia. Mesmo assim, é bem possível que se utilizem alguns procedimentos rotineiros nos passos ou instruções visando à conclusão deste processo maior, mas que não necessitam mais de controle e projeção, afinal já se constituíram como técnicas.

Conforme Pozo (2002, p. 235), as estratégias são “compostas por técnicas ou habilidades”. A eficácia das primeiras depende do domínio das últimas. Por isso, elas “[..] seriam formas progressivamente mais complexas de utilizar um mesmo procedimento” (POZO, 2002, p. 235-236). A eficácia de um algoritmo, por exemplo, depende do domínio de alguns procedimentos necessários para sua escrita, como, saber onde e como declarar suas variáveis ou para um problema que exigisse o cálculo do raio de uma lata, conhecer a fórmula do cálculo de um raio.

Além do de conhecer alguns procedimentos rotineiros ou técnicas, é também necessário considerar os recursos disponíveis e adequados para realizar a tarefa proposta (POZO, 2001, p. 235). Para escrever um algoritmo34, por exemplo, é preciso conhecer a linguagem algorítmica. As soluções somente poderão ser representadas na mesma, se houver o conhecimento de suas estruturas, componentes e regras.

De posse de algumas técnicas e dos recursos disponíveis, será necessário planejar quando, como e onde utilizá-las no corpo de um algoritmo. Uma estrutura condicional, por exemplo, não pode ser escrita na seção de declaração de variáveis ou então, para um algoritmo que necessite de estruturas de repetição, a condição dos laços têm um momento de parada e, portanto, deverá ser usada de forma que isso aconteça.

Pozo (2002) organiza a aplicação de uma estratégia em fases, as quais são semelhantes às fases de elaboração de um algoritmo, afinal eles são procedimentos estratégicos. Ele mesmo diz que elas “[...] são muito similares às fases necessárias em geral para resolver um problema” (POZO, 2002, p. 236).

Quando há a necessidade de escrever um algoritmo, se espera uma ou mais saídas do mesmo. Ao escrever um procedimento para calcular o raio de uma lata se deseja saber, obviamente, o raio dessa lata. Esta é a primeira fase da elaboração de uma

34

Aqui me refiro à escrita de um algoritmo em Portugol, o qual é uma pseudo-linguagem utilizada para a escrita desses procedimentos na disciplina de Algoritmos dos cursos da área da Computação.

61 estratégia definida por Pozzo (2002, p. 236): “[...] fixar o objetivo ou meta a ser atingido”.

Para realizar esse cálculo é necessário pensar como isso será feito, qual a fórmula e as variáveis envolvidas. Nessa segunda fase “é selecionada uma estratégia ou o curso da ação para alcançar o objetivo proposto” (POZO, 2002, p. 236).

A terceira etapa está relacionada com “[...] aplicação da estratégia executando as técnicas que a compõe” (POZO, 2002, p. 236). O aluno que está a elaborar o algoritmo para o cálculo do raio de uma lata que já conhece esta fórmula e as variáveis envolvidas, certamente se apoiará nesses conhecimentos e processos que domina com alguma segurança para fazê-lo. Pozo explica que em casos como este, pelo fato das tarefas já terem sido condensadas e automatizadas por quem está escrevendo a estratégia, os recursos cognitivos ficam liberados para a gestão global da tarefa.

Finalmente a última fase da aplicação de uma estratégia se refere a avaliação da realização dos objetivos fixados após a aplicação da estratégia. É importante que um algoritmo seja analisado não apenas após o término de sua elaboração e escrita, mas também durante este processo. Cada variável, instrução de entrada, de processamento ou de saída devem ser pensadas e (re)pensadas no momento em que estão sendo inseridas no processo. Perguntas como: Porque esta instrução foi escrita com estas variáveis e com esta estrutura? Há outra instrução mais adequada? Se sim, qual é e qual o ganho se comparada à primeira?

O teste de mesa, que se refere ao processo de execução de um algoritmo por um humano, podendo utilizar lápis e papel para isso, pode responder essas questões. Ele é utilizado, sobretudo para verificar se o objetivo do procedimento elaborado foi alcançado, ou seja, se faz aquilo que deve fazer.

Quando o aluno que elaborou o algoritmo faz um teste de mesa, está analisando as instruções que ele mesmo elaborou. Este exercício aponta eventuais erros nas escolhas de componentes e estruturas do algoritmo, em suas instruções e na ordem destas no processo como um todo. Por vezes ainda aponta outras soluções mais convenientes para problema ou apenas formas mais adequadas de escrever a mesma solução.

Nesse plano, além de uma sequência de técnicas, existem mais componentes interferindo, para os quais Pozo (2002, p. 236-237) chama a atenção. É imprescindível que trabalhem em consonância para que seja possível elaborar o procedimento inédito, o

62 algoritmo para um problema com solução computacional desconhecida. Esses elementos podem ser visualizados na figura 05.

Figura 05: Componentes necessários para o uso de uma estratégia Fonte: Pozo (2002, p. 237)

O metaconhecimento, mencionado anteriormente nesta seção, está relacionado ao controle do procedimento que está sendo elaborado. Refere-se à reflexão sobre a estratégia, a “[...] seleção e planificação dos procedimentos mais eficazes em cada caso” (POZO, 2002, p. 237-238), além da avaliação após sua aplicação. Num algoritmo, este componente está relacionado com a escolha das instruções que o compõe, a organização de seus passos, bem como, depois de pronto, a análise e balanço dos resultados comparados com sua meta.

No que se refere à capacidade de avaliação, este componente permite identificar quando uma estratégia deve ser aprimorada ou reelaborada, seja através da disposição das técnicas ou dos demais recursos na ordem geral do processo. Esta função não se restringe apenas à sua ordem interna, mas também entre estratégias distintas. No caso da opção entre um ou mais algoritmos a fim de saber qual melhor se apresenta como solução para determinado problema proposto, o metaconhecimento é o responsável pela a avaliação, seleção e planificação do procedimento eleito. Ele também é utilizado na realização de um teste de mesa para determinado algoritmo.

Outro elemento mencionado por Pozo (2002, p. 237) são os conhecimentos conceituais específicos, os quais se referem à informação verbal e conhecimento conceitual a respeito do tema. Todo algoritmo se propõe a resolver um problema sobre o qual é importante conhecer conceitos e informações, obter um domínio evitando

63 decisões errôneas na elaboração da estratégia. Para o procedimento que se propõe a calcular o raio de uma lata, por exemplo, seria necessário obter a fórmula do raio e dispor de certo domínio sobre a mesma, o que é importante para pensar sobre a estratégia.

Há também as estratégias de apoio (POZO, 2002, p. 237). Estas se referem às condições materiais e psicológicas em que o processo de aprendizagem dos procedimentos acontecem. Ter um programa de computador que permita testar um algoritmo formulado imediatamente após a sua realização, bem como condições materiais para receber um feedback imediato, por parte do professor ou de um colega, sobre o que pode estar errado na elaboração da estratégia pode facilitar muito a aprendizagem quando comparado com a formulação de algoritmo com “papel e lápis” que dificultam sua testagem ou o uma revisão demorada das soluções produzidas (quando o aluno não mais lembra de porque escolheu fazer desse ou de outro jeito). No plano psicológico, um ambiente que valorize o “erro” como uma forma positiva de construção de conhecimento gerará melhores condições de aprendizagem que aquele que o valorize negativamente. Fica mais fácil de arriscar novas soluções, quando o ambiente de recepção valoriza e não condena a ousadia de pensar diferente.

E ainda os processos básicos, que podem ser cognitivos ou motores. Seu desenvolvimento “[...] torna possível a aquisição de determinados conhecimentos necessários para a aplicação de uma estratégia ou o uso de certas técnicas e habilidades” (POZO, 2002, p. 238). No caso do ensino dos algoritmos se vincula poder diferenciar aspectos cognitivos elementares como operadores matemáticos (+, -, /, *, ,%) ou axiomas como os mencionados no capítulo 1 e aspectos operacionais como saber ligar um computador, instalar programas, salvar arquivos, enfim manipular o mesmo.

Técnicas, estratégias e metaconhecimentos são, portanto, as diferentes dimensões que integram os procedimentos no sistema de aprendizagem apresentado por Pozo (2002). Enquanto para a técnica é imprescindível inicialmente a instrução verbal ou através de um modelo pronto e conhecido do processo pela pessoa que ensina - o qual é exercitado para ser automatizado pelo aprendiz, para a estratégia não há modelos prontos que possam ser usados em sua totalidade, nem mesmo inicialmente. Para compreender essa afirmação é possível fazer um paralelo com o conteúdo de Algoritmos. Na perspectiva do autor, para escrever um algoritmo, seria necessário que o aluno conhecesse as estruturas da linguagem algorítmica (técnicas) para então trabalhar

64 com as mesmas, customizando-as conforme a solução pensada para o problema (estratégias).

Essa customização entre técnicas e demais recursos componentes de cada problema é que comumente torna as estratégias procedimentos exclusivos, mais complexos e de natureza diferente das técnicas. Pozo (2002, p. 238) afirma que “[...] utilizar uma estratégia, ao menos utilizá-la bem, [...] requer, portanto, dispor de conhecimentos complexos que vão além do treinamento técnico”.

Esse “ir além”, envolve também o metaconhecimento, que é um componente necessário para o uso das estratégias. Ele é o responsável pela reflexão consciente sobre os procedimentos essenciais e os demais recursos que podem compor as mesmas, bem como pela avaliação do seu sucesso ou fracasso. Refere-se a pensar sobre a estratégia. Num algoritmo o metaconhecimento está relacionado à reflexão sobre a escolha de seus componentes e estruturas, a organização dos passos que o compõe, enfim, o resultado do procedimento como um todo.