Compartilhar:

Artigo - PDF

Scientific Society Journal  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ 

ISSN: 2595-8402

Journal DOI: 10.61411/rsc31879

REVISTA SOCIEDADE CIENTÍFICA, VOLUME 7, NÚMERO 1, ANO 2024
.

 

 

ARTIGO ORIGINAL

Desenvolvimento do pensamento computacional: o uso do Scratch na introdução à programação

Ana Maria Di Grado Hessel1; Erick Quintino Dos Santos2; Estefânia Portomeo Cançado Lemos3; Daniel Couto Gatti4; José Rodolfo Dias Dos Santos5; Rommel Gabriel Gonçalves Ramos6

 

Como Citar:

Hessel; Ana Maria di Grado, DOS SANTOS; Erick Quintino, LEMOS; Estefânia Portomeo Cançado, GATTI; Daniel Couto, DOS SANTOS; José Rodolfo Dias; RAMOS; Rommel Gabriel Gonçalves. Desenvolvimento do pensamento computacional: ​​ o uso do scratch na introdução à programação. Revista Sociedade Científica, vol.7, n. 1, p.892-923, 2024.

https://doi.org/10.61411/rsc202427417

 

DOI: 10.61411/rsc202427417

 

Área do conhecimento: Interdisciplinar

 

Sub-área: Matemática; Computação

 

Palavras-chaves: Pensamento computacional; scratch; algoritmização; raciocínio lógico; programação.

 

Publicado: 19 de fevereiro de 2024

Resumo

O presente trabalho aborda o desenvolvimento do pensamento computacional através do uso do Scratch na introdução à programação. Inicialmente, são apresentados os conceitos de pensamento computacional e Scratch, bem como a importância do desenvolvimento do pensamento computacional para iniciar na programação. Este trabalho também reflete as principais dificuldades de egressos na programação e as principais causas da desistência desses iniciantes. Por fim, são destacadas as vantagens do uso do Scratch no desenvolvimento do pensamento computacional, tais como o estímulo à criatividade, o desenvolvimento de habilidades cognitivas e a promoção da colaboração. Com base nas informações apresentadas, é possível perceber a relevância do uso do Scratch como ferramenta de ensino para a introdução à programação e desenvolvimento do pensamento computacional.

.

1. Introdução

O pensamento pode ser definido como um processo cognitivo que envolve a percepção, a memória, a linguagem, a criatividade e o raciocínio, entre outros fatores. De acordo com Rosenthal (2017), o pensamento é fundamental para a tomada de decisões e resolução de problemas. Além disso, segundo Gazzaniga (2018), o pensamento é responsável pela nossa capacidade de aprender, comunicar e interagir com o mundo.

A palavra algoritmização vem de algoritmos, que, de acordo com Sedgewick e Wayne (2011, p. 6), "um algoritmo é uma sequência bem definida de instruções computacionais que, quando executadas, realizam uma tarefa específica". Essa definição se alinha com a ideia de que um algoritmo é uma sequência lógica de instruções que leva à solução de um problema. Já Knuth (1997, p. 1) define algoritmo como "um procedimento passo a passo para resolver um problema matemático bem definido".

Assim sendo, fica evidente que um algoritmo é uma sequência de passos que leva à solução de um problema específico. Por fim, Cormen et al. (2009, p. 5) definem algoritmo como "uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente em um período de tempo finito e com uma quantidade finita de esforço". Essa definição destaca a importância de que cada instrução do algoritmo seja clara e sem ambiguidade, além de ressaltar que a execução do algoritmo deve ser possível em um período de tempo finito;

Dessa forma, podemos concluir que, Segundo Brackmann (2019, p. 45), "algoritmização é o processo de transformar uma solução para um problema em um algoritmo que possa ser implementado em uma linguagem de programação".

A algoritmização, levada ao âmbito tecnológico, para a área da computação, leva-nos a visualizar a base da programação. Para se tornar programador, entender algoritmos é uma etapa crucial e a mais importante, pois, assim, é levantado o conceito do pensamento computacional que não é apenas concentrado na computação, mas leva uma pessoa a compreender como, de fato, um computador age. Ele tem sido destacado como uma habilidade importante para a formação de profissionais em áreas relacionadas à tecnologia da informação e comunicação (Rosen et al., 2013).

..

2. Referencial teórico

2.1 Conceitos de pensamento computacional

Aprofundando no conceito de pensamento computacional, podemos ver que a primeira vez que o termo foi introduzido na comunidade de tecnologia foi na década de 80, com Seymour Papert. Segundo Papert, o pensamento computacional é "uma maneira de pensar que envolve a criação de imagens mentais de como os modelos são formados e manipulados e uma maneira de pensar sobre como o pensamento pode ser estruturado e organizado" (Papert, 1993, p. 18).

Wing (2006) diz que o PC é um processo mental que envolve o uso de conceitos e estratégias fundamentais da ciência da computação para resolver problemas, projetar sistemas e entender o comportamento humano e natural.

