• Nenhum resultado encontrado

Problemas no Ensino de Programa¸ c˜ ao

1.3 Organiza¸ c˜ ao do Documento

2.0.5 Problemas no Ensino de Programa¸ c˜ ao

explicar as caracter´ısticas de cada gera¸c˜ao. Prensky (2012) rotula a gera¸c˜ao atual como os Nativos Digitais, as pessoas que nasceram em meio ao turbilh˜ao tecnol´ogico e tem interagido com esses aparelhos desde a infˆancia, e a gera¸c˜ao anterior, como os Imigrantes Digitais, aqueles que foram inseridos nesse mundo tecnol´ogico ap´os o seu nascimento2.

Essa mudan¸ca de gera¸c˜ao, desencadeou a necessidade de novas formas de ensino e intera¸c˜ao com esses estudantes. No entanto, percebe-se, nos cursos de inform´atica, a manuten¸c˜ao de pr´aticas tradicionais, muitas delas vivenciadas pelos professores quando estudantes. No entanto, a reprodu¸c˜ao de pr´aticas tradicionais acaba de- sencadeando um processo de desinteresse e desmotiva¸c˜ao por parte do estudante (GUZDIAL, 2003).

Outros problemas s˜ao desencadeados pela falta de motiva¸c˜ao para a atua¸c˜ao na ´area, provocada pelo uso de metodologias tradicionais e abordagens afastadas do contexto dos estudantes e simplesmente mon´otonas (RANADE, 2016). Essa desmotiva¸c˜ao, no per´ıodo do ensino, acaba por gerar desmotiva¸c˜ao profissional mais adiante, fator que afasta o estudante do mercado por esse ter uma vis˜ao reducionista do seu papel enquanto profissional t´ecnico da ´area de Computa¸c˜ao, gerando d´eficit de profissional na ´area (SOFTEX, 2010).

Por fim, um problema relacionado, em grande medida, `as institui¸c˜oes ´e a falta de um curr´ıculo de referˆencia que leva `a cria¸c˜ao de curr´ıculos inadequados `a modali- dade de ensino t´ecnico. Percebe-se que muitos curr´ıculos s˜ao adapta¸c˜oes de cursos superiores, fator que leva a uma abordagem erronia tanto estrutural como pedago- gicamente, causando graves problemas ao n˜ao considerar a maturidade intelectual dos estudantes (RANADE, 2016). Sabe-se, ainda, que a forma¸c˜ao de profissionais t´ecnicos requer uma abordagem singular dado os seus objetivos, competˆencias e habilidades requeridas para o desempenho pleno de suas fun¸c˜oes.

Todos esses fatores est˜ao relacionados com os dados da educa¸c˜ao profissional do Brasil e mais especificadamente com os cursos da ´area de Computa¸c˜ao no estado de Bahia, apresentados na subse¸c˜ao anterior. Esses problemas s˜ao complexos e neces- sitam de diversas estrat´egias para solucion´a-las, tanto sob aspectos dos estudantes, das institui¸c˜oes e principalmente dos professores, metodologias e curr´ıculo.

`

as disciplinas introdut´orias de programa¸c˜ao. Destacamos como os principais proble- mas do ensino da ´area de Computa¸c˜ao: a evas˜ao, reprova¸c˜ao e falta de interesse dos estudantes. Na tentativa de tecer uma linha de causa e consequˆencias, iniciaremos pela falta de interesse e desmotiva¸c˜ao dos estudantes.

Erros metodol´ogicos por parte de professores e institui¸c˜oes s˜ao comuns. Algumas abordagens, portanto, mesmo que com inten¸c˜ao de aumentar a motiva¸c˜ao, tal como o elevado n´umero de exerc´ıcios (SILVA et al., 2015), acabam por desmotivar e so- brecarregar os estudantes nas disciplinas de programa¸c˜ao. Esse ´e um dos exemplos da formula¸c˜ao de abordagens sem reflex˜ao e embasamento pedag´ogico e/ou teorias que visam realmente reduzir o problema. A¸c˜oes como essas mostram que professo- res est˜ao constantemente testando abordagens atrav´es do pragmatismo irrefletido e tamb´em podem ser exemplificadas pelas mudan¸cas de ambientes ou linguagens de programa¸c˜ao.

Como j´a pontuado, apesar da importˆancia de disciplinas de programa¸c˜ao para os cursos de Computa¸c˜ao, n˜ao ´e incomum encontrar estudantes desmotivados e com di- ficuldades em programa¸c˜ao (BARBOSA; FERREIRA; COSTA, 2014). Uma poss´ıvel explica¸c˜ao se deve `a grande quantidade de professores e institui¸c˜oes que concebem estas disciplinas, ainda, de forma excessivamente tradicional, repetindo as pr´aticas vivenciadas por estes quando estudantes. Esse cen´ario fortalece a ideia de que a ´area da Ciˆencia da Computa¸c˜ao n˜ao ´e interessante e n˜ao motiva os estudantes (ULUDAG;

KARAKUS; TURNER, 2011).

Estudos sugerem que os cursos de Computa¸c˜ao s˜ao vistos como extremamente t´ec- nicos, evitam rela¸c˜oes com aplica¸c˜oes reais, s˜ao muito chatos e n˜ao oferecem opor- tunidade para criatividade (GUZDIAL, 2003). A conjun¸c˜ao desses fatores com o dinamismo tecnol´ogico leva, portanto, muitos curr´ıculos a se tornarem obsoletos.

Isso n˜ao ocorre somente com as ferramentas utilizadas, mas tamb´em com as experi- ˆ

encias de usu´ario dos exemplos apresentados (CLUA, 2008).

A falta de rela¸c˜ao como o mundo real, propostas obsoletas, ensino extremamente t´ecnico e enfadonho levam os estudantes a um quadro de desmotiva¸c˜ao. Essa des- motiva¸c˜ao tem, portanto, levado os cursos da ´area de Computa¸c˜ao a ocuparem o topo dos rankings quando o assunto ´e reprova¸c˜ao e evas˜ao.

Os departamentos de Computa¸c˜ao n˜ao tˆem sido bem-sucedidos em atingir uma alta taxa de estudantes que cursam com aprova¸c˜ao disciplinas de introdu¸c˜ao `a Ciˆencia da Computa¸c˜ao. As evidˆencias para isso incluem estudos internacionais sobre perfor- mance que apresenta taxas de reten¸c˜ao e taxas de reprova¸c˜ao acima de 30% (CLUA, 2008). N´umero esse refor¸cado pelos estudos de (BENNEDSEN; CASPERSEN, 2007) e (WATSON; LI, 2014).

