Você está na página 1de 161

UNIVERSIDADE FEDERAL DO PARAN

MARIANGELA DE OLIVEIRA GOMES SETTI

O Processo de Discretizao do Raciocnio Matemtico na Traduo para o Raciocnio Computacional: Um Estudo de Caso no Ensino/Aprendizagem de Algoritmos

CURITIBA 2009

ii

MARIANGELA DE OLIVEIRA GOMES SETTI

O Processo de Discretizao do Raciocnio Matemtico na Traduo para o Raciocnio Computacional: Um Estudo de Caso no Ensino/Aprendizagem de Algoritmos

Tese apresentada ao Curso de Ps-Graduao em Educao, Setor de Educao, Universidade Federal do Paran, como requisito parcial para a obteno do grau de Doutora em Educao, na linha de pesquisa Educao Matemtica.

Orientador: Prof. Dr. Jos Carlos Cifuentes

CURITIBA 2009

iii

Sumrio
Apresentao ........................................................................................................ 1 CAPTULO 1 .......................................................................................................... 3 O Problema de Investigao.................................................................................... 3 1.1 O Contexto do Ensino - Aprendizagem .......................................................... 5 1.2 Questes Norteadoras e Consideraes Preliminares ..................................... 11 1.3 Pressupostos............................................................................................ 12 CAPTULO 2 ........................................................................................................ 16 O Algoritmo Conceitualizao e Evoluo Histrica ................................................ 16 2.1 O Advento do Algoritmo e suas Relaes com a Matemtica........................... 16 2.2 Consideraes Sobre a Tese de Church-Turing ............................................. 20 2.3 O Conceito de Algoritmo ............................................................................ 24 CAPTULO 3 ........................................................................................................ 27 O Ensino de Algoritmos e sua Relao com a Educao Matemtica ........................... 27 CAPTULO 4 ........................................................................................................ 36 Aspectos Didticos e Epistemolgicos na Aprendizagem de Algoritmos ....................... 36 4.1- Matemtica Discreta e Algoritmos ................................................................ 36 4.2 Questes Didticas e Epistemolgicas .......................................................... 37 4.3 Registros de Representao Semitica.......................................................... 45 4.3.1 Registros de Representaes Computacionais ......................................... 49 4.4 - A Aprendizagem de Algoritmos .................................................................... 56 4.5 Formas de Representao de um Algoritmo ................................................. 58 4.6 - Estruturas para o Desenvolvimento de Algoritmos......................................... 61 4.6.1 - Estruturas Condicionais ........................................................................ 62 4.6.2 - Estruturas de Repetio ....................................................................... 63 CAPTULO 5 ........................................................................................................ 66 Ambientes de Aprendizagem para Algoritmos.......................................................... 66 5.1 - Classificao das Abordagens ..................................................................... 67 5.1.1 - Aula Tradicional e Laboratrio ............................................................... 67 5.1.2 - Visualizao de Programas.................................................................... 69 5.1.3 - Robs ................................................................................................ 75 5.1.4 - Aprendizagem Baseada em Problemas (PBL)........................................... 78 5.1.5 - Aprendizado Cognitivo ......................................................................... 80 5.2 - Teoria Educacional .................................................................................... 81

iv

CAPTULO 6 ........................................................................................................ 87 Procedimentos Metodolgicos................................................................................ 87 6.1 Estratgia da Pesquisa .............................................................................. 87 6.2 Contexto da Disciplina de Lgica de Programao ......................................... 87 6.3 Estratgias de Ao .................................................................................. 90 CAPTULO 7 ........................................................................................................ 93 Estudos de Caso no Curso de Tecnologia em Informtica UTFPR ............................. 93 7.1 Anlise da Avaliao 01/2007 .................................................................... 93 7.2 Registros de Representao Utilizados para Elaborao de um Algoritmo ......... 98 7.3 Elaborao do Raciocnio Matemtico x Computacional .................................107 CAPTULO 8 .......................................................................................................123 Concluses e Consideraes Finais........................................................................123 8.1 Trabalhos Futuros.....................................................................................127 Referncias........................................................................................................128 Bibliografia Complementar...................................................................................135 Apndice I .........................................................................................................137 I.1- Avaliao Aplicada no Semestre 01/2007......................................................137 I.2- Avaliao Aplicada no Semestre 02/2007......................................................140 I.3- Avaliao Referente Elaborao do Raciocnio Matemtico x Computacional....143 Apndice II ........................................................................................................146 II.1- Plano de Ensino da Disciplina de Lgica de Programao ..............................146 II.2- Plano de Aula da Disciplina de Lgica de Programao .................................149

Lista de Quadros
Quadro 1- Classificao dos diferentes registros mobilizveis no funcionamento matemtico. (DUVAL, 2003, p. 14)................................................................... 46 Quadro 2 Comparao entre as unidades significantes no registro de partida e de chegada, para a verso iterativa do algoritmo. .................................................. 54 Quadro 3 - Comparao entre as unidades significantes no registro de partida e de chegada, para a verso Recursiva. ................................................................... 55 Quadro 4 - Exemplos da utilizao das estruturas de repetio.................................. 65 Quadro 5- Porcentagem de aproveitamento pelos alunos em relao modalidade de interao (LINDER et al., 2001) ....................................................................... 68 Quadro 6 Linguagens utilizadas em cursos de introduo programao (HARRIS, 2000). .......................................................................................................... 75 Quadro 7 - Mdia obtida na primeira prova de cada semestre ................................... 89 Quadro 8- Sntese geral das solues propostas, pelos alunos, para a questo1 01/07 ................................................................................................................... 96 Quadro 9 Anlise individual da soluo proposta pelos alunos para a questo 1 01/07 ................................................................................................................... 97 Quadro 10 Sntese geral da soluo proposta pelos alunos para a questo 1 02/07102 Quadro 11 - Anlise individual da soluo proposta pelos alunos para a questo 1 02/07 ..........................................................................................................103 Quadro 12 Sntese geral da soluo proposta pelos alunos para a questo 2 02/07106 Quadro 13 Anlise individual da soluo proposta pelos alunos para a questo 202/06 ..................................................................................................................107 Quadro 14 Anlise individual da soluo proposta pelos alunos para a questo Fibonacci ..................................................................................................................120 Quadro 15 Sntese das solues propostas pelos alunos para a questo Fibonacci....121

vi

Lista de Figuras
Figura 1 - Fluxograma do algoritmo para o clculo da mdia ..................................... 60 Figura 2 Algoritmo representado em fluxograma para a questo 1 02/2007 .........101 Figura 3 Algoritmo representado em fluxograma para a questo 2 02/2007 .........105 Figura 4 Soluo grfica para o problema de Fibonacci .........................................110

vii

S sabemos com exatido quando sabemos pouco; medida que vamos adquirindo conhecimentos, instala-se a dvida. (Johann Goethe)

viii

Agradecimentos

Para agradecer a todos aqueles que contriburam com o desenvolvimento deste trabalho, seria preciso muito mais do que algumas linhas, so tantas as pessoas que devo agradecer, que preciso muito cuidado no momento de nomin-las. Primeiro agradeo a Deus, por iluminar e abenoar meus caminhos em mais esta etapa da minha vida. A meu marido, Joo Antnio Palma Setti pelo amor, cumplicidade e compreenso em todo este perodo, e a meu filho, Matheus Gomes Setti, por ser a motivao de todo meu esforo. Agradeo tambm a minha me, que sempre foi exemplo de fora e coragem. Ao Prof. Dr. Jos Carlos Cifuentes, pela pacincia, compreenso, concordncias e discordncias, como no poderia deixar de ser um processo de orientao, acima de tudo, agradeo pelo carinho e amizade, que com certeza, comearam com o desenvolvimento deste trabalho, e sua esposa Dra. Blanca Beatriz Diaz Alva, pelo incentivo e amizade. Aos professores membros da banca de defesa: Dr. talo Modesto Dutra (UFRGS), Dra. Sonia Barbosa Igliori (PUC-SP), Dra. Clia Finck Brandt (UEPG) e Dr. Gustavo Gimnez Lugo (UTFPR) pelas contribuies dadas. A todos os amigos, professores e funcionrios do Programa de Ps-Graduao em Educao (PPGE), da Universidade Federal do Paran, que de alguma, contriburam para o desenvolvimento deste trabalho. Lenia Gabardo Negrelli e Elisngela Campos pela colaborao, sugestes e tantas discusses que, sem dvida, tiveram uma grande importncia para a melhor concluso deste trabalho. A todos os colegas da Universidade Tecnolgica Federal do Paran (UTFPR), especialmente aos colegas do Departamento de Informtica, que contriburam para a concluso deste trabalho. Aos alunos do Curso de Tecnologia em Informtica da UTFPR, sem os quais, grande parte deste trabalho no poderia ter sido realizado. Finalmente, agradeo aos meus amigos e minha famlia, que so a melhor coisa da

ix

minha vida!

Resumo
Este trabalho aborda a aprendizagem e o ensino de introduo programao, cujo contedo central a elaborao de algoritmos computacionais. Observa-se que muitos dos alunos, embora detenham conhecimentos matemticos oriundos do Ensino Mdio, para resolver problemas matemticos encontram dificuldades na passagem do raciocnio matemtico para o correspondente computacional. Para realizar esta passagem, necessrio utilizar os conhecimentos adquiridos previamente com um novo formato, devido ao processo de discretizao necessrio para transformar o raciocnio matemtico no correspondente computacional. Para conceber esta discretizao, os conhecimentos matemticos

estabelecidos iro sofrer uma ruptura epistemolgica, pois se trata de uma mudana na forma de compreender um conhecimento. Alm disso, para elaborar um algoritmo, utilizamse registros de representao semitica diferentes daqueles utilizados pela linguagem natural, e pela linguagem matemtica, o que vem a ser mais um fator produtor de obstculo. Para identificar as principais dificuldades dos alunos nesta fase, realizamos uma pesquisa emprica, por meio de um estudo de caso com mltiplos casos, concluindo que elas esto relacionadas s estruturas de repetio, necessrias para realizar o processo de discretizao, bem como s diferenas entre os registros de representao semitica de partida (linguagem natural) e os de chegada (linguagem computacional).

Palavras-Chave: Algoritmos, Discretizao, Obstculos Epistemolgicos e Registros de


Representao Semitica.

xi

Abstract
This work deals with learning and teaching of programming introduction, which central focus is the development of computational algorithms. It is observed that many of the students, although having mathematical skills acquired in high school, have difficulties to solve mathematical problems when transposing the mathematical reasoning to its corresponding computational thinking. For this transition to be made, it is necessary to use the knowledge acquired previously within a new arrangement, due to the process of discretization required to change the mathematical reasoning into its computational correlative. To conceive such discretization, the established mathematical knowledge will undergo an "epistemological rupture", because it is a change in the way of understanding knowledge. Moreover, to develop an algorithm, records of semiotic representation, other than those used by natural language and mathematic language, are employed, becoming an additional hindrance-producing factor. To identify the major difficulties of the students at this stage, we conducted an empirical research through a case study with multiple cases, concluding that they are related to the structures of repetition, necessary to accomplish the process of discretization, as well as to the differences between the records of semiotic representation at the start (natural language) and those at the end (computer language).

Key Words: Algorithms, Discretization, Epistemological Obstacles and Semiotics Representation Records.

Apresentao
Desenvolvemos este estudo como trabalho de concluso do Curso de Doutorado em Educao, da Universidade Federal do Paran (UFPR), na linha de pesquisa Educao Matemtica. Nele abordamos a aprendizagem e o ensino das disciplinas de Introduo Programao, cujo contedo central a elaborao de algoritmos computacionais. Nestas disciplinas, muitos dos alunos, embora detenham conhecimentos matemticos oriundos do Ensino Mdio, para resolver problemas matemticos, encontram dificuldades na passagem do raciocnio intuitivo, ainda que matemtico, para o formal computacional. Entendemos como problemas matemticos, situaes em que possvel extrair do fenmeno em questo aspectos como simetria, regularidade, homogeneidade e uniformidade. Para elaborar um algoritmo que resolva um problema proposto, o aluno deve ser capaz de identificar estes aspectos, o que nem sempre trivial. No se trata apenas de saber como resolver um problema, baseado no ferramental trazido do Ensino Mdio, trata-se de utilizar um conhecimento adquirido para solucionar um problema com um novo formato, qual seja, conceber a soluo computacional correspondente soluo matemtica. Para superar esta diferena, os conhecimentos matemticos estabelecidos iro sofrer uma ruptura epistemolgica, pois se trata de uma mudana na forma de compreender um conhecimento, considerando que nos processos matemticos trabalhados at o final do Ensino Mdio, a matemtica utilizada tem um carter contnuo, enquanto as solues computacionais tm um carter discreto, em que o fator tempo deve ser considerado. Alm da mudana na forma de compreender o conhecimento, para elaborar um algoritmo utilizam-se registros de representao semitica diferentes daqueles utilizados pela linguagem natural e pela linguagem matemtica, mais uma possvel fonte de obstculos epistemolgicos. Este trabalho est organizado da seguinte maneira: O Captulo 1 faz a introduo do problema investigado, apresentando tambm nossas hipteses de trabalho e os objetivos a serem alcanados. O Captulo 2 faz um histrico do conceito de algoritmo, abordando alguns acontecimentos na histria da Matemtica, que tiveram papel fundamental para a concepo e

o desenvolvimento da Cincia da Computao. O ponto central a teoria que possibilitou a criao do algoritmo computacional. No Captulo 3 apresentada a base terica para este trabalho, incluindo assuntos ligados Educao Matemtica, bem como Educao e Informtica. Discutimos aspectos relacionados matemtica discreta, ao conceito de obstculo epistemolgico e teoria de registros de representao semitica, fazendo uma conexo com o processo de ensino e aprendizagem de algoritmos. No Captulo 4 abordamos alguns aspectos relevantes do processo de aprendizagem de Algoritmos. Primeiro, apresentamos as formas de representao para um algoritmo; em seguida, as estruturas disponveis para a elaborao de um algoritmo; por fim, estabelecemos uma relao entre a aprendizagem de algoritmos e a aprendizagem de matemtica. O Captulo 5 apresenta o estado da arte no ensino de algoritmos, descrevendo brevemente algumas metodologias de ensino, utilizadas por pesquisadores para o ensino de disciplinas que abordam a introduo programao, mostrando as vantagens e as desvantagens das mesmas. O Captulo 6 descreve os procedimentos metodolgicos adotados para realizar a pesquisa de campo, parte deste trabalho. No Captulo 7 apresentamos os casos analisados em nosso estudo de caso, composto por trs casos: o primeiro, aborda a aprendizagem da estrutura de repetio, utilizada no processo de discretizao do raciocnio, necessrio passagem do raciocnio matemtico para o correspondente computacional; o segundo, aborda os registros de representao semitica utilizados para representar um algoritmo; e o terceiro, faz uma comparao entre a elaborao do raciocnio matemtico e do raciocnio computacional. Finalmente, o Captulo 8 apresenta as concluses, consideraes finais e alguns apontamentos para trabalhos futuros.

CAPTULO 1
O Problema de Investigao

Os recursos tecnolgicos, entre eles os computadores, esto popularizando-se rapidamente nas mais variadas reas e atividades, notadamente no ambiente escolar, nos seus diversos nveis. O computador pode ser utilizado para realizar inmeras tarefas, porm, para que desempenhe adequadamente sua funo, necessrio que receba instrues rigorosamente detalhadas e precisas. Para que o processamento dessas instrues ocorra corretamente, deve-se estabelecer qual a lgica que o computador deve utilizar. Na Cincia da Computao, essa lgica chamase lgica de programao ou lgica de construo de algoritmos, e consiste em conceber processos de raciocnio, por meio de simbolizaes formais, para a programao de computadores. Observe-se que lgica, uma vez usada em relao ao funcionamento de um computador, est sendo entendida de forma rgida. Assim, no qualquer tipo de argumentao que constitui uma lgica. A palavra raciocnio est intimamente ligada aos processos mentais do ser humano. Sua relao com os processos computacionais, exige um estudo aprofundado para sua melhor compreenso. Os seres humanos tm a capacidade de expressar seu raciocnio por meio da palavra falada ou escrita, que, por sua vez, baseia-se em um determinado idioma, que segue uma srie de padres definidos por uma gramtica. Um mesmo raciocnio pode ser expresso em qualquer um dos inmeros idiomas existentes; todavia, continuar representando o mesmo raciocnio, usando apenas outra conveno. O mesmo ocorre com a lgica de programao, que pode ser representada em qualquer uma das inmeras linguagens de programao existentes. Estas, por sua vez, so atreladas a uma grande diversidade de detalhes computacionais, que pouco tem a ver com o raciocnio envolvido. Por conta disso, um dos instrumentos mais utilizados para expressar a lgica de programao o algoritmo, porque uma vez concebida uma soluo algortmica para um problema, esta pode ser traduzida para qualquer linguagem de programao e ser agregada s funcionalidades disponveis nos diversos ambientes existentes.

Quando elaboramos um algoritmo, devemos especificar aes claras e precisas, que, a partir de um estado inicial, aps um perodo de tempo finito, produzam um estado final previsvel e bem definido. Isso significa que o algoritmo fixa um padro de comportamento a ser seguido, uma norma de execuo a ser trilhada, com vistas a alcanar, como resultado final, a soluo de um problema, garantindo que, sempre que executado, sob as mesmas condies, produza o mesmo resultado. Este o carter lgico do algoritmo. A primeira vez que um algoritmo foi escrito para um computador foi em 1842, por Ada Byron, para a mquina desenvolvida por Charles Babbage. Porm, como Babbage no concluiu sua mquina, este algoritmo nunca foi implementado. Entretanto, a idia de algoritmo habitava a conscincia dos matemticos do mundo todo desde o sculo XVII. Todavia, apenas na dcada de 30 essa idia teve, dentre outras, quatro definies descritivas diferentes dadas, no mbito da lgica moderna, por Gdel, Church, Post e Turing (SAGASTUME, 2003). Para o momento adotaremos provisoriamente a definio informal de algoritmo, sugerida acima, como sendo um conjunto de comandos que, a partir de um estado inicial, aps um perodo de tempo finito, produz um estado final previsvel e bem definido. Alguns autores atribuem denominaes distintas para esta mesma definio, como procedimento efetivo, procedimento mecnico e tarefa. Neste trabalho, estas denominaes so consideradas como sinnimos. Na seo 2.1, o termo algoritmo ser descriminado com o formalismo pertinente. Nos anos 70, as atividades de pesquisa conduziram ao reconhecimento da programao de computadores como uma verdadeira disciplina, cujo conhecimento fundamental para o sucesso de muitos projetos ligados s mais variadas reas do saber (WIRTH, 1986). Segundo Wirth (1986), a metodologia utilizada no ensino de algoritmos, na rea de Informtica e cursos afins, at o final dos anos 90 era baseada, na maioria dos casos, na programao estruturada, proposta por Dahl, Dijkstra e Hoare, aproximadamente em 1970. Essa metodologia tem como objetivo minimizar a complexidade dos programas computacionais. A consolidao da metodologia de orientao a objetos, no final dos anos 1990, levou, aps muitas discusses, diversos grupos a adotarem-na para o ensino de Introduo Programao, como descrito no captulo 5 deste trabalho. A discusso sobre qual metodologia

a mais adequada para ensinar alunos iniciantes persiste atualmente; no h consenso sobre o melhor caminho, se comear com a metodologia estruturada ou com a orientao objetos. Considerando que as diferenas entre ambas se intensificam apenas no momento de codificar o algoritmo por meio de uma linguagem de programao, a utilizao de uma ou outra no altera nosso objeto de estudo. Cabe destacar que a lgica envolvida na concepo do algoritmo semelhante nos dois casos, assim como as dificuldades encontradas pelos alunos. Considerando que a programao abrange uma grande variedade de atividades intelectuais complexas, Wirth no acreditava que esse processo pudesse ser condensado em uma espcie de receita didtica e ns concordamos com ele. Este trabalho no tem a pretenso de chegar referida receita, mas, sim, buscar subsdios para nortear o ensino de algoritmos.

1.1 O Contexto do Ensino - Aprendizagem O ensino e a aprendizagem de algoritmos tm sido objetos de estudo de diversos grupos de pesquisa. Uma das razes disso que a eficcia dos mtodos utilizados pelos educadores, at o presente momento, tem estado muito aqum do ideal. Pesquisando-se as possveis causas dos baixos ndices de aproveitamento, observa-se que a maioria dos alunos encontra dificuldades na passagem do raciocnio intuitivo, ainda que matemtico, para o formal computacional. A construo de algoritmos exige do aluno capacidades de abstrao, de anlise e sntese, de raciocnio combinatrio, e os cursos, em geral, carecem de meios eficazes para que eles trabalhem suas idias e construam o seu prprio conhecimento (SETTI e CIFUENTES, 2006). Verificamos, nas seguintes bibliografias utilizadas para o ensino das disciplinas que abordam o contedo de algoritmos: (FARRER, 1999), (FORBELLONE, 2000), (GERSTING, 1995), (SALVETTI, 1999), (ASCENCIO, 2002), (WIRTH, 1989), (KNUTH, 1968), que os exerccios utilizados para induzir o aprendizado da lgica de programao so quase sempre problemas matemticos. Podemos notar, nas disciplinas de introduo programao, ministradas no incio de diversos cursos de graduao, que, apesar de os alunos terem concludo o Ensino Mdio, apresentam muitas dificuldades em conceber uma soluo computacional clssica, correspondente aos problemas matemticos trabalhados anteriormente. Segundo Newell (1972), um problema uma situao na qual um indivduo deseja

fazer algo, porm desconhece o caminho das aes necessrias para concretizar a sua ao. J para Chi et al. (1988), problema uma situao na qual um indivduo atua com o propsito de alcanar uma meta, utilizando para tal alguma estratgia em particular. comum confundir a palavra problema com exerccio, sendo que, muitas vezes, eles so utilizados como equivalentes. Deve-se observar que o exerccio envolve mera aplicao de contedos ministrados, enquanto o problema necessariamente envolve inveno e/ou criao significativa. No temos a inteno de utilizar uma definio rigorosa de problema, porm entendemos como problemas matemticos, situaes em que possvel extrair do fenmeno em questo aspectos como simetria, uniformidade, regularidade e periodicidade. Por exemplo, analisando o enunciado: Um certo cidado A tem 1,5m de altura e cresce 2cm por ano, enquanto um outro cidado B tem 1,10m e cresce 3cm por ano. Construa um algoritmo que calcule e imprima quantos anos sero necessrios para que o cidado B seja maior que o cidado A (ASCENCIO,
2002).

O que torna este enunciado um problema matemtico, no a presena dos nmeros, mas o fato de aumentar um valor constante a cada ano. Para elaborar um algoritmo que resolva a situao proposta, o aluno deve ser capaz de identificar esses aspectos, neste caso, a regularidade, o que nem sempre trivial. Adotaremos, neste trabalho, como objetos para a formulao de algoritmos um subconjunto dos problemas matemticos, aqueles que so tambm problemas algortmicos, em particular os problemas iterativos. Nessa classe de problemas, o enunciado apresenta uma situao para cuja resoluo necessria a utilizao de estruturas de deciso e/ou repetio. No exemplo anterior, tem-se a seguinte soluo algortmica:

inicio

// incio do algoritmo em portugol

inteiro A, B, Anos; Anos 0; A 1,5; B 1,1; enquanto (A B) inicio

A A + 0,02; B B + 0,03; Anos Anos + 1; fim_enquanto Escreva (O nmero de anos para que B seja maior do que A , Anos); fim.

Observe, que muitas vezes, pode ser confundido o resolver o problema com elaborar um algoritmo que o resolva e que o computador seja capaz de implementar. Uma das dificuldades em distinguir esses dois tipos de solues est na diferena entre o pensar matematicamente1 e o pensar computacionalmente, ou entre o pensamento contnuo e o sequencial discreto. Ensinar o aluno a pensar matematicamente, ou computacionalmente, no apenas uma questo de mudana de linguagem, torna-se necessrio haver uma alterao da forma de pensar. No se trata apenas de saber como resolver um problema, baseado no ferramental trazido do Ensino Mdio, trata-se de utilizar um conhecimento adquirido para solucionar um problema com um novo formato, qual seja, conceber a soluo computacional correspondente soluo matemtica. Consideramos que a matemtica escolar, ou seja, a matemtica ministrada na escola, pode ser dividida em duas reas, a saber, a matemtica do contnuo, cujo paradigma pode ser colocado em disciplinas como o Clculo Diferencial e Integral e a matemtica do discreto ou matemtica discreta, que se desenvolveu a partir do sc. XX e abrange principalmente a matemtica combinatria e estatstica, teoria dos grafos e jogos. Para trabalhar com a matemtica discreta, necessrio utilizarmos outras formas de pensar, prprias dos problemas que podem ser implementados computacionalmente. Apesar do avano computacional nas ltimas dcadas, a matemtica escolar ainda no incorporou a forma prpria que o pensamento algortmico exige. O que tem ocorrido a utilizao de ferramentas computacionais, como suporte ao ensino em diversas reas. Essa uma dificuldade que os alunos enfrentam ao se depararem com esse assunto no ensino superior, o que torna a matemtica escolar um obstculo, inclusive de carter epistemolgico, aprendizagem de algoritmos.

Segundo Schoenfeld (1998, p. 59), significa (a) ver o mundo de um ponto de vista matemtico (tendo predileco por matematizar: modelar, simbolizar, abstrair e aplicar idias matemticas a uma larga gama de situaes) e, (b) ter os instrumentos para tirar proveito para matematizar com sucesso.

Segundo Ernest (1998), dentre as principais mudanas que ocorreram acerca da concepo do conhecimento, est o reconhecimento da distino entre os conhecimentos explcito e tcito. No entendimento de Ernest (1998), um conhecimento matemtico explcito aquele que pode ser adquirido por meio da linguagem, mesmo que informal, ou de demonstraes, como, por exemplo, o contedo do teorema de Pitgoras. Por outro lado, um conhecimento matemtico tcito aquele adquirido por meio da ao ou da experincia e que no pode ser totalmente explicitado por meio da linguagem proposicional. Podemos entender o conhecimento matemtico elementar como sendo um tipo de conhecimento tcito. Porm, o conhecimento tcito no se manifesta apenas na mera aplicao mecnica de frmulas ou procedimentos, ele exige uma certa compreenso, o que, para SCHOENFELD (1992), o pensar matematicamente. Segundo o autor, para uma pessoa aprender Matemtica no basta que ela se aproprie e faa uso de ferramentas matemticas, ela precisa desenvolver algo mais, que iremos chamar de um pensar matemtico. Parafraseando SCHOENFELD (1992), para aprender a elaborar um algoritmo no basta se apropriar e fazer uso de ferramentas computacionais, como fluxograma e pseudocdigo, preciso desenvolver um pensar computacional. Nos processos envolvidos, ligados aprendizagem de algoritmos para concretizar esse pensar, observa-se que, alm da possibilidade de existirem obstculos de tipo epistemolgico, h uma converso entre registros de representao semitica, pois para elaborar um algoritmo, utilizam-se registros de representao semitica diferentes daqueles utilizados pela linguagem natural e pela linguagem matemtica. Para enfrentar a problemtica oriunda dessa operao cognitiva de converso, que pode colocar em cena o fenmeno da no congruncia semntica, utilizamos a teoria de representaes semiticas, conforme Duval (1995). As situaes problema escolhidas foram aqueles que envolvem processos condicionais e iterativos. Desde 1998 temos ministrado aulas na Universidade Tecnolgica Federal do Paran UTFPR-PR, at 2005 Centro Federal de Educao Tecnolgica do Paran (CEFET-PR), tanto para os cursos de Engenharia, das disciplinas Introduo Programao e Programao Avanada, quanto para o Curso Superior de Tecnologia em Informtica, da disciplina Lgica Aplicada, atualmente chamada de Lgica de Programao. Esta ltima uma disciplina de introduo lgica matemtica e algoritmos. Considerando as dificuldades enfrentadas,

enquanto estudante do curso de Bacharelado em Cincia da Computao, temos procurado, na medida do possvel, organizar a disciplina de forma a minimiz-las. Nos ltimos anos, alguns questionamentos tm surgido, por conta das nossas preocupaes com a aprendizagem de algoritmos, e a busca de respostas para alguns desses questionamentos um dos fatores que nos motivaram realizao deste estudo. Observamos que as dificuldades dos alunos em relao s novas formas de pensamento comeam a aparecer quando surge a necessidade de trabalhar com processos repetitivos iterativos, que envolvem a identificao das regularidades do problema que se quer solucionar e a consequente discretizao do raciocnio, necessria transformao deste no correspondente computacional. Normalmente, aqueles alunos que no apresentam dificuldade com esse contedo, tambm no apresentam outras dificuldades significativas; porm, aqueles que no compreendem esses processos, tendem a ficar desmotivados, o que faz com que estas dificuldades se agravem ao longo do curso. Tal situao ilustrada por Berlinski (2002, p. 51), ao mencionar que,
Expresses em linguagem comum, como por exemplo, tomar, repetir, imaginar, comparar ou descobrir, indicam que algo seja feito. Porm ao pretender que a soma seja feita indefinidamente, a mente de repente patina sobre gelo onde antes havia um caminho slido e escorrega sem parar e sem ponto de apoio.

O ensino superior em instituies pblicas no Brasil passa, de modo geral, por um problema srio de evaso. Estima-se que cerca de 230 mil acadmicos abandonem os seus cursos durante o decorrer dos mesmos, o que corresponde a 64 estudantes concluintes de 100 ingressantes (PORTO, 2003). A Comisso de Especialistas de Ensino de Computao e Informtica, do MEC/SESu, fez uma anlise estatstica, com base nos dados do INEP (Instituto Nacional de Estudos e Pesquisas Educacionais Ansio Teixeira), fornecidos pelas Instituies de Ensino Superior para os Censos de 2001 a 2006, disponvel em (MEC, 2009). Nesta anlise, verifica-se que a relao entre alunos ingressantes e concluintes de aproximadamente 15%, estes indicadores confirmam a necessidade de alteraes no Ensino Superior, notadamente nas reas de Cincias Exatas e Tecnolgicas. Com relao ao ensino de algoritmos, observa-se que os mtodos utilizados variam muito, dependem, entre outros, do professor, do curso e da escola. A aplicao do

10

conhecimento se d de modo geral via lpis e papel, por meio de uma linguagem de programao, pseudocdigo (portugol), ou da utilizao de ferramentas para a compilao de algoritmos, sejam esses escritos em linguagem de programao ou em pseudocdigo. Ainda assim, h diferenas entre as escolas, no s quanto linguagem de programao, mas tambm, quanto ao compilador especfico utilizado (GUIMARES, 1995). A Sociedade Brasileira de Computao promove congressos, listas de discusses e grupos de trabalho em diversas reas da Informtica. Anualmente, no mbito do Congresso da Sociedade Brasileira de Computao, entre os eventos relevantes para este trabalho esto o Workshop sobre Educao e Informtica e o Curso de Qualidade de Cursos de Graduao da rea de Computao e Informtica. Nesses dois eventos discute-se o currculo dos cursos de Informtica, metodologias de ensino, formao dos professores e so apresentados estudos de casos em diversos ramos dos cursos. No WEI (2008), foram apresentados diversos relatos de experincias sobre o ensino de introduo programao (algoritmos), em cursos de computao. Dois pontos merecem destaque analisando os relatos, o primeiro que no houve aumento significativo em relao ao nmero de alunos aprovados; o segundo que aqueles que atingiram xito terminaram a disciplina com mais maturidade e avanaram mais do que aqueles que foram formados utilizando metodologia tradicional. Ou seja, a classe de alunos com mais aptido ganhou em qualidade e tecnologia; porm, a classe daqueles com mais dificuldade continuou margem do aprendizado. Por meio de pesquisa bibliogrfica inicial, pudemos constatar que a aprendizagem de algoritmos tem passado historicamente pelos mesmos problemas que diversas outras disciplinas da rea de Cincias Exatas, especialmente a Matemtica. Nesses casos, h que se considerar tambm o nmero elevado de reprovaes em disciplinas que abordam esses contedos, o que, muitas vezes, provoca evaso dos referidos cursos. Ao conseguirmos identificar as dificuldades contidas neste processo, a evaso dos cursos que utilizam estes contedos poderia ser minimizada, pois os alunos no seriam desencorajados num perodo delicado de adaptao ao ingresso em curso superior, em que j enfrentam vrios problemas. De fato, parte dessa adaptao consiste em superar alguns obstculos de tipo epistemolgico ao aprendizado do novo pensamento computacional, notoriamente o conhecimento matemtico tcito que o aluno traz do Ensino Mdio, em que

11

no so incentivadas as capacidades de raciocnio que o pensamento algortmico (discreto) precisa. A partir desta discusso inicial, apresentamos a seguir, algumas questes que norteiam o presente trabalho de pesquisa.

1.2 Questes Norteadoras e Consideraes Preliminares Quais so as dificuldades na aprendizagem da resoluo dos problemas iterativos na disciplina de algoritmos? Essas dificuldades esto ligadas a fenmenos de representao semitica? Qual o carter epistemolgico dessas dificuldades? Em que medida o pensamento algortmico diferente do pensamento matemtico, e como essa diferena acentua essas dificuldades? Uma das intenes deste trabalho estender a discusso sobre os obstculos epistemolgicos (e outros), aprendizagem de algoritmos, considerando que a situao em questo, est ligada forma de pensar sobre a soluo de um problema e no sobre o prprio problema. Com isso, espera-se identificar os motivos que levam os alunos a no conseguirem transformar os processos matemticos que aprenderam na escola em algoritmos computacionais, isto , transformar o pensamento matemtico em pensamento computacional. Tambm, pretende-se fazer uma anlise dos diferentes registros de representaes semiticas utilizados no ensino-aprendizagem de algoritmos. Uma vez identificadas as principais dificuldades na aprendizagem de algoritmos, poderamos utilizar uma metodologia de ensino que auxilie a super-las, o que tornaria possvel reduzir o nmero de alunos que no conseguem obter xito na sua aprendizagem. Considerando que a UTFPR atua tanto no nvel tcnico, quanto na graduao e psgraduao, principalmente nas reas de Cincias Exatas e Tecnologia, embora no somente, um estudo sobre as dificuldades da aprendizagem de algoritmos poder trazer consequncias relevantes para seu ensino. Possivelmente, os resultados deste trabalho podero ser estendidos s demais instituies que atuam em rea semelhante, tendo em vista o nmero significativo delas que apresentam o mesmo tipo de problema.

12

1.3 Pressupostos Neste trabalho adotamos os seguintes pressupostos: Elaborar um algoritmo exige uma alterao de forma de pensar, conceber, nos processos de raciocnio matemtico elementar. Os conhecimentos matemticos estabelecidos iro sofrer rupturas nessa alterao e, considerando que se trata de formas de compreender, pode-se dizer que acontecem rupturas epistemolgicas. As rupturas epistemolgicas esto ligadas ao conceito de obstculo epistemolgico e envolvem mudanas na forma de compreender um conhecimento. De fato, nos processos matemticos trabalhados at o final do Ensino Mdio, a Matemtica utilizada tem um carter notadamente contnuo e as solues computacionais tm um carter discreto, em que o tempo e o universo finitos devem ser considerados. As formas de representao utilizadas na elaborao dos algoritmos podem ser mais uma fonte de obstculo, pois mobilizam registros de representao semitica diferentes daqueles utilizados pela linguagem natural. Com o intuito de lanar luz s nossas idias, buscamos informaes sobre os assuntos relevantes ao tema em questo em diversas reas, analisando diversos trabalhos tanto da rea de Educao Matemtica, quanto da rea de Informtica, bem como da rea de Educao e Informtica. Neste levantamento, pesquisamos dissertaes de mestrado e teses de doutorado (COSTELLOE, 2004, 2004b), (GUIMARES, 1995), (BROLEZZI, 1996), (FRIEDMANN, 2003), (TRINDADE, 1996), disponveis no stio da Capes e de diversas universidades brasileiras e estrangeiras, entre outras, listadas nas referncias bibliogrficas ao final deste trabalho. Considerando o que diz Bruyne (1991) sobre a epistemologia estabelecer as condies de objetividade dos conhecimentos cientficos, dos modos de observao e de experimentao, examinando igualmente as relaes que as cincias estabelecem entre as teorias e os fatos, escolhemos como base terica as idias de Bachelard (1938), Brousseau (1986) e Duval (1995). Esta escolha se deu em funo da noo de obstculo epistemolgico ter sido definida por Bachelard, e aplicada ao ensino de Matemtica por Brousseau. J Duval, elaborou uma teoria sobre aprendizagem, com base em registros de representao semitica. Segundo Schubring (2002), Bachelard estabeleceu a sua concepo de obstculo