Segundo Barr e Stephenson (2011), "o pensamento computacional é um conjunto de habilidades mentais que permite resolver problemas de maneira mais eficiente e eficaz", e essa abordagem requer "pensamento lógico, algorítmico e crítico" (p. 34).

Brackmann (2017, p. 29) define o PC da seguinte maneira: “é uma distinta capacidade criativa, crítica e estratégica humana de saber utilizar os fundamentos da Computação, nas mais diversas áreas do conhecimento, com a finalidade de identificar e resolver problemas, de maneira individual ou colaborativa, através de passos claros, de tal forma que uma pessoa ou uma máquina possam executá-los eficazmente”.

O pensamento computacional segundo Raabe, Brackmann e Campos (2018) é dividido em 4 conceitos principais, são eles:

⦁ Decomposição

⦁ Abstração

⦁ Reconhecimento de Padrões

⦁ Algoritmização

.

2.1.1 Decomposição

A decomposição é descrita por autores como Wing (2006) como uma forma de decomposição "dividir um problema complexo em partes menores, mais gerenciáveis e compreensíveis", e é uma habilidade fundamental do pensamento computacional que pode ser aplicada em diversas áreas, incluindo a programação (Resnick et al., 2009).

Segundo Almeida e Mendes (2018), um exemplo de decomposição seria o processo de criação de um jogo no Scratch. Antes de começar a programar, é necessário decompor o jogo em partes menores, como a criação dos personagens, a definição das regras, a implementação dos controles e a criação dos cenários.

Cada uma dessas partes pode ser decomposta ainda mais em tarefas menores e mais simples, até que o problema seja resolvido por completo. Dessa forma, a decomposição auxilia na organização e resolução de problemas complexos de forma mais eficiente.

.

2.1.2 Abstração

A abstração é definida como a capacidade de identificar as características e propriedades essenciais de um objeto, abstraindo-se das suas particularidades irrelevantes (Wing, 2006).

Um exemplo de abstração pode ser o processo de criação de uma função para somar dois números em um programa de computador. O programador precisa identificar quais são as informações essenciais para realizar a operação de soma e abstrair-se das particularidades de cada número em si.

Assim, a função pode ser utilizada diversas vezes, com diferentes números, sem precisar ser reescrita para cada caso específico. Essa capacidade de abstração é fundamental para o desenvolvimento de programas de computador e é uma habilidade importante a ser desenvolvida no ensino de programação (Brennan & Resnick, 2012).

.

2.1.3 Reconhecimento de padrões

O reconhecimento de padrões é um dos pilares do pensamento computacional, que envolve identificar regularidades em dados e informações. Um exemplo de aplicação desse pilar é a análise de imagens. Segundo Raabe, Brackmann e Campos (2018), "A análise de imagens pode ser entendida como um processo que consiste em extrair informações a partir de imagens, sejam elas digitais ou analógicas, por meio da detecção, identificação e/ou quantificação de características específicas da imagem".

Um exemplo prático de reconhecimento de padrões em análise de imagens é a detecção de objetos em uma cena. De acordo com Lam et al (2018), "O reconhecimento de objetos é uma tarefa fundamental em muitas aplicações de visão computacional, incluindo vigilância, rastreamento, navegação autônoma, reconhecimento de face e classificação de imagens". Por meio do uso de algoritmos de processamento de imagem, é possível detectar objetos em uma imagem e identificá-los de acordo com padrões previamente estabelecidos, como por exemplo, forma, cor e textura.

.

2.1.4 Algoritmização

Algoritmização é o processo de transformar uma tarefa em uma sequência de passos bem definidos e precisos, a fim de serem executados por um computador ou outro dispositivo automatizado. Segundo Dromey (1996), algoritmo é uma "sequência finita de passos precisamente definidos para realizar uma tarefa específica".

Conforme Santos e Machado (2019), a algoritmização é fundamental para a programação, já que é a partir dela que se constrói um código estruturado e organizado, capaz de ser compreendido e executado pelo computador.

Nesse sentido, a algoritmização envolve a habilidade de pensar de forma estruturada e sequencial, e de ser capaz de decompor problemas complexos em tarefas menores e mais simples.

Segundo Aho, Hopcroft e Ullman (1983 p. 3), a algoritmização é uma "arte" que requer habilidade e criatividade para encontrar a solução mais eficiente e elegante para um problema. Eles afirmam que "a habilidade em algoritmização é fundamental para o sucesso em ciência da computação".

Além disso, Gries e Schneider (1993, p.2) enfatizam que a algoritmização não é apenas sobre a criação de algoritmos eficientes, mas também sobre a capacidade de comunicar ideias claramente e de forma concisa. Eles afirmam que "a algoritmização é a arte de apresentar soluções de forma clara e concisa para que possam ser facilmente entendidas e executadas".

.

2.2 A algoritmização e o pensamento lógico