Outro fator a ser considerado no ensino de programa¸c˜ao s˜ao as caracter´ısticas dos estudantes iniciantes. Estudantes experientes e/ou bem-sucedidos normalmente s˜ao usados como base para a concep¸c˜ao de disciplinas e abordagens. No entanto, esses tˆem um processo de aprendizagem diferente dos iniciantes. Geralmente, os inician-

tes tˆem um conhecimento superficial, modelos mentais n˜ao detalhados, pecam na aplica¸c˜ao de conhecimentos relevantes e usam abordagens restritas, n˜ao focando em partes significativas ou estruturas do programa (ROBINS; ROUNTREE; ROUN- TREE, 2003).

Assim, iniciantes apresentam deficiˆencias de entendimento de v´arias estruturas es- pec´ıficas das linguagens de programa¸c˜ao (por exemplo: vari´aveis, loops, arrays e recurs˜ao), dificuldades nos seus planos e testes, apresentam conhecimento anterior que podem ser fonte de erros (por exemplo: s´ımbolos matem´aticos), s˜ao concretos (n˜ao utilizam adequadamente o pensamento abstrato) e locais na sua compreens˜ao de programas (ROBINS; ROUNTREE; ROUNTREE, 2003).

Segundo Robins, Rountree e Rountree (2003), a habilidade de programa¸c˜ao deve se assentar em uma fundamenta¸c˜ao de conhecimentos sobre o computador, linguagem de programa¸c˜ao, ferramentas, recursos, teorias e m´etodos formais. No entanto, livros e disciplinas s˜ao focados em apresentar conhecimentos sobre linguagens de programa¸c˜ao e s˜ao excessivamente dirigidos a conhecimento. Nesse sentido, muitos autores tˆem realizado interven¸c˜oes que n˜ao visam a aprendizagem de uma linguagem e sim a constru¸c˜ao do Pensamento Computacional.

As propostas para reduzir os problemas no ensino de programa¸c˜ao s˜ao m´ultiplas.

Percebe-se tendˆencias como a constru¸c˜ao de ambientes (RESNICK, 2007; KEL- LEHER; PAUSCH; KIESLER, 2007; GUZDIAL, 2013), linguagens (PAPERT; SO- LOMON, 1971; RESNICK, 2007) e abordagens pedag´ogicas (GUZDIAL, 2013; PA- PERT; SOLOMON, 1971) que visam apresentar propostas de redu¸c˜ao dos problemas e que s˜ao utilizadas por diversos pesquisadores e professores do mundo todo. Na se-

¸c˜ao seguinte, apresentaremos de forma mais aprofundada algumas dessas propostas utilizadas nesse trabalho.

Fatores relacionados ao Ensino de Programa¸ c˜ ao

Dado o car´ater m´ultiplo dos problemas no ensino de programa¸c˜ao, n˜ao h´a um campo

´

unico a ser considerado quando se levanta uma proposta de solu¸c˜ao. Assim, alguns fatores devem ser estudados e modelados de acordo com os problemas a serem mi- nimizados. Em primeira instˆancia, a linguagem de programa¸c˜ao utilizada deve ser pensada para reduzir o foco em quest˜oes sint´aticas e dar protagonismo ao Pensa- mento Computacional, estimulando o racioc´ınio e a capacidade de solu¸c˜ao de proble- mas. Outro fator ´e o ambiente de programa¸c˜ao, esse deve atender `as demandas dos estudantes e facilitar a constru¸c˜ao do conhecimento (TILDEN, 2013). Por fim, as abordagens metodol´ogicas, os exemplos, as atividades e a motiva¸c˜ao para a apren- dizagem devem ser considerada.

Nesta se¸c˜ao ser˜ao apresentadas algumas abordagens contextualizadas, como o uso de imagens, sons, jogos e outros que tˆem como objetivo motivar os estudantes com exemplos e atividades que tenham rela¸c˜ao com a vida cotidiana e aplica¸c˜oes reais de programa¸c˜ao. Ser˜ao apresentadas as caracter´ısticas ideais para a escolha de uma lin- guagem de programa¸c˜ao para o ensino, tendo como base as principais linguagens de programa¸c˜ao utilizadas. Al´em disso, lan¸caremos um olhar aprofundado sobre a lin- guagem Python, sendo essa uma alternativa adequada ao ensino. Apresentaremos, ainda, um contexto inicial sobre o uso de ferramentas para o apoio do processo de ensino e aprendizagem de programa¸c˜ao e focaremos, para fins desse trabalho, nas se- guintes ferramentas: Turtle, Scracth, JES, PPLay, todas relacionadas `as abordagens contextualizadas.