13

epistemolgico a fim de investigar o pensamento cientfico, tendo em vista refletir sobre a histria da cincia. Seus trabalhos fazem uma anlise da formao do conhecimento. Neste trabalho, consideramos que os obstculos no ensino de algoritmos, podem estar relacionados formao e adaptao de um conhecimento, consequentemente podem envolver tambm rupturas epistemolgicas, pois para pensar computacionalmente necessrio romper com o pensamento intuitivo para sua devida formalizao, especialmente no caso das estruturas de repetio, que ser um dos nossos focos nesta pesquisa, bem como outras estruturas prprias do pensamento computacional. Schubring (2002) no partilha da opinio de Brousseau com relao ao fato dos obstculos epistemolgicos serem incontornveis, pois se assim fosse, como se dariam os progressos cientficos? Entretanto, ele considera que diversos aspectos na teoria criada por Brousseau podem contribuir para o processo de identificao dos obstculos. Glaeser (1981), por outro lado, props a interpretao de obstculo como dificuldade, e Sierpinska (1985) construiu uma abordagem prpria, em que o papel dos obstculos epistemolgicos o de auxiliar na melhor compreenso da Matemtica, o que poderamos adaptar para o caso dos algoritmos. Em 1988, em Quebec, aconteceu um simpsio internacional: Obstacles et conflits cognitifs (Obstculos em Conflitos Cognitivos), (SCHUBRING, 2002), mas, mesmo com a participao de muitos especialistas, no foi possvel responder a perguntas como, por exemplo: como reconhecer um obstculo de carter epistemolgico? Ou ainda, possvel evit-los no ensino/aprendizagem? Como ultrapass-los? A escolha da rea de Educao Matemtica para insero deste trabalho se deu em funo da proximidade de ambos, considerando que a Matemtica amplamente utilizada para o ensino de algoritmos computacionais e que eles, no fundo, tem um carter matemtico, alm de que os desafios enfrentados pelos alunos podem ser comparados queles enfrentados em outras disciplinas que envolvem abstrao e raciocnio, necessrios para a aprendizagem de muitos conceitos matemticos. Entretanto, a utilizao de computadores abre novas perspectivas para a prpria Matemtica, ao vincul-la a outras cincias, para as quais o processamento e o tratamento de dados, bem como os clculos, so fundamentais para a resoluo de vrios problemas. Segundo Friedmann (2005), a informatizao de diversos setores da sociedade coloca

14

o contedo discreto da Matemtica em evidncia, levantando uma discusso para a incluso dos mesmos no Ensino Fundamental. Problemas que envolvam a matemtica discreta devem ser includos no ensino, de forma que o aluno exercite a forma algortmica de pensar, unindo abstrao, tcnicas matemticas e o fator temporal, a fim de viabilizar futuras solues computacionais para os problemas. difcil separar as contribuies oriundas da Lgica e da Matemtica para o desenvolvimento do pensamento algortmico, que foram fundamentais para o status atual dos algoritmos e computadores. Friedmann (2005, p. 20) salienta que,
Resgatar parte das contribuies da Matemtica Cincia da Computao um processo interessante sob o ponto de vista do ensino, pois possibilita a valorizao de alguns conhecimentos matemticos e como eles evoluram a ponto de ganharem vida prpria em outra cincia. Esse processo serve tambm para apontar aquelas deficincias que dificultam o entendimento em fazer conexes entre conceitos matemticos e como eles so usados no estudo dos algoritmos, pois existem semelhanas e diferenas ao se transladar esses conceitos para a Algortmica. O fato dessas deficincias no ensino da Matemtica no serem abordadas, um obstculo para o entendimento do aluno sobre o que pensar de forma algortmica e sobre o que um algoritmo. Esses questionamentos so relevantes em um mundo informatizado, pois esto relacionados com a resoluo de problemas e com as limitaes impostas pela realidade fsica dos computadores, os quais utilizam procedimentos algortmicos para executar tarefas, sejam elas simples ou complexas.

Questes ligadas ao ensino e aprendizagem tm sido objeto de estudo para pesquisadores das mais diversas reas, porm na rea de Cincias Exatas, ganharam destaque nos ltimos anos, e muitos trabalhos tm sido realizados na tentativa de minimizar as deficincias encontradas. O que costuma ocorrer um ciclo vicioso. Os engenheiros que optam pelo magistrio normalmente reproduzem a metodologia de ensino tradicional a que foram submetidos. No melhor caso, alguns procuram informalmente melhorar seu desempenho. So poucos os que tm uma formao didtico-pedaggica slida. Segundo Correia & Cheng (2001, p. 199),
nas reas de engenharia os professores so, geralmente, profissionais de reconhecida competncia tcnica sem que apresentem formao docente que os insira no ambiente pedaggico ativo e possibilite a reflexo sobre seu trabalho, de modo a contribuir com anlises crticas tambm dos aspectos humano, social e poltico na produo de novas tecnologias.

Em vista da discusso anterior, este trabalho visa procurar subsdios para:

15

Identificar e analisar algumas das principais dificuldades na aprendizagem de programao, mediante uma investigao das razes da dificuldade em transpor procedimentos formulados de forma matemtica (contnua) para sua correspondente soluo algortmica (discreta), que possa ser executada por um computador.

Para tanto, assumiremos as seguintes hipteses: A discretizao do raciocnio, ou seja, a elaborao de um raciocnio de forma discreta para um processo de natureza contnua, um obstculo epistemolgico aprendizagem. A identificao e manipulao da estrutura de repetio, que esto diretamente relacionadas a essa discretizao, so obstculos epistemolgicos para a aprendizagem de algoritmos. A passagem de um tipo de registro de representao semitica, a saber, a linguagem natural, para outro, a linguagem algortmica, comporta um obstculo aprendizagem de algoritmos.

16

CAPTULO 2 O Algoritmo Conceitualizao e Evoluo Histrica A primeira vez que um algoritmo foi escrito para um computador foi em 1842, como mencionado no captulo anterior, por Ada Byron, para a mquina desenvolvida por Charles Babbage, porm como Babbage no concluiu sua mquina, este algoritmo nunca foi implementado. Entretanto, a idia de algoritmo habitava a conscincia dos matemticos desde o sculo XVII, especialmente em Leibniz. Todavia, foi na dcada de 1930 que essa idia teve vrias definies lgicas diferentes que originaram a moderna Cincia da Computao, entre elas, as que foram dadas por Gdel, Church, Post e Turing. H mais de sessenta anos, Kurt Gdel, Alonzo Church, Emil Post e Alan Turing transformaram o conceito de algoritmo que era familiar e intuitivo, mas irremediavelmente obscuro, em um conceito tratvel formalmente. 2.1 O Advento do Algoritmo e suas Relaes com a Matemtica Leibniz formulou h mais de dois sculos o projeto de criao de uma escrita universal, na qual todas as idias compostas seriam expressas por meio de sinais convencionais para idias simples, de acordo com regras fixas. Um exemplo aperfeioado no sculo XIX por Peano, a definio de algo complicado, como a adio, em termos de algo mais simples como a sucesso. Neste caso, um objeto mental foi definido em termos de um objeto mecnico. Pode-se dizer, ainda, que algo infinito foi definido em termos de algo finito, enfim, algo mais complexo foi definido em termos de algo mais simples. Regras elaboradas pela mente humana e baseadas em sinais e smbolos foram retratadas na forma de um algoritmo. Porm, apenas no sculo XX que o conceito de algoritmo foi levado totalmente conscincia. A especificao de um procedimento de deciso num sistema formal um exemplo claro de algoritmo; o clculo sentencial um exemplo de sistema formal, e, dessa forma, o mtodo das tabelas verdade um exemplo de algoritmo. Muitos sistemas matemticos so de natureza mecnica, embora, como qualquer mquina, impregnados com a inteligncia de seu criador. O primeiro conceito formal que correspondeu noo de calculabilidade efetiva foi

17

dado por Gdel em 1931. Neste ano Gdel desenvolveu a teoria das funes recursivas, a classe de funes usada por ele, foi a das funes primitivas recursivas, definidas anteriormente por Dedekind em 1888 (DEDEKIND, 1969). Gdel (1990) definiu assim a recursividade: As funes recursivas primitivas so precisamente aquelas funes aritmticas que podem ser derivadas do ncleo da recursividade por meio de um nmero finito de operaes mecnicas especficas (ISRAEL, 2002, p. 185). Isso tornou possvel ao matemtico falar sobre objetos infinitos a partir de regras finitas de construo. Em 1936, com Alonzo Church, as funes recursivas que Gdel introduziu nos seus estudos sobre os teoremas da incompletude do vez ao conceito de algoritmo. O clculo estava frente das idias de seu tempo, e realmente encarnou em vrias linguagens funcionais de computador, considerando que seu reticulado de iteraes no era mais difcil para um computador do que qualquer outra operao mecnica (SOBRINHO, 1987). A mquina de Turing, concebida pelo matemtico Alan Turing, introduziu a idia de uma mquina imaginria, o que tornou possvel posteriormente projetar e construir os primeiros computadores digitais. Esta mquina tanto um projeto arquitetnico quanto um planejamento de procedimentos. A arquitetura descreve as quatro partes da mquina, que so comuns a todas as mquinas de Turing, sendo composta por uma fita, um conjunto de smbolos, uma cabea de leitura e um conjunto finito de estados. Os procedimentos compreendem as instrues, e embora sejam escritas no mesmo cdigo e tenham o mesmo formato, variam de mquina para mquina (SAGASTUME, 2003). A razo despida de seu mistrio por meio de uma srie de passos mecnicos. Revelou-se que um universo totalmente abstrato est sob o controle de uma operao mecnica (BERLINSKI, 2002). Porm, cabe aqui ressaltar que muitos processos so essencialmente humanos e, assim, acessveis somente mente humana. Gdel introduziu as funes recursivas no discurso lgico e Church, o mecanismo do clculo lambda. Essas eram abstraes matemticas, suas conexes com o conceito de algoritmo foram marcadas por uma cadeia longa e complexa de definies. No se pode afirmar se a mquina de Turing tornou possvel, ou provocou o aparecimento da tecnologia, ou se ela teria surgido de qualquer forma. O que se sabe que a mquina de Turing representou um papel muito importante na histria do pensamento, fornecendo um modelo matemtico simples e inteligente da velha idia de algoritmo.

18

Emil Post, contemporneo de Turing, antecipou vrios fatos e descobertas com relao ao pensamento computacional. Seu trabalho resultou no projeto de uma mquina, com as mesmas idias de Turing, a diferena entre elas que Post projetou um trabalhador no lugar da cabea de leitura da mquina de Turing. Sua mquina era totalmente simblica; ele antecipou no tanto o computador, mas, sim, o software. Tanto Turing quanto Post criaram mquinas com o intuito de representar o mundo do pensamento, ou parte dele. A mquina de Turing um modelo matemtico abstrato, formado por um alfabeto finito de smbolos, por uma fita de comprimento ilimitado, dividida em pequenas unidades sucessivas (clulas ou casas) e um mecanismo com um nmero finito de estados. Esse mecanismo capaz de ler, escrever ou apagar um smbolo em uma clula dada, podendo substitu-lo por outro, no colocar nada no seu lugar ou no alterar nada. A mquina tambm pode permanecer em posio imvel ou deslocar a fita uma casa para frente ou para trs. As calculadoras de Pascal, de Babbage e o Colossus, assim como os computadores modernos, so concretizaes da mquina de Turing. As funes recursivas de Gdel eram precisamente as funes que podiam ser realizadas pela converso lambda de Church, e as operaes realizadas por essas funes eram precisamente as que podiam ser executadas por uma mquina de Turing ou por uma mquina de Post. A chamada tese de Church no um teorema susceptvel de demonstrao matemtica, porm tem um estatuto de crena, cuja veracidade baseada em evidncias. Ela afirma que o que pode ser feito efetivamente, pode ser feito por uma mquina de Turing. A tese de de Church, tambm chamada de Church-Turing, pode ser vista como uma tentativa para a delimitao da extenso e dos limites da computao abstrata. Para Hao Wang (1974), baseado em um comentrio proferido por Gdel, a tese de Church foi uma das grandes conquistas da lgica desde os anos trinta, construindo uma definio absoluta de processo mecnico, tambm chamado de procedimento efetivo ou algoritmo, evidenciando seu carter epistemolgico. Wang afirma, ainda, que este foi o nico conceito epistemolgico bsico relacionado com matemtica que fomos capazes de iluminar at agora. Gdel faz meno ao conceito de computabilidade dado pela tese de Church, porque o mesmo no depende de nenhum formalismo, considerando que vrias abordagens, j citadas, tentaram caracterizar este conceito e obtiveram resultados que podem ser

19

considerados equivalentes. A tese de Church se destacou, porque se baseou na anlise filosfica do processo de computao humana, ou seja, tratou de analisar o mecanismo de raciocnio utilizado pelos seres humanos, levando em considerao o fato da experincia humana ser informal, bem como a experincia matemtica ser precisa. Essencialmente, a diferena mais aparente entre o mundo do computador, pelo menos na atualidade, e o mundo real, em que supomos que o pensamento humano discorre, o carter discreto do primeiro, contra o carter contnuo do segundo. Uma situao anloga ocorre na relao entre o pensamento matemtico e o pensamento computacional. O computador reside em um mundo no qual o tempo representado pelos nmeros naturais inteiros, assim como os algoritmos. Pode-se dizer que um computador um dispositivo, e uma mquina de Turing, um artefato intelectual. Para compreender o que um algoritmo est fazendo, necessrio compreender como o processo discreto que est por trs dessa ao. Sobre essas diferenas, destaca-se o trabalho de Friedmann (2005), Algumas Questes sobre Algoritmos, Modelagem e Ensino, resultado parcial de sua tese de doutorado. Em seu trabalho ela argumenta que:
Os mtodos matemticos para resoluo de problemas exigem rigor matemtico no sentido de convergncia para uma soluo, mas no h, sob o ponto de vista estritamente matemtico, uma preocupao com o tempo de execuo do algoritmo. Essa preocupao um dos enfoques e uma das contribuies da Algortmica2 para o tratamento de problemas e sua resoluo; a questo do tempo tem uma importncia significativa para o agente computacional que vai resolver o problema, no caso o computador, que na sua concepo uma mquina abstrata, mas que operacionalmente est sujeito a trabalhar dentro de um intervalo de tempo finito. Alm da questo do tempo no tratamento de diversos problemas, surge com a Algortmica e com a informtica, uma maior valorizao da Matemtica Discreta. (FRIEDMANN, 2005, p. 2)

Ela alerta para a necessidade de preparar alunos e professores para lidar com problemas que envolvem questes algortmicas, no mais como um apndice da modelagem do problema, mas como uma parte fundamental da modelagem, ressaltando as mudanas na maneira de encarar os problemas, de forma a aliar o fator tempo ao mtodo matemtico de resoluo. Observa-se que uma forma algortmica de pensar associada resoluo de problemas pressupe sempre uma soluo, ou seja, para qualquer entrada deve haver pelo menos uma

Friedmann entende a Algortmica como sendo o campo do conhecimento que se dedica ao estudo sistemtico e analtico de algoritmos.

20

sada, que possa ser considerada como uma soluo para o problema. Para Friedmann (2005), existe um monitoramento do processo envolvido na forma algortmica de pensar. Entretanto, no caso da resoluo de problemas, para que uma sada seja considerada uma soluo, ela deve estar adequada ao contexto em que a situao est inserida. A maneira algortmica de pensar relacionada resoluo de problemas (tericos ou prticos) contextualizada, sendo que o contexto um tipo de controle (monitoramento) sobre a situao. Na matemtica escolar, o discreto e o contnuo so associados aos processos bsicos de contar e medir e no a formas de pensar, o que pode ser um obstculo epistemolgico s novas formas de pensar. Segundo Brolezzi (1996), no existe uma distino cognitiva entre contar e medir e a relao entre ambas requer um estudo mais aprofundado. A medida tem por fundamento a idia de comparao e subsequente ordem; aparentemente o processo de contar mais complexo que o de medir (do ponto de vista cognitivo), o que pode ser um indcio de que o pensamento algortmico, que de carter discreto, teria uma lgica diferente e mais complexa que a do pensamento matemtico contnuo. Analisando o exemplo dado por Brolezzi (1996), considere as sequncias de pontos seguintes, 1. 2. Observamos que no necessrio contar o nmero de pontos para saber que a segunda sequncia tem mais pontos que a primeira. Efetuamos um raciocnio que mede automaticamente o comprimento das duas sequncias e deduz o resultado. A maneira como a Matemtica tem sido ensinada no Ensino Fundamental e Mdio, sem dvida traz consequncias para o aprendizado de algoritmos no Ensino Superior, porm a sua anlise foge do escopo deste trabalho.

2.2 Consideraes Sobre a Tese de Church-Turing Retomando as observaes apresentadas na seo anterior e fazendo uma incurso pela histria da Matemtica, cabe ressaltar que Hilbert, fundador da Escola Formalista, acreditava que todo problema matemtico bem definido deve ser necessariamente possvel de exata soluo, quer na forma de alguma resposta concreta pergunta formulada, quer pela prova da impossibilidade de qualquer soluo, e, com isto, o necessrio fracasso de todas as tentativas

21

feitas por resolv-lo (SOBRINHO, 1987). Em 1928, Hilbert e Ackermann diferenciaram o clculo dos predicados de primeira ordem do de ordem superior. No Congresso de Bologna, Hilbert apresentou quatro problemas em aberto, sendo o ltimo deles o problema da completude do clculo de predicados de primeira ordem. Em 1930 e 1931, respectivamente, este ltimo problema foi resolvido por Gdel afirmativamente, enquanto que negativamente para o clculo de ordem superior. Os trabalhos de Gdel, que se seguiram, tiveram grande repercusso e representaram o limiar de uma nova era na Lgica Matemtica. Outro problema interessante, segundo Sobrinho (1987), dentro da temtica hilbertiana era o problema da deciso. Parecia claro, para Hilbert, que com a soluo desse problema seria possvel, em princpio, solucionar todas as questes matemticas de forma puramente mecnica. Esse problema pode ser traduzido para o caso dos algoritmos, como a necessidade de decidir se o algoritmo ir terminar em um tempo finito. Analisando o seguinte trecho de um algoritmo, pode-se notar que ele iria ser executado infinitamente, pois a condio de parada nunca ser realizada. 1. x = VERDADEIRO 2. enquanto x = VERDADEIRO 3. escreva (Hoje est sol!)

4. fim_enquanto. O prximo passo rumo a novas concepes se deu nos trabalhos de Alonzo Church, no Instituto de Estudos Avanados em Princeton. Church trabalhava na soluo do problema da Indecidibilidade com Kleene, sua abordagem era feita por meio das funes -definveis, introduzidas por ele e Kleene. As funes -definveis foram estudadas no -clculo, que o sistema precursor da linguagem de programao LISP. Em 1933, Gdel visitou o Instituto, proferindo seminrios, assistidos por Kleene. Nessa ocasio, Gdel introduziu a classe das funes recursivas gerais, e em conversa com Church, levantou a hiptese da identidade entre a classe das funes computveis por procedimentos mecnicos, e das recursivas gerais. Posteriormente, Church publicou um importante artigo no The American Journal of Mathematics, em que demonstrou a identidade entre a classe das funes recursivas gerais e a das funes -definveis, e enunciou sua famosa tese, chamada por Kleene de Tese de Church,

22

mediante a qual a classe das funes computveis, por procedimentos mecnicos, coincide com a classe das funes -definveis. Com a tese de Church, o conceito vago e intuitivo de procedimento mecnico ganha o status de entidade matemtica precisamente definida, e, como aplicao, Church demonstrou que o clculo de predicados indecidvel, resolvendo assim o Problema da Indecidibilidade em artigo publicado em 1936 no primeiro nmero do The Journal of Symbolic Logic, sob o ttulo A note on the Entscheidungsproblem(CHURCH, 1936)). Gdel afirma que o conceito de computabilidade dado pela tese de Church independente de um formalismo particular, pois diversas abordagens foram testadas para caracterizar esse conceito, e todas obtiveram resultados equivalentes. Alm das funes definveis de Church-Kleene ou das recursivas gerais de Gdel-Herbrand, cabe destacar as definies equivalentes de Alan Turing (1936), Emil Post (1943), S. C. Kleene (1952) e, finalmente, J. C. Shepherdson e H. E. Sturgis (1963). De todas essas definies, a que teve maior relevncia para a teoria da computao foi, sem dvida, a do matemtico ingls Alan Turing. Turing teve contato com o problema da indecidibilidade durante um curso sobre os fundamentos da matemtica, ministrado pelo toplogo Max Newman. Naquela ocasio, este problema foi citado como uma das principais questes em aberto nos fundamentos da matemtica, e a expresso procedimento mecnico perturbou demasiadamente o jovem Turing no ano de 1935. Durante aquele ano, Turing trabalhou no problema e produziu sua obra mais importante, intitulada On computable numbers with an application to the

Entscheidungsproblem, em que analisa o ato de computar do computador humano. Como resultado, forneceu argumentos mediante os quais todas as computaes podem ser efetuadas por suas mquinas, chamadas mais tarde de mquinas de Turing. Demonstrou a inexistncia de uma soluo positiva para o problema da decidibilidade. Turing submeteu seu manuscrito apreciao de Newman em meados de 1936; porm, em paralelo a seus trabalhos, nos Estados Unidos, Alonzo Church terminou seu artigo para publicao. Nesse artigo, Church antecipava vrios resultados de Turing. Mesmo assim, com a influncia de Newman o artigo de Turing foi publicado. Neste artigo estava formulada a tese de Church-Turing, que identifica as funes computveis s funes -definveis, ou s

23

Turing-computveis, ou s funes recursivas gerais de Gdel- Herbrand. A definio de Mquina de Turing resultado de uma tentativa direta para formular matematicamente a noo de calculabilidade efetiva, enquanto que diversas outras noes foram originadas de maneiras distintas, e posteriormente associadas s funes efetivamente calculveis. Segundo Wang (1974), o que Turing fez foi analisar o ato humano de calcular e, assim, chegar a um nmero de operaes simples que so de natureza obviamente mecnica. Kleene (KLEENE, 1976), observa que todos os exemplos de funes efetivamente calculveis e todas as operaes utilizadas para definir tais funes a partir de outras cuja questo j tenha sido investigada, deram origem a funes recursivas gerais. Segundo Turing (1936), so dois os princpios que regem os processos de computao, tornando-os mecnicos: 1. O princpio de determinao: o que o computador vai executar tem que ser predeterminado, ou seja, o comportamento do computador em cada momento fica determinado pelos smbolos que est observando, e pelo seu estado mental naquele momento. 2. O princpio da finitude: o nmero de estados mentais a serem considerados deve ser finito, assim como o nmero de smbolos. O termo estado mental utilizado para representar a capacidade que o ser humano tem de, a cada estgio de um dado raciocnio, escolher qual o passo a ser dado em seguida, pois o nmero de itens que a mente capaz de armazenar finito a cada momento. A anlise de Turing nos leva impreterivelmente sua concluso, que pode ser resumida como: a computabilidade efetiva sinnino de calculabilidade por meio de suas mquinas. Gdel trabalhou muito tempo com questes filosficas relativas ao contraste entre mentes e mquinas. Como concluso, chegou aos seguintes resultados: Para ele a mente humana incapaz de mecanizar todas as intuies matemticas, fato este que poderia ser chamado de incompletabilidade da Matemtica, intimamente relacionado com o problema da incompletude. Outro resultado afirma que, ou a mente humana consegue ultrapassar qualquer mquina ou, ento, existem questes da teoria dos nmeros indecidveis para a mente humana. Entretanto, Gdel, assim como Hilbert, se

24

recusava a admitir o comportamento absolutamente irracional, de acordo com o qual a mente seria capaz de formular questes que, pela sua prpria natureza, lhe seja impossvel responder. A computao atual baseada basicamente na idia de Turing e posterior adaptao implementada por Von Neumann, o que certamente implica limitaes. Todas as linguagens de programao, de uso geral, precisam ser traduzidas para a correspondente representao por meio de uma mquina de Turing. Isso significa que qualquer problema resolvido, utilizando uma determinada linguagem, deve poder ser resolvido em uma mquina de Turing. Ainda cabe ressaltar que, para que a linguagem possa ser considerada completa, ela deve solucionar todos os problemas que a mquina de Turing soluciona. As limitaes que a mquina de Turing apresenta so bem conhecidas e supostamente controladas. Podemos dizer que as limitaes da computao so, na verdade, limitaes do prprio sistema axiomtico e sem mudanas significativas no paradigma da Matemtica, impossvel conceber uma mquina de computar mais poderosa que o computador digital. As linguagens de programao so apenas outras lnguas que nos permitem conversar com computadores na forma de mnemnicos, sem ter que us-los diretamente. No entanto, tudo aquilo que quisermos fazer est atrelado aos mnemnicos, e assim sendo quanto mais distante a linguagem estiver de uma mquina de Turing original, mais trabalhoso o processo de traduo entre ambas (ERDTMANN, 2007).

2.3 O Conceito de Algoritmo Podemos dizer que resolver um problema computacional, ou melhor, uma classe de problemas, significa encontrar uma mquina de Turing, ou uma funo recursiva, ou um mecanismo utilizando clculo lambda, ou finalmente um algoritmo que solucione o problema em questo. Neste trabalho, utilizaremos a definio operacional do conceito de algoritmo introduzida por Donald Knuth (1968). Para ele, um algoritmo um conjunto de regras que, para um conjunto de entradas, ir produzir uma sada especfica. Ou seja, para cada sistema de dados (entradas), ele realiza o processamento e, depois de um nmero finito de passos, chega a um resultado, podendo ser traduzido para uma linguagem de programao e executado por uma mquina.

25

O algoritmo de Euclides3 um bom exemplo de algoritmo. Segundo Knuth (1968), nos anos 1950, a palavra algoritmo era praticamente sinnimo de algoritmo de Euclides. Podemos descrever o algoritmo de Euclides da seguinte forma: Dado dois nmeros inteiros positivos a e b, e considerando que a b, se o resto da diviso de a por b for igual a zero, o MDC o divisor (b). Caso contrrio, realize uma nova diviso entre o divisor (b, que passa a ser o dividendo) e o resto (que passa a ser o divisor). Se o resto dessa nova diviso for igual a zero, o MDC igual a esse novo divisor. Caso contrrio, realize uma nova diviso entre o novo dividendo e o novo divisor, se o resto for igual a zero, o MDC igual a esse novo divisor e assim sucessivamente. Este processo est exemplificado abaixo: Exemplo 1: MDC ( 90, 36) Passo 1: 90 div 36 Passo 2: 36 div 18 quociente = 2; resto = 18 quociente = 2; resto = 0 MDC = 18

Exemplo 2: MDC (81, 64) Passo 1: 81 div 64 Passo 2: 64 div 17 Passo 3: 17 div 13 Passo 4: 13 div 4 Passo 5: 4 div 1 quociente = 1; resto = 17 quociente = 3; resto = 13 quociente = 1; resto = 4 quociente = 3; resto = 1 quociente = 4; resto = 0 MDC = 1

Para Knuth (1968, p.2), este procedimento de clculo pode ser sumarizado da seguinte forma:
Dados dois nmeros inteiros positivos a e b, encontre o mximo divisor comum (ou seja, o maior inteiro positivo que divide a e b). passo 1: [Clculo do resto] Divida a por b. Seja r o resto; passo 2: [Verifique se o resto nulo] Se r = 0, o algoritmo termina e o valor do MDC b; passo 3: [Troca] Faa a = b, b = resto e volte para o passo 1.

O trecho de algoritmo a seguir implementa o clculo do MDC de Euclides em pseudocdigo, utilizando o processo iterativo.

Exemplo 1 - Algoritmo de Euclides utilizando o Processo Iterativo


Funo mdcDeEuclides (dividendo: inteiro, divisor: inteiro): inteiro

O algoritmo de Euclides busca encontrar o MDC (Mximo Divisor Comum) entre dois nmeros inteiros diferentes de zero. um dos algoritmos mais antigos conhecidos, desde que apareceu na obra Elementos de Euclides por volta de 300 a.C. (MILIES, 2003).

26

inicio inteiro c; enquanto resto (dividendo, divisor) 0 //calcula o resto da diviso de dividendo por divisor c resto (dividendo, divisor); dividendo divisor; divisor c; fim-enquanto retornar divisor fim-funcao.

Entretanto, h uma maneira mais concisa para calcular o MDC, utilizando o processo Recursivo, como mostra o exemplo 2.

Exemplo 2 - Algoritmo de Euclides utilizando o Processo Recursivo


Funo mdcDeEuclides (dividendo: inteiro, divisor: inteiro): inteiro // calcula o mdc pelo mtodo de Euclides usando recursividade inicio se divisor = 0 entao //Se r = 0, o algoritmo termina e o valor do MDC b

mdcDeEuclides dividendo senao mdcDeEuclides mdcDeEuclides (divisor, resto (dividendo, divisor)) fim-se //a operao resto (dividendo, divisor), resulta no resto da diviso de dividendo por divisor fim-funcao.

Observa-se que o algoritmo recursivo est mais prximo do algoritmo matemtico, ele praticamente a prpria definio do MDC, ao passo que para transformar este mesmo algoritmo na verso iterativa, necessrio discretizar os processos de repetio e condicionais que esto implcitos no modelo matemtico. Resumindo, as idias de Knuth (1968), para que um mtodo, um roteiro, o u u m procedimento seja considerado um algoritmo, ele deve possuir clareza, preciso, um nmero finito de instrues e deve ter a sua execuo terminada para quaisquer valores de dados.

27

CAPTULO 3 O Ensino de Algoritmos e sua Relao com a Educao Matemtica A seguir, so apresentados alguns trabalhos que deram subsdios para a nossa pesquisa: o primeiro aborda o ensino de algoritmos em cursos de computao, o segundo analisa os obstculos epistemolgicos no desenvolvimento do pensamento algbrico e o ltimo traz uma proposta para a incluso de problemas discretos no currculo de Matemtica, nvel fundamental e mdio, com o objetivo de desenvolver o raciocnio lgico computacional. O primeiro trabalho foi desenvolvido pela professora Lisbete Madsen Barbosa (BARBOSA, 2001), como dissertao de mestrado na rea de Ensino de Matemtica, na PUC de So Paulo. O que motivou a realizao do trabalho foi a observao das dificuldades experimentadas pelos estudantes na aprendizagem da lgica de programao, representada por meio de algoritmos. Assim como ns e muitos outros pesquisadores, a autora observou que apesar de muitos alunos conseguirem descrever como resolver um problema, apresentavam dificuldade em conceber a soluo computacional (algortmica). O objetivo do trabalho foi investigar dois pontos principais: 1. Analisar a produo de algoritmos em linguagem natural, feita por estudantes de cursos iniciais, em algumas situaes didticas. 2. Comparar essas produes com as representaes que podem ser feitas em pseudocdigo, para os mesmos algoritmos descritos pelos estudantes. Concordamos com Barbosa (2001) que o processo de ensino-aprendizagem de desenvolvimento de algoritmos traz questes similares s do ensino-aprendizagem de Matemtica, porque, em sua essncia, ambos tratam de resoluo de problemas e utilizam representaes simblicas peculiares. Uma das hipteses levantadas pela autora citada que
as dificuldades encontradas pelos estudantes na aprendizagem de algoritmos podem ter origem em obstculos no apenas relacionados conceituao. Fenmenos ligados percepo, observao, representao semitica, estrutura da mente podem prejudicar ou interromper a aprendizagem. (BARBOSA, 2001, p.17)

Considera-se que a elaborao de um algoritmo compreende duas etapas: a concepo e a representao. Como a descrio do algoritmo feita em uma linguagem que no

28

natural, acredita-se que o seu desenvolvimento mobilize dois registros de representao semitica que, segundo Duval (1995), so necessrios na formao dos conceitos. Para analisar as representaes feitas pelos estudantes em linguagem natural e compar-las com as representaes feitas em pseudocdigo, a pesquisadora elaborou uma sequncia didtica cujo foco principal foi o processo de desenvolvimento do algoritmo. Os experimentos foram realizados com alunos iniciantes no estudo de algoritmos e pelos resultados obtidos concluiu-se que, normalmente, no houve congruncia entre as duas representaes. As situaes didticas foram baseadas principalmente nos trabalhos de Brousseau (1986) e Artige(1988). Segundo Barbosa (2001, p. 18 ), a criao e a representao de um algoritmo no podem ser consideradas como fases consecutivas de uma ao, uma vez que o algoritmo se pe a descoberto a partir de tratamento de sua representao. Considerando que um algoritmo pode ser representado de diferentes formas, como exposto na seo 4.5 Formas de Representao de um Algoritmo e diante do fato de muitos alunos afirmarem que sabem resolver o problema informalmente, mas no conseguem conceber a soluo algortmica, Barbosa (2001) observa que este pode ser um indcio de que a dificuldade pode estar relacionada com a representao. Logo, a representao de um algoritmo pode constituir um obstculo a sua elaborao. O sistema de representao de algoritmos mais utilizado no ensino atualmente o pseudocdigo. Esta preferncia pode ser vista na maioria dos livros didticos e tcnicos sobre o assunto. J a linguagem natural no aparece em nenhuma etapa desse processo. Barbosa (2001) sentiu a necessidade de fazer a representao dos algoritmos em linguagem natural, com o objetivo de recuperar decises feitas durante o desenvolvimento do algoritmo, possibilitando reflexes, generalizaes e outras particularizaes. Porm, as dificuldades com o pseudocdigo persistiram, o que levou a pesquisadora seguinte suposio: se de posse de uma estratgia para a resoluo de um problema, um estudante consegue fazer uma representao do algoritmo em linguagem natural, mas tem dificuldades em fazer a representao em pseudocdigo, um obstculo a essa descrio pode ser a converso entre registros de representao semitica diferentes. interessante observar que estudos na rea de Educao Matemtica mostram que a passagem de uma representao para outra, muitas vezes no evidente para a maioria dos

29

alunos, o que apontado por Duval:


A compreenso conceitual, a diferenciao e o domnio das diferentes formas de raciocnio, as interpretaes hermenutica e heurstica dos enunciados esto intimamente ligados mobilizao e articulao quase imediata de muitos registros de representao semitica. A converso de representaes depende dessa coordenao. (DUVAL, 1995, p. 7)