Algoritmização e pensamento lógico são dois conceitos fundamentais para o desenvolvimento do pensamento computacional. Segundo Ribeiro e Lopes (2017), a algoritmização envolve a capacidade de organizar informações e transformá-las em um conjunto de passos bem definidos que podem ser seguidos para resolver um determinado problema. Já o pensamento lógico envolve a habilidade de raciocinar de forma sistemática e coerente, utilizando o raciocínio dedutivo para inferir informações a partir de premissas.

De acordo com Valente e Almeida (2016), a algoritmização é uma ferramenta importante para o desenvolvimento do pensamento lógico, uma vez que exige que o aluno organize as informações de forma lógica e coerente, seguindo uma sequência de passos que possibilite a resolução do problema. Por sua vez, o pensamento lógico é fundamental para a algoritmização, uma vez que é necessário um raciocínio dedutivo para a construção de algoritmos precisos e eficientes.

Um exemplo prático de algoritmização no ensino do pensamento lógico é o uso de problemas matemáticos para ensinar a criar algoritmos. Conforme destacado por Oliveira e Gomes (2017 p.4), "a resolução de problemas matemáticos pode ser utilizada para ensinar algoritmos, já que envolve a formulação de um problema e sua solução, que é o objetivo dos algoritmos". Por meio do processo de algoritmização, os estudantes aprendem a decompor um problema complexo em tarefas menores e sequenciais, identificar as informações relevantes e definir uma solução clara e precisa para o problema proposto.

.

2.3 Ferramentas de programação para desenvolvimento do pensamento computacional

Existem diversas ferramentas de programação que podem ser utilizadas no desenvolvimento do pensamento computacional, e cada uma delas apresenta suas próprias características e funcionalidades.

O Scratch é uma dessas ferramentas, e é especialmente indicado para iniciantes por utilizar a programação em blocos, o que torna mais fácil a visualização da lógica de programação (GROVER e PEA, 2013).

Outra ferramenta bastante utilizada é o Code.org, que oferece um conjunto de atividades e recursos para o ensino da programação para crianças, jovens e adultos (ALMSTRUM et al., 2014).

Além dessas ferramentas, existe o App Inventor, que permite que os usuários criem aplicativos para Android a partir de blocos de programação visual (KIRKPATRICK et al., 2014). Outra ferramenta é o Greenfoot, que utiliza a linguagem de programação Java e é especialmente indicado para o ensino de programação orientada a objetos (KÖLLING, 2003).

Essas ferramentas são importantes para o desenvolvimento do pensamento computacional porque permitem que os usuários construam algoritmos e resolvam problemas de maneira criativa e colaborativa, o que contribui para o aprendizado da programação e o desenvolvimento de habilidades cognitivas importantes (WING, 2006).

2.3.1 Scratch como ferramenta para programação

O Scratch é uma ferramenta de programação visual que pode ser utilizada por alunos de todas as idades e níveis de habilidade, permitindo a criação de histórias interativas, jogos e animações. Segundo Resnick (2007), o uso do Scratch permite que os alunos possam aprender programação e ao mesmo tempo desenvolver habilidades de resolução de problemas, raciocínio lógico e criatividade e, também, auxilia no desenvolvimento do pensamento computacional.

O Scratch foi desenvolvido por um grupo de pesquisadores do Lifelong Kindergarten Group no MIT Media Lab, liderado por Mitchel Resnick, que tinha como objetivo criar uma ferramenta acessível e divertida para ensinar programação para crianças (RESNICK et al., 2009).

.

Figura 01: Tela inicial do Scratch. Fonte: https://scratch.mit.edu/. Printscreen feito pelo pesquisador.

O Scratch foi lançado em 2007 e desde então tem sido utilizado em todo o mundo para ensinar programação a crianças e jovens. De acordo com Maloney et al. (2010), o Scratch se tornou popular entre educadores por sua interface intuitiva e pela facilidade de uso, que permite aos alunos experimentar, criar e compartilhar seus próprios projetos de forma colaborativa.

.

Figura 02: Tela da área de construção de projetos do Scratch. Fonte: https://scratch.mit.edu/projects/editor/?tutorial=getStarted.

.

2.3.2 Projeto prático no scratch

 Existem, no site do Scratch (https://scratch.mit.edu/), vários exemplos de projetos finalizados e postados por usuários. Um desses exemplos é o projeto “Haxball Offline”, um simulador do jogo “Haxball” (https://www.haxball.com/) mas que, diferente do original, funciona de forma desconectada da internet para dois jogadores, por meio do uso do teclado do computador. O criador utilizou blocos de controladores, movimentos e sentidos para finalizar o projeto.

.

Figura 03 - Projeto no Scratch. Fonte: https://scratch.mit.edu/projects/3005452/. Printscreen feito pelo pesquisador.

 Esse projeto, feito pelo usuário “FRKN”, simula uma partida do jogo online “Haxball”, de forma offline para dois jogadores. O objetivo do jogo é mover seu jogador, caracterizado como os círculos vermelho e azul e levar a bola, que seria o círculo menor e branco, até o gol do adversário, com opção de chutar.

.