As representaes semiticas em Matemtica so indispensveis comunicao e tambm so necessrias ao desenvolvimento da prpria atividade matemtica. Da mesma forma que na Matemtica os algoritmos fazem referncia a objetos que no so diretamente acessados pelos nossos sentidos ou por instrumentos. O acesso ao conhecimento de um tipo abstrato de dados s pode acontecer com o auxlio de alguma representao, da mesma forma como acontece, por exemplo, com o objeto funo, na Matemtica. Por conta dessas semelhanas, a autora considera que as dificuldades encontradas no ensino-aprendizagem de algoritmos podem estar relacionadas com a questo da representao, sendo o ponto central da sua investigao a converso do registro em linguagem natural para o registro em pseudocdigo. O trabalho de pesquisa se restringiu ao aspecto da utilizao da linguagem natural, intermediria para a descrio de algoritmos em pseudocdigo, e sups que os estudantes no estudaram desenvolvimento de algoritmos anteriormente. Os procedimentos de pesquisa seguiram os princpios da engenharia didtica, conforme (ARTIGUE, 1988), envolvendo aproximadamente cento e dez alunos, separados em grupos

de at cinco participantes. As atividades propostas para a realizao dos experimentos podem ser caracterizadas como situaes adidticas, na forma de situaes-problema. A situao-problema traz um contrato didtico diferente do convencional. Segundo (BROUSSEAU, 1986), o contrato didtico estabelece convenes que devem gerenciar os comportamentos do professor e dos alunos. Deve-se ressaltar que o campo de saber em jogo nas situaes propostas o dos problemas computacionais. A organizao da sequncia didtica, bem como de uma sequncia de situaes-problema, torna necessrias escolhas didticas que devem ir ao encontro das etapas ao, formulao e validao. As atividades preparadas foram propostas de forma que os alunos tivessem a oportunidade de criar procedimentos que representassem a noo de algoritmo. Como concluses foram encontradas diferenas significativas entre a linguagem natural

30

utilizada pelos alunos e seu correspondente pseudocdigo, principalmente nas estruturas de repetio. Dos vinte e um grupos que concluram as atividades relativas estrutura de repetio, apenas doze apresentaram alguma forma intuitiva de repetio, porm nenhum se preocupou em estabelecer o nmero de vezes que o processo deveria ser repetido. Os resultados verificados evidenciam uma distncia considervel entre as duas representaes. Sugeriu-se um estudo mais aprofundado da converso entre a linguagem natural e o pseudocdigo, considerado importante para o processo ensino-aprendizagem de algoritmos. O segundo trabalho foi desenvolvido pela professora Elsa Malisani (MALISANI, 1999). Segundo Malisani, na fase de transio entre o pensamento aritmtico e o pensamento algbrico em que se encontra a passagem de um campo semitico significativo, a saber, a aritmtica, e a tentativa de introduzir uma nova linguagem, a lgebra, relativa a uma certa classe de problemas, a resoluo de equaes. Os obstculos epistemolgicos esto relacionados com esta passagem. Se considerarmos os algoritmos computacionais, observamos dificuldades em transpor procedimentos matemticos aprendidos no Ensino Fundamental e Mdio em algoritmos formais que solucionem computacionalmente o problema, o que tambm envolve uma mudana de representao. Malisani (1999) apresentou um resumo dos erros que os alunos tm realizado ao resolver equaes e problemas algbricos e os conceitos necessrios na fase de transio entre o pensamento aritmtico e o pensamento algbrico. Malisani (1999) entende a noo de erro de acordo com Brousseau (1986), em que o erro no efeito da ignorncia, mas uma consequncia de um conhecimento anterior que se torna falso ou no apropriado a uma nova situao. Pode-se relacionar esta noo, noo de obstculo epistemolgico, descrita por Bachelard (1938). O uso do simbolismo adequado favorece o desenvolvimento do pensamento algbrico, por este motivo na histria da lgebra tem importncia no apenas a histria dos conceitos, mas tambm o sistema de smbolos utilizados para express-los (ARZARELLO et al., 1994). A respeito do desenvolvimento da lgebra, possvel determinar trs perodos histricos distintos: 1. Fase retrica: anterior a Diofanto de Alexandria (250 d.C.). Utilizavam apenas linguagem natural.

31

2. Fase sincopada: desde Diofanto at o final do sc. XVI. Surgiram algumas abreviaturas, mas os clculos se desenvolvem em linguagem natural. 3. Fase simblica: introduzida por Vite (1540 1603). Utilizavam letras e smbolos; a linguagem simblica era utilizada para resolver equaes e demonstrar regras gerais. Fazendo um paralelo com a elaborao de algoritmos, podemos dizer que a descrio do algoritmo em linguagem natural corresponde fase retrica; a formulao do algoritmo utilizando pseudocdigo corresponde fase sincopada; e a implementao em uma linguagem de programao fase simblica. O trabalho referido tem como objetivo estudar a construo da linguagem algbrica com sua ambiguidade semntica e sua riqueza de significados, em relao evoluo dos mtodos e das estratgias de resoluo de equaes nos dois perodos histricos que precedem a formalizao: retrico e sincopado, porque neles se desenvolveram precisamente as mudanas conceituais necessrias na fase de transio entre o pensamento aritmtico e o pensamento algbrico. Entre 1500 e 1600 foram introduzidos quase todos os smbolos conhecidos na atualidade. Foi um processo lento, pois a lgebra simblica no suplantou de um s golpe a lgebra sincopada. Com Vite se produziu a traduo mais significativa na construo da linguagem simblica. Considerando os mtodos de resoluo, a anlise histrica dos diversos procedimentos utilizados para resolver equaes mostra a necessidade de recorrer sempre a vrios tipos de linguagem: natural, aritmtica e geomtrica. Para Malisani (1999), a semntica da linguagem algbrica, em relao linguagem natural, menos rica que a aritmtica ou geomtrica. Na fase sincopada necessrio apoiar-se nelas para formular regras, interpretar problemas, obter sua soluo e para justificar as passagens algbricas. So a ambiguidade semntica e a riqueza de significados que permitem a utilizao pouco a pouco da linguagem simblica. Por exemplo, na introduo dos nmeros complexos, o obstculo na compreenso desses entes como nmeros, no dependia do tipo de equao ou do problema, seno do procedimento efetuado para a extrao de razes. A impossibilidade de efetuar um processo computacional fez sentir a necessidade de introduzir objetos algbricos de natureza mais abstrata: os nmeros complexos.

32

Um aspecto relevante na construo da linguagem algbrica a possibilidade de expressar simbolicamente a generalizao dos problemas. Bombelli (1966) tenta generalizar os problemas resolvendo o problema aritmtico de forma analtica. Primeiramente, formulava uma regra geral, alm dos valores numricos, por ltimo, aplicava esta regra resoluo de uma equao anloga. Isso demonstra a importncia que a linguagem algbrica assume nos processos de simbolizao. As principais concluses desse trabalho foram as seguintes: 1. O desenvolvimento da linguagem algbrica levou ao abandono progressivo da linguagem natural como meio de expresso das noes algbricas. 2. Na fase de transio entre o pensamento aritmtico e o pensamento algbrico, certos obstculos no nvel aritmtico podem retardar o desenvolvimento da linguagem algbrica, por exemplo, a introduo dos nmero negativos, ao passo que a introduo de novas estratgias e de novos contedos algbricos pode encobrir conhecimentos aritmticos anteriores. 3. A necessidade de introduzir novos objetos, mais abstratos, aparece na impossibilidade de completar um procedimento de resoluo de um problema particular, havendo necessidade de um processo computacional o caso da introduo dos chamados nmeros imaginrios. 4. No processo de construo da linguagem algbrica possvel distinguir dois nveis para conceber a generalidade de um mtodo: o primeiro relativo possibilidade de apliclo a uma srie de casos especficos e o segundo, refere-se possibilidade de expresslo por meio da lgebra simblica. Novamente, remetendo nossa questo, na elaborao de um algoritmo deve-se solucionar um problema especfico e ento buscar a generalizao para a classe desse problema, por meio de uma forma de representao adequada. O ltimo trabalho apresentado nesta seo a tese de doutorado, elaborada pela professora Clcia Friedmann, intitulada Matemtica Discreta, Algoritmos, Modelos. Tendncias do Ensino de Matemtica no Incio do Sculo XXI, na Universidade Federal do Rio de Janeiro (FRIEDMANN, 2005). A questo central a discusso sobre a incluso de assuntos relacionados Matemtica Discreta e algoritmos, por meio da modelagem Matemtica, no currculo de matemtica, nvel fundamental e mdio.

33

A autora escolheu o tema algoritmos, diante da sua relevncia para diversas propostas curriculares, pois o uso crescente do computador permite abordagens distintas para problemas ligados Matemtica e a outras cincias. Entretanto, o tratamento dado a esses problemas exige novas formas de pensar, modelar e resolver situaes utilizadas no dia a dia. A discusso elaborada por Friedmann (2005) bastante relevante aos propsitos deste trabalho. Concordamos que os conceitos matemticos, ao serem transpostos para a computao, adquirem significados diferentes. A pesquisadora observou algumas dificuldades em alunos e professores para realizar a passagem de conceitos matemticos para o algoritmo e vice-versa. A finalidade do estudo sobre algoritmos apresentado, foi estabelecer comparaes entre a forma tradicional com que alguns conceitos e estruturas matemticas so estudados na escola (Ensino Fundamental e Mdio) e a maneira de utiliz-los na estruturao e descrio de algoritmos. Segundo Friedmann (2005), o ser humano, para lidar com computadores, tem que limitar sua forma de pensar, deve excluir a subjetividade, a ambiguidade e no pode omitir informaes que clarifiquem as instrues a serem seguidas pela mquina. Isso implica a estruturao do pensamento em um nmero finito de passos bem delineados para que sejam seguidos por uma mquina. Essa tarefa, ainda que parea quase mecnica, na verdade uma forma matemtica de pensar e um exerccio difcil para o homem, devido a sua caracterstica de se autoprogramar para resolver problemas. Essa dificuldade deve ser levada em considerao no ensino de Matemtica relacionado a algoritmos e resoluo de problemas. A autora faz algumas conexes entre a Matemtica Discreta, o ensino de Matemtica e a resoluo de problemas. Baseada nestes trs aspectos prope a utilizao da modelagem matemtica como forma de abordagem, pois ela privilegia a formao ativa de contedos. Um dos objetivos de Friedmann (2005) foi relacionar essa abordagem com a Matemtica

Discreta e algoritmos, considerando que os problemas escolhidos foram modelados dentro desse campo da Matemtica e os mtodos que conduzem para uma melhor soluo para eles no podem ser implementados em tempo real. Assim sendo, no possvel garantir que as solues encontradas sejam as mais eficientes. Esses problemas so conhecidos como problemas de conjuntos dominantes (PCD). Segundo Friedmann (2005), esses tipos de problemas, alm de estarem ligados Matemtica discreta, so um estmulo para a construo de diferentes modelos, e para a criao e a

34

implementao de tcnicas algortmicas. Na ausncia de uma soluo tima possvel, a criatividade dos alunos pode ser explorada, pois o interesse est no desenvolvimento de formas de pensar algortmicas. A tese no tem a inteno de contrapor a matemtica discreta e a matemtica contnua, pois diversos campos da Matemtica tm relao com ambas, como a lgebra e a Lgica. Para Maurer (1997), no existe uma definio exata para o que seja matemtica discreta, o que proporciona seu florescimento em muitas direes. Entre as definies que nos chamaram a ateno destacamos (FRIEDMANN, 2005, p.
12):

Matemtica Finita: que abrange as situaes descritas por conjuntos finitos. Qualquer tipo de Matemtica que possa ser feita em um nmero finito de passos.

Entre as concluses da referida tese, ressaltamos aquelas que tm maior relevncia para o nosso trabalho (FRIEDMANN, 2005): Embora exista estreita relao entre algoritmos e Matemtica, errneo pensar que o aluno faa naturalmente uma ligao entre a matemtica aprendida na escola e tpicos relacionados a algoritmos. Est surgindo um novo desafio para o professor, que o de conciliar o ensino em contextos abstratos sugeridos pela Matemtica com a realidade fsica dos computadores. At o presente momento no h abstrao, nem subjetividade no computador como instrumento de clculo. Atualmente, quando se fala em Cincia da Computao em ambientes de ensino, principalmente nas universidades, existe o objetivo de ensinar o aluno a programar. Deveria existir concomitantemente um trabalho que desenvolvesse ou estimulasse formas algortmicas de pensar, associadas resoluo de problemas, as quais pressupem sempre solues para eles. Abordagens que utilizam modelagem e modelos em ambientes de ensino facilitam o cumprimento dos objetivos de o estudante adquirir a capacidade de argumentar e resolver problemas e de tornar-se capaz de transladar da realidade matemtica para outras realidades e vice-versa. Problemas como os PCDs permitem o trabalho com modelagem e evidenciam a

35

necessidade de encontrar solues de uma forma no exata, ou seja, utilizando procedimentos heursticos. Possibilitam tambm mostrar algumas das diferenas e semelhanas nas maneiras de resolver problemas que so sugeridas pela Matemtica e pela Cincia da Computao, sendo que esta ltima incorporou e deu importncia ao fator tempo computacional na resoluo de problemas. Uma situao modelada como um PCD pode ser enquadrada como um problema de otimizao e foge quelas estudadas no Clculo Diferencial e Integral. Em termos de ensino e aprendizagem, importante exemplificar que existem problemas que so adequados para serem modelados por matemtica discreta, enquanto que outros so melhores equacionados quando se trabalha com matemtica contnua. A anlise cuidadosa destes trabalhos nos deu subsdios para aprimorar nossa pesquisa e a escolha dos mesmos para estarem aqui apresentados, deu-se em funo da suas relaes com as dificuldades apresentadas no processo de ensino-aprendizagem nas reas de Educao Matemtica, Matemtica, bem como na Cincia da Computao. Cabe destacar que a noo de obstculo, incluindo os epistemolgicos, tem sido utilizada em diversos trabalhos referentes ao ensino da Matemtica. Entretanto, na rea de Informtica no foi encontrado nenhum trabalho que estabelea esta relao de forma explcita. Muitas pesquisas investigam as dificuldades na elaborao de algoritmos, sob ticas distintas, enfatizando a elaborao de ambientes informatizados, como veremos no captulo 5, para o ensino dos mesmos, ou a especificao de uma linguagem de programao mais adequada para este fim. Acreditamos que estes trabalhos tm seu valor, porm no contemplam as dificuldades por ns identificadas, uma vez que elas esto ligadas prpria concepo do algoritmo, e consequentemente ao desenvolvimento do raciocnio abstrato necessrio ao pensamento computacional.

36

CAPTULO 4
Aspectos Didticos e Epistemolgicos na Aprendizagem de Algoritmos Visando construir uma base terica para este trabalho, pesquisamos assuntos ligados Educao Matemtica, bem como Educao e Informtica. Neste captulo, apresentaremos os aspectos relevantes e que tiveram maior influncia em nossa pesquisa. O primeiro item abordado est relacionado matemtica discreta, considerando a estreita relao existente entre ela e os algoritmos; em seguida, discutimos o conceito de obstculo epistemolgico e a conexo com o processo de ensino e aprendizagem de algoritmos; por fim, aplicamos a teoria de registros de representao semitica representao de algoritmos e analisamos sua importncia para o ensino/aprendizagem dos mesmos.

4.1- Matemtica Discreta e Algoritmos Entre os aspectos que relacionam os algoritmos com a matemtica discreta, destacamos o fato de eles serem tipos de procedimentos que possuem um nmero finito de passos, o que coloca em evidncia, a sua natureza discreta. Nosso interesse pela matemtica discreta no est apenas no fato de ela trabalhar com solues para problemas por meio de um nmero finito de passos, mas na forma de elaborar raciocnios que possam ser expressos em uma sequncia finita de passos. Como o ser humano no est acostumado a discretizar suas aes, esta a primeira barreira a ser vencida na aprendizagem de algoritmos. Para Friedmann (2003), agentes computacionais, humanos ou no, efetuam clculos de maneira discreta, mesmo para solucionar problemas relacionados matemtica contnua, ou seja, do ponto de vista computacional h necessidade de discretizar o que teoricamente contnuo. Isso evidencia o sentido oposto do que geralmente se faz quando se trabalha com modelos, em que h uma tendncia de utilizar modelos contnuos para explicar e resolver problemas que tambm poderiam ser estudados de maneira discreta. A Matemtica possui ferramentas que permitem trabalhar teoricamente com sequncias de clculos que nem sempre so possveis na prtica. Os casos que tratam de divises

37

exemplificam esse fato. Por exemplo, o resultado da diviso de qualquer nmero real pela metade sempre possvel; o quociente um nmero real. Isso pode ser feito teoricamente quantas vezes se queira, mas existe um momento em que simplesmente no factvel efetuar as divises. Um ser humano para automaticamente os clculos quando no tem condies de continuar dividindo; j um computador precisa ser instrudo sobre a preciso do clculo que deve executar. Nenhum agente computacional conhecido capaz de calcular todas as imagens de uma funo contnua, por exemplo f(x) = x2, em um determinado intervalo, pois a funo escolhida tem imagem para qualquer nmero real. Existiria um nmero infinito de clculos, o que obrigaria um ser humano ou uma mquina a trabalhar continuamente, por tempo indeterminado. Os grficos da funo mencionada no pargrafo anterior, e de outras funes que aparecem na tela do computador, so feitos utilizando clculos aproximados e os pontos da curva so associados a um conjunto finito de pontos da tela. Em resumo, quando se usam

computadores para trabalhar com funes contnuas e mtodos associados a elas, que admitem muitos resultados pertinentes matemtica contnua, h necessidade de associar alguma aproximao discreta a eles, pois a matemtica do computador dessa natureza. Essa aproximao no se d de forma natural. Para analisar as dificuldades inerentes a esse processo, voltamos questo da abstrao, da necessidade de alterao da forma de compreender um conhecimento, para que seja possvel transform-lo. Essas questes nos remetem ao conceito de obstculo epistemolgico, que ser discutido a seguir.

4.2 Questes Didticas e Epistemolgicas Com base no desenvolvimento histrico do conceito de algoritmo, tanto no campo da Matemtica, quanto no campo da Informtica, e nos pressupostos deste trabalho, consideramos que nosso objeto de investigao est ligado forma de pensar sobre a soluo de um problema e no sobre o prprio problema. O que nos levou a buscar na Educao Matemtica os conceitos de obstculo e ruptura, em particular aqueles de carter epistemolgico. Observamos que, para elaborar um algoritmo que resolva um problema dado, o conhecimento matemtico estabelecido ir sofrer uma ruptura epistemolgica, pois a necessidade de discretizao traduzida em formas de raciocnio envolvendo processos iterativos, por exemplo, assim o requer. Essa ruptura est ligada a certos obstculos

38

epistemolgicos, pois se trata de uma mudana na forma de compreender um conhecimento, considerando que nos contedos matemticos trabalhados at o final do Ensino Mdio, os procedimentos utilizados tm um carter essencialmente contnuo, enquanto que as solues computacionais tm um carter discreto, em que o tempo tem papel fundamental. Entre vrios trabalhos que discutem obstculos epistemolgicos, escolhemos alguns, de acordo com sua relevncia para nosso trabalho, que pudessem nortear esta pesquisa. Destacamos o artigo publicado por Artige (1990), que tem como objetivo estabelecer uma relao entre epistemologia e didtica, considerando as necessidades que surgem nos processos de conhecimento, envolvidos na formao e no desenvolvimento dos conceitos matemticos. Segundo Artige (1990), a anlise epistemolgica necessria para o professor, porque proporciona uma historicidade aos conceitos e s noes matemticas, alm de auxiliar no controle das representaes epistemolgicas no ensino. O termo representao epistemolgica define as concepes que se formam no indivduo, devido a sua vivncia matemtica. A anlise epistemolgica permite ao professor medir e avaliar as diferenas existentes entre o saber sbio e o saber ensinado, termos que foram introduzidos por Y. Chevallard (1991). A escola se preocupa em ver nos objetos de ensino cpias simplificadas, porm fiis, dos objetos da cincia. Para Artige (1990), a anlise epistemolgica nos permite compreender o que governa a evoluo do conhecimento cientfico e nos ajuda a verificar a distncia que separa os dois sistemas. A diviso do saber sbio em partes que possam ser ensinadas, a um pblico determinado, permite que este saber seja baseado em um grupo restrito de competncias. Em suma, a anlise epistemolgica ajuda o professor, no sentido de limpar os objetos de ensino de representaes epistemolgicas inadequadas, instaladas nestes com o passar do tempo. Artige (1990) ao estabelecer uma relao entre os aspectos epistemolgicos e a teoria das situaes didticas, observa que o papel do professor o de construir o conhecimento num meio constitudo para este fim. Deve-se considerar que o ensino da Matemtica mais do que a transmisso de um conhecimento, a transmisso de uma cultura. A anlise epistemolgica prope ao professor uma srie de perguntas, entre elas: O que transpor para o ensino referente aos aspectos culturais? Como faz-lo de forma a no

39

adulterar o sentido da cultura em questo? Em quais condies isto vivel? Em que caso as transposies dependem do pblico a ser ensinado? Quais so os inconvenientes das transposies atuais? Quais so seus efeitos? Nas disciplinas de introduo programao deve-se perguntar: Os alunos tm algum contato com o uso de tecnologias computacionais? Em caso afirmativo, como se deu esse contato? Os alunos tm alguma noo de programao? Em caso afirmativo, de que forma? Qual o ambiente utilizado? Considerando a popularizao dos recursos tecnolgicos e da informtica, muitos estudantes acreditam que dominam a tecnologia, o que pode ser favorvel ou no para a aprendizagem, pois existe uma diferena significativa em atuar como usurio de ferramentas computacionais e como criador dessas ferramentas. Essa diferena pode causar um sentimento de frustrao entre os estudantes. interessante que o professor possa integrar as questes de cunho epistemolgico sua atividade. Segundo Schubring (2002), o interesse da Didtica da Matemtica com os obstculos epistemolgicos surgiu em decorrncia da mudana de concepo da didtica como uma tcnica ou prtica para uma cincia experimental e independente, o que aconteceu nos anos 1960 com a disseminao da nova Psicologia Gentica de Piaget. Desde ento, os erros dos alunos, subsdios para uma anlise epistemolgica, passaram para o centro da reflexo terica da didtica e da sua prtica experimental. A noo de obstculo epistemolgico foi introduzida pelo filsofo francs Gaston Bachelard em 1938. Segundo ele, no prprio conhecimento que aparecem, por uma classe de necessidade funcional, as lentides e os problemas. Apesar deste cientista no incluir, explicitamente, o ensino da Matemtica em sua obra, o conceito de obstculo epistemolgico foi adotado pela Didtica da Matemtica, na Frana, a partir de meados dos anos 1970, sendo aplicada tambm em outros pases (SCHUBRING, 2002). Segundo Bachelard (1996), a evoluo de um conhecimento pr-cientfico para um nvel de conhecimento cientfico passa, quase sempre, pela rejeio de conhecimentos anteriores e se defronta com um certo nmero de obstculos. Assim, estes obstculos no se constituem na falta de conhecimento, mas, pelo contrrio, so conhecimentos antigos, cristalizados pelo tempo, que resistem instalao de novas concepes e de novas formas de

40

pensamento, que ameaam a estabilidade intelectual de quem detm esse conhecimento. Com relao aprendizagem de algoritmos, podemos comparar o conhecimento da matemtica elementar, referente educao bsica e nvel mdio, ao conhecimento prcientfico, citado por Bachelard. Este resiste face s exigncias de mudana que o pensamento computacional nos traz, como, por exemplo as ligadas discretizao. A introduo da noo de obstculo epistemolgico na Didtica da Matemtica se deu em 1976, na conferncia da CIEAEM (Comission internacional pour ltude et lamlioration de lenseignement des mathmatiques) em Louvain la Neuve, com a publicao de um artigo de Brousseau sobre didtica da matemtica, abordando tal noo. Nesse artigo, a definio de obstculo epistemolgico referia-se a conhecimentos anteriores mal-adaptados, ressaltando a importncia da anlise epistemolgica para detectar as dificuldades que so realmente inevitveis, porque constituem o desenvolvimento do conhecimento. Para Brousseau, assim como para Bachelard, um obstculo conhecimento e no a falta dele. Segundo Brousseau (1983, p.170), um obstculo de origem epistemolgica, verdadeiramente constitutivo do conhecimento, aquele do qual no se pode escapar e que se pode em princpio encontrar na histria do conceito. Ele est ligado resistncia do saber mal-adaptado, e o v como um meio de interpretar alguns erros recorrentes e no aleatrios, cometidos pelos estudantes, quando lhes so ensinados alguns tpicos da Matemtica. na anlise histrica dessas resistncias, e nos debates, que devemos buscar os elementos que permitam identificar os obstculos, sendo ento necessrio relacionar este estudo histrico com o estudo didtico. Assim, deve-se buscar construir situaes de ensino que permitam super-los. O segundo artigo sobre obstculos epistemolgicos no ensino da Matemtica, foi publicado por Glaeser (1981), em que ele identifica um conjunto de obstculos no desenvolvimento da noo de nmeros negativos. Entretanto, este artigo foi bastante criticado por Brousseau em 1983, levantando uma srie de perguntas no consideradas por Glaeser, que ele acreditava deveriam ter sido feitas para que as dificuldades encontradas pudessem ser classificadas como obstculos epistemolgicos. Segundo Artige (1990), Glaeser utilizou os termos obstculo, dificuldade, barreira e sintoma de maneira ingnua, por estar convencido de que era prematuro fechar estes conceitos em formulaes muito rgidas. Para ele, um dos objetivos mais importantes da

41

Didtica da Matemtica o de determinar os obstculos que se opem compreenso e aprendizagem desta cincia. Spagnolo (1996), completa a definio de obstculo epistemolgico utilizando uma interpretao semitica das linguagens matemticas. Para ele,
o obstculo epistemolgico est relacionado com a passagem entre o campo semntico4 significativo em uma certa poca histrica da comunidade matemtica e a tentativa da mesma introduzir uma nova linguagem relativa a uma certa classe de problemas. Os objetos matemticos dos campos semnticos anteriores, que poderiam servir para a construo sinttica, nos fundamentos da nova linguagem, so os obstculos epistemolgicos. (p. 81)

Observando o desenvolvimento histrico da Matemtica, pode-se considerar, como exemplo, a Aritmtica como campo semntico anterior, e a lgebra como a nova linguagem. tambm de interesse deste trabalho a anlise feita por Pais (2002) de que
a existncia de obstculos epistemolgicos em matemtica se revela, muito mais, na fase da produo de uma demonstrao do que de seu registro por meio do texto de uma demonstrao. Tal como acontece na etapa de criao da matemtica, durante a experincia da aprendizagem escolar h tambm um processo correspondente a uma redescoberta do saber, de onde os obstculos podem, analogamente intervir diretamente no fenmeno cognitivo. (p. 42)

Durante a aprendizagem, ao iniciar o contato com um conceito inovador, pode ocorrer uma revoluo interna entre o equilbrio aparente do velho conhecimento e o saber que se encontra em fase de elaborao. Isso interessa didtica, pois para aprendizagem escolar, por vezes, preciso que haja rupturas com o saber cotidiano. Brousseau (1983) classifica os obstculos relacionados ao ensino/aprendizagem da seguinte forma: 1. Obstculos de origem ontogentica so os que sobrevivem de fato s limitaes (neurofisiolgicas, entre outras) do sujeito, no momento de seu desenvolvimento: o desenvolvimento de conhecimentos apropriados a seus meios e a seus objetivos. 2. Obstculos de origem didtica so aqueles que ocorrem em funo do projeto do sistema educacional. 3. Obstculos de origem epistemolgica so os que esto relacionados com o aspecto histrico do conceito. Brousseau (1997, p. 99) enumera os seguintes passos, que considera necessrios para identificar os obstculos epistemolgicos:
Segundo Stephen Ullman, a teoria dos campos semnticos fornece um mtodo valioso para abordar um problema difcil mas de crucial importncia: a influncia da linguagem no pensamento. Um campo semntico no reflecte apenas as ideias, os valores e as perspectivas da sociedade contempornea; cristaliza-as e perpetuaas tambm; transmite s geraes vindouras uma anlise j elaborada da experincia por meio da qual ser visto o mundo, at que a anlise se torne to palpavelmente inadequada e antiquada que todo o campo tenha que ser refeito (Semntica, 4 ed., Fundao Calouste Gulbenkian, Lisboa, 1977, p. 523).
4

42

Encontrar os erros recorrentes e mostrar que eles se reagrupam em torno de concepes. Encontrar os obstculos na histria da Matemtica. Confrontar os obstculos histricos com os obstculos da aprendizagem e estabelecer seu carter epistemolgico.

Em seguida, ele retoma as caractersticas enunciadas por Dourox (1983): A. Um obstculo ser um conhecimento, uma concepo e no uma dificuldade ou falta de conhecimento. B. Esse conhecimento produz respostas adaptadas em um contexto frequentemente dado. C. Esses conhecimentos geram respostas falsas fora deste contexto. Porque uma resposta correta exige uma viso diferenciada. D. O conhecimento anterior resiste s condies a que est sendo confrontado e ao estabelecimento de um conhecimento posterior. No basta possuir um conhecimento novo para que o precedente desaparea ( isto que diferencia a superao do obstculo das idias de Piaget). indispensvel identificar e incorporar seus inconvenientes dentro de um novo saber. E. Depois da tomada de conscincia da sua inexatido, o obstculo se manifesta de uma maneira intempestiva e obstinada. A noo de obstculo est ligada produo de erros, induzida pelo conhecimento anterior, ou pelas noes pr-cientficas, como diria Bachelard, levando a respostas falsas. Por exemplo, quando pedimos aos alunos que elaborem um algoritmo computacional para implementar o mtodo de Euclides para o clculo do M.D.C. (descrito na seo 2.3), embora estes alunos saibam utilizar o referido mtodo, da forma tradicional, muitas vezes no conseguem alterar esse conhecimento e express-lo de forma algortmica. Entenda-se aqui forma algortmica no sentido computacional. Ou seja, o conhecimento anterior do mtodo de Euclides resiste s alteraes necessrias para conceber o algoritmo computacional correspondente. Para transformar o algoritmo matemtico para o clculo do M.D.C. no correspondente computacional, necessrio sistematizar os processos de repetio e os condicionais que esto implcitos no modelo matemtico.

43

Artige levanta diversas questes sobre como assegurar que um dado conhecimento ou no um obstculo epistemolgico, entre elas: Para que possa ser considerado um obstculo necessrio comprovao histrica de dificuldades anlogas? Uma transposio didtica eficaz da noo de obstculo epistemolgico deve permanecer ligada histria? Alm da atribuio do papel de obstculo epistemolgico a uma dificuldade, devemos nos preocupar com os mecanismos produtores de obstculos. Artige (1990, p. 13) identifica alguns destes mecanismos tanto diacronicamente, como sincronicamente. Entre eles: a regularizao formal abusiva. Como exemplos de resultante desse processo de regularizao, ela apresenta erros do tipo: ( a + b ) = a 2 + b 2 ou
2

a + b = a + b ; a fixao sobre uma

contextualizao ou uma modelizao familiar; e o amlgama das noes sobre um suporte dado. Tambm so fontes de obstculos os processos de generalizao, dentre outros. Segundo Pais (2002), o interesse em estudar a noo de obstculo decorre do fato da mesma permitir identificar as fontes de diversos fatores que levam a aprendizagem a uma situao de inrcia e de obstruo. Baseado nas idias de Bachelard destaca que preciso entender como ocorre a reorganizao intelectual de modo que o novo conhecimento entre em harmonia com os anteriores, sendo esse o momento em que os obstculos se manifestam. Artige (1990) conclui que o que fundamenta uma classe de obstculos epistemolgicos : primeiro sua apario e resistncia na histria dos conceitos considerados, e ento a observao de concepes anlogas nos estudantes, mais que a constncia da resistncia a estas concepes para os estudantes atuais. Talvez o carter histrico dos obstculos, atribudo por Brousseau, tenha origem na essncia evolutiva dos conceitos envolvidos. Na histria do desenvolvimento de um conceito, o professor pode encontrar os sinais de resistncia aprendizagem, porm no pode utilizar a investigao como prova da resistncia a estes conceitos pelos estudantes atuais. Artige (1990) constata que os obstculos de origem epistemolgica so reforados por outros obstculos de outra origem, normalmente origem didtica. E, ainda, levanta a possibilidade de, considerando as diferenas entre as condies de gnese histrica e escolar, haver a existncia de ns de resistncia, que

44

funcionam como os obstculos epistemolgicos no interior do desenvolvimento das matemticas, sem que seja possvel atribuir-lhes um papel histrico de obstculo. Entre outros trabalhos nessa direo, destaca-se a tese sobre a aprendizagem da noo de limite, sustentada por Cornu (1983) e os trabalhos de Sierpinska (1985), cujo objetivo identificar os obstculos na aprendizagem desta noo e auxiliar os alunos a super-los. Estes autores conservam a noo de obstculo, conforme Bachelard. Alm do trabalho de Cornu, outro trabalho mencionado por Artige (1990) trata dos obstculos epistemolgicos na didtica da fsica, desenvolvido por L. Viennot (VIENNOT, 1977, apud ARTIGUE, 1990). Segundo Viennot, as investigaes sobre didtica da Fsica tm conduzido a uma oposio do conhecimento comum e o conhecimento cientfico. O conhecimento comum tem como caractersticas: estado de evidncia, impreciso e ambiguidade das formulaes e falta de coerncia interna, o que vai de encontro ao conhecimento cientfico. Em suas investigaes, Viennot encontra algumas regularidades na aprendizagem de certos contedos. Estas regularidades levam a uma tendncia comportamental peculiar. Considerando que os obstculos parecem estar ligados a grandes tendncias de raciocnios, pergunta-se: Estas formas de raciocnio aparecem apenas nos principiantes ou nos mais experientes tambm? O que classificava o aluno como experiente no era a superao do obstculo, no sentido ingnuo, mas, sim, a possibilidade de avaliar diferentes registros e entre estes, considerando que alguns chegam a controlar o obstculo, ter a capacidade de escolher o mais adequado. Tendo em vista os diversos aspectos tericos ligados ao conceito de obstculo epistemolgico investigados e o nosso interesse em abordar questes relacionadas ao ensino e aprendizagem de algoritmos, entendemos a noo de obstculo neste trabalho como sendo de trs tipos: 1. Obstculo didtico, aquele ligado ao sistema de ensino. Inclumos nesta categoria obstculos ligados ao planejamento de ensino, metodologia utilizada, nmero de alunos e a conduta do professor. 2. Obstculo cognitivo, aquele ligado aos processos de aprendizagem, dizem respeito ao aluno e esto ligados s particularidades do sujeito. 3. Obstculo epistemolgico aquele relacionado ao prprio conhecimento, ligado ao

45

conceito, neste caso, ao conceito de algoritmo, indo ao encontro da definio elaborada por Spagnolo (1996), citada acima.

4.3 Registros de Representao Semitica

Duval (2003) prope uma abordagem cognitiva para avaliar as dificuldades dos alunos na compreenso da Matemtica e a natureza dessas dificuldades. Neste trabalho estendemos esta abordagem, para avaliar as dificuldades na aprendizagem de Introduo Programao. Segundo Duval (2003, p. 13),
Comumente, em anlises do que consiste a compreenso em matemtica e na procura da razo dos bloqueios de compreenso que muitos alunos experimentam, evocam-se os conceitos matemticos e suas complexidades epistemolgicas, os quais podem ser explicados pela histria de suas descobertas. Porm, uma tal abordagem no suficiente para caracterizar aquilo que faz a originalidade e a especificidade do funcionamento do pensamento em matemtica em relao a outros domnios do conhecimento cientfico. A diferena entre a atividade cognitiva requerida pela matemtica e aquela requerida em outros domnios do conhecimento no deve ser procurada nos conceitos mas em duas caractersticas: 1. a importncia das representaes semiticas para o desenvolvimento da matemtica e 2. a variedade de representaes semiticas utilizadas em matemtica.

Observa-se que este autor utiliza a palavra compreenso no sentido da aprendizagem, ligado aos aspectos cognitivos. Segundo ele, a representao semitica se refere a um sistema particular de smbolos, por exemplo, a linguagem natural, a escrita algbrica, os grficos cartesianos e a possibilidade de converso em representaes equivalentes em outro sistema semitico, que podem, porm, assumir significados diferentes para o sujeito que as est utilizando. A noo de representao semitica pressupe a considerao de sistemas semiticos diferentes e uma operao cognitiva de converso das representaes de um sistema semitico para outro. Para Duval (1995), essa operao pode ser descrita em primeiro lugar como uma troca na forma como um conhecimento representado, por exemplo, a curva que representa uma equao de segundo grau e a expresso analtica em formato algbrico. Registro de representao semitica o nome dado por Duval (1995) ao registro que se presta s operaes cognitivas de formao, tratamento e converso, chamado daqui por diante de registro de representao. Duval (2003) afirma que o progresso do conhecimento est acompanhado da criao e do desenvolvimento de sistemas semiticos novos e especficos que coexistem com o

46

primeiro deles, a saber, o da linguagem natural. Segundo ele, existem quatro tipos de registro de representao, como mostra o Quadro 1.

Representao Discursiva

Representao NoDiscursiva

Registros Multifuncionais: (Os Tratamentos no so algoritmizveis)

Lngua natural Associaes verbais Forma de raciocinar: argumentao deduo

Figuras geomtricas planas ou em perspectivas: apreenso operatria e no somente perceptiva construo com instrumentos

Registros Monofuncionais: (Os Tratamentos so principalmente algoritmos)

Sistemas de escritas: numricas (binria, decimal, fracionria,...) algbricas simblicas (lnguas formais) Clculo

Grficos cartesianos. Mudanas de sistema de coordenadas Interpolao, extrapolao

Quadro 1- Classificao dos diferentes registros mobilizveis no funcionamento matemtico. (DUVAL, 2003, p. 14)

Para Duval (2003, p. 14), a originalidade da atividade matemtica est na mobilizao simultnea de ao menos dois registros de representao ao mesmo tempo, ou na possibilidade de trocar de registro de representao. Por exemplo, para representar uma funo, podemos utilizar ora a representao grfica, ora a expresso algbrica. A capacidade de escolher o tipo de registro e a utilizao ora de um, ora de outro, chamada de coordenao de registros. Observa-se que a anlise deste autor sobre a atividade matemtica se d sob a perspectiva da aprendizagem. Uma soluo proposta para um problema pode privilegiar um registro especfico, mas

47

deve haver possibilidade de represent-la utilizando outro registro. Segundo Duval (2003), para haver compreenso em Matemtica preciso coordenar ao menos dois registros de representao. Ele levanta a seguinte questo: Essa capacidade de coordenao adquirida de forma espontnea pelos alunos durante o ensino de matemtica? (DUVAL, 2003, p. 15). Considerando o ensino de algoritmos, pergunta-se: Se os alunos, ao conclurem o Ensino Mdio possussem essa capacidade, as dificuldades na aprendizagem de algoritmos seriam as mesmas? Com o objetivo de responder a essa questo, formulamos uma atividade em que, na primeira fase, o aluno deveria elaborar uma soluo matemtica intuitiva, utilizando qualquer registro de representao, tanto a linguagem natural, quanto a algbrica e, na segunda fase, baseado na soluo proposta na fase anterior, elaborar a soluo computacional, ou seja, elaborar o algoritmo. Essa atividade faz parte de um conjunto de casos analisados neste trabalho, e est descrita detalhadamente na seo 7.2. Existem dois tipos de transformao de representaes semiticas: os tratamentos e as converses. Para Duval (1995; 2003), o tratamento a transformao de uma representao de partida em uma representao de chegada, dentro de um mesmo sistema semitico. Para ele,
A parfrase e a inferncia so as formas de tratamento em lngua natural. O clculo uma forma de tratamento prprio s estruturas simblicas (clculo numrico, clculo algbrico, clculo posicional,...), a reconfigurao um tipo de tratamento particular para as figuras geomtricas, uma das vrias operaes que d ao registro das figuras seu papel heurstico. ... H, naturalmente, regras de tratamento prprias a cada registro. Sua natureza e nmero variam consideravelmente de um registro a outro: regras de derivao, regras de coerncia temtica, regras associativas de continuidade e similitude ... No registro da lngua natural, h paradoxalmente um elevado nmero de regras de conformidade e poucas regras de tratamento para a expresso discursiva de um enunciado completo. (DUVAL,

1995, p. 41) A converso acontece quando h mudana de sistema de representao, mas a referncia aos objetos conservada. Segundo Duval (1995, p. 40), A converso a transformao da representao de um objeto, de uma situao ou de uma informao dada num determinado registro em outra representao desse mesmo objeto, dessa mesma situao ou a mesma informao num outro registro. Ela uma transformao externa ao registro de representao de partida. Converter uma representao significa mudar a forma de representar um objeto do conhecimento, ou

48

seja, mudar a forma pela qual tal objeto est sendo ou foi representado. No caso dos nmeros racionais, por exemplo, a passagem de um registro de representao numrico-decimal para fracionrio e percentual ou entre cada um deles, (0,1 = 1/10 = 10/100 = 10%), s possvel de se estabelecer quando o sujeito perceber que se trata de um registro de representao numrico, cuja diferena est na forma de apresentao da representao e no no objeto/contedo representado. Quando se faz a passagem do registro decimal para o fracionrio ou percentual, temos uma converso, e quando se estabelece a equivalncia entre 1/10 e 10/100, o tratamento. Entretanto, para o aluno, tanto o tratamento quanto a converso no so processos simples de se estabelecer. A converso enfrenta os fenmenos de no-congruncia, pois os alunos no reconhecem o mesmo objeto por meio de duas representaes diferentes, e os fatores de nocongruncia podem mudar de acordo com os tipos de registro entre os quais a converso efetuada. Deve-se tomar o devido cuidado para no confundir o tratamento com a atividade matemtica de converso, considerando que a converso deve ser efetuada para permitir tratamentos diferentes em sistemas de registros de representao tambm diferentes. Por exemplo, quando trabalhamos com problemas, o mais importante estabelecer as possveis relaes entre o enunciado, a representao intermediria e o tratamento matemtico, uma vez que este objeto no claro e acessvel como os objetos fsicos e, exatamente por isso, seu tratamento depende de uma representao semitica. Segundo Duval (1995), as representaes semiticas no so necessrias apenas para fins de comunicao, elas desempenham papel fundamental para as atividades cognitivas do pensamento, no so meramente uma exteriorizao das representaes mentais, necessrias para se estabelecer uma comunicao, pois uma vez que o indivduo que aprende, necessita delas para elaborar o conhecimento, portanto, desempenham as funes de cognio (tratamento, converso e representao). Para Duval (2003), a utilizao de vrios registros de representao propicia o desenvolvimento do conhecimento humano e possibilita a criao de novos sistemas semiticos, a exemplo da evoluo nos sistemas de numerao utilizados pela humanidade no decorrer dos tempos. O progresso do conhecimento oriundo da criao e

49

desenvolvimento de novos e especficos sistemas semiticos, resultado do trabalho com vrios registros de representao. A criao de novos registros est diretamente relacionada s necessidades da espcie humana. Da mesma forma que na Matemtica, outras reas de conhecimento tambm propiciam a criao de novos tipos de registro de representao. No caso da Informtica, a teoria de Church-Turing, descrita no captulo 2, possibilitou representar computacionalmente o pensamento humano, ou parte dele, por meio da Mquina de Turing. Sendo assim, esta mquina pode ser vista como a primeira forma de representao computacional. Considerando o estado atual das tecnologias disponveis para o funcionamento dos computadores, fez-se necessrio a criao de um registro de representao computacional. Cabe aqui uma ressalva, Duval (1995) chama de representaes internas ou computacionais aquelas que esto relacionadas ao tratamento e se caracterizam pela execuo automtica de uma determinada tarefa. o registro mecnico que se faz de um determinado objeto. Elas so internas e no conscientes do sujeito. O sujeito apenas as executa, utilizando para isso regras, frmulas ou esquemas, sem pensar em todos os passos necessrios para sua execuo. De acordo com o autor (1993), as representaes computacionais traduzem informaes externas de um sistema, em uma forma que seja possvel recuper-las e combinlas no interior do sistema. Neste trabalho, diferente de Duval, iremos nos referir ao termo registro computacional, como o registro que pode ser compreendido, ou seja, executado por um computador, por meio de ferramentas disponveis para tal (linguagens de programao, tradutores e compiladores em geral). Como j mencionado anteriormente, para no ficar dependente das tendncias de mercado, com o surgimento de novas linguagens e tcnicas de programao, a utilizao do pseudocdigo (portugol), permite a generalizao necessria para a aprendizagem de algoritmos.

4.3.1 Registros de Representaes Computacionais Para conceber um algoritmo que resolva um problema, em primeiro lugar necessrio elaborar uma estratgia para solucionar o referido problema. De posse dessa estratgia, devese escolher a melhor forma de construir o algoritmo. Pode-se dividir este processo nas

50

seguintes etapas: Anlise do enunciado do problema proposto, identificando os dados (variveis) de entrada e sada. Definio das aes necessrias para que, baseados nos dados de entrada, seja possvel obter os dados de sada desejados. A escolha de uma seqncia de passos para que estas aes sejam realizadas. Escrita do algoritmo na linguagem escolhida (fluxograma, pseudocdigo, linguagem C, etc.). Entretanto, deve-se observar que, como o algoritmo representa a soluo do problema, o fenmeno da no-congruncia um fato. Considerando que nesse processo, so mobilizados diferentes tipos de registros de representao, partindo de um registro multifuncional, a linguagem natural, na qual possivelmente foi elaborado o enunciado, passando para um registro monofuncional, que pode ser: algbrico, numrico ou simblico. Nessa fase, pode haver a utilizao de um registro misto, pois em alguns momentos a linguagem natural utilizada em conjunto com a linguagem algbrica, simblica e com o pseudocdigo. Finalmente, o algoritmo escrito, utilizando um registro tambm monofuncional, o qual chamamos de registro computacional. Novamente, importante distinguirmos o que Duval (2003) chama de algoritmo, ao fazer a classificao dos registros monofuncionais. Para ele, registros monofuncionais so aqueles em que os tratamentos so principalmente algoritmos, sendo que ele utiliza o termo algoritmo como os algoritmos conhecidos, utilizados pela Matemtica, como o algoritmo de Euclides, descrito na seo 2.3. Estamos falando da concepo desses algoritmos, ou seja, uma vez que sabemos como funciona o algoritmo de Euclides, desejamos propor uma soluo que possa ser implementada por meio de um computador, ou outra mquina compatvel, como uma calculadora programvel, para executar o tal algoritmo. Segundo Duval (2003), para que a passagem de uma representao a outra acontea de maneira espontnea, elas devem ser congruentes. Para que isso acontea, necessrio: correspondncia semntica entre as unidades significantes, igualdade na ordem de apreenso das unidades e as representaes e converso de uma unidade significante na representao de partida em uma s unidade significante na representao de chegada. Quando esses fatores no acontecem, as representaes so ditas no-congruentes.

51

Observa-se que a coordenao entre as representaes, que provm de sistemas semiticos diferentes, no espontnea. A interpretao do enunciado de um problema, por exemplo, a formulao algortmica de um problema matemtico, necessria sua compreenso e consequentemente soluo, passa pelos mesmos problemas, j apontados no caso da Matemtica. Segundo Duval (1995), a congruncia ou a no-congruncia so fatores determinantes para o sucesso ou fracasso, na soluo de problemas que envolvem a troca do sistema de representao semitica. Quanto maior for a no-congruncia entre estes sistemas, mais complexas sero as atividades de tratamento, necessrias para realizar a converso, podendo haver casos em que a mesma impossvel. De acordo com Duval (2003), os trs principais obstculos na aprendizagem relativa a raciocnios, tratamento lgico-matemtico e processos afins, ocorrem pelas seguintes razes: 1. Diversificao de registros de representao semitica. Em particular, a diferena existente entre a linguagem natural e as linguagens simblicas. 2. Diferenas entre o representante e o representado, ou entre a forma e o contedo de uma representao. 3. Coordenao entre diferentes tipos de registros de representao. importante escolher o registro de representao adequado, considerando que cada registro permite efetuar tratamentos diversos. A escolha correta pode facilitar ou no a aprendizagem. Duval (2003) alerta para o fato da aprendizagem da Matemtica se limitar, quase sempre, a um nico tipo de registro, e, ainda, quando h mobilizao de vrios registros, simultnea ou sucessivamente, no h coordenao entre os mesmos, o que possibilita aos alunos apenas a compreenso parcial, mas no a ideal. Esta compreenso monorregistro se constitui em um obstculo maior, quando h mudana no contexto no qual se realizou a aprendizagem, e a maioria dos alunos se mostra incapaz de mobilizar os conhecimentos adquiridos, que, teoricamente, todos deveriam dominar para solucionar a nova situao. Duval (2003) afirma que, de um modo geral, a compreenso monorregistro uma compreenso que no permite realizar transferncias. Para que essas transferncias possam ocorrer de modo natural, a aprendizagem deve abranger a coordenao dos registros de representao, ou seja, preciso compreender que os diferentes registros referem-se ao mesmo objeto matemtico e podem se complementar no sentido de que um registro pode

52

expressar caractersticas ou propriedades do objeto matemtico que no so expressas com clareza em outro registro. Se essa coordenao no tem sido possvel no escopo das atividades que envolvem a Matemtica, sem dvida quando consideramos a elaborao de um algoritmo, a situao ainda pior, pois a alterao de representao claramente no-congruente. Para efetuar uma converso necessrio ter clareza quanto s unidades significantes no registro de partida e de chegada. Quando essa troca de registro envolve a natureza dessas unidades significantes, acontecem os maiores obstculos. Por exemplo, as linguagens formais tm unidades discretas, enquanto as linguagens naturais apresentam vrios nveis de determinao funcional das unidades. Considerando o algoritmo de Euclides, observamos a passagem de um registro multifuncional (linguagem natural), para um registro misto incluindo linguagem numrica e natural e, finalmente, o algoritmo em linguagem computacional (pseudocdigo). O processo de elaborao do algoritmo de Euclides ser apresentado novamente, com o intuito de ilustrar o processo de converso realizado. Esse algoritmo pode ser feito de duas formas, a primeira utilizando o processo iterativo; nesse caso, a converso mais difcil, devido no-congruncia entre os registros de representao. A segunda forma utilizando o processo recursivo, em que a no-congruncia bem menos evidente, e facilita a atividade de converso. O processo de elaborao do algoritmo de Euclides ser apresentado novamente, com o intuito de ilustrar o processo de converso realizado. 1. Representao em linguagem natural: Dados dois nmeros inteiros a e b, e considerando que a b, se o resto da diviso de a por b for igual a zero, o MDC o divisor (b). Caso contrrio, realize uma nova diviso entre o divisor (b, que passa a ser o dividendo) e o resto (que passa a ser o divisor). Se o resto dessa nova diviso for igual a zero, o MDC igual a esse novo divisor. Caso contrrio, realize uma nova diviso entre o novo dividendo e o novo divisor, se o resto for igual a zero, o MDC igual a esse novo divisor e assim sucessivamente. 2. Representao em registro misto, linguagem natural e numrica: MDC (90, 36) Passo 1: 90 div 36 quociente = 2; resto = 18

53

Passo 2: 36 div 18

quociente = 2; resto = 0

MDC = 18

Quando Knuth (1968, p. 2), simplifica o enunciado do problema e sistematiza os passos para sua soluo, j possvel verificar uma mudana da linguagem natural para uma representao mista:
Dados dois nmeros inteiros positivos a e b, encontre o mximo divisor comum (ou seja, o maior inteiro positivo que divide a e b). passo 1: [Clculo do resto] Divida a por b. Seja r o resto; passo 2: [Verifique se o resto nulo] Se r = 0, o algoritmo termina e o valor do MDC b; passo 3: [Troca] Faa a = b, b = resto e volte para o passo 1.

3. Representao em registro computacional (pseudocdigo): Apresentamos a seguir, duas verses de algoritmos computacionais para o algoritmo de Euclides, com o intuito de comparar o processo de converso necessrio a cada caso. a) Algoritmo de Euclides, utilizando o Processo Iterativo
Funo mdcDeEuclides (dividendo: inteiro, divisor: inteiro): inteiro inicio inteiro c; enquanto resto (dividendo, divisor) 0 //calcula o resto da diviso de dividendo por divisor c resto (dividendo, divisor); dividendo divisor; divisor c; fim-enquanto retornar divisor fim-funcao.

b) Algoritmo de Euclides utilizando o Processo Recursivo


Funo mdcDeEuclides (dividendo: inteiro, divisor: inteiro): inteiro // calcula o mdc pelo mtodo de Euclides usando recursividade inicio se divisor = 0 entao //Se r = 0, o algoritmo termina e o valor do MDC b

mdcDeEuclides dividendo senao mdcDeEuclides mdcDeEuclides (divisor, resto (dividendo, divisor)) fim-se //a operao resto (dividendo, divisor), resulta no resto da diviso de dividendo por divisor

54

fim-funcao.

A chamada de uma funo ocorre no algoritmo principal. O exemplo abaixo pode ser utilizado tanto para chamar a funo iterativa quanto a recursiva.
// Algoritmo Principal, exemplo da chamada da funo Inicio inteiro a, b, mdc; escreva (Entre com dois valores, para o clculo do M.D.C.); leia (a, b); mdc mdcDeEuclides (a, b); escreva (O m.d.c. =, mdc); fim.

O Quadro 2 apresenta a representao intermediria do Mtodo de Euclides e a verso iterativa do algoritmo em pseudocdigo. Algoritmo de Euclides Iterativo Representao Intermediria do Mtodo de Euclides 1. inicio 2. inteiro c; 3. enquanto resto (dividendo, divisor) 0 4. 5. 6. c resto (dividendo, divisor); dividendo divisor; divisor c; passo 3: [Troca] Faa a = b, b = resto e volte para o passo 1. passo 1: [Clculo do resto] Divida dividendo por divisor. Seja r o resto; passo 2: [Verifique se o resto nulo] Se r = 0, o algoritmo termina e o valor do MDC divisor;

7. fim-enquanto 8. retornar divisor 9. fim-funcao.

Quadro 2 Comparao entre as unidades significantes no registro de partida e de chegada, para a verso iterativa do algoritmo. A estrutura de repetio, linha 3, ser executada enquanto a condio for verdadeira, ou seja enquanto o resto da diviso entre o dividendo e divisor for diferente de zero; quando o resto da diviso entre o dividendo e divisor for igual a zero, a repetio encerrada, e o

55

valor da

varivel divisor corresponde ao MDC procurado. Observando o Quadro 2,

assumindo a = dividendo e b = divisor, vemos que os passos 1 e 2 so representados pela condio da estrutura de repetio, e pelo comando de atribuio, da linha 4, em que a varivel c recebe o resto atualizado entre dividendo e divisor, j o passo 3 corresponde as linhas 5 e 6, dentro da estrutura de repetio. Neste caso percebemos as unidades significantes no registro de partida e de chegada no so congruentes. O Quadro 3 apresenta a representao intermediria do Mtodo de Euclides e a verso recursiva do algoritmo. Algoritmo de Euclides Recursivo Representao Intermediria do Mtodo de Euclides
1. inicio 2. se divisor = 0 entao 3. mdcDeEuclides dividendo

passo 1: [Clculo do resto] Divida dividendo por divisor. Seja r o resto; passo 2: [Verifique se o resto nulo] Se r = 0, o algoritmo termina e o valor do MDC divisor; passo 3: [Troca] Faa a = b, b = resto e volte para o passo 1.

4. senao mdcDeEuclides 5. mdcDeEuclides(divisor, resto (dividendo, divisor))

6. fim-se 7. fim-funcao.

Quadro 3 - Comparao entre as unidades significantes no registro de partida e de chegada, para a verso Recursiva. A primeira vez que a funo chamada, dividendo = a e divisor = b, o que corresponde ao passo 1, considerando que o divisor seja > 0, a funo se auto chama, o que caracteriza a recurso, s que dessa vez, com o divisor no lugar do dividendo e com o resto da diviso entre dividendo e divisor no lugar do divisor, o que corresponde ao passo 2, at que o resto entre dividendo e divisor seja igual a zero, o que corresponde ao passo 3. Ento, as chamadas vo sendo substitudas pelos resultados intermedirios at chegar ao mdc final. Comparando o Quadro 2 com o Quadro 3, observamos que as unidades significantes no registro de partida, a saber, a descrio dos passos para o clculo do mdc, e as unidades significantes no registro de chegada, respectivamente, os algoritmos iterativo e recursivo, esto mais prximas no algoritmo recursivo, pois esta verso praticamente a sequncia de

56

passos descrita por Knuth; ao passo que para transformar este mesmo algoritmo na verso iterativa, necessrio discretizar os processos de repetio e condicionais, que esto implcitos no modelo matemtico. Analisando a histria do conceito de algoritmo, observamos que a utilizao da teoria, elaborada por Turing, na programao de computadores, dependente das tecnologias para a construo do hardware. Essa dependncia se constitui um obstculo, pois o formato dos algoritmos, para que os mesmos possam ser executados pela mquina, determinado por esta tecnologia. No s nos computadores, mas tambm em todos os outros recursos tecnolgicos disponveis atualmente, a linguagem simblica, utilizada pelas mquinas, baseada em um sistema de numerao especfico, como binrio, ou hexadecimal. Essa limitao fsica faz com que tenhamos que traduzir nossos pensamentos de forma que o hardware possa compreend-los e execut-los. Para que essa traduo seja possvel, necessrio trabalhar com representaes semiticas distintas, at chegarmos naquela utilizada pela mquina. Esse processo envolve no apenas formas de representao, como tambm a discretizao de um processo de natureza contnua. Neste processo, temos que considerar vrios fatores produtores de obstculos, os de origem epistemolgica, as dificuldades relacionadas converso de registros de representao no-congruentes e os obstculos de origem didtica. Para avaliar cada um destes, aspectos realizamos uma pesquisa emprica, descrita nos captulos 6 e 7.

4.4 - A Aprendizagem de Algoritmos Como j mencionado, para que o computador execute as tarefas que desejamos, devemos estabelecer qual a lgica de programao que ele deve utilizar. Considerando que o raciocnio algo abstrato, intangvel, os seres humanos tm a capacidade de express-lo por meio da palavra falada ou escrita, baseada em um determinado idioma, que segue uma srie de padres definidos por uma gramtica. Um mesmo raciocnio pode ser expresso em qualquer um dos inmeros idiomas existentes, mas continuar representando o mesmo raciocnio, usando apenas uma outra conveno. O mesmo ocorre com a lgica de programao, que pode ser concebida pela mente

57

treinada e pode ser representada em qualquer uma das inmeras linguagens de programao existentes. Estas, por sua vez, so atreladas a uma grande diversidade de detalhes computacionais, que pouco tm a ver com o raciocnio original. Para escapar dessa torre de Babel e, ao mesmo tempo, representar mais fielmente o raciocnio da lgica de programao, utilizamos o pseudocdigo. Farrer (1999, p. 16), descreve um algoritmo da seguinte forma: Ao um acontecimento que, a partir de um estado inicial, aps um perodo de tempo finito, produz um estado final previsvel e bem definido. Portanto, um algoritmo a descrio de um conjunto de comandos que, obedecidos, resultam numa sucesso finita de aes. Como vimos, podemos encontrar diversas definies para o termo algoritmo. Todas concordam que um algoritmo deve realizar um conjunto de tarefas para resolver um problema que esteja bem definido. Na medida que precisamos especificar uma sequncia de passos, precisamos ordenar o pensamento; portanto, precisamos elaborar um raciocnio lgico (FORBELLONE, 2000). Se pensarmos em atividades rotineiras que realizamos diariamente, podemos constatar que, muitas vezes, estamos intuitivamente executando um algoritmo, ainda que noestruturado, por exemplo, quando utilizamos uma receita de bolo. Nela est descrita uma srie de ingredientes necessrios e uma sequncia de passos (aes) que devem ser fielmente cumpridos para que se consiga fazer o bolo desejado. Quando elaboramos um algoritmo, devemos especificar aes claras e precisas, que, a partir de um estado inicial, aps um perodo de tempo finito, produzem um estado final previsvel e bem definido. Isso significa que o algoritmo fixa um padro de comportamento a ser seguido, uma norma de execuo a ser trilhada, com vistas a alcanar, como resultado final, a soluo de um problema, garantindo que, sempre que executado sob as mesmas condies, produza o mesmo resultado. Um algoritmo tem por objetivo descrever o raciocnio lgico envolvido na soluo de um problema. Dessa forma, viabiliza a abstrao de uma srie de detalhes computacionais, que podem ser acrescentados mais tarde, o que nos permite focalizar nossa ateno naquilo que importante: a lgica de programao. Um fator relevante na construo de algoritmos que, uma vez concebida uma soluo algortmica para um problema, esta pode ser traduzida para qualquer linguagem de

58

programao e ser agregada s funcionalidades disponveis nos diversos ambientes existentes. H muitas formas de se resolver um problema, pois cada pessoa pensa e age de maneira diferente. Cada indivduo tem uma heurstica prpria, associada a padres conhecidos por ele, e no a um objeto concreto. Isso significa que, para cada problema proposto, podem haver diversas estratgias para encontrar a soluo. A prtica e o bom senso indicaro qual a mais adequada, que, com menor esforo e maior objetividade, produz o resultado almejado. O ponto de partida para o aprendizado da lgica de programao, como muitos autores apontam, quase que na sua totalidade a implementao de procedimentos matemticos. Por exemplo, para o aluno construir um algoritmo computacional para encontrar o fatorial de um nmero n, ele deve utilizar o procedimento matemtico intuitivo, aprendido no ensino fundamental, para encontrar o fatorial desse nmero. Entretanto, a realidade abstrata da Matemtica nem sempre corresponde realidade fsica que cerca o ser humano, com leis que regem tempo e espao. O homem um agente computacional capaz de vivenciar as potencialidades e limitaes desses dois mundos, o real e o abstrato. Isso no ocorre com os computadores, que, apesar de serem fruto de uma concepo matemtica abstrata, so feitos para resolver problemas no mundo real. Os algoritmos podem ser to complexos que os seres humanos precisam do auxlio de mquinas (computadores) para implement-los; para que essas mquinas trabalhem de forma coerente, elas devem seguir regras rgidas, organizadas e formalizadas. A Matemtica pode ser til nesta organizao, pois viabiliza a formalizao adequada do contedo destes algoritmos.

4.5 Formas de Representao de um Algoritmo Um algoritmo pode ser representado de diversas maneiras, entre elas: a) pseudocdigo, tambm chamado de pseudolinguagem ou portugol: uma linguagem com alguma liberdade de sintaxe e parecida com a linguagem natural (portugus). b) Fluxograma: a representao em modo grfico de um algoritmo, em que formas geomtricas diferentes indicam as aes (comandos) a serem realizados. c) Linguagem de programao: um conjunto de regras sintticas e semnticas usadas para definir um programa a ser executado por um computador. Todas tm regras claras e bem definidas, embora apresentem diferenas quanto sintaxe

59

dos comandos, possuem estruturas similares. Tanto o pseudocdigo, quanto o fluxograma, so representaes intermedirias entre a linguagem natural e a linguagem de programao. A vantagem de utiliz-los est na abstrao de detalhes de ambientes de programao, que no interferem na lgica do processo. Apresentamos, a seguir, um exemplo de algoritmo expresso em cada uma das trs formas de representao citadas. Este algoritmo calcula a mdia de duas notas, fornecidas pelo usurio, e se a mdia for maior que sete, d uma mensagem de aprovado, caso contrrio, d uma mensagem de reprovado. a) Algoritmo representado em portugol para o clculo da mdia:
inicio // incio do algoritmo em portugol inteiro nota1, nota2; real media; escreva ("Entre com a primeira nota"); leia (nota1); escreva ("Entre com a segunda nota"); leia (nota2); media ( nota1 + nota2 ) / 2; se media > 7 entao escreva ("Aprovado"); senao escreva ("Reprovado"); fim.

60

b) Algoritmo representado por fluxograma para o clculo da mdia:

Figura 1 - Fluxograma do algoritmo para o clculo da mdia Fonte: A autora.

61

c) Algoritmo representado em Linguagem C, para o clculo da mdia: Programa void main() { int nota1, nota2; float media; clrscr(); cin >> nota1 >> nota2; // Limpa a tela // Recebe as duas notas

media = (nota1 + nota2) / 2; // Calcula a mdia if (media > 7) cout << "\nAprovado; else cout << "\nReprovado ; } // Mostra o resultado

4.6 - Estruturas para o Desenvolvimento de Algoritmos Para especificar um algoritmo utilizando pseudocdigo, de maneira que seja possvel execut-lo por meio de um computador, necessrio adotarmos uma linguagem com sintaxe rgida. Os elementos desse pseudocdigo, abordados neste trabalho, so: variveis comandos de entrada e sada operadores aritmticos, relacionais e lgicos estruturas condicionais estruturas de repetio/lao Na programao, uma varivel pode assumir qualquer valor do seu conjunto domnio. As linguagens de programao contm alguns conjuntos domnio pr-definidos, os quais so denominados de tipos de dados nativos, so eles: Inteiro, Real, Caracter e Lgico. Quando um algoritmo depende de informaes externas, que devero de algum modo ser inseridas no computador, necessrio haver uma entrada de dados. Por exemplo, um programa que emite extrato bancrio precisa que o usurio fornea o nmero da agncia, a

62

conta corrente e a senha. Estes dados podem ser captados via carto magntico ou teclado, e sero algumas das variveis do programa. Uma vez que os dados de entrada tenham sido processados, mostram-se ou gravamse os resultados num dispositivo de sada: impressora, monitor de vdeo, discos, etc. No caso do exemplo de extrato bancrio, a sada poderia ser o saldo da conta corrente e os lanamentos efetuados. Os operadores aritmticos e relacionais so os mesmos utilizados pela Matemtica; j os operadores lgicos so os operadores elementares da Lgica Booleana e e ou. 4.6.1 - Estruturas Condicionais A estrutura condicional permite a escolha do grupo de aes e estruturas a serem executados quando determinadas condies, representadas por expresses lgicas, so ou no satisfeitas. A estrutura condicional pode ser simples ou composta. Quando a expresso condicional verdadeira, o bloco de comandos que segue a palavra "ento" executado; caso contrrio, executado o bloco que segue a palavra seno. Observando o diagrama abaixo, se a condio for verdadeira, ento a sequncia de comandos C1;...; Cn executada; caso contrrio, se a condio for falsa, a sequncia D1;...; Dn ser executada.

se <condio> ento C1; C2; C3; . . . Cn; seno D1; D2; D3; . . . Dn; fim se

63

4.6.2 - Estruturas de Repetio As estruturas de repetio permitem que um bloco de comandos seja executado uma ou mais vezes, quando determinadas condies, representadas por expresses lgicas, so ou no satisfeitas. 1. Repetio com teste no incio, em que os comandos so executados apenas se a condio resultar em valor verdadeiro; neste caso, o comando utilizado chama-se Enquanto. 2. Repetio com teste no final, em que os comandos so executados pelo menos uma vez e, ento, a condio avaliada. Caso a condio resulte em valor verdadeiro, o processo repetido. Este comando chama-se Repita - Enquanto. 3. Para: repete um bloco de comandos k vezes, em que k uma quantidade determinada.

1. Enquanto (teste no incio) A sequncia de comandos C1;...; Cn executada enquanto a <condio> for verdadeira. Quando ela se torna falsa, a execuo do algoritmo passa ao comando seguinte.

2. Repita enquanto (teste no final) A sequncia de comandos C1;...; Cn executada uma vez, ento, se a <condio> for verdadeira, a execuo se repete enquanto a <condio> continuar verdadeira. Quando ela se torna falsa, a execuo do programa passa ao comando seguinte.

64

3. Para O comando inicia com a execuo da atribuio <v


i>,

se a condio <v = l> for

verdadeira, a sequncia de comandos C1;...; Cn executada, caso contrrio, o comando finalizado; em seguida, executa-se a atribuio <v exceto a atribuio.
para <v C1; C2; C3; . . . Cn; fim para i> at <v = l> <v v+p> v+p>

e todo o processo repetido,

Nos exemplos da utilizao das estruturas de repetio mostrados a seguir, no Quadro 4, utilizamos as mesmas variveis para manter a referncia. Em todos os casos, a varivel A vai tendo seu valor acrescido com o da varivel I, que incrementada em 1 a cada execuo dos comandos de repetio. A coluna da esquerda mostra o trecho do algoritmo e as colunas da direita mostram o contedo das variveis de acordo com a execuo do algoritmo.

65

Repetio com teste no final (repita enquanto) inteiro A, I; I 1; A 0;

Acompanhamento da execuo do algoritmo I 1 2 3 4 5 A 0 1 3 6 10

repita A A + I;

Escreva A; I I + 1;

enquanto I< 5; Repetio com teste no incio (Enquanto fim-enquanto) inteiro A, I; I 1; A 0; Acompanhamento da execuo do algoritmo I 1 2 3 4 5 A 0 1 3 6 10

enquanto I < 5 faa A A + I;

escreva A; I I + 1;

Fim-enquanto Repetio com para Acompanhamento da execuo do algoritmo I inteiro A, I; A 0; 1 2 A + I; 3 4 A 0 1 3 6 10

para I de 1 at 4 passo 1 faa A

escreva A; fim-para

Quadro 4 - Exemplos da utilizao das estruturas de repetio

66

CAPTULO 5
Ambientes de Aprendizagem para Algoritmos O ensino e a aprendizagem de introduo programao tem sido objeto de estudo de diversos grupos de pesquisa tanto em universidades brasileiras quanto no exterior, entre elas podemos citar: (GUIMARES, 1995), (HUMEL, 2002), (HENDERSON, 1986), (JENKINS , 2001), COSTELLOE (2004a, 2004b). Estes estudos resultaram em metodologias e ferramentas utilizadas para promover a aprendizagem dessas disciplinas. Costelloe (2004a, 2004b), em seus trabalhos, discute e categoriza diversas delas. Um dos fatores relevantes, apontado por ela, a necessidade de mais experincias empricas para avaliar a eficcia dessas metodologias. O que diferencia nossa pesquisa das pesquisas analisadas por Costelloe que nosso enfoque est na concepo e no desenvolvimento do raciocnio computacional, enquanto que aquelas do nfase tecnologia envolvida no tratamento dos problemas de ensinoaprendizagem de algoritmos, bem como s diversas tcnicas didticas utilizadas, mais do que aos problemas de carter epistemolgico. O objetivo de apresentar este levantamento procurar nessas abordagens subsdios para uma pesquisa terico-prtica sobre o problema que nos ocupa: terica, na procura dos fundamentos epistemolgicos do problema, e prtica, na elaborao de um estudo de campo que avalie possibilidades, tanto tecnolgicas como metodolgicas, de melhoria das condies de ensino-aprendizagem de algoritmos. Na construo de um programa, podemos identificar duas fases distintas: a resoluo de problemas e sua posterior implementao. Segundo Henderson (1986), a resoluo de problemas e o pensamento analtico so a maior fragilidade dos alunos nos cursos de Informtica, para ele, esses tpicos deveriam ser enfatizados. Em seu artigo Modern Introductory Computer Science (HENDERSON, 1987) observa que um fator importante para a aprendizagem de resoluo de problemas aprender a usar a abstrao; assim, os cursos deveriam oferecer aos alunos ferramentas para pensar de maneira abstrata, em que a fundamentao matemtica deve ser fortalecida. Na fase de implementao, o aluno deve escrever a soluo encontrada para um problema, utilizando uma linguagem de programao, para, posteriormente, executar o

67

programa e corrigir seus possveis problemas, com auxlio de um ambiente especfico (como: Borland C., J. Builder, Pascal, entre outros) Esta fase envolve uma srie de reas de conhecimentos que o estudante deve dominar, entre elas: Sintaxe e escolha da linguagem: muitos estudantes gastam suas energias tentando solucionar erros de sintaxe, ao invs de investir na elaborao da soluo. Construtores de programa: mesmo comandos simples podem causar problemas aos alunos iniciantes. O que acontece, muitas vezes, que os alunos compreendem os exemplos trabalhados em sala de aula, porm, ao tentarem resolver um novo problema, esbarram nas mesmas dificuldades, patinam e no conseguem sair do lugar. Ambiente de desenvolvimento: para editar, compilar e executar um programa necessrio a utilizao de um ambiente de desenvolvimento integrado (IDES). Estes Ambientes no so adequados para programadores iniciantes, considerando que a maioria no possui suporte resoluo de problemas. Teste e Debug5: em alguns ambientes as mensagens de erro so complexas e confundem ainda mais o aluno. Considerando esse cenrio, Jenkins (2001) observa que o grande nmero de alunos que afirmam no ter competncia para escrever um programa simples alarmante.

5.1 - Classificao das Abordagens 5.1.1 - Aula Tradicional e Laboratrio Segundo Costelloe (2004b), neste tipo de ambiente o aluno na maior parte do tempo, atua de forma passiva, basicamente recebendo informaes. Isto ocorre principalmente em turmas em que o nmero de alunos elevado. As aulas so expositivas, seguidas de resoluo de problemas em laboratrio, utilizando uma linguagem de programao. Por conta disso, a nfase muitas vezes gira em torno da linguagem de programao e no da elaborao da soluo do problema, o que pode levar dificuldades e abstraes prematuras. A autora afirma que, nas aulas expositivas, quase no h interao entre os alunos e entre alunos e professor, alm das caractersticas individuais dos alunos no desempenharem papel relevante. Considerando nossa experincia docente, conclumos que esta metodologia no

Debug ou Depurao o processo de encontrar erros (bugs) ou problemas, num aplicativo de software ou mesmo em hardware (METZGER, 2003).

68

adequada para o ensino de introduo programao (algoritmos). De acordo com Costelloe (2004b), o ensino tradicional impe uma aprendizagem baseada em regras e restringe a capacidade natural dos alunos de resolver problemas. Segundo Linder et al. (2001), a educao superior tem uma tendncia a priorizar os mtodos de ensino tradicionais. Para comprovar, ele apresentou a seguinte tabela relacionando a modalidade de interao e a porcentagem de aproveitamento dos contedos pelos alunos, apresentado no Quadro 5.

Modalidade de interao 1. Lendo 2. Ouvindo 3. Assistindo 4. Assistindo e ouvindo 5. Discutindo 6. Fazendo e discutindo 7. Ensinando e monitorando

Porcentagem de reteno do contedo 10% 20% 30% 50% 70% 90% 95%

Quadro 5- Porcentagem de aproveitamento pelos alunos em relao modalidade de interao (LINDER et al., 2001) Percebemos que os itens 6 e 7 sinalizam para que sejam modificadas as tcnicas utilizadas pelo ensino tradicional. Embora esta metodologia de ensino ainda seja predominante em muitas universidades, no ensino de programao muitos professores/ pesquisadores tm procurado utilizar novas tcnicas e ferramentas para facilitar a aprendizagem, tanto em aulas expositivas, quanto de laboratrios. Entre estes pesquisadores, destaca-se o grupo da Universidade de Queensland, que, em 1998, props um curso baseado na aprendizagem por meio da resoluo de problemas e aprendizagem flexvel. A combinao de aulas expositivas com laboratrios altera este modelo para um modelo construtivista, em que os alunos podem utilizar os exerccios de laboratrio para construir o conhecimento adquirido na aula expositiva. As aulas expositivas podem ser rgidas ou adotar uma postura colaborativa entre professor e aluno, na busca de solues para os problemas propostos.

69

5.1.2 - Visualizao de Programas As pesquisas mais recentes em desenvolvimento cognitivo e neuropsicologia sugerem que as habilidades cognitivas so mais diferenciadas e mais especficas do que se acreditava (GARDNER, 1985). Acredita-se, hoje, que o sistema nervoso seja altamente diferenciado e que diferentes centros neurais processem diferentes tipos de informao (GARDNER, 1987). Howard Gardner, psiclogo da Universidade de Harvard, baseou-se nestas pesquisas para questionar a tradicional viso da inteligncia, uma viso que enfatiza as habilidades lingustica e lgico-matemtica. Segundo Gardner (1987), todos os indivduos normais so capazes de uma atuao em pelo menos sete diferentes e, at certo ponto, independentes reas intelectuais. Ele sugere que no existem habilidades gerais, duvida da possibilidade de se medir a inteligncia por meio de testes de papel e lpis e d grande importncia a diferentes atuaes valorizadas em culturas diversas. Finalmente, ele define inteligncia como a habilidade para resolver problemas ou criar produtos que sejam significativos em um ou mais ambientes culturais (GAMA, 1998). A teoria das Inteligncias Mltiplas do Gardner (1993) diz que o ser humano nasce com certa poro de inteligncia com reas dominantes e outras recessivas; o mais importante a capacidade de desenvolver qualquer rea da inteligncia. Os tipos de inteligncia so descritos brevemente a seguir (GAMA, 1998). 1. Inteligncia lingustica: Os componentes centrais da inteligncia lingustica so a sensibilidade para os sons, ritmos e significados das palavras, alm de uma especial percepo das diferentes funes da linguagem. a habilidade para usar a linguagem para convencer, agradar, estimular ou transmitir idias. 2. Inteligncia musical: Esta inteligncia se manifesta por meio da habilidade para apreciar, compor ou reproduzir uma pea musical. Inclui discriminao de sons, habilidade para perceber temas musicais, sensibilidade para ritmos, texturas e timbre, e habilidade para produzir e/ou reproduzir msica. 3. Inteligncia lgico-matemtica: O componente central desta inteligncia a sensibilidade para padres, ordem e sistematizao. a habilidade para explorar relaes, categorias e padres, por meio da manipulao de objetos ou smbolos, e para experimentar de forma controlada; , ainda, a habilidade para lidar com sries de raciocnios, para reconhecer problemas e resolv-los. a inteligncia caracterstica de matemticos e cientistas. Gardner,

70

porm, explica que, embora o talento cientfico e o talento matemtico possam estar presentes num mesmo indivduo, os motivos que movem as aes dos cientistas e dos matemticos no so os mesmos. Enquanto os matemticos desejam criar um mundo abstrato consistente, os cientistas pretendem explicar a natureza. 4. Inteligncia espacial: Gardner descreve a inteligncia espacial como a capacidade para perceber o mundo visual e espacial de forma precisa. a habilidade para manipular formas ou objetos mentalmente e, a partir das percepes iniciais, criar tenso, equilbrio e composio, numa representao visual ou espacial. 5. Inteligncia cinestsica: Esta inteligncia se refere habilidade para resolver problemas ou criar produtos por meio do uso de parte ou de todo o corpo. a habilidade para usar a coordenao grossa ou fina em esportes, artes cnicas ou plsticas no controle dos movimentos do corpo e na manipulao de objetos com destreza. 6. Inteligncia interpessoal: Esta inteligncia pode ser descrita como uma habilidade para entender e responder adequadamente a humores, temperamentos, motivaes e desejos de outras pessoas. 7. Inteligncia intrapessoal: Esta inteligncia o correlativo interno da inteligncia interpessoal, isto , a habilidade para ter acesso aos prprios sentimentos, sonhos e idias, para discrimin-los e lanar mo deles na soluo de problemas pessoais. o reconhecimento de habilidades, necessidades, desejos e inteligncias prprias; a capacidade para formular uma imagem precisa de si prprio e a habilidade para usar essa imagem para funcionar de forma efetiva. Como esta inteligncia a mais pessoal de todas, ela s observvel por meio dos sistemas simblicos das outras inteligncias, ou seja, por meio de manifestaes lingusticas, musicais ou cinestsicas. Para a aprendizagem de introduo programao, segundo Costelloe (2004b) s habilidades espaciais tm muita importncia. Entende-se por inteligncia espacial a habilidade de formar um modelo mental de um mundo espacial. A visualizao de programas o mapeamento de idias abstratas, representadas no cdigo em representaes visuais, facilitando a observao do sistema. utilizada para auxiliar o programador ou o usurio a compreender as variveis observadas. De acordo com (YEHEZHEL, 2002, apud COSTELLOE, 2004b), a visualizao pode favorecer a aprendizagem, desde que a ferramenta utilizada crie uma interao adequada entre

71

o aluno e a visualizao. As principais formas de visualizao, utilizadas no ensino de programao, so a Visualizao de Programas, a Animao do Algoritmo e a Programao Visual, descritas brevemente a seguir. A Visualizao de Programas focada na representao grfica da execuo de um programa e seus dados. possvel visualizar os dados, cdigo e os eventos desejados. Existe um baixo nvel de abstrao e so feitas representaes diretas do cdigo e dados. J o usurio pode exercer um papel passivo ou ativo, fazendo as alteraes por dados desejadas ao longo da execuo. Entre os Visualizadores mais utilizados esto: JAWAA: Java e Animao de algoritmo baseado na web. Alice (www.alice.org): Tem como objetivo facilitar para os iniciantes a construo de animaes grficas em 3D. Possibilita ao aluno aprender estratgia de resoluo de problemas e d conceitos necessrios para criar um programa de computador. Alice construda utilizando a linguagem Python (www.python.org) Karel: Desenvolvido por um grupo de Waterloo. utilizado para ensinar conceitos de orientao a objetos, seleo, interao, mtodos com parmetro e instncias de variveis. J Karel Robot: uma ferramenta educacional que estende os conceitos do Rob Karel, utilizando a taxonomia de Bloom.Visa ao desenvolvimento cognitivo e ao ensino de mais conceitos presentes no currculo de cursos de informtica. Seus autores acreditam que a taxonomia de Bloom prov uma base para uma maior eficcia pedaggica, em particular, identificando tpicos, exerccios e tarefas. Logo: Logo o nome para uma filosofia educacional e uma famlia continuamente evoluindo de linguagens de programao para melhorar sua realizao. (Abelson, 1993). Desenvolvido inicialmente h mais de 30 anos, baseado na filosofia educacional construtivista, e foi desenvolvido como uma ferramenta de aprendizagem. Segundo Costelloe (2004b), baseada nos resultados das pesquisas com Logo at o momento, o potencial do Logo para desenvolver idias geomtricas deve ser utilizado para estender as atividades dos professores. Observa-se que os alunos no transferem automaticamente o conhecimento obtido com uma situao para a outra, apenas a repetio no suficiente. Deve-se disponibilizar questes que levem os alunos a refletir sobre aquilo que esto fazendo.

72

Diversos projetos de ensino tm sido introduzidos na cincia da computao por meio de animaes e mundo virtual. Na Universidade de Duke est sendo desenvolvido um mundo virtual de animao, com finalidade de ensinar conceitos de cincia da computao e de programao por meio de animaes simples em 2D e 3D. Nesta universidade, os alunos se sentem motivados, trabalham em laboratrio em pares. Um dado relevante a observar, o nmero de alunos, neste caso quinze. As aulas expositivas (tradicionais) no foram abolidas, porm, tiveram reduo e tm sido utilizadas para introduzir cada assunto a ser tratado no laboratrio. Este curso tem incio com HTML, para que cada aluno possa construir seu portflio, ento o conceito de algoritmo introduzido com exemplos simples, com a montagem de um sanduche. A prxima etapa a criao de animaes usando JAWAA, primeiro criando vrios elementos (objetos) simples e, depois, agrupando-os. Feito isso, passa-se ao aprendizado com Star Logo, ento, o ambiente Alice utilizado para criar um mundo tridimensional; finalmente, nas ltimas cinco semanas, utiliza-se Karel ++ (programming robots). Esta experincia levou os pesquisadores envolvidos s seguintes concluses: A maioria dos alunos gosta de trabalhar em pares. A criao de pginas Web e o uso do programa Alice foram os tpicos preferidos por 100% dos alunos. Star Logo e Karel ++ ficaram em segundo lugar, com 75% da preferncia dos alunos. JAWAA ficou com 50%. O grupo de professores est propondo utiliz-la com um editor grfico em vez de digitar os comandos em arquivo, para o prximo curso; e, Alguns alunos acharam o Karel ++ muito complexo. As avaliaes mostraram que os alunos gostaram dessa modalidade de curso, mas no indicam se o curso facilitou a aprendizagem em relao ao curso de programao tradicional. O que se pode afirmar que houve um aumento considervel na motivao dos alunos. Quanto Animao de Algoritmos, segundo Costelloe (2004b), muito esforo e recursos tm sido empregados no desenvolvimento de sistemas de animao para ensinar algoritmos em cursos de Cincia da Computao. Esses sistemas mostram diversas operaes realizadas pelo algoritmo, uma vez que o usurio geralmente pode escolher o que quer visualizar e qual o nvel de abstrao a ser utilizado. Assim, possvel haver um alto grau de

73

interao entre a ferramenta e o usurio. O primeiro sistema para animao de algoritmos foi desenvolvido por Mark Brown no incio dos anos 80, chamava-se BALSA (Brown University Algorithm Simulator and Animator). Este sistema foi o prottipo para todos os sistemas de animao disponveis atualmente. Com o objetivo de avaliar empiricamente o valor pedaggico dos estudantes visualizarem e interagirem com animaes de algoritmos pr-elaborados, John Stasko realizou alguns experimentos, concluindo que os benefcios dessas animaes no eram bvios (STASKO, 1996, apud COSTELLOE, 2004b). Os desenvolvedores concluram que um sistema de animao de algoritmos deveria ser fcil de aprender e utilizar, alm de que, o desenvolvimento das animaes deveria ser intimamente ligado ao algoritmo e suas operaes. O programa Samba foi desenvolvido para atender tais requisitos e torna possvel visualizar algoritmos de ordenao (quicksort, heapsort, bolha, etc.), utilizados

principalmente no aprendizado de Estruturas de Dados. Da mesma forma que o Samba, vrios outros programas foram desenvolvidos com a mesma finalidade. Hundhausen (2002) realizou um estudo etnogrfico integrando o scioconstrutivismo e a visualizao de algoritmos em um curso de algoritmos para alunos do nvel mdio. Nesse curso, os alunos eram conduzidos a construir seu aprendizado com o auxlio de ferramentas para, posteriormente, apresentar suas visualizaes ao professor e a seus colegas para discusso. As tcnicas de pesquisa utilizadas foram: observao participante, entrevistas informais e semi-estruturais, questionrios, notas de campo, gravao de udio e vdeo das apresentaes, coleta e anlise de dados. Ainda foram coletados e analisados os dirios dos alunos, em que eles relatavam o processo de elaborao das animaes, bem como os problemas encontrados. Os dois estudos so baseados em duas turmas ministradas pelo mesmo professor em dois trimestres consecutivos. O estudo realizado por Haundhausen (2000) abrangeu a observao dos alunos e de um professor assistente. Ele argumenta que, de acordo com o scioconstrutivismo, a participao na comunidade muito produtiva. Dessa forma, a construo e a apresentao das visualizaes de algoritmo, como feitas nesse curso, deram ao aluno a oportunidade de se engajar em atividades tpicas do professor.

74

Segundo Haundhausen (2000), os exerccios motivaram os alunos a trabalharem com mais afinco e com mais motivao. Sua descoberta mais importante que as ferramentas convencionais existentes para visualizao de programas podem desviar a ateno dos alunos dos conceitos realmente importantes do curso. Ele sugere que a partir desses resultados sejam realizados rigorosos estudos empricos para test-los. Com relao aos aspectos pedaggicos da utilizao da Visualizao de Programas, considerando que o ser humano tem diferentes estilos de aprendizagem, a visualizao pode clarear conceitos complexos, possibilitando ao aluno desenvolver modelos mentais para represent-los em forma de algoritmo. Segundo Ben Ari (2001), o construtivismo diz que cada indivduo cria estruturas cognitivas (modelos) durante a aprendizagem. Dados sensitivos so combinados com o conhecimento existente para criar novas estruturas cognitivas, que se tornam base para outras construes. O conhecimento tambm criado, cognitivamente, por meio da reflexo sob conhecimentos existentes. Ele compara a visualizao com o construtivismo, pois ela auxilia na construo do conhecimento, considerando que o aluno pode controlar sua atividade e tem retorno imediato. Em ambos os casos, o conhecimento construdo de forma ativa. J a Programao Visual caracterizada por Costelloe (2004b) como o uso de componentes visuais para construir um programa, sem representao textual, atrs de representaes grficas, e como exemplo podemos citar a linguagem de programao Visual Basic (VB). Humel (2002) afirmou que, apesar do Visual Basic ser a linguagem de programao mais popular dos EUA, no muito utilizada nos cursos de Cincia da Computao. Uma das razes para que isso venha ocorrendo o fato do mercado estar solicitando cada vez mais programadores em linguagem Java. Entretanto, em algumas experincias, como na Saint Xavier University, pesquisadores concluram que, para introduzir a programao, a linguagem Visual Basic seria uma opo mais adequada, se comparada com as linguagens tradicionais. Harris (2000) relacionou as linguagens mais utilizadas em cursos de introduo programao, cuja relao est apresentada na Quadro 6. Ele tambm analisou a dicotomia entre a rejeio do Visual Basic pela academia e a aceitao pela comunidade de programadores.

75

Linguagem C ++ Java Pascal C

N de colgios / universidades 12 5 2 1

Porcentagem 60% 25% 10% 5%

Quadro 6 Linguagens utilizadas em cursos de introduo programao (HARRIS, 2000). Outro exemplo da utilizao de programao visual foi uma nova metodologia desenvolvida por Smith (SMITH, 2000, apud COSTELLOE, 2004b) para o ensino de programao, combinando programao por demonstrao (PBD) e regras visuais antesdepois. Essa metodologia foi implementada em um sistema chamado de Stagecast Creator, e o sistema tornou-se um produto comercial. Inicialmente, era voltado educao infantil, focado na simulao. Nesse sistema, o usurio demonstra os algoritmos utilizando a interface, por meio de simulaes visuais, sem a necessidade de programar. Smith e Cypher fizeram centenas de testes em escolas da Califrnia em crianas e adolescentes entre seis e doze anos, em que os professores integraram prottipos do Stagecast Creator ao longo do ano, com o objetivo de aprimorar a habilidade dos alunos em resolver problemas. Pesquisadores independentes, em diversas universidades da Inglaterra, conduziram um estudo formal utilizando prottipos do Stagecast Creator e concluram que os estudantes, que aprenderam programao inicialmente com o Stagecast Creator, tornaram-se programadores melhores do que os que aprenderam direto uma linguagem de programao.

5.1.3 - Robs Pesquisas na rea de educao, desde Maria Montessori, que acreditava que as crianas aprendiam por meio de investigao e explorao, at Piaget, que argumentava que o conhecimento construdo por meio de operaes concretas, e considerando ainda as idias de Papert, o qual chamava para uma re-avaliao do concreto e afirmava que as abstraes no deveriam ser consideradas superiores s atividades concretas, todos promovem

76

aprendizagem via atividades fsicas, colocando atividades concretas antes das abstratas. Esta linha de pensamento foi adotada por diversos pesquisadores na rea de ensino de programao, que propuseram a utilizao de robs para ensinar os conceitos bsicos desta disciplina. Em 1960, o desenvolvimento do Rob Karel, citado na seo 5.1.2, deu incio aos trabalhos nesta rea, que avanaram muito desde ento. Linder et al. (2001) afirmam que a aprendizagem promovida por meio da interao com um ambiente, ao invs de apenas participar de aulas expositivas, mais efetiva. Tambm na dcada de 1960, foi desenvolvida a linguagem de programao LOGO, projetada inicialmente para ser trabalhada com crianas, este foi o experimento mais popular envolvendo o uso de robs mecnicos (RESNICK, 1996). Posteriormente, o kit de construo LEGO foi incorporado linguagem LOGO. Com esse kit, as crianas tinham a possibilidade de construir mquinas, ligando motores e sensores, e podiam control-las pelo computador. Entretanto, apenas recentemente, com a queda do custo desta tecnologia e com o desenvolvimento de Kits portteis com LEGO/LOGO, que foi possvel a sua utilizao em larga escala nas escolas e universidades. O kit Mindstorms, desenvolvido pelo MIT (Massachusetts Institute of Technology), tornou-se uma ferramenta popular para o ensino, na Academia da Fora Area dos Estados Unidos, sendo utilizado em outras universidades. Em 2001, na Academia de Fora Area dos Estados Unidos, foi desenvolvida uma interface para o Lego Mindstorm RCs, baseada num subconjunto da linguagem de programao Ada, chamado de Ada Mindstorms 2.0. Esta interface foi desenvolvida porque os professores envolvidos com o ensino de introduo programao consideraram o ambiente original no adequado para um curso introdutrio. O uso desta ferramenta parte de uma experincia para ensinar programao em cursos de Cincia da Computao. Outras experincias, utilizando robs para o ensino de programao, obtiveram resultados satisfatrios. Para Costelloe (2004b) necessrio mais trabalho que comprovem empiricamente os benefcios do uso de robs em relao ao ensino tradicional. Wolz (2001) argumenta que o feedback imediato, fornecido pelos ambientes de desenvolvimento integrado (IOEs), deixa muitos estudantes dependentes da tecnologia. O que acontece de fato que os estudantes passam menos tempo planejando seu trabalho, pois partem para o mtodo da tentativa e erro. No caso dos robs, este planejamento

77

indispensvel, o que leva obrigatoriamente a pensar primeiro ao invs de utilizar o mtodo da tentativa e erro. Wolz utilizou um kit com dois robs LEGO para 20 (vinte) alunos, num curso experimental de programao, os quais trabalharam em grupos de quatro. No final, os estudantes responderam a um questionrio sobre a experincia e seu processo de aprendizagem. Como concluso do seu trabalho, a autora afirma que os alunos aprenderam a pensar no problema antes de program-lo. A experincia foi considerada um sucesso pedagogicamente, e comprovou que os robs podem ser utilizados no estgio inicial da programao e do gerenciamento de projetos, no apenas para demonstrar os programas de forma mais concreta. Os principais benefcios, identificados por Costelloe (2004b), da utilizao dos robs so: Promove atividades de aprendizagem, engaja os estudantes e favorece o entusiasmo. Promove a colaborao e os robs so participantes desta colaborao. Prov experincia com mquinas reais. Promove criatividade. Os alunos podem gerar hipteses e test-las, tendo um retorno imediato. Promove bons projetos e planejamento. Promove a unio dos aspectos tericos e prticos, o que facilita o aprendizado autnomo. Com relao aos aspectos pedaggicos da utilizao de robs, podemos fazer um paralelo com as idias da aprendizagem construtivista, em que os estudantes adquirem conhecimento construindo modelos individuais de conhecimento. Linder et al. (2001) acreditam que os robs no apenas facilitam a aprendizagem construtivista, mas tambm provem experincias reais, no apenas simulaes, o que pode ser bastante motivador. Linder et al. (2001) tambm observam que, para os alunos assimilarem os contedos ensinados, o mtodo de fazer e discutir muito eficiente. Considerando que o trabalho com robs envolve colaborao com outros alunos, necessrio que estes representem de forma mais elaborada suas idias abstratas, por meio de sentenas concretas, para que possam ser discutidas com os colegas, alm de ser possvel gerar e testar suas hipteses, assimilando mais

78

informaes.

5.1.4 - Aprendizagem Baseada em Problemas (PBL) Boud and Felette (1991) definem este tipo de aprendizagem no apenas como a insero de atividades de resoluo de problemas no currculo tradicional, mas, tambm, como sendo o planejamento da disciplina por meio de problemas-chave na prtica profissional. O ensino direcionado pelo problema ao invs da aula tradicional. Os problemas devem vir dos professores ou dos alunos, podendo ser bem-estruturados para os alunos iniciantes at fracamente estruturados, refletindo os problemas reais que os profissionais encontrariam no mercado. Os alunos trabalham em pequenos grupos, com a ajuda de um facilitador; o professor no diz como resolver o problema, apenas disponibiliza recursos que possam auxiliar a resolv-lo. Os alunos que devem determinar o que precisam aprender nas reas relevantes para resolver o problema. Segundo Costelloe (2004b), no ensino da computao este tipo de aprendizagem favorecido por alguns fatores, entre eles, o fato de a computao ser dirigida por problemas e a aprendizagem ser contnua, devido s mudanas naturais da indstria, alm dos projetos em grupo serem predominantes na indstria. Entretanto, como a introduo programao ministrada no incio da maioria dos cursos universitrios, este mtodo no nos parece o mais adequado, devido falta de experincia e pouco conhecimento para discernir quais pontos so relevantes ou no. Em 1996, o Departamento de Cincia da Computao da Universidade de Sydney (Austrlia), desenvolveu um projeto que abrangeu duas etapas: paralelamente a uma turma de programao convencional, foi aplicada em outra turma do mesmo perodo, uma verso do curso utilizando os processos PBL. Como resultado, estes alunos no acharam diferenas significantes em relao ao ensino tradicional, porm gostaram mais do curso com PBL do que os alunos convencionais (COSTELLOE, 2004b). Devido ao sucesso que os processos PBL obtiveram na rea mdica, McCracken e Waters (1999) decidiram implementar um programa utilizando PBL para o ensino de engenharia de software. Para eles, esta rea apresentava uma dificuldade dual pelo fato de

79

necessitar de um conhecimento que cresce exponencialmente para ser colocado em prtica, alm do grau de complexidade envolvido, que esperado que os alunos superem. Para compreender porque os processos PBL no tiveram o mesmo sucesso na informtica do que em outras reas, como na sade, McCracken e Waters (1999) realizaram um estudo etnogrfico dos alunos e observaram que o problema do aprendizado colaborativo est nas dificuldades em trabalhar em grupo, que fazem com que os alunos passem a evitar o problema em vez de resolv-lo. Estes autores acreditam que necessrio, primeiramente, desenvolver habilidades para se trabalhar em equipe, alm de auxiliar o aluno a identificar quais assuntos so necessrios para seu aprendizado individual, a ento prosseguir com o processo PBL. Entre os benefcios da aprendizagem baseada em problemas os autores destacam: Aprendizagem efetiva, de longa durao, pois ela fora o aluno a refletir sobre seus processos de aprendizagem. Promove o entendimento por meio do trabalho colaborativo. A aprendizagem se d por problemas semelhantes a problemas reais, ao invs de contedos. Os problemas podem ser bem estruturados ou fracamente estruturados, dependendo da experincia dos alunos. Promove criatividade em criar solues para problemas diversificados. Promove habilidade de trabalhar em equipe. Promove o aprendizado independente e fora os alunos a terem responsabilidade por seu trabalho. Promove sentimentos positivos em relao ao curso. Os alunos aprendem outras habilidades no especficas do curso. Entre essas habilidades, destacam-se a verbal, a escrita de relatrio e a demonstrao das solues. Com relao aos aspectos pedaggicos da PBL, observa-se que ela adota uma viso construtivista da aprendizagem, na qual os alunos fazem ajustes contnuos para que haja uma construo verdadeira. Segundo Costelloe (2004b), este mtodo favorece a autonomia e as habilidades para se trabalhar em equipe, o que no tem tido a importncia devida em cursos tradicionais. Alm disso, engajar o aluno na construo de seu conhecimento uma das

80

caractersticas da pedagogia construtivista.

5.1.5 - Aprendizado Cognitivo A principal caracterstica desse mtodo que h uma socializao do conhecimento, os problemas so selecionados de acordo com seus nveis pedaggicos e a nfase ensinada depende do foco da aprendizagem. Chalk (CHALK, 2000, apud COSTELLOE, 2004b) fez uma experincia combinando a descrio de Papert de micromundo como um ambiente de aprendizagem ativo e os aplicativos interativos para desenvolvimento de programas disponveis via internet, chamando de webworlds. Ele props em seu estudo de caso a utilizao de um ambiente colaborativo BSCW (Suporte Bsico para trabalho colaborativo). Nesse estudo, os alunos trabalharam em pares, cada par com uma rea especifica no ambiente compartilhado, sendo que todos poderiam acessar reas comuns. A inteno era que os alunos colocassem seus projetos para todos, de forma a compartilharem sua aprendizagem; o ambiente tambm podia oferecer comentrios vindos de um tutor responsvel por cada grupo de alunos. Chalk (2000) utilizou observao, entrevistas, anotaes dos alunos, relatrio das tarefas, gravaes on-line, questionrio e testes para conduzir seu estudo de caso e concluiu que nem todas as ferramentas eram acessveis, os modelos propostos pelos alunos eram exploratrios e o objetivo da tarefa, que era comparar a variedade de solues dos alunos, ficou vago se comparados com o previsto. A concluso final foi que no houve evidncia de atividade criativa, alm do convencional. Entre os benefcios da Aprendizagem Cognitiva, Costelloe (2004b) destaca os seguintes: Promove habilidades metacognitivas, por meio da reflexo e auto-anlise. Possibilita que alunos mais experientes dem dicas e suporte gradualmente aos demais, quando necessrio. Como o feedback mais rpido, pode guiar os alunos. Os professores podem avaliar a maneira de pensar dos alunos e aplicar exerccios adequados a cada grupo. Promove colaborao e aprendizagem num contexto social. A disponibilidade de ferramentas na Web facilita o desenvolvimento da

81

aprendizagem; e Promove o desenvolvimento de outras habilidades, tais como: a verbalizao e a comunicao. Segundo Costelloe (2004b), no mtodo de Aprendizagem Cognitiva so utilizadas as seguintes estratgias de aprendizagem: Modelagem, por exemplo, a demonstrao de um processo de pensamento. Explicao, porque as atividades tm o lugar que tem. Os alunos podem contar com um professor praticamente particular, e com as facilidades de monitoramento, assistncia e suporte s suas atividades. Suporte para que os alunos consigam realizar suas tarefas com o auxlio cada vez menor do professor, promovendo sua independncia. Reflexo, auto-avaliao e auto-anlise. Articulao, resultado da reflexo para exprimir o raciocnio verbalmente. Explorao, os alunos so encorajados a formar suas hipteses e test-las para encontrar novas idias. A base da aprendizagem cognitiva como a do construtivismo, em que o aluno constri seu conhecimento primeiro com o impulso de algum experiente, e gradualmente vai se tornando independente. O aspecto colaborativo e o desenvolvimento de habilidades meta cognitivas se refletem em seu trabalho; assim, o aspecto social da aprendizagem, exposto por Vygotsky, inerente neste modelo.

5.2 - Teoria Educacional Powers & Powers (1999) salientam que nenhum mtodo pedaggico uma panacia! O que deve haver uma unio de caractersticas, que, alinhadas por um objetivo, possam promover a aprendizagem. Deve-se levar em considerao aspectos scioculturais, como nmero de alunos e origem, entre outros. A teoria construtivista afirma que todo o nosso conhecimento tem de ser construdo por meio de experincias pessoais e interaes sociais, num conjunto cultural particular, sendo que qualquer novo conhecimento que o aluno construa em resposta a uma nova experincia, ser incorporado a sua estrutura de conhecimento.

82

Segundo Powers & Powers (1999) para que o ensino seja efetivo, deve ser baseado na experincia. Diversas experincias didticas aqui relatadas tm carter experimental, por exemplo: Tecnologias Visuais, Aprendizagem Baseada em Problemas e a utilizao de Robs. Os pesquisadores envolvidos nestes trabalhos enumeram alguns requisitos para a aplicao de trabalhos em grupo, com o intuito de promover o aprendizado cooperativo, so eles: Objetivos individuais de aprendizagem. Pontuao individual. Independncia positiva: nenhum membro do grupo deve carregar os demais. Os grupos devem ser heterogneos. O professor deve colocar regras que promovam o engajamento social. Avaliao a posteriori do grupo. Deve-se considerar os diversos modelos de aprendizagem e auxiliar os alunos para que possam realizar tarefas tanto no modelo preferido como em outro qualquer. O modelo de indicador de tipos de Myers-Briggs (MBTI) classifica os alunos de acordo com suas preferncias, numa escala derivada da teoria de Carl Jung de tipos psicolgicos. Nessa escala, os estudantes podem ser: Extrovertidos, tentam pensar de dentro para fora, ou introvertidos, so aqueles que pensam por meio das coisas. Bom-senso, prticos e se orientam por detalhes, ou intuitivos, que utilizam a imaginao e se orientam pelos conceitos. Racionais, cticos e suas decises so baseadas em regras, ou emocionais, apreciam as coisas ao seu redor e suas decises so baseadas em consideraes humansticas ou pessoais. Julgadores, marcam e seguem sua agenda, ou perceptivos, se adaptam s mudanas circunstanciais. As aulas tradicionais so orientadas aos introvertidos, ao passo que se desenvolvermos atividades cooperativas, privilegiamos os extrovertidos. O modelo de estilo de aprendizagem de Kolb (1986) classifica os alunos de acordo com as seguintes preferncias: 1. Experincias concretas ou abstraes conceituais e

83

2. Atividades de experimentao ou observao reflexiva. Existem quatro tipos de aprendizagem neste esquema: Concreta / reflexiva: Neste caso, o aluno pergunta: Por que estamos aprendendo isso? Para ser efetivo com este tipo de aluno, o professor deve atuar como motivador. Abstrata / reflexiva: o aluno pergunta: O que estamos fazendo?. Neste caso, o professor deve atuar como um especialista. Abstrata / especialista: Como podemos aplicar isso?. O professor deve atuar promovendo um guia prtico e dando os devidos retornos. Concreto / ativo: O que se.... O professor deve atuar possibilitando a experincia com novas situaes e auto-aprendizagem. Em todos esses casos, o professor deve deixar claro a relevncia de cada tema abordado, encorajando a explorao. Tem-se ainda o modelo de Felder-Silverman (1988), que classifica os alunos da seguinte forma: Sensorial: concreto e prtico, ou intuitivo: conceitual, inovador e orientado pela teoria. Visual ou verbal. Indutivo: trabalha do especfico para o geral, ou dedutivo: trabalha do geral para o especfico. Ativo: vai alm do contedo abordado e trabalha com os outros, ou reflexivo: aquele que pensa nas coisas por si s, do comeo ao fim. Sequencial: trabalha de forma linear, global: aprende em pequenos passos. Felder (1988) afirma que o professor deveria trabalhar essas formas de maneira alternada, utilizando a mais adequada a cada situao a ser ensinada; porm, tanto os alunos como os professores tm a tendncia de utilizar sua forma preferida. Quando adotamos novos mtodos para ensinar programao, devemos ter em mente os diferentes estilos de aprendizagem e buscar um equilbrio entre eles, por exemplo, se focarmos a visualizao, ento devemos complementar com o mtodo verbal ou explicaes escritas. A teoria das inteligncias mltiplas do Gardner (1993) afirma que existem diversos tipos de inteligncia, cada pessoa dotada de um nvel varivel de cada uma dessas

84

inteligncias. Na rea de computao, espera-se ver estudantes com alto nvel de inteligncia lgica; entretanto, eles podem e devem aplicar outras inteligncias nas diferentes reas do curso. A sequncia em que ministrado o contedo tem um papel importante, e, muitas vezes, determinada pelos livros adotados. Devemos ser cautelosos ao estabelecer esta sequncia e, segundo Costelloe (2004b), possvel nos basearmos na taxonomia de Bloom da aprendizagem por objetivos, indo de um nvel de conhecimento simples a processos mais elaborados. Lister (LISTER, 2000) acredita que os alunos no devem comear escrevendo programas diretamente, mas, sim, que devem ser utilizados nveis de aprendizagem. possvel iniciar o currculo partindo de tpicos mais concretos para os mais abstratos, seguindo as idias de Piaget. A sequncia sugerida iniciar a programar com objetos concretos, neste caso os robs poderiam ser teis, para, posteriormente, trabalhar com ambientes abstratos. Powers & Powers (1999), seguindo os argumentos de Papert, acreditam que o significado atribudo ao termo concreto deveria ser revisto e argumentam que o raciocnio abstrato no deve ser visto como mais valioso do que as manipulaes concretas. Independente da metodologia utilizada, devemos buscar o aprimoramento do ensino, para que o mesmo possa promover a aprendizagem significativa. importante considerar os aspectos pedaggicos, prestar a devida ateno ao pblico e levar em considerao a variedade de estilos de aprendizagem existentes. Baseados nos trabalhos de Costelloe (2004a, 2004b), chegamos a algumas concluses, expostas a seguir. A comunidade acadmica reconhece a necessidade de complementar a abordagem tradicional com outras tecnologias; as pesquisas so baseadas numa pedagogia de fundo, por exemplo, variaes do construtivismo. Porm, a falta de evidncias empricas de como essas abordagens poderiam ser incorporadas no currculo e tambm quanto eficcia das mesmas tm inibido a sua utilizao. Ou seja, segundo Costelloe (2004b) necessrio que sejam realizadas um nmero maior de pesquisas exploratrias, para que sejam disponibilizados dados concretos a respeito do desempenho das abordagens em questo. Alguns aspectos devem ser considerados em abordagens ou ferramentas, com relao

85

a sua eficcia, so eles: Envolver o aluno com as atividades de aprendizagem. Permitir ao aluno um certo grau de controle sobre seu aprendizado, possibilitando sua progresso e reviso. Prover mecanismos de escalada, por exemplo: explicaes, ajuda sensvel ao contexto, estudo de caso e criao de padres. Fornecer feedback em tempo adequado. Utilizar a colaborao. Incorporar mecanismos de auto-anlise para promover habilidades de aprendizagem metacognitiva e independente. Apresentar mltiplas representaes de conceitos e textos. A maioria das ferramentas baseadas em tecnologia voltada para visualizao de algoritmos e programas j prontos. Algumas poucas so voltadas para quem est comeando a aprender programao. Ziegler e Crews (1999) apontam para a necessidade de mais pesquisas para avaliar a etapa em que o aluno entende o processo de conceber uma soluo computacional, independentemente da linguagem que ser utilizada posteriormente, o que vai ao encontro do nosso trabalho. Segundo Winslow (1996), estudos psicolgicos sobre programao concluram que os iniciantes, apesar de conhecerem a sintaxe e a semntica de comandos individualmente, tm muita dificuldade para combin-los de forma correta para solucionar um dado problema, mesmo quando eles conhecem a soluo informal (intuitiva). Com os dados apresentados nestes trabalhos, possvel optar por uma abordagem, de acordo com o objetivo da aprendizagem em questo. Costelloe (2004b) finaliza sua discusso enfatizando o papel do professor, no mais como detentor do saber, seno como um facilitador do ensino/aprendizagem entre os alunos e os especialistas, e destacando a importncia de que as tecnologias citadas no so mutuamente exclusivas, e devem ser combinadas para obter uma melhor aprendizagem. Considerando os resultados obtidos por estes grupos de pesquisa, observamos que os alunos que foram beneficiados com as metodologias empregadas foram aqueles que conseguiam conceber o raciocnio computacional, estes avanaram mais do que com as

86

formas de ensino tradicional; entretanto, aqueles que tinham dificuldades em elaborar o raciocnio computacional permaneceram na mesma situao. Com isso, reforamos nossa hiptese de que as dificuldades dos alunos esto ligadas ao processo de discretizao do raciocnio, necessrio elaborao do raciocnio computacional, em virtude da abstrao envolvida neste processo, e no apenas s questes de cunho didtico. Buscando validar esta hiptese, decidimos realizar um estudo emprico, na forma de um estudo de caso descrito nos prximos captulos.

87

CAPTULO 6
Procedimentos Metodolgicos

6.1 Estratgia da Pesquisa Com base em nossas reflexes tericas, sentimos a necessidade de confirmar nossas hipteses pela verificao in loco do processo de aprendizagem dos alunos. Utilizamos como estratgia de pesquisa a metodologia do Estudo de Caso, com mltiplos casos. Segundo Yin (2005), o Estudo de Caso deve ser a estratgia escolhida para examinar acontecimentos contemporneos no seu contexto real. Neste tipo de pesquisa, as fronteiras entre o fenmeno e o contexto no so evidentes; alm disso, mltiplas fontes de evidncias podem ser utilizadas. Nosso campo para coleta de dados foram trs turmas, com aproximadamente 25 alunos, da disciplina de Lgica de Programao, ministradas sempre no primeiro semestre do Curso de Tecnologia de Sistemas para Internet, da Universidade Tecnolgica Federal do Paran (UTFPR). Os instrumentos utilizados para coleta de dados foram trs provas, referentes primeira parte da disciplina, em que o contedo abordado abrangia estruturas seqenciais, de deciso, controle e repetio. Em virtude de nosso instrumento de coleta de dados serem provas, optamos por no realizar o scaneamento das mesmas, pois o processo de correo e reviso, ao qual este tipo de instrumento submetido, pode desconfigurar a soluo proposta pelo aluno. As anlises realizadas foram feitas de forma qualitativa, considerando cada aluno individualmente, com o objetivo de verificar todas as alternativas possveis de soluo. Os alunos foram apelidados de A1, A2, A3 e, assim, sucessivamente. Depois de realizar a anlise da prova de cada aluno, procuramos estabelecer categorias em que as solues encontradas pudessem ser agrupadas em cada caso. Para apresentar os resultados dessas anlises, os dados obtidos foram sistematizados de modo a facilitar a leitura e a interpretao dos mesmos.

6.2 Contexto da Disciplina de Lgica de Programao A disciplina de Lgica de Programao foi elaborada pela comisso responsvel pela

88

criao do Curso de Tecnologia em Informtica, em 1999, da qual fizemos parte; chamado a partir de 1998, de Curso de Tecnologia em Sistemas para Internet. Esta disciplina tem como objetivo desenvolver o raciocnio computacional, para elaborar algoritmos, por meio de uma linguagem escrita (Portugol) e uma grfica (Fluxograma) seguindo os preceitos da programao estruturada6. O contedo ministrado composto por uma parte introdutria de lgica matemtica que ser utilizada na elaborao dos algoritmos. O Apndice II apresenta uma verso do plano de ensino (Apndice II.1) e do plano de aula (Apndice II.2) da disciplina de Lgica de Programao, compatvel com as verses utilizados nos semestres que compem os estudos de caso, descritos no Captulo 7 deste trabalho. O Curso de Tecnologia de Sistemas para Internet teve incio no segundo semestre de 1999. Em sua primeira verso, esta disciplina era composta por 50% de lgica matemtica e 50% de algoritmos; depois de alguns ajustes, o contedo de lgica matemtica foi reduzido para 25%, ficando 75% para o desenvolvimento de algoritmos. As principais modalidades de iterao utilizadas nesta disciplina, considerando aquelas apresentadas por Linder et al. (2001), apresentadas no Quadro 5, so a 4-Assistindo e ouvindo e a 6-Fazendo e discutindo. Na modalidade 6, os alunos realizam exerccios ora com a ajuda do computador, em laboratrio, ora utilizando lpis e papel, em sala de aula convencional. A forma de avaliao era composta por trs provas e por listas de exerccios realizados ao longo de semestre. At o semestre 02/2004, o contedo avaliado na primeira prova era composto por exerccios de lgica matemtica, ficando a parte referente ao desenvolvimento de algoritmos para as outras duas provas. Pela nossa experincia e pesquisas, fomos implementando mudanas ao longo de cada semestre, com o objetivo de melhorar a aprendizagem. A partir do semestre 01/2005, o contedo bsico de lgica matemtica passou a ser responsvel por 50% da avaliao em questo. Durante os semestres que se seguiram, o contedo de algoritmo foi ganhando espao. A cada semestre era realizada uma tentativa, buscando um melhor aprendizado dos alunos, na disciplina como um todo. Inicialmente, esta primeira avaliao abordava os comandos de entrada e sada de dados, operadores aritmticos

Programao estruturada uma metodologia para desenvolvimento de programas. De acordo com esta metodologia, as estruturas utilizadas na construo de um programa devem se restringir s estruturas seqencial, de deciso e de iterao, descritas na seo 4.6. Alm disso, os programas devem ser construdos de forma modular e hierrquica, em que o programa deve ser dividido em programas menores (mdulos).

89

e relacionais, estruturas seqenciais e de seleo. Tais conceitos so bastante familiares para os alunos, pois se assemelham aos conceitos matemticos elementares. No semestre 01/2006, optou-se por incluir problemas envolvendo estruturas de repetio, nos quais os alunos com freqncia apresentam problemas de aprendizagem, em virtude do processo de discretizao inerente a essas estruturas (SETTI, 2007). Como esperado em funo dos nossos estudos, o desempenho dos alunos, com a incluso da estrutura de repetio, no foi o mesmo obtido nos semestres anteriores, como mostra o
Quadro 7.

O que nos levou, a no semestre seguinte, deixar o contedo de repetio para uma

prxima fase. Entretanto, a partir do semestre 01/2007, inclumos definitivamente as estruturas de repetio na primeira fase da disciplina. Para melhorar o processo de aprendizagem dessas estruturas, realizamos algumas modificaes na forma como elas vinham sendo abordadas. Entre essas modificaes, destacam-se: 1. Incluso de fluxogramas para elaborar os algoritmos. 2. Resoluo de um mesmo problema por meio de duas verses de algoritmos, a primeira utilizando estruturas sequenciais e a segunda por meio de estruturas de repetio. 3. Aumento do nmero e da variedade de exerccios propostos. Com isso, observamos no semestre 02/2007, uma melhora na aprendizagem, motivada por mudanas pedaggicas, alm dos tipos de registros de representao utilizados. Avaliaes com estrutura de repetio Semestre Mdia da 1 Prova 01/2006 01/2007 02/2007 Avaliaes sem estrutura de repetio 01/2005 02/2005 02/2006

7,2

6,1

7,1

8,4

7,6

9,1

Quadro 7 - Mdia obtida na primeira prova de cada semestre Outro fator relevante que at o semestre 01/2007 no era utilizada nenhuma ferramenta informatizada de apoio ao desenvolvimento de algoritmos. Os testes eram feitos pela tcnica manual, chamada de teste de mesa. Nessa tcnica, o algoritmo executado, por meio de dados de entrada aleatrios, via lpis e papel, linha por linha, para verificar qual

90

ser o resultado obtido. No semestre 01/2007, fizemos uma avaliao, junto com os alunos, de diversas ferramentas para o ensino de algoritmos disponveis na Internet. Entre elas, as que mais nos chamaram a ateno foram os compiladores de pseudocdigo Visualg (SOUZA, 2004) e Portugol IDE (MANSO, 2005). Essas ferramentas permitem ao aluno editar o algoritmo, fazer a correo sinttica e semntica (compilao) e, ento, execut-lo. O mais importante a possibilidade de acompanhar a sua execuo passo a passo (linha por linha), para monitorar o contedo das variveis. Este processo similar ao teste de mesa, citado anteriormente, porm, mais dinmico e estimulante para o aluno. Assim como em algumas experincias relatadas por Costelloe (2004b), observamos que os alunos se sentiram mais motivados para resolver os exerccios propostos, uma vez que tinham a possibilidade de encontrar e corrigir imediatamente seus erros, para, ento, executar o algoritmo e conferir seu funcionamento. Entretanto, deve-se ressaltar que os alunos com dificuldades em conceber o raciocnio computacional, relacionadas ao processo de discretizao do pensamento, no apresentaram uma melhora significativa no nvel de aprendizagem. No faz parte do escopo deste trabalho uma avaliao mais detalhada sobre o impacto da utilizao de ferramentas na aprendizagem de algoritmo. Nosso interesse neste momento o de proporcionar alternativas que possam auxiliar os alunos a superar as dificuldades em elaborar e desenvolver o raciocnio computacional. Sugerimos, para o futuro, a realizao de uma pesquisa especfica para analisar este aspecto da aprendizagem. 6.3 Estratgias de Ao Na condio de professora da disciplina de Lgica de Programao, desde 02/00, e considerando o nmero de alunos das turmas, aproximadamente 20, foi possvel utilizarmos uma metodologia diferenciada, em que a interao professor/aluno, bem como aluno/aluno, foi privilegiada. A disciplina era ministrada por meio da seguinte rotina: Resgate dos tpicos abordados previamente. Apresentao do assunto a ser abordado no encontro atual.

91

Proposio de exerccios envolvendo os tpicos abordados, desde o incio, at o momento, pois para construo de algoritmos, os novos recursos so acrescentados aos anteriores.

Os alunos podiam trabalhar em dupla, ou de forma individual, sendo que a discusso entre eles era estimulada pelo professor com o objetivo de trocar estratgias de solues.

Durante a soluo dos exerccios, o professor atendia os alunos individualmente, discutindo com cada um sua idia de soluo. Quando os alunos terminavam suas construes, o professor ora convidava-os para que anotassem suas solues no quadro, ora apresentava, ele mesmo, uma proposta de soluo e solicitava aos alunos que encontrassem formas alternativas de resolver a questo.

Quando se iniciou a utilizao do Portugol IDE, em sala de aula, o professor continuou com a mesma sistemtica de acompanhamento. A principal alterao foi que, alm das dificuldades de encontrar uma soluo, os alunos precisavam estar mais atentos s regras de sintaxe, para que a ferramenta pudesse executar o algoritmo.

As unidades de anlise para realizar o estudo de caso deste trabalho foram avaliaes individuais, por meio de provas escritas, tanto via lpis e papel, quanto via ambiente informatizado. Considerando a diversidade de fatores que influenciam o processo de aprendizagem

dos alunos, planejamos um estudo de caso, com mltiplos casos, em que cada caso corresponde a um aspecto da aprendizagem a ser analisado, buscando subsdios para avaliar nossas hipteses. Este trabalho tem as seguintes hipteses, previamente apresentadas no Captulo 1: 1. A discretizao do raciocnio, ou seja, a elaborao de um raciocnio de forma discreta para um processo de natureza contnua, um obstculo epistemolgico aprendizagem. 2. A identificao e manipulao da estrutura de repetio, que esto diretamente relacionadas a essa discretizao, so obstculos epistemolgicos para a aprendizagem de algoritmos. 3. A passagem de um tipo de registro de representao semitica, a saber, a linguagem

92

natural, para outro, a linguagem algortmica, comporta um obstculo aprendizagem de algoritmos. O primeiro caso a ser apresentado, na seo 7.1, teve como objetivo verificar as dificuldades dos alunos, em relao aprendizagem da estrutura de repetio e seu papel como obstculo epistemolgico, buscando subsdios para avaliar as hipteses 1 e 2. O segundo caso, apresentado na seo 7.2, teve como objetivo verificar as dificuldades dos alunos, em relao aos registros de representao, utilizados no ensino/aprendizagem de algoritmos, buscando subsdios para avaliar a hiptese 3. O ltimo caso, apresentado na seo 7.3, teve como objetivo verificar a relao entre a elaborao do raciocnio matemtico e do raciocnio computacional pelos alunos, buscando verificar se aqueles alunos que elaboraram o raciocnio matemtico de forma coerente para resolver o problema conseguem elaborar tambm o raciocnio computacional correspondente, na forma de um algoritmo. Neste caso, todas as hipteses foram consideradas.

93

CAPTULO 7
Estudos de Caso no Curso de Tecnologia em Informtica UTFPR

A aprendizagem da estrutura de repetio foi escolhida para o primeiro estudo de caso, considerando o histrico do desempenho dos alunos na disciplina de Lgica de Programao, descrito na seo 6.2, bem como, os resultados obtidos por Barbosa (2001), que indicam que os alunos apresentaram dificuldades em formalizar as estruturas de seleo, e que essas dificuldades se agravavam quando o processo de repetio estava presente.

7.1 Anlise da Avaliao 01/2007 Este caso teve como objetivo verificar as dificuldades dos alunos, em relao aprendizagem da estrutura de repetio e seu papel como obstculo epistemolgico, buscando subsdios para confirmar, ou no, as hipteses 1 e 2. O instrumento a ser analisado uma avaliao, por meio de uma prova individual, da primeira parte dessa disciplina de Lgica de Programao. A avaliao completa pode ser visualizada no Apndice I-1. A prova em anlise era composta por duas partes, a primeira referente ao contedo inicial de lgica matemtica e a segunda abordava o contedo de algoritmos (comandos de entrada e sada de dados, operadores aritmticos e relacionais, estruturas sequenciais, de seleo e de repetio). Neste estudo, nos limitaremos a analisar a primeira questo da segunda parte, em que j foi possvel identificarmos o problema procurado. A seguir, a descrio da questo: Questo 1- 01/07) Faa um algoritmo para calcular a mdia dos alunos de sua turma (mximo 30) no semestre 01/2007. O algoritmo deve: Ler as notas das 7 disciplinas do primeiro perodo de cada aluno, fazendo a consistncia para que as notas sejam 0. Calcular a mdia de cada aluno, e escrever na tela. Encontrar a maior mdia da turma. Verificar o percentual de alunos que tiveram alguma reprovao e, ao final, escrever o valor na tela.

94

Ao estipular o nmero de alunos igual a trinta, a idia forar o aluno a pensar em uma estrutura de repetio. Da mesma forma, foram estabelecidas sete disciplinas para que houvesse outra estrutura de repetio. Alm disso, para fazer a consistncia para que a nota fosse 0, haveria necessidade de uma terceira estrutura de repetio. Considerando estes aspectos, apresentamos, a seguir, uma alternativa de soluo para o problema proposto, apenas para ilustrar a nossa discusso. Esta soluo faz uso das estruturas de repetio, conforme descrito no pargrafo anterior. Observamos que poderiam ser utilizadas outras estruturas de repetio, como as descritas no item 4.6.2. Soluo para a questo 1- 01/07:
inicio // incio do algoritmo em portugol inteiro Num-Alunos, Notas; real N, Mdia, Maior-Mdia, Rep; Num-Alunos 0; Notas 0; N, Mdia 0; Maior-Mdia 0; Rep 0; N -1; enquanto (Num-Alunos 30) inicio enquanto (Notas 7) inicio escreva (Entre com a nota do aluno, deve ser 0); enquanto (N < 0) inicio leia N; escreva (A nota deve ser 0, digite novamente); fim-enquanto Mdia Mdia + N; Notas Notas + 1; fim-enquanto Mdia (Mdia / 7); escreva (A mdia do aluno = , Mdia); se (Mdia > Maior-Mdia) entao Maior-Mdia Mdia;

95

se (Mdia < 7,0) entao Rep Rep + 1; Num-Alunos Num-Alunos +1; fim-enquanto escreva (A maior mdia = , Maior-Mdia); escreva (O percentual de alunos com reprovaes = , (Rep * 100/ 30)); fim.

Os alunos foram nominados de A1, A2, A3 ... A23. Com base nas solues encontradas, estabelecemos as seguintes categorias: A: O aluno utilizou a estrutura de repetio da forma esperada: utilizou a estrutura de repetio adequadamente, ou seja, de forma similar soluo anteriormente apresentada. A: Realizou o clculo corretamente: realizou o clculo corretamente. B: Sequencial: no utilizou a estrutura de repetio, utilizou apenas estruturas sequenciais. C: Fez para um aluno: fez o processo corretamente, porm, para um aluno. No utilizou as estruturas de repetio. D: No realizou: no realizou o que foi solicitado. E: Incorreto: elaborou o algoritmo de forma incorreta. F: Incompleto: elaborou o algoritmo de forma incompleta. Para melhor leitura desse trabalho, sintetizamos os dados, ilustrados no Quadro 8, em que os itens solicitados na questo correspondem s colunas e as linhas representam as categorias de solues encontradas. Itens/ Categorias R1- (30 alunos) A: O aluno utilizou a estrutura de repetio da forma esperada A: Realizou o clculo corretamente B: Sequencial C: Fez para um aluno D: No realizou 0 7 0 11 0 0 9 0 9 3 13 11 15 9 10 11 R2- (7 discipl.) 6 R3- (Notas > 0) 4 Clculo da mdia Maior Mdia % de reprov.

96

E: Incorreto F: Incompleto

3 2

4 2

1 0

3 2 1 2

Quadro 8- Sntese geral das solues propostas, pelos alunos, para a questo1 01/07 Alm das categorias relativas s solues propostas pelos alunos, foi importante considerar o conhecimento prvio em programao desses alunos. Com essa finalidade, acrescentamos uma coluna referente experincia, que mostra se o aluno j cursou a disciplina, se sim, quantas vezes ou se trabalha na rea de programao. Adotamos a seguinte notao: R(k): alunos que cursaram anteriormente a disciplina Lgica de Programao, em que k representa o nmero de vezes. Exp: alunos que possuam experincia em programao. As solues individuais dos alunos esto ilustradas no Quadro 9. Itens/ Alunos A1 A2 A3 A 4 A5 A6 A7 A8 A9 * A10 A11 A12 A13 A14 R(3) A A A A A A F C F C A B A A B B F B F B A D A D D B D B D B A A A A F A D A F A A A A A F A D D D D A A A A F A D A D D Experincia
R1- (30 alunos) R2- (7 discipl.) R3- (Notas > 0) Clculo da mdia Maior Mdia % de reprov.

A A A A

B A A B

B A B B

A A A A

A A A A

A A A A

97

Itens/ Alunos A15 A16 A17 A18 A19 A20 A21** A22 A23

Experincia

R1- (30 alunos)

R2- (7 discipl.)

R3- (Notas > 0)

Clculo da mdia

Maior Mdia

% de reprov.

C R(4) E E C C C C E R(3) A

B E E B B B E E A

A D D B B B E D D

A D E A A A E E D

D D D D D D D D D

F D D D D D D D D

Quadro 9 Anlise individual da soluo proposta pelos alunos para a questo 1 01/07 A9* - Como o aluno inicializou as variveis dentro dos laos, no chegaria aos resultados desejados, embora tenha elaborado os clculos corretamente. A21** - Utilizou a linguagem para representar algoritmos (Portugol) incorretamente, no possua o conceito correto de varivel e das operaes elementares. Analisando o Quadro 9, verificamos que dos vinte e trs alunos, em relao estrutura de repetio R1, apenas onze resolveram por meio de estruturas de repetio; em relao estrutura R2 este nmero diminuiu para seis, e na R3, para quatro. Os resultados obtidos com este estudo caso reforaram nossas hipteses de que a estrutura de repetio um obstculo epistemolgico aprendizagem de algoritmos. Os alunos no conseguem realizar o processo de discretizao, necessrio para transformar o raciocnio intuitivo, de natureza contnua, no correspondente computacional, de natureza discreta, como pode ser visto no exemplo de soluo a seguir. Exemplo de obstculo realizao do processo de discretizao:
inicio // incio do algoritmo em portugol

inteiro Nota1, Nota2, Nota3, Nota4, Nota5, Nota6, Nota7 ; real Mdia, Maior-Mdia, Rep; Mdia 0; Maior-Mdia 0; Rep 0; escreva (Entre com as notas do aluno, devem ser 0);

98

leia (Nota1, Nota2, Nota3, Nota4, Nota5, Nota6, Nota7); se ((Nota1 < 0) ou (Nota2< 0) ou (Nota3< 0) ou (Nota4< 0) ou (Nota5< 0) ou (Nota6< 0) ou (Nota6< 0)) entao Escreva (A nota deve ser 0); Mdia ((Nota1+Nota2+Nota3+Nota4+Nota5+Nota6+Nota7) /7); escreva (A mdia do aluno = , Mdia); se ((Nota1 < 7) ou (Nota2< 7) ou (Nota3< 7) ou (Nota4< 7) ou (Nota5< 7) ou (Nota6< 7) ou (Nota6< 7)) entao escreva (O aluno possui reprovao); fim.

Considerando o Quadro 9, dos vinte e trs alunos analisados, onze propuseram a soluo neste formato. Neste tipo de soluo, o algoritmo realiza o clculo da mdia para um aluno, ao invs de trinta, como pedia o enunciado. Isto se deve ao nmero trinta ser, propositalmente, um nmero grande, para utilizar o processo anlogo ao realizado para a leitura das notas, caso contrrio, provavelmente esses alunos realizariam a leitura de forma sequencial. Com relao consistncia para garantir que as notas fossem maior que zero, observase que a utilizao da estrutura condicional, apenas informa que uma das notas invlida, mas continua a execuo do algoritmo, embora os dados estejam incorretos. Com a utilizao da estrutura de repetio, o algoritmo garante que as notas sejam maior que zero, para ento prosseguir. Quanto ao item correspondente ao clculo da mdia de cada aluno, o processo de leitura das notas, realizado por meio de estruturas sequenciais, leva ao resultado correto, porm de forma mais trabalhosa.

7.2 Registros de Representao Utilizados para Elaborao de um Algoritmo O objetivo deste caso, foi o de analisar as dificuldades dos alunos, com relao aos registros de representao, utilizados no ensino/aprendizagem de algoritmos, considerando alguns aspectos abordados na seo 3.3 deste trabalho, buscando subsdios para confirmar, ou no, nossa terceira hiptese. Este caso no englobou a estrutura de repetio, propositalmente, pois o foco foi o desempenho dos alunos face aos registros de representao. Para tal, a estrutura de seleo

99

simples e composta se mostrou bastante adequada. O instrumento a ser analisado uma avaliao, por meio de uma prova individual, com duas questes da disciplina de Lgica Aplicada. A avaliao completa pode ser visualizada no Apndice I-2. A prova em anlise era composta por duas partes, a primeira referente ao contedo inicial de lgica matemtica e a segunda, com duas questes, abordava os seguintes contedos sobre algoritmos: comandos de entrada e sada de dados, operadores aritmticos e relacionais, estruturas sequenciais e de seleo. A seguir, a descrio da primeira questo avaliada: Questo 1 02/07) Faa um algoritmo que leia o ano de nascimento de uma pessoa, calcule e mostre sua idade, considerando o ano atual. Verifique e mostre se ela j tem idade para votar (idade > 16), e para tirar Carteira de Habilitao (idade > 18). O algoritmo deve emitir as mensagens adequadas, informando as possibilidades do usurio. Faa o algoritmo primeiro identificando as entradas, sadas e o processamento (E/S/P) e, depois, em portugol. A idia da verificao da idade para votar e dirigir, era para sugerir um encadeamento das condies, embora o mesmo no seja obrigatrio. A soluo esperada est posta a seguir. Soluo para a questo 1 - 02-2007: Identificao das entradas, sadas e processamento (E/S/P): E: Ano de Nascimento. S: Mensagens com possibilidades do usurio. P: Calcular a idade, comparar com a idade mnima para dirigir e votar. Considerando que existem diversas formas de solucionar o problema proposto, mostraremos duas verses, que correspondem maioria das respostas observadas. Na primeira verso, o algoritmo foi elaborado utilizando encadeamento das condies.

inicio

// incio do algoritmo em portugol primeira verso

inteiro Ano Nascimento, Ano Atual, Idade; Idade 0; Ano Atual 2008; escreva (Entre com o ano do seu nascimento:); leia Ano Nascimento; Idade (Ano Atual Ano Nascimento); se (Idade > 18)

100

entao escreva(Voc tem idade para votar e dirigir.) senao se (Idade > 16) entao escreva (Voc tem idade para votar! Mas no tem idade para dirigir.) senao escreva (Voc no tem idade para votar, nem para dirigir.) fim.

Na segunda verso, o algoritmo foi elaborado utilizando as condies de forma sequencial.


inicio // incio do algoritmo em portugol segunda verso inteiro Ano Nascimento, Ano Atual, Idade; Idade 0; Ano Atual 2008; escreva (Entre com o ano do seu nascimento:); leia Ano Nascimento; Idade (Ano Atual Ano Nascimento); se (Idade < 16) entao escreva (Voc no tem idade para votar, nem para dirigir.) se (Idade > 16) e (Idade < 18) entao escreva (Voc tem idade para votar! Mas no tem idade para dirigir.) se (Idade > 18) entao escreva(Voc tem idade para votar e dirigir.) fim.

O algoritmo representado por meio de um fluxograma com as condies encadeadas, est ilustrado na Figura 2. A diferena entre fazer o encadeamento ou no est no fato de que, ao realizar o encadeamento, o algoritmo executa o comando vinculado condio satisfeita e sai da condicional. Ao passo que, se as condicionais esto postas de forma sequencial, mesmo sabendo que apenas uma das condies vai ser satisfeita, todas elas sero testadas desnecessariamente.

101

Figura 2 Algoritmo representado em fluxograma para a questo 1 02/2007 Fonte: A autora. Os alunos foram nominados de A1, A2, A3 ... A27, com base nas solues encontradas, e estabelecidas as seguintes categorias: A: Correto: o aluno identificou as entradas, sadas e o processamento corretamente. B: Fluxograma: resolveu o problema utilizando fluxograma, ao invs de portugol. C: No realizou: no realizou o que foi solicitado. D: Sequencial: fez o processo de forma seqencial. E: Encadeado: implementou as estruturas de seleo de forma encadeada, de acordo com a soluo anteriormente apresentada.

102

F: Incorreto: elaborou o algoritmo incorretamente. Para melhor leitura desse trabalho, sintetizamos os resultados, que esto ilustrados no
Quadro 10,

em que os itens solicitados na questo correspondem s colunas, e as linhas

representam as categorias de solues encontradas.

Itens/ Categorias A: Correto B: Fluxograma C: No realizou D: Sequencial E: Encadeado F: Incorreto

Identificar E/ S/ P 25 1 1

Portugol

1 13 12 1

Quadro 10 Sntese geral da soluo proposta pelos alunos para a questo 1 02/07 Da mesma forma que no estudo de caso anterior, apresentado na seo 7.1, o conhecimento prvio em programao dos alunos foi considerado. Para tal, acrescentamos a coluna referente experincia, que mostra se o aluno j cursou a disciplina; se sim, quantas vezes ou se trabalhava na rea de programao. Utilizamos a mesma notao da seo 7.1. As solues individuais dos alunos esto ilustradas no Quadro 11. Itens/ Alunos A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 R(2) Experincia R(3) Identificar E/ S/ P A A A A A A A A A A A Portugol D D E D D E D D D E D

103

Itens/ Alunos A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27

Experincia

Identificar E/ S/ P A A A B A A

Portugol E D D D E E E E D E E E E E E D

R(2)

A C A A A A A A

Exp. R(2)

A A

Quadro 11 - Anlise individual da soluo proposta pelos alunos para a questo 1 02/07 A seguir a descrio da segunda questo avaliada: Questo 2- 02/07) O IMC ndice de Massa Corporal um critrio da Organizao Mundial de Sade para dar uma indicao sobre a condio de peso de uma pessoa adulta. A frmula IMC = peso / (altura)2. Elabore um fluxograma que tenha como entrada o peso e a altura de um adulto e mostre sua condio, segundo a tabela abaixo: IMC em adultos Abaixo de 18,5 Entre 18.5 e 25 Entre 25 e 30 Acima de 30 Condio Abaixo do peso Peso normal Acima do peso Obeso

104

A particularidade desta questo o fato de solicitar a soluo do algoritmo utilizando fluxograma, e no pseudocdigo, como nas demais. Indo ao encontro das idias de Duval (DUVAL 1995), temos procurado trabalhar com a representao do algoritmo em diversos formatos, solicitando aos alunos que ora proponham o algoritmo em pseudocdigo, ora o faam atravs do fluxograma. interessante observar o aumento significativo de alunos que representaram corretamente o encadeamento das estruturas de seleo, se comparados questo 1 02/07. Ressaltamos que o raciocnio envolvido no processo de encadeamento sugerido, tanto pela questo 2, quanto pela questo 1, similar, como mostram as figuras 2 e 3. A Figura 3 apresenta uma opo de soluo da questo 2 02/07, utilizando fluxograma.

105

Figura 3 Algoritmo representado em fluxograma para a questo 2 02/2007 Fonte: A autora.

A anlise desta questo seguiu os mesmos moldes da questo anterior, inclusive as categorias utilizadas so as mesmas, porm, restritas a C, D, E e F. O Quadro 12 apresenta os dados sintetizados.

106

Item/ Categorias C: No realizou D: Sequencial E: Encadeado F: Incorreto

Elaborao do Fluxograma 0 3 23 1

Quadro 12 Sntese geral da soluo proposta pelos alunos para a questo 2 02/07

As solues individuais dos alunos esto ilustradas no Quadro 13. Item/ Alunos Experincia Elaborao do Fluxograma A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 R(2) R(2) R(3) D E F E D E E E E E E E E E E E E E E E E

107

Item/ Alunos Experincia Elaborao do Fluxograma A22 A23 A24 A25 A26 A27 Esp. R(2) E D E E E E

Quadro 13 Anlise individual da soluo proposta pelos alunos para a questo 202/06 Analisando o Quadro 10 Sntese geral da soluo proposta pelos alunos para a
questo 1 02/07,

observa-se que, praticamente, todos os alunos que participaram da anlise

tiveram sucesso para identificar, em linguagem natural, as entradas, as sadas e o modo de processamento do problema proposto na questo 1 - 02/07. No segundo item analisado, referente ao encadeamento da estrutura de seleo utilizando portugol, aproximadamente 50% dos alunos conseguiram perceber que o encadeamento era a soluo mais adequada. Entretanto, outros 50% propuseram a soluo de forma sequencial. Na questo 2 02/07, interessante destacar que, com a utilizao do fluxograma para representar o algoritmo proposto, o nmero de alunos que identificaram a necessidade de utilizar o encadeamento foi muito superior ao exerccio anterior, da mesma avaliao, como mostrou o Quadro 12. Isso nos leva a considerar que, nessa etapa inicial da aprendizagem, a visualizao da soluo, por meio de uma ferramenta grfica, possibilita ao aluno identificar solues com mais clareza. Conclumos, assim, que a utilizao do fluxograma deveria ser incentivada, em paralelo linguagem textual (portugol), nesse estgio da aprendizagem.

7.3 Elaborao do Raciocnio Matemtico x Computacional O objetivo deste caso foi analisar a relao entre a elaborao do raciocnio matemtico e do raciocnio computacional pelos alunos, buscando verificar se aqueles alunos que elaboraram o raciocnio matemtico de forma coerente para resolver o problema conseguem elaborar tambm o raciocnio computacional correspondente, na forma de um algoritmo. Com isso, conseguimos alguns indicadores para embasar nossa discusso, na

108

tentativa de responder seguinte pergunta: A dificuldade dos alunos est na elaborao do raciocnio matemtico ou, posteriormente, na converso deste raciocnio para o correspondente computacional? Note-se que, para, a partir de uma situao problema descrita em linguagem natural, chegar soluo computacional, necessrio fazer uma mudana de registro de representao multifuncional (linguagem natural) para monofuncional (formulao matemtica) e, em seguida, outra mudana, tendo como registro de representao de partida a formulao matemtica e de chegada, a soluo em formato computacional. Dessa forma, existem duas mudanas de representao, o que indica mais uma vez a necessidade de estudar os processos de converso que esto implcitos neste processo. Para transformar a formulao matemtica na computacional correspondente, o aluno deve discretizar o raciocnio matemtico previamente elaborado, por meio da utilizao de estruturas de repetio. Apresentamos aos alunos o seguinte problema: Questo Fibonacci) Um fazendeiro tem um par de coelhos recm-nascidos em um ambiente fechado. Considerando que, de um modo natural, a cada ms ocorre a produo de um par e um par comea a produzir coelhos quando completa dois meses de vida. Desejamos saber quantos pares de coelhos o fazendeiro ir possuir ao final de N meses7. Pede-se: O esboo grfico do problema. A soluo matemtica, chegando frmula que define a produo de coelhos a partir do terceiro ms. Baseado nas suas descobertas nos itens anteriores, faa um algoritmo em Portugol para encontrar o N-simo termo da sequncia, sendo que N deve ser digitado pelo usurio. Faa o teste de mesa para N = 6.

Observamos que, no momento da leitura da questo, a professora fez uma ressalva, explicando que o objetivo no era simplesmente o desenvolvimento de uma frmula, mas, Leonardo de Pisa, filho de Guglielmo Bonacci, da ser chamado de Fibonacci (filius Bonacci), apesar de ter sido um dos introdutores dos nmeros Hindu-arbicos na Europa e principalmente, o introdutor do zero, ficou mais conhecido pela sequncia que leva seu nome. Escreveu um livro denominado Liber Abacci, no qual props um problema que est nas pginas 123 e 124, denominado Problema dos pares de coelhos (paria coniculorum), que acaba gerando sua famosa sequncia (IFUSP, 2009). Este problema um problema clssico no ensino de introduo programao.
7

109

sim, a observao da regularidade na composio da sequncia que os pares de coelhos iriam formar. Uma vez que esta regularidade fosse percebida, os alunos deveriam propor a soluo matemtica, por meio de representao matemtica, ou mista (linguagem natural e linguagem matemtica) e o algoritmo para solucionar o problema. Sugerimos o teste mesa com N = 6 e solicitamos o esboo grfico da soluo, para induzir o processo de raciocnio do aluno, com relao forma como a seqncia era gerada. Uma vez que ele identificasse a regularidade da seqncia, deveria elaborar a formulao matemtica. Ento, era necessrio discretizar o raciocnio elaborado, ou seja, especificar os passos adequados para realizar o que foi definido pela formulao matemtica, por meio de um algoritmo computacional. Este exerccio foi aplicado, como nos demais casos apresentados neste trabalho, por meio de uma prova referente primeira parte da disciplina de Lgica Aplicada. A avaliao completa pode ser visualizada no Apndice I-3. Nesta primeira parte da disciplina, os contedos abordados envolviam: comandos de entrada e sada de dados, operadores aritmticos e relacionais, estruturas sequenciais, de seleo e de repetio. Apresentamos uma opo de soluo para o problema, com o objetivo de possibilitar a discusso sobre as solues postas pelos alunos. Em primeiro lugar, apresentamos o desenvolvimento do esquema grfico e da formulao matemtica, para, em seguida, apresentar o algoritmo computacional.

110

Figura 4 Soluo grfica para o problema de Fibonacci Fonte: A autora. Considerando que um par de coelhos comea a produzir coelhos quando completa dois meses de vida e que o par adulto produz um par novo a cada 30 dias, temos no ms 1 apenas o par recm-nascido. No ms 2 este par se torna jovem, para, no ms 3, produzir um novo par. Ento, no ms 3 existiro dois pares de coelhos: 1 par adulto + 1 par recm-nascido. No ms 4, o par adulto produzir de novo mais um par, enquanto que o par jovem ter completado 1 ms de vida e ainda no estar apto a produzir. Assim, no incio do terceiro ms existiro trs pares de coelhos, sendo: 1 par adulto + 1 par com 1 ms de idade + 1 par recmnascido. No ms 5, existiro dois pares adultos, sendo que cada um j produziu um novo par e um par novo que completou 1 ms, logo teremos 5 pares: 2 pares adultos + 1 par com 1 ms + 2 pares recm-nascidos. Finalmente, no ms 6 existiro trs pares adultos, sendo que cada um j produziu um novo par e dois pares novos que completaram 1 ms de vida; assim, teremos 8 pares: 3 pares adultos + 2 pares com 1 ms + 3 pares recm-nascidos. Este processo continua at o nmero de meses desejado. A sequncia numrica formada conhecida como sequncia de Fibonacci, e indica o nmero de pares ao final de cada ms: {1, 1, 2, 3, 5, 8, 13, 21, 34, ...} Esta sequncia de nmeros tem uma caracterstica especial denominada recursividade

111

e pode ser formulada pela seguinte definio: Fn = Fn 2 + Fn 1, n 2 F1 = 1, F2 = 1. O que nos leva sequncia: 1 1 2 3 5 8 13 ... F1 F2 F3 F4 F5 F6 F7... Na sequncia de Fibonacci, fazendo analogia com a situao proposta no enunciado da questo, deve-se notar que o primeiro termo (F1) corresponde ao primeiro ms, sendo o segundo termo (F2) correspondente ao segundo ms, e assim sucessivamente. A seguir, apresentamos a soluo algortmica em portugol para solucionar o problema proposto.

Algoritmo Fibonacci
inicio // incio do algoritmo em portugol inteiro atual, ant1, ant2, num_termos; escreva ("Entre com o nmero de meses desejado"); leia (num_termos); enquanto ( num_termos 0 ) faa escreva ("O nmero de meses deve ser maior que 0"); leia (num_termos); fim-enquanto; ant1 1; ant2 1; escreva (" A sequncia formada ser = "); escreva (ant2, ant1); // escreve os 2 primeiros termos enquanto ( num_termos > 2 ) faa atual ant1 + ant2; ant2 ant1; ant1 atual; num_termos (num_termos 1); escreva (atual); // escreve o termo atual

112

fim-enquanto; fim

Observa-se que o processo de discretizao, ao qual estamos nos referindo, pode ser percebido na forma como a estrutura de repetio deve ser construda, para que o algoritmo gere a sequncia desejada. O que acontece com alunos que apresentam dificuldades em realizar a passagem do raciocnio matemtico para o correspondente computacional que, embora eles saibam qual o ponto de partida e o de chegada, o processo de discretizao, em que devem ser especificados os passos necessrios para realizar a tarefa desejada, torna-se um obstculo, fazendo com que eles patinem como diria Berlinski (2002), impedindo-os de elaborar a soluo adequada. O que pode ser percebido, em algumas das solues apresentadas a seguir, notadamente nas solues propostas pelos alunos A5, A9, A11 e A16. Apresentamos as solues propostas pelos alunos, nominados novamente de A1, A2 ... A27. O aluno A1 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo como a sequncia era gerada, porm, no elaborou uma frmula. Implementou o algoritmo corretamente, utilizando a estrutura de repetio. A particularidade foi o fato do aluno ter utilizado vetores, o que mostra seu conhecimento prvio sobre programao, considerando que este assunto ainda no havia sido abordado. O aluno A2 esboou o raciocnio matemtico, chegando seguinte concluso: 1. O nmero de pais anterior o nmero de filhos da prxima. 2. O nmero de filhos da anterior somado com o nmero de pais da prxima. Observa-se que ele no percebeu corretamente a regularidade entre os elementos da sequncia, no chegando forma como ela era gerada. Elaborou apenas um esqueleto do algoritmo, com a declarao de algumas variveis e um comando de repetio incompleto. O aluno A3 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo como a sequncia era gerada, elaborou a formulao em linguagem natural: O nmero de coelhos do ms escolhido ser sempre igual soma do nmero de coelhos dos 2 meses anteriores. Implementou o algoritmo corretamente, fazendo uso adequado do comando de repetio. O aluno A4 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo como a sequncia era gerada, elaborou a frmula T = M[-1]+M[-2].

113

Implementou o algoritmo corretamente, fazendo uso adequado do comando de repetio. A particularidade estava na experincia autodidata do aluno com programao. O aluno A5 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo a sequncia gerada, conseguiu perceber a regularidade da seqncia, mas no elaborou a formulao adequadamente. Depois do esquema grfico, elaborou o seguinte raciocnio: Nmero de coelhos adultos x 2 + coelhos filhotes soluo matemtica frmula: cA x 2 + cF //coelhos do ms passado + coelhos do ms retrasado= nmero de coelhos desse ms. Percebe-se que o aluno teve dificuldade em representar, por meio da linguagem matemtica, o que formulou em linguagem natural, e, como elaborou o algoritmo baseado nesta formulao, o fez incorretamente. No realizou a discretizao do raciocnio, necessria para a elaborao de um algoritmo computacional, apenas aplicou a frmula descrita anteriormente, da seguinte forma:
inicio // incio do algoritmo em portugol inteiro (n, a, cA, cF) enquanto (a 0); escreva (Quantos meses ?) = n; leia n; a = n-1; coelhos = (coelhos de n-1) + (coelhos de n-2) fim.

O aluno A6 elaborou o raciocnio matemtico por meio de um esquema grfico, porm, do ms 5 para o ms 6, cometeu um erro o que o levou sequncia: 1 1 2 3 5 7 11. Assim, no conseguiu formular a soluo corretamente, no chegou a elaborar uma frmula e implementou o algoritmo incorretamente. O aluno A7 elaborou o raciocnio matemtico por meio de um esquema grfico, porm, do ms 6 para o ms 7 cometeu um erro, da mesma forma que o aluno A6, que o levou sequncia: 1 1 2 3 5 8 15. Assim, no conseguiu formular uma soluo, no chegou a elaborar uma frmula e no implementou o algoritmo. O aluno A8 elaborou o raciocnio matemtico corretamente, por meio de um esquema

114

grfico, descobrindo a sequncia gerada at o ms 5, entretanto, no conseguiu obter a regularidade corretamente, consequentemente chegou seguinte formulao em linguagem natural, Nmero do Coelhos = Soma de pares de coelhos do ms anterior, coelhos frteis e no frteis. No implementou o algoritmo. O aluno A9 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo como a sequncia era gerada, elaborou a frmula corretamente Nx = Nx1

+ Nx-2. Implementou o algoritmo incorretamente, porque no conseguiu realizar a

discretizao, para transformar o raciocnio matemtico no correspondente computacional. A seguir, o algoritmo proposto pelo aluno:
inicio // declarao das variveis real: mes, n1, cont, n,; n1 1; n 0; cont 0;

escreva (" Digite o nmero de meses "); leia (mes); enquanto ( cont < mes ) faa nl n1 + n-1; n n1 + n; cont (cont + 1); fim-enquanto; fimalgoritmo. //A sintaxe do comando de repetio est correta // Porm no realiza o que o aluno gostaria de acordo // com a formulao previamente elaborada por ele.

O aluno A10 elaborou o raciocnio matemtico corretamente, por meio de um esquema numrico, descobrindo como a sequncia era gerada. Reconheceu que se tratava de sequncia de Fibonacci. No elaborou uma frmula e implementou o algoritmo corretamente, utilizando estrutura de repetio. O aluno A11 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo como a sequncia era gerada, elaborou a frmula corretamente Nx = Nx-1 + Nx-2, entretanto, implementou o algoritmo incorretamente; porque no conseguiu realizar a discretizao, para transformar o raciocnio matemtico no correspondente computacional, como pode ser percebido no algoritmo proposto pelo aluno.
inicio inteiro mes, na, nb, nc, total;

115

escreva (" Entre com o ms "); leia (mes); enquanto ( n mes ) faa na 1; nb 1; nc na + nb; nc nc +nb; n n + 1; fim-enquanto; escreva (O valor total , total); // a varivel total no foi utilizada, est com 0. fim. // O lao no realiza o que o aluno gostaria, de acordo // com a formulao elaborada por ele. //A sintaxe do comando de repetio est correta, // Porm ele inicializou as variveis dentro do lao

O aluno A12 no resolveu a questo. O aluno A13 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo a sequncia, mas no conseguiu perceber como a ela era gerada, elaborou a frmula F(x) = x + 2y (?), o que mostra que ele estava em dvida. No elaborou o algoritmo. O aluno A14 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, chegou frmula N = (N-1) + (N-2) e implementou o algoritmo corretamente, porm de forma recursiva. A particularidade deste aluno que ele j havia cursado parcialmente disciplina similar em outra universidade, o que explica a utilizao do conceito de recursividade, embora o mesmo no tivesse sido abordado. O aluno A15 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo como a sequncia era gerada, elaborou a frmula Xn = Xn-1 + Xn-2. Implementou o algoritmo corretamente, utilizando a estrutura de repetio adequadamente. O aluno A16, reconheceu o problema de Fibonacci, elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico e descobriu como a sequncia era gerada. No elaborou uma frmula matemtica, mas escreveu em linguagem natural: O prximo termo a soma dos dois ltimos. Implementou o algoritmo, porm, incorretamente; porque no conseguiu realizar a discretizao, para transformar o raciocnio matemtico no correspondente computacional. Segue o algoritmo proposto: inicio

116

inteiro numpar; Numpar = 1; anterior = 0; N = 1; leia (meses); enquanto ( n meses ) inicio anterior = numpar; numpar = numpar + x; n n + 1; fim-enquanto; escreva (numpar); fim.

// No declarou todas as variveis

//A sintaxe do comando de repetio est correta // apenas esqueceu do faa

// O lao no realiza o que o aluno gostaria, de acordo // com a formulao elaborada por ele.

O aluno A17 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, porm, gerou a sequncia at o elemento 5, e elaborou a formulao matemtica incorretamente, da seguinte forma: N x (N-2)/N. Fez o algoritmo incorretamente, aplicando a frmula diretamente. O aluno A18 no fez esquema grfico, nem formulao matemtica. Implementou o algoritmo incorretamente, da seguinte forma:
inicio real coelho, meses; coelho 0; leia (meses); escreva (No. total de meses =, meses); coelho (meses) x 2; imprima (coelhos); fim. // trocou o comando escreva pelo imprima.

O aluno A19 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo como a sequncia era gerada, elaborou a seguinte formulao em linguagem natural: Nmero de pares = soma de nmeros dos ltimos 2 meses. No fez o algoritmo. O aluno A20 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo como a sequncia era gerada, elaborou a frmula X = (X-2) + (X-1). Implementou o algoritmo corretamente, utilizando a estrutura de repetio adequadamente.

117

O aluno A21 reconheceu o problema, pois j havia cursado parcialmente disciplina similar em outra universidade. No fez esquema grfico, elaborou direto a frmula Pm = P(m-1) + P(m-2) e implementou o algoritmo corretamente, utilizando a estrutura de repetio adequadamente. O aluno A22 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, porm, gerou a sequncia at o elemento 5, e formulou Nt = Nc(n-1) + Nf, o que mostra a dificuldade em perceber a regularidade da sequncia. No elaborou o algoritmo. A aluno A23 no realizou o exerccio. O aluno A24 no elaborou esquema grfico, partiu para a formulao matemtica, propondo: N1= 2; N2= 4 N3= 8; Y = 2n, onde Y a produo de coelhos. O aluno no obteve a sequncia correta, portanto, no conseguiu obter a forma como ela era gerada. Implementou o algoritmo, aplicando a formulao obtida anteriormente, incorretamente, da seguinte forma:
inicio inteiro mes; inteiro produo; produo = 0; escreva (Informe o ms desejado); leia (mes); produo = 2mes; escreva (A produo de coelhos no ms, ms, era de , produo); fim.

O aluno A25 elaborou o esquema grfico incorretamente, chegando sequncia 1 1 2 3 4. Elaborou a seguinte formulao matemtica: N. ms - 2= coelhos adultos; N. ms -1= total de pares. Elaborou o algoritmo incorretamente. O aluno A26, reconheceu o problema de Fibonacci, elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico e descobriu como a sequncia era gerada. Descreveu como a sequncia de Fibonacci gerada em linguagem natural: Na sequncia de

118

Fibonacci o termo subsequente dado pela soma dos precedentes, assumindo que comece em 1, 1+0 =1, da 1+1=2, 2+1=3, 2+3=5 e, assim, sucessivamente. Implementou o algoritmo corretamente, utilizando a estrutura de repetio adequadamente; a particularidade foi o fato de o aluno ter utilizado vetores, o que mostra seu conhecimento prvio sobre programao, considerando que este assunto ainda no havia sido abordado. O aluno A27 elaborou o raciocnio matemtico corretamente, por meio de um esquema grfico, descobrindo como a sequncia era gerada, no elaborou uma frmula. Implementou o algoritmo corretamente, utilizando a estrutura de repetio adequadamente. O Quadro 14 apresenta a sntese dos dados coletados, da mesma forma como apresentado nas sees 6.4 e 7.1. A diferena deste quadro est na disposio das informaes, considerando que as solues individuais foram discutidas anteriormente, optouse por apresentar os itens analisados e para cada aluno se ele teve sucesso ou no, em cada item. Os itens analisados foram os seguintes: Experincia (Exp): indica se o aluno j havia cursado a disciplina de Lgica de Programao ou similar, ou se trabalhava na rea de programao. Regularidade: mostra se o aluno conseguiu descobrir a regularidade da sequncia, ou seja, como a sequncia era gerada. Este dado relevante, porque muitos alunos conseguiram chegar aos nmeros da sequncia, mas no conseguiram obter a forma como estes nmeros eram gerados. Raciocnio: indica se o aluno elaborou o raciocnio matemtico, ou seja, se chegou sequncia de Fibonacci, de forma grfica, textual (utilizando a linguagem natural), ou de forma incorreta. Formulao: indica se o aluno formulou uma soluo para o problema, utilizando linguagem matemtica, linguagem natural ou de forma incorreta. Algoritmo: Na elaborao do algoritmo, foram encontradas solues do tipo: 1. iterativas: utilizando a estrutura de repetio;

2. recursiva: utilizando a recursividade; 3. incompleta: o algoritmo foi feito parcialmente, em muitos casos apenas um esboo; 4. no: no implementaram uma soluo algortmica. Os alunos que no resolveram a questo esto indicados com (trao) em todos os

119

itens. Quanto ao preenchimento do Quadro 14 (X) indica que o aluno realizou adequadamente e () no realizou.

Aluno

Exp.

Regul.

Raciocnio Graf. Tex. Inc. Mat. -

Formulao Tex. Inc. X X X X X X X X X X X X Ite. X

Algoritmo Rec. Inc. No

A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21

X X X X X

X X X X

X X X X X

X X X X X X X X X X X X X X X X X -

X X -

X X X X X X X X X X X X

X X

X X X

120

Aluno

Exp.

Regul.

Raciocnio Graf. Tex. Inc. Mat.

Formulao Tex. Inc. X Ite.

Algoritmo Rec. Inc. No X X X X X -

A22 A23 A24 A25 A26 A27 X -

X X

X X X X X X -

X X

Quadro 14 Anlise individual da soluo proposta pelos alunos para a questo Fibonacci Estes resultados esto sintetizamos no Quadro 15, de acordo com o raciocnio desenvolvido pelos alunos. O nmero de alunos foi totalizado para mostrar com mais clareza a proporo de alunos em relao ao raciocnio elaborado. Cada forma de raciocnio foi classificada como uma categoria, descrita a seguir. A: O aluno chegou ao resultado da forma esperada, ou seja, elaborou o raciocnio, percebeu a regularidade da sequncia e implementou o algoritmo corretamente, entretanto, o aluno possua algum tipo de experincia com o desenvolvimento de algoritmos. A: O aluno chegou ao resultado da forma esperada, ou seja, elaborou o raciocnio, percebeu a regularidade da sequncia e implementou o algoritmo corretamente. Neste caso, o aluno no possua experincia com o desenvolvimento de algoritmos. B: O aluno elaborou o raciocnio, percebeu a regularidade da sequncia, mas no conseguiu implementar o algoritmo corretamente, ou no elaborou o algoritmo. Ou seja, no conseguiu discretizar o raciocnio matemtico de forma a transform-lo no correspondente computacional. C: O aluno elaborou o raciocnio, chegou sequncia, mas no percebeu a regularidade; logo, implementou o algoritmo incorretamente ou no implementou. D: O aluno esboou uma formulao incorreta e implementou o algoritmo incorretamente ou no implementou. E: No realizou o exerccio.

121

Categoria No. Alunos Raciocnio Matemtico (regularidade)

A 5 51,8%

A 5

B 4

C 5 48,2%

D 6

E 2

37% Raciocnio Computacional 37%

14,8%

18,5%

22,2%

7,4%

63%

Quadro 15 Sntese das solues propostas pelos alunos para a questo Fibonacci Face ao estudo de caso apresentado, observa-se que, aproximadamente, 51% dos alunos resolveram o problema matemtico, ou seja, construram a sequncia de forma correta e perceberam a regularidade presente no processo de construo da mesma, o que corresponde s categorias A, Ae B. Entre os 51% de alunos, 37% obtiveram sucesso na elaborao da soluo computacional (algoritmo), embora a metade deles possusse algum tipo de experincia com programao. Deve-se considerar que alguns alunos, que cursaram disciplinas similares, o fizeram parcialmente, justamente porque ao se sentirem incapazes de compreender o raciocnio computacional, do qual estamos falando ao longo deste trabalho, abandonaram a disciplina prematuramente. Com relao categoria B, que corresponde a 14,8% dos alunos, embora eles tenham elaborado a soluo matemtica corretamente, no conseguiram propor a soluo correspondente no formato computacional, o que evidencia a dificuldade na passagem do raciocnio matemtico para o computacional, dificuldade esta, ligada ao processo de discretizao necessrio para transformar o raciocnio matemtico no correspondente computacional. Comparando-se as solues propostas pelos quatro alunos, que compem esta categoria (A5, A9, A11 e A16), observa-se que trs deles, a saber, A9, A11 e A16 no conseguiram elaborar uma seqncia de comandos, dentro da estrutura de repetio, que executasse os passos necessrios para realizar o que formulao matemtica, proposta por

122

eles, indicava. O aluno A5 foi o nico, dentre os quatro, que apresentou problemas tambm relacionados sintaxe da estrutura de repetio. A dificuldade em discretizar o raciocnio matemtico, para conceber o raciocnio computacional, aliada dificuldade em perceber a regularidade das situaes em anlise, observada na categoria C, correspondente a 18,5% do total de alunos, constituem a principal barreira na aprendizagem de algoritmos. Observou-se que os alunos que no elaboraram o raciocnio matemtico adequadamente, na maioria dos casos no propuseram a soluo algortmica, porm, alguns chegaram a um esboo. Tendo em vista o estgio embrionrio destes esboos, para efeito de nossas concluses, consideramos as categorias D e E como sendo os alunos com maiores dificuldades de aprendizagem, tanto em nvel matemtico quanto computacional. Estas

categorias representaram aproximadamente 30% do total de alunos, o que mostra a deficincia destes alunos em resolver problemas, o que vai ao encontro das consideraes apontadas por Friedmann (2005). Analisando as categorias B, C, D e E, observamos que os alunos, que no conseguiram propor uma soluo algortmica para o problema apresentado, somam aproximadamente 63%, o que vem a confirmar a relevncia deste e de outros trabalhos que buscam compreender as formas de raciocnio envolvidas neste processo para subsidiar tcnicas e metodologias de ensino que promovam a aprendizagem deste contedo.

123

CAPTULO 8
Concluses e Consideraes Finais Faz necessrio, um breve relato, sobre uma jovem face escolha de um curso superior. Esta jovem, com grande afinidade com a Matemtica, dirigiu-se a professora responsvel por tal disciplina a fim de obter informaes sobre o curso de Cincia da Computao. Ao ser questionada, sobre quais dificuldades poderiam ser encontradas nesse curso, a professora fez o seguinte comentrio: Quanto s disciplinas de matemtica (Clculo I, Clculo II, Clculo III, Geometria Analtica, etc...) no deve haver problemas, entretanto, existe uma matemtica aplicada computao, que exige um raciocnio prprio... Costumase dizer que ou a pessoa tem aptido, ou no. Durante o primeiro ms da disciplina de Fundamentos da Programao, cujo contedo central era a elaborao de algoritmos, a jovem percebeu que tratava-se daquela matemtica aplicada computao. Embora este breve relato no esteja diretamente relacionado a este trabalho, ele oportuno, pois explica a origem das nossas inquietaes. Neste trabalho, associamos os termos pensamento algortmico ou pensamento computacional para nos referir quela matemtica, prpria da computao. A educao, em geral, passou por muitas transformaes e as dificuldades dos alunos deixaram de ser encaradas como mera falta de aptido. Diversas pesquisas tm sido realizadas com o objetivo de promover a aprendizagem nas mais diversas reas. O captulo 5 deste trabalho, apresenta algumas destas pesquisas, por terem papel relevante para o ensino de algoritmos, ou introduo programao. O diferencial entre estas pesquisas e o trabalho que estamos finalizando que nosso enfoque esteve na concepo e no desenvolvimento do raciocnio computacional, enquanto que o delas estava no desenvolvimento de ferramentas para o apoio aprendizagem. Para compreender este processo, foi necessrio realizar uma anlise do conceito de algoritmo, que resultou em indcios de obstculos epistemolgicos. Aliado a estes indcios, detectamos a necessidade de avaliar o fenmeno da no-congruncia, de acordo com Duval (1995), na passagem de uma representao em linguagem natural, ou algbrica, para a correspondente em linguagem computacional.

124

Buscamos em meio a inmeras possibilidades, um referencial terico que desse suporte s nossas necessidades. Embora o conceito de obstculo epistemolgico seja normalmente associado ao desenvolvimento histrico de um conceito, optamos por adapt-lo ao nosso problema, uma vez que o objeto de estudo estava ligado forma de compreender um conhecimento. Considerando os resultados dos trabalhos analisados, aliados nossa experincia docente, tnhamos como hipteses que a estrutura de repetio fosse um obstculo passagem do raciocnio matemtico para o correspondente computacional. Com o objetivo de buscar subsdios para avaliar esta hiptese, realizamos o primeiro estudo de caso descrito na seo 7.1. As concluses deste estudo reforaram esta hiptese, porm motivaram outros questionamentos, tais como: 1. As formas de representao, utilizadas no ensino de algoritmos, promovem a converso de registros de representao semitica, necessria passagem do raciocnio matemtico ao correspondente computacional? 2. Os alunos, capazes de resolver problemas matemticos, tambm so capazes de resolver problemas computacionais? 3. A dificuldade dos alunos est em elaborar o raciocnio matemtico, necessrio para conceber a soluo matemtica, ou est no processo de discretizao envolvido na transformao do raciocnio matemtico no correspondente computacional? Frente a estes questionamentos, fez-se necessrio uma investigao mais profunda sobre os registros de representao semitica mobilizados para representar o pensamento computacional. Conclumos, ento, que o fenmeno da no-congruncia presente na passagem das unidades significantes no registro de partida em linguagem natural, ou algbrica, para as unidades significantes no registro de chegada, em linguagem computacional, so mais um fator produtor de obstculos aprendizagem. Alm disso, fizemos uma anlise dos tipos de representao mais utilizados para o ensino de algoritmos e conclumos que, embora existam diversas formas de representao, como as citadas na seo 4.5, o pseudocdigo priorizado, tendo as demais, papel secundrio. Com este cenrio, realizamos algumas atividades em trs turmas de introduo programao, do Curso de Tecnologia em Informtica, da UTFPR, que pudessem dar subsdios para avaliar nossas hipteses e responder a alguns de nossos questionamentos. As

125

atividades foram selecionadas e deram origem aos estudos de casos aqui apresentados, o que possibilitou a anlise do desempenho dos alunos com tipos de registros de representao semitica diferentes e a relao entre a habilidade em resolver problemas envolvendo raciocnio matemtico e raciocnio computacional. O estudo de caso, relativo s formas de representao, descrito na seo 7.1, revelou que os alunos elaboravam o raciocnio esperado mais facilmente, utilizando fluxograma, se comparado com o pseudocdigo. Apesar de ambos estarem classificados, segundo Duval (1995), como registros monofuncionais, por meio do fluxograma os alunos perceberam mais claramente a relao hierrquica entre as aes. Por ser uma representao grfica, ele se mostrou mais intuitivo e adequado para a introduo aprendizagem de algoritmos. Visando estabelecer uma relao entre a habilidade do aluno em elaborar um raciocnio matemtico e em elaborar o correspondente raciocnio computacional, na forma de um algoritmo, propusemos a atividade descrita na seo 7.2, na qual constatamos que pouco mais da metade dos alunos tiveram xito na soluo do problema matemtico. Desses alunos, 71% foram capazes de tambm solucionar o problema no formato computacional. Este estudo de caso nos levou concluso que os alunos, mesmo aqueles que possuem habilidades em resolver problemas matemticos, enfrentam dificuldades em conceber o raciocnio computacional. Isto se deve ao processo de discretizao, necessrio transformao do raciocnio matemtico no correspondente computacional. Analisando as solues propostas pelos alunos A5, A9, A11 e A16, conclumos que eles no conseguiram superar o obstculo, inerente a este processo. Outra concluso, oriunda do estudo de caso apresentado na seo 7.2, foi que: a dificuldade em discretizar o raciocnio matemtico, para conceber o raciocnio computacional, aliada dificuldade em perceber a regularidade das situaes em anlise, constituem a principal barreira na aprendizagem de algoritmos. Por outro lado, os alunos que no elaboraram o raciocnio matemtico adequadamente, na maioria dos casos no propuseram a soluo algortmica, e aqueles que esboaram algum tipo de soluo no tiveram xito, como discutido na seo 7.2. O que nos levou a concluir que, a capacidade de elaborar o raciocnio matemtico adequadamente, no suficiente para garantir o sucesso na elaborao do raciocnio algortmico correspondente, mas necessrio. Um dado preocupante, obtido com este estudo de caso, foi que mais de 60% dos

126

alunos no

conseguiram propor uma soluo

algortmica para o problema e,

aproximadamente, 30% tambm no conseguiram elaborar uma soluo matemtica, o que mostra o despreparo destes alunos em relao resoluo de problemas, embora tenham passado por um rigoroso processo de seleo, considerando-se a relao de aproximadamente dez candidatos por vaga. Como apontado por Friedmann (2005), se o contedo referente Matemtica, abordado no ensino fundamental e mdio, inclusse tpicos ligados matemtica discreta, os alunos poderiam desenvolver as habilidades de abstrao e discretizao necessrias concepo do raciocnio computacional. Finalmente, ressaltamos a relevncia de trabalhos que busquem subsdios epistemolgicos para fundamentar tcnicas e metodologias de ensino que promovam os processos de aprendizagem.

127

8.1 Trabalhos Futuros Sabe-se que a concluso de uma tese o ponto de partida para uma srie de outras pesquisas. Neste caso, em primeiro lugar, acreditamos que necessrio aprofundar as pesquisas sobre o contedo da disciplina de Matemtica no ensino fundamental e mdio, assim como realizado por Friedmann (2005), pois o desenvolvimento do raciocnio matemtico, principalmente ligado matemtica discreta, poder trazer benefcios no desenvolvimento do raciocnio computacional. Faz-se necessrio, tambm, analisar a aprendizagem da estrutura de repetio por meio de outras formas de representao, notadamente fluxogramas, pois a melhoria alcanada nas estruturas condicionais aninhadas um indcio favorvel sua utilizao. Utilizamos algumas ferramentas para o ensino de algoritmos, como o Portugol IDE e o Visualg, e conclumos que as mesmas tiveram um impacto positivo, estimulando a aprendizagem. Porm, a avaliao mais rigorosa da utilizao das mesmas fugiu ao escopo deste trabalho. Consideramos que uma pesquisa nesta direo poderia ser frutfera. Baseado nos obstculos identificados, propor uma metodologia de ensino que possa minimiz-los, por meio da utilizao de fluxogramas como representao intermediria entre a linguagem natural e a linguagem computacional, visando abrandar o fenmeno da nocongruncia observado entre elas. Observa-se que os avanos tecnolgicos devero ter um grande impacto nas formas de raciocnio computacional, pois a elaborao de algoritmos est diretamente ligada tecnologia utilizada na construo dos computadores. Uma vez que esta tecnologia tenha um novo formato, diferente do sistema binrio utilizado pelo computador digital, poder ser necessrio realizar uma nova anlise dos processos envolvidos na transformao do raciocnio neste novo formato.

128

Referncias
ABELSON, H.; ABELSON, A. Logo for Macintosh. An Introduction Through Object Logo. MIT Press Classics Series, 1993. ALIBERT, D.; THOMAS, M. Research on Mathematical Proof. In D. Tall (Ed.), Advanced Mathematical Thinking (pp. 215-230). Dordrecht, The Netherlands: Kluwer Academic Publishers, 1991.. ARTIGUE, M. (1988). Ingnirie Didactique. Reserches en Didatique des Mathmatiques. Grenoble, Vol.10, n 3, p. 281-308, 1988. ARTIGUE, M. (1990). Epistmologie et Didactique. Reserches en Didatique des Mathmatiques. Vol. 10, N 23, 1990. ARZARELLO, F.; BAZZINI, L.; CHIAPPINI, G. LAlgebra como strumento di pensiero. Analisi teorica e considerazioni didattiche. Progetto Strategico CNR TID, Quaderno n. 6, 1994. ASCENCIO, A. F.; CAMPOS, E.A. Fundamentos da programao de Computadores. So Paulo: Prentice Hall, 2002. BACHELARD, G. A formao do Esprito Cientfico. So Paulo: Contra-ponto, 1996. BARBOSA, L.M. Ensino de Algoritmos em Cursos de Computao. Dissertao de Mestrado. So Paulo: EDUC, 2001. BEN ARI, M. Constructivism in Computer Science Education. Journal of Computers In: Mathematics and Science Teaching, Vol. 20, 2001. BERLINSKI, D. O advento do Algoritmo: A Idia que Governa o Mundo. So Paulo: Ed. Globo, 2002. BOMBELLI, R. LAlgebra. Con la introduccin de U. Forti y el prefacio y el anlisis de E. Bortolotti. (Feltrinelli: Milano), 1966. BOUD, D.; FELETTI, G. The challenge of problem-based learning (2. ed.). London: Kogan Page, 1997. BROLEZZI, A. C. A Tenso entre o Discreto e o Contnuo na Histria da Matemtica e no Ensino da Matemtica. Tese de doutorado. Faculdade de Educao USP, 1996. BROUSSEAU, G. Los Obstculos Epistemolgicos y los Problemas en Matemticas. Recherches en Didactique des Mathmatiques, Vol. 4 (2), 1983. Disponvel em:

129

http://lem.usach.cl/biblioteca/index.php?Tipo=4&Tema=7. Acessado pela ltima vez em 05/05/2008. BROUSSEAU, G. Fondements et mthodes de la didactique des mathmatiques. Recherche en Didactique des Mathmatiques. Grenoble, Vol.7, n 2, p. 33-115, 1986. BROUSSEAU, G. Le contrat didactique: le milieu. Reserches en Didatique des Mathmatiques. Grenoble, Vol. 9, n 3, p. 309-336, 1988. BROUSSEAU, G. Theory of didactical situations in mathematics. Dordrecht, The Netherlands: Kluwer. (Edited and translated by N. Balacheff, M. Cooper, R. Sutherland, and V. Warfield), 1997. BRUYNE, P.; Dinmica da Pesquisa em Cincias Sociais: os Plos da Prtica Metodolgica. Rio de Janeiro, F. Alves, 1991. CHEVALLARD, Y. La transposicin didctica:del saber sabio al saber enseado. Buenos Aires: Aique. 1991. CHI, M. T. H.; GLASER, R.; FARR, M. (Eds.). The Nature of Expertise. Hillsdale, Lawrence Erlbaum Associates, 1988. CHURCH, A. A note on the Entscheidungsproble. The Journal of Symbolic Logic, Vol. 1, No. 1. p. 40-41, 1936. CORNU, B. Limits. Advanced Mathematical Thinking (cap. 10). David Tall, Kluwer Acadmic Publishers. Dordrechet/Boston/London 1991. CORREIA, A. M. A.; CHENG, L. Estudantes e Professores de Perfil. In: XXIX CONGRESSO BRASILEIRO DE ENSINO DE ENGENHARIA, p.197- 205. Porto Alegre, RS, 2001. Disponvel em: http://www.pp.ufu.br/Cobenge2001/titulos.pdf . Acessado pela ltima vez em 07/12/2008. COSTELLOE, E. Teaching Programming The State of the Art. Department of Computing, Institute of Technology Tallaght, Dublin 24. CRITE Technical Report, 2004a. COSTELLOE, E. The Use of a Software Enabled Scaffolding Environment to Aid Novice Programers. Submited to the University of Dublin for the Degree of Master of Science, 2004b. DEDEKIND, R. Was sind und was sollen die Zahlen? In: Gesammelte Mathematische Werke. New York: Chelsea Publishing Company. Vol. 3, p. 335-391, 1969. DOUROX, A. La valeur absolue: difficultes majeurs pou une notion meneure. Petit (3),1983.

130

DUVAL, R. Semiosis y Pensamiento Humano Registros Semiticos y Aprendizagemns Intelectuais. Universidade Del Valle, Colmbia. 2004. Traduo do original: DUVAL, R. Smiosis et pense humaine registres smiotiques et apprentissagens intellectuels. Berne, Peter Lang, 1995. DUVAL, R. Registros de representaes semiticas e funcionamento cognitivo da compreenso em Matemtica. In: Aprendizagem em Matemtica. Machado, S. D. A. (org.). p. 11-33. Campinas, SP: Papirus, 2003. ERDTMANN, M. Princpio Bsico de Computao e Linguagem. Material didtico apresentado na disciplina S2I (Sistemas Industriais Inteligentes). UFSC, 2007. ERNEST, P. Mathematical Knowledge and Context, Situated Cognition and the Learning of Mathematics (Anne Watson, Ed.), Oxford: University of Oxford Department of Educational Studies. Chapter 1, p. 13-29, 1998. FARRER, H. Algoritmos Estruturados. So Paulo: LTC, 1999. FEKETE, A.; KAY, J.; KINGSTON, J.; WIMALARATNE, K. Supporting Reflection in Introductory Computer Science. Anais do 31 ACM SIGCSE (Technical Symposium on Computer Science Education), Vol. 32, 2000. FELDER, R. M.; SILVERMAN, L.K. Learning and Teaching Styles in Engineering Education. Engineering Education, Vol. 78, N7, 1988. FORBELLONE, A. L.; EBERSPACHER, H.F. Lgica de Programao. So Paulo: Makron Books, 2000. FRIEDMANN, C. V. P.; JURKIEWIZ, S.; LOZANO, A. Algumas questes sobre algoritmos, modelagem discreta e ensino. Anais da IV Conferncia Nacional sobre Modelagem e Educao Matemtica, Feira de Santana, 2005. FRIEDMANN, C.V.P. Matemtica Discreta, Algoritmos, Modelos. Tendncias do Ensino de Matemtica no Incio do Sculo XXI. Tese de doutorado apresentada ao programa de Engenharia de Produo-UFRJ, Brasil, 2003. GAMA, M.C. A Teoria das Inteligncias Mltiplas e suas implicaes para Educao. Trait Tecnologia Ltda, 1998. GARDNER, H. Frames of mind. New York, Basic Books Inc., 1985. GARDNER, H. The mind's new science. New York, Basic Books Inc., 1987. GARDNER, H. Frames of Mind: The theory of multiple intelligences. New York: Basic

131

Books, 1993. GERSTING, J. L. Fundamentos Matemticos da Computao. So Paulo: LTC, 1995. GLAESER, G. pistmologie des nombres relatifs. RDM, V. 2, n.3 p. 303-346. Grenoble, 1981. GDEL, K. Collected Works. Editado por Solomon Feferman e outros. Oxford: Oxford University Press, 2v. 1986-1990. GUIMARES, M. A. M. Um Ambiente para Ensino de Algoritmos Introdutrios. Tese de doutorado, apresentada ao Departamento de Informtica da PUC/RJ, 1995. HARRIS, J. CS1: Where is Visual Basic? Consortium for Computing Sciences in Colleges. Proceedings of the fourteenth annual consortium on Small Colleges Southeastern conference, EUA, 2000. HENDERSON, P. B. Anatomy of an introductory Computer Science Course. Anais do 17 ACM SIGCSE (Technical Symposium on Computer Science Education), 1986. HENDERSON, P. B. Modern Introductory Computer Science. Anais do 18 ACM SIGCSE (Technical Symposium on Computer Science Education), 1987. HUMEL, J.; MEHTA, J. Using Visual Basic in the CS Curriculum. ACM SIGCSE, Vol.34, 2002. HUNDHAUSEN, C. Integrating Algorithm Visualization Technology Into an Undergraduate Algorithms Course: Ethnographic Studies of a Social Constructivist Approach. Computers & Education. Vol. 39, Issue 3, p. 237 260, 2002. JENKINS, T. Teaching Programming A Journey from Teacher to Motivator. First LTSNICS Conference on Teaching Programming, 2001. ISRAEL, D. Reflections on Gdels and Gandys Reflection on Turings Thesis. Minds and Machines, N.12 , p. 181-201. Ed. Kluwer Academic Publishers, USA, 2002. KOLB, D. A. et al. Psicologia Organizacional: Uma Abordagem Vivencial. So Paulo, Atlas, 1986. KLEENE, S. C. Recursive functions and intuitionistic mathematics. In: Proceedings of the International Congress of Mathematicians. Cambridge, Massachusetts, USA, Vol. 2, p. 679685, 1952. KLEENE, S. C. The Work of Kurt Gdel. The Journal of Symbolic Logic, Vol. 41, p. 761778. 1976.

132

KNUTH, D. The Art of Computer Programming. V.1, Addison-Wesley, 3rd ed, 1968. LEVY, P. A inteligncia Coletiva: por uma antropologia do ciberespao. Ed. Loyola, 1994. LINDER et al., [Linder, S. P., Nestrick, B. E., Mulders, S., Lavalle, C. L.] Facilitating Active learning with inexpensive Mbile Robots. The journal of Computing in small colleges. Anais do 6 CCSC. Northeastern conference on the journal of computing in small coleges, Vol. 16, 2001. LISTER R. On Blooming First Year Programming, and its Blooming Assessment. Proceedings of the Australasian Conference on Computing Education, ACM International Conference Proceeding Series, Vol. 8. Melbourne, Australia. p 158-162, 2000. MALISANI, E. Los Obstculos Epistemolgicos em el Desarrollo del Pensamento Algbrico. Revista IRICE, n 13, Argentina, 1999. MANSO, A. PORTUGOL, Simulador de Linguagem Algortmica. Verso 2.2, 2006. Disponvel em http://orion.ipt.pt/~manso/Portugol/ . Acessado pela ltima vez em 15/10/2008. MAURER, S., What is Discrete Mathematics? The Many Answers. Discrete Mathematics in the School- DIMACS, V. 36. p. 121-132, 1997. McCRACKEN, M.; WATERS R. Why? When na Otherwise Successful Intervention Fails. ACM SIGCSE (Technical Symposium on Computer Science Education), Vol. 31. 1999. OLIVEIRA, C. O.; COSTA, J. W.; MOREIRA, M. Ambientes Informatizados de Aprendizagem. Papirus, 2001. MEC. Comisso de Especialistas de Ensino de Computao e Informtica - MEC/SESu. Disponvel em http://www.inf.ufrgs.br/mec/ . Acessado pela ltima vez em 02/02/2009. PAIS, L. C. Didtica da Matemtica: uma anlise da influncia francesa. Belo Horizonte: Autntica, 2002. PORTO, C.; RGNIER, K. O ensino superior no mundo e no Brasil condicionantes, tendncias e cenrios para o horizonte 2003-2005: Uma abordagem exploratria. Dezembro, 2003. Disponvel em: <www.mec.gov.br/sesu>. Acessado pela ltima vez em 07/08/2008. POST, E. Formal Reductions of the General Combinatorial Decision Problem. American Journal of Mathematics, Vol. 65, p.197215, 1943. POWERS, K. D. & POWERS D. T. Making Sense of Teaching Methods in Computing Education. 29th ASEE/IEEE Frontiers in Educational Conference. p. 11B3/30-11B3/35, Vol.

133

1, 1999. RESNICK, M.; MARTIN, F., SARGENT, R.; SILVERMAN, B. Programmable Bricks: Toys to Think With. IBM Systems Journal, Vol. 35, N. 3&4, 1996. SAGASTUME, M.; BAUM, G. Problemas, lenguajes y algoritmos. Campinas: Unicamp, Centro de Lgica, Epistemologia e Histria da Cincia, 2. ed., 2003. SALVETTI, D. D; BARBOSA, L.M. Algoritmos. So Paulo: Makron Books, 1998. SCHUBRING , G. A Noo de Multiplicao: Um Obstculo desconhecido na Histria da Matemtica. Revista Bolema, Ano 15, n 18, p. 26 a 50, 2002. SCHOENFELD, A. H. Learning to Think Mathematically: Problem Solving, Metacognition, and Sense Making in Mathematics, Handbook for Research on Mathematics Teaching and Learning (D. Grouws, Ed.), New York: MacMillan, Chapter 15, p. 334-370, 1992. SCHOENFELD, A H. Porqu toda esta agitao acerca da resoluo de problemas? In: Investigar para aprender matemtica. ABRANTES, P.; LEAL, L. C.; PONTE, J. P. (Orgs.). p. 61 71. Portugal, APM, 1998. SETTI, M. G.; CIFUENTES, J. C. Os Obstculos Epistemolgicos no Pensamento Computacional. 8 Simposio de Educacin Matemtica. Buenos Aires, 2006. SETTI, M. G.; CIFUENTES, J. C. O Pensamento Matemtico Elementar como um Obstculo Epistemolgico para o Pensamento Computacional. Anais do 2 Simpsio Nacional de Tecnologia e Sociedade, 2007, Curitiba. UTFPR, v. I. p. 1-7, 2007. SHEPHERDSON, J. C.; STURGIS, H. E. Computability of Recursive Functions. Journal of the ACM, n.10, p. 217-255. 1963. SIERPINSKA, A. Obstacles Epistemologiques Relatifs a la Notion de Limite. Recherches en Didactique des Mathematiques, Vol. 6, n.1, p. 5-67, 1985. SOBRINHO, J. Z., Aspectos da Tese de Church-Turing. Revista Matemtica Universitria, n. 6, p. 1-23. USP So Paulo, 1987. SOUZA, C. M.VisuAlg - Editor e Interpretador de Pseudocdigos Objetivos. Disponvel em: http://www.apoioinformatica.inf.br/visualg/objetivos.htm. Acessado pela ltima vez em 14/10/2008. SPAGNOLO, F. Obstacles Epistemologiques: et Postulat dEudoxe Archimede. Tesis de Doctorado. Universidad de Bordeaux I. Quademi di Ricerca Didattica G.R.I.M., Supplemento n. 5. Publicada por el Atelier de Reproduction ds Thses Microfiches (BP 38040 Grenoble.

134

Cedex 9 Francia), 1996. TURING, A. M. On Computable Numbers, with an application to the Entscheidungsproblem. Proc. London, Math. Soc., Vol. 42. p. 230-265, 1936. WANG, H. From Mathematics to Philosoph., Routledge & Kegan Paul, London,1974. WINSLOW, L. E. Programming Pedagogy A Psychological Overview. Anais do 27 ACM SIGCSE (Technical Symposium on Computer Science Education), USA, 1996. WIRTH, N. Algoritmos e Estruturas de Dados. Rio de Janeiro: Prentice Hall do Brasil, 1989. WOLZ, U. Teaching Design and Project Management with Lego RCX Robots. Anais do 32 ACM SIGCSE (Technical Symposium on Computer Science Education), USA, 2001. YIN, R. K. Estudo de Caso: Planejamento e Mtodos. 3. ed. Bookman, 2005. ZIEGLER, U.; CREWS, T. An Integrated Program Development Tool for Teaching and learning How to Program. Anais do 30 ACM SIGCSE (Technical Symposium on Computer Science Education), USA, 1999..

135

Bibliografia Complementar
ALG-PROG. Lista de Discusso sobre Algoritmo e Programao. Disponvel em
https://grupos.ufrgs.br/mailman/listinfo/alg-prog-l.

Acessado pela ltima vez em

30/09/2008. ALMOULOUD, S. A. Registros de Representao Semitica e Compreenso de Conceitos Matemticos. In: Alcntara Machado, Silvia D. (Ed.) Aprendizagem matemtica: Representao Semitica. So Paulo: Papirus, 125-147, 2003. ARAJO, C. Um Salto Quntico No Infinito. Jornal Estado de Minas de 4 de abril de 1998, na seo Pensar. BORBA,M.C. Tecnologias Informticas na Educao Matemtica e Reorganizao do pensamento. In:Bicudo, M.A.V. (Org.), Pesquisa em Educao Matemtica: Concepes & Perspectivas. Ed. Unesp, 1999. CLANCY, M. J.; LINN, M. C. Patterns and Pedagogy. Anais do 30 ACM SIGCSE (Technical Symposium on Computer Science Education), V. 31, 1999. DAMM, R. F. Registros de Representao. In: Educao Matemtica: Uma Introduo, p. 135-154. So Paulo: Educ, 1999. GPIMEM Grupo de Pesquisa em Informtica. Outras Mdias e Educao Matemtica. Disponvel em http://www.rc.unesp.br/igce/pgem/gpimem.html. Acessado pela ltima vez em 10/11/2008. HUNDHAUSEN, C. D.; DOUGLAS, S. A.; STASKO, J.A. A Meta-Study of Algorithm Visualization Effectiveness. Journal of Visual Language and Computing. 2002. Disponvel em: http://eecs.wsu.edu/%7Eveupl/pub/JVLC-AVMetaStudy.pdf. Acessado pela ltima vez em 10/03/2008. IFUSP. Cincia Mo, Portal de Ensino de Cincias. Experimentoteca Ludoteca Instituto de Fsica da USP. Disponvel em http://www.ludoteca.if.usp.br/tudo/tex.php?cod=_fibonacciproblemadoscoelhos. Acessado pela ltima vez em 02/02/2008. IGLIORI, S.B. Educao matemtica: A Noo de Obstculo Epistemolgico e a educao matemtica. So Paulo: EDUC, 2002.

136

METZGER, R. Debugging by Thinking: A Multidisciplinary Approach. Digital Press, 2003. NEGRELLI, G. L. Uma reconstruo epistemolgica do processo de modelagem matemtica para a educao (em) matemtica. Tese de doutorado apresentado ao setor de Educao da Universidade Federal do Paran, UFPR, Brasil, 2008. NEWELL, A.; SIMON, H. A. Human Problem Solving. Englewood Cliffs, NJ: Prentice Hall, 1972. PLACCO, V. M. Psicologia e Educao. Revendo Contribuies. So Paulo: EDUC, 2000. REZENDE, P. A. D.; A Crise nos Fundamentos da Matemtica e a Teoria da Computao. Palestra proferida no Seminrio de Filosofia da Unb, 1999. Disponvel em: http://www.cic.unb.br/docentes/pedro/trabs/a_crise.pdf. Acessado pela ltima vez em 15/10/2007. SBC (Sociedade Brasileira de Computao). II Curso de Qualidade de Cursos de Graduao da rea de Computao e Informtica. Curitiba-PUCPR, 2000. SILVA, L. M.; BAROLLI, E. Registros de Representao Semitica na Resoluo de Problemas. Anais do Seminrio Internacional de Pesquisa em Educao Matemtica, guas de Lindia SP, 2006. STRAUHS, F.R., Gesto do Conhecimento em Laboratrios de Ensino, Pesquisa e Desenvolvimento. Tese de Doutorado em Engenharia de Produo. UFSC, Brasil, 2003. TRINDADE, J. A. O. Os obstculos Epistemolgicos e a Educao Matemtica. Dissertao de mestrado apresentada ao Depto. de Educao da UFSC, 1996. TIKHOMIROV, O. K. The Psychological consequences of computerization. In: WERTTSCH, J.V. (Ed.) The concept of activity in soviet psychology. New York: M.E. Sharpe. Inc, 1981.

137

Apndice I
I.1- Avaliao Aplicada no Semestre 01/2007
Ministrio da Educao Universidade Tecnolgica Federal do Paran

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

PR

Diretoria do Campus Curitiba Gerncia de Ensino e Pesquisa Departamento Acadmico de Informtica Disciplina: Lgica de Programao Prof. Maringela Setti

30/03/07.

Aluno(a): _______________________________________________ Cdigo: _________ 1. Considere as seguintes proposies: p: Os agricultores se mobilizam. q: Os polticos nada fizeram. r: A reforma agrria continua sem soluo. S: Os sem-terra apelam para o presidente da Repblica. Agora, simbolize as seguintes sentenas: a) Os agricultores se mobilizam e os polticos nada fizeram ou a reforma agrria continua sem soluo. b) Se agricultores no se mobilizam, ento a reforma agrria continua sem soluo. c) Os agricultores se mobilizam e os polticos nada fizeram ou no o caso de a reforma agrria continuar sem soluo e os sem-terra apelam para o Presidente da Repblica. d) Se os agricultores se mobilizam, ento, os polticos nada fizeram e a reforma agrria continua sem soluo. e) Se os polticos nada fizeram, ento, se a reforma agrria continua sem soluo, ento, os sem-terra apelam para o Presidente da Repblica.

2. Sabendo que as proposies p e q so verdadeiras e que as proposies r e s so falsas, determinar o valor lgico (V ou F) das seguintes proposies: a) (p q) (r s) b) (q s) (p r) c) ~s (p q)

138

d) (r s) (p q) e) ~[(p r) (q s)]

3. Sejam as proposies: p: So Paulo est na Amrica do Sul. q: Comeou o inverno. Determine o valor lgico de: a) (~p q) ~q b) p (q ~p) c) (p q ) p d) (q p) q

4. Verificar, utilizando tabela verdade, se as proposies seguintes so tautolgicas, contraditrias ou contingenciais: a) (p r) (~q r) b) (p q) p q c) (p q) (~q p) d) (p q) (q ~r)

5. Demonstre, utilizando tabelas-verdade, as seguintes relaes de equivalncia: a) p (p q) p q b) q p ~p ~q c) p (p q) p d) q (p q) p q

6. Faa um algoritmo para calcular a mdia dos alunos de sua turma (mximo 30) no semestre 01/2007. O algoritmo deve: ler as notas das 7 disciplinas do primeiro perodo de cada aluno, fazendo a consistncia para que a nota seja 0. Calcular a mdia de cada aluno, e escrever na tela;

139

Encontrar a maior mdia da turma; Verificar o percentual de alunos que tiveram alguma reprovao e ao final escreva o valor na tela.

7. No correio local h somente selos de 3 e 5 centavos. A taxa mnima para correspondncia de 8 centavos. Deseja-se determinar o menor nmero de selos de 3 e de 5 centavos que completem o valor de uma taxa fornecida pelo usurio, que deve obrigatoriamente 8 (fazer a consistncia). Faa um algoritmo e o teste de mesa para resolver o problema, utilize as mensagens adequadas.

140

I.2- Avaliao Aplicada no Semestre 02/2007


Ministrio da Educao Universidade Tecnolgica Federal do Paran Diretoria do Campus Curitiba Gerncia de Ensino e Pesquisa Departamento Acadmico de Informtica Disciplina: Lgica de Programao Prof. Maringela Setti

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

PR

20/09/07.

Aluno(a): _______________________________________________ Cdigo: _________ OBS: Nota da prova = 8,0 + 2,0 referente s listas de exerccios e ao trabalho. 1. Encontre o antecedente e o consequente de cada uma das proposies a seguir. a. O crescimento sadio das plantas consequncia da quantidade suficiente de gua. b. O aumento da disponibilidade de informao uma condio necessria para um maior desenvolvimento tecnolgico. c. Sero introduzidos erros apenas se forem feitas modificaes no programa. d. A economia de energia para aquecimento implica boa insulao ou vedao de todas as janelas.

2. Sejam p, q e r as seguintes proposies: p: Rosas so vermelhas. q: Violetas so azuis. r: Acar doce. Escreva as proposies compostas a seguir em notao simblica: a. Rosas so vermelhas e violetas so azuis. b. Rosas so vermelhas, e ou bem violetas so azuis ou bem acar doce. c. Se violetas so azuis, rosas so vermelhas e acar doce. d. Rosas so vermelhas se somente se violetas no forem azuis e se acar for amargo e. Rosas so vermelhas e, se acar for amargo, ento ou violetas no so azuis ou acar doce.

3. Use p, q e r conforme definido no exerccio 2 (acima) para escrever as seguintes

141

proposies compostas em portugus: a. q ~r b. ~q (p r) c. (r ~p) q d. ~(q ~r) p e. r (p q)

4. Diga qual a proposio que define a tabela-verdade a seguir:

P V V F F a. p q b. q p c. p q d. ~( p q) e. ~p q

Q V F V F

? F V V F

5. Verificar, utilizando tabela verdade, se as proposies seguintes so tautolgicas, contraditrias ou contingenciais: e) [(p r) (~q r)] (q r) f) (p q) (~q p) g) [p (q ~p)] p h) [r (p q)] r

6. Faa um algoritmo que leia o ano de nascimento de uma pessoa, calcule e mostre sua idade, considerando a ano atual. Verifique e mostre se ela j tem idade para votar (idade > 16), e para tirar carteira de habilitao (idade > 18). O algoritmo deve emitir as mensagens adequadas, informando as possibilidades do usurio. Faa o algoritmo primeiro

142

identificando as entradas, sadas e o processamento (E/ S/ P) e depois em portugol.

7. O IMC ndice de Massa Corporal um critrio da Organizao Mundial de Sade para dar uma indicao sobre a condio de peso de uma pessoa adulta. A frmula IMC = peso / (altura)2. Elabore um fluxograma que tenha como entrada o peso e a altura de um adulto e mostre sua condio, segundo a tabela abaixo: IMC em adultos Abaixo de 18,5 Entre 18.5 e 25 Entre 25 e 30 Acima de 30 Condio Abaixo do peso Peso normal Acima do peso Obeso

143

I.3- Avaliao Referente Elaborao do Raciocnio Matemtico x Computacional


Ministrio da Educao Universidade Tecnolgica Federal do Paran Diretoria do Campus Curitiba Gerncia de Ensino e Pesquisa Departamento Acadmico de Informtica Disciplina: Lgica de Programao Prof. Maringela Setti

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

PR

11/04/08.

Aluno(a): _______________________________________________ Cdigo: _________

Sejam as proposies: p: O rato entrou no buraco q: O gato seguiu o rato Forme sentenas, em linguagem natural, que correspondam s proposies seguintes: (0,5) a) ~ (p q) b) ~p ~q c) p ~q d) q (p q) Determine o valor lgico de p, isto v(p), em cada um dos seguintes quesitos, sabendo que: (0,5) a) v(q) = V e v(p q) = F b) v(q) = V e v(p q) = V c) v(q) = F e v(p q) = F d) v(q) = V e v(p q) = V 3. Sabendo que o valor lgico de p e o valor lgico de r so ambos verdadeiros, isto , v(p) = v(r) = V e que o valor lgico de q e o valor lgico de s so ambos falsos, ou seja, v(q) = v(s) = F, julgar, quanto ao valor lgico, cada uma das seguintes proposies: (1,0) a) (p q) (r ~s) b) (r s) (~p q) c) (p ~q) [(p r) s] d) (p ~s) (~s r)

144

Verificar, utilizando tabela verdade: (1,0) a. se a proposio [p (q r)] (p r) uma tautologia; b. se a proposio [(p q) (p q)] (~p ~q) contigencial; c. se a proposio ~(p q) (~p ~q) uma contradio. 5. Demonstre, utilizando tabelas-verdade, as seguintes relaes de equivalncia: (1,0) a. p q (p q) p b. p (q r) (p q) (p r) c. (p q) ~p p q d. (p q) r (p ~r) ~q 6. Utilizando tabelas-verdade, verifique se existem as relaes de implicao lgica seguintes (1,0): a) p q q p b) ~p ( ~q p ) ~(p ~q) c) (p q) (r ~q) (r p) d) (p q) (p ~q) p 7. Uma academia de ginstica armazena algumas informaes sobre os seus clientes (nome, sexo, altura), considere que a academia tem no mximo 1000 clientes. Faa um algoritmo, utilizando portugol e fluxograma que leia essas informaes e determine o peso ideal do cliente, sabendo que a frmula para o clculo do peso ideal dada a seguir. Faa a consistncia para que o campo sexo seja = F ou M. (2,0) Masculino: (72.7 * altura) -58 Feminino: (62.1 * altura) -44.7

8. Um fazendeiro tem um par de coelhos recm-nascidos em um ambiente fechado. Considerando que, de um modo natural, a cada ms ocorre a produo de um par e um par comea a produzir coelhos quando completa dois meses de vida. Desejamos saber quantos pares de coelhos o fazendeiro ir possuir ao final de N meses8. Pede-se:

Leonardo de Pisa, filho de Guglielmo Bonacci, da ser chamado de Fibonacci (filius Bonacci), apesar de ter sido um dos introdutores dos nmeros Hindu-arbicos na Europa e principalmente, o introdutor do zero, ficou mais conhecido pela sequncia que leva seu nome. Escreveu um livro denominado Liber Abacci, no qual props um problema que est nas pginas 123 e 124, denominado Problema dos pares de coelhos (paria coniculorum), que acaba gerando sua famosa sequncia (IFUSP, 2009). Este problema um problema clssico no ensino de introduo programao.

145

O esboo grfico do problema. A soluo matemtica, chegando frmula que define a produo de coelhos a partir do terceiro ms. Baseado nas suas descobertas nos itens anteriores, faa um algoritmo em Portugol para encontrar o N-simo termo da sequncia, sendo que N deve ser digitado pelo usurio.

Anexo

Faa o teste de mesa para N = 6.

Smbolos utilizados em um fluxograma:

Process o

Conecto r

Termina o

Deciso

Entrada

Documen to

Exibio

Memria de Disco

146

Apndice II

II.1- Plano de Ensino da Disciplina de Lgica de Programao


Ministrio de Educao Universidade Tecnolgica Federal do Paran Campus de Curitiba Gerncia de Ensino e Pesquisa Departamento Acadmico de Informtica
CDIGO DA UNIDADE CURRICULAR IF51A-M71

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

PR

PLANO DE ENSINO: Lgica de Programao Tecnologia em Sistemas para Internet REA: INFORMTICA Desenvolvimento de Sistemas em PERODO: 01/2008 Ambiente Distribudo N.o total de aulas tericas: 20 N.o de horas-aula semanal: 5 N.o total de aulas prticas: 34 N.o de horas-aula semestral: 90 N.o total de aulas de laboratrio: 36
CURSO:

01

MDULO B:

02

OBJETIVO GERAL DO CURSO

O Curso Superior em Tecnologia em Desenvolvimento de Sistemas Distribudos tem como finalidade profissional egresso do curso atender os seguintes postos de trabalho:
Desenvolvedor de sistemas distribudos Instalao e administrao rede de computadores e seus servios Desenvolvimento e Gerencia de projetos e aplicaes Distribudas Desenvolvimento e Gerencia de projetos e aplicaes de sistemas mveis e sem fio Coordenador de projetos de software

Empreendedor do prprio negcio 03


PERFIL PROFISSIONAL DOS EGRESSOS

O egresso do Curso Superior de Tecnologia em Desenvolvimento de Sistemas Distribudos dever ser capaz de:
Desenvolver aplicativos em linguagens procedurais e orientado objeto; Projetar sistemas de software utilizando ferramentas de apoio; Desenvolver aplicaes dinmicas para ambiente Web; Desenvolver aplicaes para dispositivos mveis e sem fio; Desenvolver aplicaes baseadas em objetos distribudos; Instalar; configurar e administrar sistemas operacionais; Instalar; configurar e administrar equipamentos de redes; Instalar; configurar e administrar servios de rede; Integrar sistemas corporativos com aplicativos baseados em dispositivos mveis e sem fio; Integrar sistemas legados com sistemas atuais. Integrar sistemas heterogneos;

147

Iniciar e gerenciar um empreendimento; Coordenar e gerenciar projetos de software e sistemas de informao; Analisar o desempenho e demais caractersticas de rede de computadores para otimizar o seu funcionamento (tunning); Desenvolver servios Web e de suporte para comrcio eletrnico; Utilizar recursos de segurana para a proteo e monitoramento de recursos de rede;

Monitorao e gesto de segurana de ambientes distribudos;


COMPETNCIAS A SEREM CONSTRUDAS NO MDULO

04

Formam a competncia de Desenvolvimento de Sistemas em Ambiente Distribudo as seguintes unidades curriculares LGICA DE PROGRAMAO CONSTRUO DE PGINAS WEB COMUNICAO LINGSTICA FUNDAMENTOS MATEMTICOS DA COMPUTAO PROJETO DE SISTEMAS DE BANCO DE DADOS ESTRUTURA DE DADOS, PESQUISA E ORDENAO ANLISE DE SISTEMAS LINGUAGEM DE PROGRAMAO LINGUAGEM DE PROGRAMAO VISUAL TECNOLOGIA DE ORIENTAO A OBJETOS E JAVA METODOLOGIA DA PESQUISA CIENTFICA E TECNOLGICA INTERFACE HOMEM MQUINA DESENVOLVIMENTO DE APLICAES WEB TECNOLOGIA DE BANCO DE DADOS DISTRIBUDOS PROGRAMAO PARA DISPOSITIVOS MVEIS E SEM FIO SERVIOS DE SUPORTE A APLICAES DISTRIBUDAS SISTEMAS OPERACIONAIS DISTRIBUDOS WEB SERVICES XML ENGENHARIA DE SOFTWARE Formam a competncia Ncleo Comum as seguintes unidades curriculares: SISTEMAS DISTRIBUDOS ESTATSTICA GERNCIA E CONFIGURAO DE SERVIOS INTERNET TECNOLOGIAS MVEIS E SEM FIO

05

FUNDAMENTAO LEGAL:

Lei Federal n.o 9.394/96. Decreto Federal n.o 2.208/97. Parecer n.o 21/99 COENS de 21/01/99. Parecer n.o 3/99 CODIR de 19/03/99. Reconhecimento em 19/12/03.

148

06 07

UNIDADE CURRICULAR: Lgica

de Programao

HABILIDADES:

1. Relacionar os fundamentos da lgica formal com a construo de algoritmos e a cincia da computao.

2. Desenvolver raciocnio computacional, para elaborar algoritmos, atravs de uma linguagem escrita (ex. Portugol) e uma grfica (ex. Fluxograma) seguindo os preceitos da programao estruturada. Bases Tecnolgicas(Ementa)

08 Competncia
Utilizar lgica matemtica para expressar raciocnios e construir algoritmos de maneira formal.

NA

ME

RD

FA

15 Clculo proposicional. Conectivos lgicos fundamentais. Equivalncia e Implicao lgica. lgebra proposicional. Clculo dos predicados. Procedimentos deciso e validade.

1, 2

1, 4, 8

2, 8

Construo de algoritmos. Estruturas bsicas de deciso e controle. Operadores aritmticos, relacionais e lgicos. Conceitos de programao 65 estruturada e modular. Procedimentos e funes. Atividades em laboratrio.

1, 3, 4, 5

1, 8

2, 8

09

PROJETO INTEGRADOR

10

BIBLIOGRAFIA

1. ASCENCIO, A.F.;CAMPOS, E.A. Fundamentos da programao de Computadores. So Paulo: Prentice Hall, 2002. 3. FARRER, H.; Algoritmos Estruturados. So Paulo: LTC, 1999. 4. FORBELLONE, A. L.; Eberspacher, H.F. Lgica de Programao. So Paulo: Makron Books, 2000. 5. GERSTING, J. L. Fundamentos Matemticos da Computao. So Paulo: LTC, 1995.

6. GUIMARES, A. M. LAGES, N. A. C. Algoritmos e Estruturas de Dados. So Paulo: LTC. 7. SUCHEUSKI, M. Desenvolvedor Profissional Algoritmos. Curitiba: Lsias,

1996.

149

II.2- Plano de Aula da Disciplina de Lgica de Programao


Ministrio de Educao Centro Federal de Educao Tecnolgica do Paran Unidade de Curitiba Gerncia de Ensino e Pesquisa Departamento Acadmico de Informtica

UNIVERSIDADE TECNOLGICA FEDERAL DO PARAN

PR

CDIGO DA UNIDADE CURRICULAR IF51C- M71

PLANO DE AULA CST EM Desenvolvimento de Sistemas Distribudos

01

UNIDADE CURRICULAR: Lgica Aulas Tericas 20

de Programao
Aulas de Laboratrios Aulas Prticas Carga horria prevista 36 34 90 NA ME RD FA

Semestre/ano

Bases Tecnolgicas / Contedo

Conceito intuitivo de algoritmos Introduo Lgica Matemtica. Histrico. Frmulas proposicionais. Conceituar proposio e valor-verdade. Princpios fundamentais da lgica. Conceituar sentenas compostas, conectivos lgicos, tabela-verdade. Com tabelas-verdade, detalhar os conectivos lgicos: negao, conjuno, disjuno inclusiva, disjuno exclusiva, condicional e bicondicional. Tautologia, Contradio. Funes Lgicas com Excel Introduo a algoritmos. Variveis e constantes. Tipos de Dados. Expresses Aritmticas, Operadores Relacionais e Lgicas. Programao estruturada,e os conceitos de programao top-down. Apresentar a linguagem Portugol e Fluxograma. Comandos de entrada e sada de dados, comandos de atribuio, estruturas condicionais. Apresentar em Portugol e Fluxograma os comandos de repetio. 1 Avaliao Parcial Comandos de repetio. Algoritmos e estruturas de dados homognias (vetores e matrizes). 2 Avaliao Parcial Algoritmos e estruturas de dados heterogneas (registros).

1, 2 1

1, 4 1

1, 8

1, 5

1, 8

2, 8

1, 3, 4

1, 8

2, 8

10

1, 3, 4

1, 8

2, 8 2, 8

10 20

1, 3, 4 1, 3, 4

1, 8 1, 8

2, 8 2, 8 2,8

12

1, 3, 4

1, 8

2, 8

150

Conceituar funes e procedimentos. Escopo de variveis. Conceituar funes recursivas. 3 Avaliao Parcial 4 Avaliao Substitutiva
03 ORIENTAES GERAIS
a) b) c) 04

15

1, 3, 4

1, 8

2, 8 2,8
2, 8

Freqncia Mnima = 75% de NA dadas o Nota Final = (Mdia N. Av do Semestre) Identificar no Plano as datas das Avaliaes ao longo do semestre a serem realizadas APRENDIZAGEM E AVALIAO
RD: Recursos Didticos
1 - Transparncias 2 - Slides 3 - Videocassete 4 - Computador 5 - Mapas / catlogos 6 - Laboratrio 7 - Impressos (apostila) 8 - Quadro de giz 9 - Outros

ME: Metodologia de Ensino


1 - Expositiva - dialogada 2 - Atividade de laboratrio 3 - Trabalho individual 4 - Trabalho em grupo 5 - Pesquisa 6 - Dramatizao 7 - Projeto 8 - Debate 9 - Estudo de caso 10 - Seminrio 11 - Painel integrado 12 - Visita tcnica 13 - Brainstorming 14 - Outros

FA: Formas de Avaliao


1 - Prova objetiva 2 - Prova dissertativa 3 - Prova prtica 4 - Palestra 5 - Projeto 6 - Relatrio 7 - Seminrio 8 - Outros

Obs.: Nota final= (Mdia N.o Av) Av= Avaliao