Sequência Didática
Aula 1

Pensamento Computacional e App Inventor

Na primeira aula se espera conhecer o perfil dos alunos e seus conhecimentos prévios a respeito do tema; realizar uma contextualização a respeito do cenário atual da Computação na Educação Básica e Superior, procurando trazer aspectos da presença do pensamento computacional (PC) nesses níveis de ensino; introduzir a conceituação do pensamento computacional abordando a sua origem, as modalidades existentes e os pilares que o sustentam; realizar atividades práticas para cada um dos pilares procurando associá-los com atividades cotidianas realizadas pelos educandos; apresentar a ferramenta App Inventor, sua interface, funcionalidades e a comunicação com o dispositivo móvel; criar o primeiro aplicativo móvel e executá-lo no smartphone do aluno.

Três Momentos Pedagógicos


A partir da introdução dos conceitos iniciais do pensamento computacional, fomentar a discussão a respeito da sua aplicação nas atividades rotineiras. Como o PC se aplica no dia-a-dia? Quais problemas reais podem ser resolvidos a partir do seu uso? Quais atividades o aluno realiza seguindo os preceitos do PC? Como introduzir o PC e otimizar as suas tarefas?

Também, a seguir da apresentação do App Inventor, demonstrar exemplos de aplicativos desenvolvidos na ferramenta para que os alunos possam apontar possíveis melhorias e estimular ideias de novos aplicativos para situações problema atuais.

Apresentar os quatro pilares do pensamento computacional, de forma teórica e prática, demonstrando a sua aplicabilidade em situações reais. Utilizar os recursos desenvolvidos pelo NAPEAD da UFRGS, realizando uma atividade inicial para introduzir o PC e outras quatro atividades após abordar cada um dos pilares.

Auxiliar os alunos no acesso e configuração inicial do App Inventor. Desenvolver o primeiro aplicativo na ferramenta e realizar a conexão com o seu smartphone para verificar a execução.



Retomar a discussão sobre a utilidade do PC levantada na problematização inicial, agora procurando empregar os conceitos dos quatro pilares (repetir a atividade inicial de introdução do PC para verificar o conhecimento adquirido pelo aluno).

Lançar o desafio de desenvolver uma interface replicando a tela de login de algum sistema utilizado pelo aluno (ex: sistema acadêmico) para que possa se familiarizar com o designer e componentes básicos do App Inventor.


Questionário inicial

No intuito de conhecer um pouco a respeito do perfil dos alunos participantes, bem como coletar subsídios para as atividades a serem propostas durante esta e demais aulas seguintes, optou-se por utilizar um questionário de percepção inicial, desenvolvido na ferramenta Google Formulários, com vistas a obter informações prévias sobre o acesso a internet disponível, quais equipamentos o educando dispõe para participar dos encontros, seu conhecimento prévio sobre algoritmos, pensamento computacional e desenvolvimento de aplicativos móveis, além de possíveis temáticas de interesse.

Computação na Educação Básica

A introdução da computação na Educação Básica (EB) não tem a intenção de competir com as demais áreas do conhecimento. Pelo contrário, visa capacitar futuros profissionais para diferentes carreiras com capacidade de lidar com a computação e as tecnologias digitais.

Enquanto há anos alguns países da Europa e Estados Unidos já possuem iniciativas de ensino de programação na Educação Básica, no Brasil o debate se iniciou recentemente com a inclusão da computação na BNCC - Base Nacional Comum Curricular (BRASIL, 2018).

Em relação a BNCC, concordamos com a introdução de conhecimentos da Computação na Educação Básica por meio do pensamento computacional como estratégia de produção do conhecimento e não apenas uso das tecnologias como ferramentas. No entanto, discordamos de alguns aspectos, como por exemplo: os itinerários formativos que desintegram o currículo em nome de uma capacitação para determinadas áreas. Maiores discussões sobre a temática em Cambraia, Kemp, Zanon (2021).

Além da BNCC, existem algumas iniciativas que tem se destacado na busca de introduzir o Pensamento Computacional na matriz curricular da EB. Entre elas:





CIEB

O Centro de Inovação para a Educação Brasileira (CIEB) apresenta um Currículo de Referência em Tecnologia e Computação, organizado em 3 eixos e subdivididos em conceitos, com sugestão de práticas pedagógicas, avaliações e materiais de referência, associados às competências gerais e habilidade da BNCC.

SBC

A Sociedade Brasileira de Computação (SBC) disponibiliza um documento intitulado "Diretrizes para ensino de Computação na Educação Básica" que trata dos referenciais de formação em Computação, trazendo competências e habilidades divididos em 3 eixos que compõem a Computação na EB.

BNCC

A Base Nacional Comum Curricular (BNCC) estabelece, entre as competências gerais, a necessidade de se compreender, utilizar e criar tecnologias digitais de informação e comunicação como forma de produzir conhecimentos, resolver problemas e exercer autoria na vida pessoal e coletiva.

Computação na Educação Superior

A falta de processos de ensino de computação na Educação Básica, acaba gerando dificuldades de aprendizagem de programação nos cursos superiores de Computação. Estudos demonstram que os discentes apresentam problemas para desenvolver o pensamento computacional e, consequentemente, as habilidades necessárias para programar, o que acaba por afetá-los, levando à desmotivação, reprovação e, em alguns casos, a evasão dos cursos de computação.

As dificuldades enfrentadas pelos alunos podem ser confirmadas a partir da análise de desempenho da disciplina de Algoritmos do curso de Tecnologia em Sistemas para Internet do IFFAR Campus Santo Ângelo. O curso oferta 35 vagas em turno noturno, sempre no primeiro semestre de cada ano, tendo em vista a periodicidade anual de oferta dos cursos superiores de graduação. Durante quatro anos, 2015 à 2018, o índice médio de reprovação por nota foi superior à 22% dos alunos, enquanto a reprovação por faltas atingiu quase 26%, chegando a um índice médio total de 48% de discentes reprovados durante esse período, conforme é possível visualizar na tabela abaixo.

Por outro lado, estudos como o de Da Silva e Falcão (2020), demonstram que a introdução da disciplina de pensamento computacional na matriz curricular dos cursos de Licenciatura em Computação faz com que os alunos apresentem melhora em relação aos níveis de raciocínio lógico e pensamento algorítmico, além de demonstrarem mais confiança e se sentirem mais preparados para aprender programação.

Contudo, não basta a introdução de uma disciplina de pensamento computacional, é necessário uma construção dialógica para contextualizar e envolver os alunos nos estudos, a exemplo da utilização dos 3MP, como ressaltamos nesta sequencia didática.

Pensamento Computacional

A origem do pensamento computacional se deu a partir das ideias introduzidas por Seymour Papert ainda na década de 70, sob influência dos estudos de Jean Piaget, ao desenvolver o construcionismo como uma abordagem que defendia o uso do computador enquanto uma ferramenta capaz de estimular o desenvolvimento do raciocínio do estudante na solução de problemas e para construir o seu próprio conhecimento.

A primeira citação efetiva do termo pensamento computacional se deu no livro “Mindstorms: children, computers and powerfull ideas” (PAPERT, 1980, p. 182), traduzido para português como “LOGO: Computadores e Educação” (PAPERT, 1986), enquanto Papert relata experimentos desenvolvidos em LOGO, uma linguagem interpretativa planejada para garantir acesso à programação de computadores para estudantes sem conhecimentos matemáticos prévios. Porém, há época não foi dada a devida atenção ao termo e, tampouco, Papert ocupou-se em aprofundá-lo. O autor defendia o uso do computador de forma humanizada, enquanto ferramenta para desenvolver habilidades mentais das crianças. Nesse sentido, idealizava o ensino de programação na educação básica, afirmando que a criança “deve programar o computador, e ao fazê-lo, ela adquire um sentimento de domínio [...] e estabelece um contato íntimo com algumas das ideias mais profundas da ciência, da matemática e da arte de construir modelos intelectuais” (PAPERT, 1986, p. 17).






A popularização do termo “pensamento computacional” se deu a partir de um artigo publicado por Wing (2006), conceituando o PC como uma “distinta forma de pensamentos com conceitos básicos da Ciência da Computação para resolver problemas, desenvolver sistemas e para entender o comportamento humano, habilidade fundamental para todos”. Traz ainda que o pensamento computacional é “reformular um problema aparentemente difícil em um problema que sabemos como resolver, talvez por redução, incorporação, transformação ou simulação” (WING, 2006, p.33).

Em trabalhos seguintes, a autora refina a conceituação do termo, aproximando e complementando a forma de pensar baseada na Matemática e na Engenharia. Destaca também os processos de pensamento envolvidos na formulação de um problema e na expressão de soluções que possam ser executadas por um humano ou por uma máquina. Ainda complementa como sendo um conjunto de habilidades intelectuais e de raciocínio que indica como as pessoas interagem e aprendem a pensar (WING, 2008; WING 2014).

Além de Wing, diversos pesquisadores apresentam distintas definições para o termo "pensamento computacional", o que nos leva a entender que o mesmo não está totalmente estabelecido, portanto ainda é um conceito em aberto e em constante evolução. Embora se encontrem várias abordagens para o PC, existe uma visão convergente de que sua utilização enquanto ato de pensar como um cientista da computação pode auxiliar na solução de problemas para diferentes situações e áreas. Portanto, o PC não tem a intenção de fazer com que as pessoas pensem como computadores, mas sim que se utilizem dos fundamentos e recursos da computação, aliados à sua inteligência, para abordar (formular e resolver) problemas. Abaixo são apresentadas algumas das diferentes definições de pensamento computacional.

Vamos entender na prática?

Para entender melhor o pensamento computacional, desafie-se levando o lobo, a ovelha e a couve de uma margem à outra do rio, mas sem esquecer de considerar os conceitos do pensamento computacional acima apresentados.

Essa atividade prática de introdução foi desenvolvida pelo NAPEAD–Produção Multimídia para a Educação da UFRGS.


Pilares do Pensamento Computacional

Ao abordar o pensamento computacional, seja de maneira conceitual ou com intenção prática de solução de problemas, é comum dividi-lo em pilares ou dimensões, ou também chamadas de bases do PC. Porém, assim como na definição do termo, não existe um consenso na literatura quanto aos pilares que compõem o pensamento computacional.

Segundo a SBC (2018), o PC envolve abstração, análise de informações e automação de soluções, sendo essas as três habilidades primordiais para a construção de uma solução algorítmica capaz de resolver um problema. No entanto, a maior parte dos estudos relacionados ao tema apresentam quatro pilares: decomposição, reconhecimento de padrões, abstração e algoritmos.

Decomposição

Processo no qual o problema complexo é dividido em tarefas menores e mais fáceis de serem gerenciadas. A separação em partes menores otimiza a compreensão do problema, o desenvolvimento da solução e a avaliação do resultado e a identificação de erros.

Reconhecimento de Padrões

Consiste em identificar similaridades entre os problemas. Possibilita a criação de modelos genéricos que podem ser usados para a construção de soluções mais rápidas e eficientes com base em problemas resolvidos anteriormente.

Abstração

Corresponde em simplificar a realidade a partir da criação de uma representação ou modelo do que se está tentando resolver apenas com os elementos relevantes, ou seja, ignorando detalhes desnecessários, tornando os problemas mais fáceis de serem solucionados.

Algoritmo

Constitui-se em uma sequência de passos ou regras finita a ser seguida para a resolução do problema. As instruções lógicas contidas em um algoritmo, se seguidas com precisão, levam a solução do problema inicial, bem como podem resolver problemas semelhantes.

Vamos entender na prática?

Desafie-se explorando cada um dos pilares do pensamento computacional através das atividades práticas abaixo desenvolvidas pelo NAPEAD–Produção Multimídia para a Educação da UFRGS.

Assuma o papel de detetive decompondo os fatores determinantes de um caso misterioso para montar a sua teoria.

Enquanto dono de uma locadora, identifique padrões nos clientes para saber exatamente qual a indicação de filme é mais apropriada.

Você é o segurança da portaria responsável por autorizar a entrada do público, examine cada fantasiado abstraindo as características em sua lista.

Auxilie o personagem a atravessar a rua em segurança montando um algoritmo que descreve a sequência de passos até chegar a sua loja.

App Inventor

Diferentes ferramentas, computacionais ou não, podem ser utilizadas para auxiliar o processo de construção de algoritmos. Comumente são empregados softwares que possibilitam a escrita da codificação em linguagem natural ou na forma de pseudocódigo, sendo que cada ambiente possui uma sintaxe específica para o desenvolvimento da lógica de programação. No que tange o ensino do pensamento computacional, é frequente o uso de ambientes de programação visual em blocos, como é o caso do App Inventor.

Desenvolvido pelo Google e mantido atualmente pelo Instituto de Tecnologia de Massachusetts (MIT), o App Inventor é uma ferramenta de código aberto que permite a criação de aplicativos móveis, como jogos, simulações, animações, entre outros, para dispositivos com o sistema Android. Possibilita o desenvolvimento de aplicativos arrastando blocos que se encaixam segundo uma lógica de funcionalidades pré-estabelecidas, levando a uma construção abstraída, pois não requer que o aluno tenha compreensão total do código que será executado pelo aplicativo. O ambiente pode ser acessado gratuitamente, de forma online, por meio de um navegador web e conta com mais de 8 milhões de usuários registrados, de 195 países, e 34 milhões de aplicativos construídos (MIT, 2020).

A programação de um aplicativo no App Inventor é baseada em componentes, os quais podem ser manipulados por eventos, métodos e propriedades. O comportamento dos componentes é orientado pelos eventos originados da interação do usuário com o aplicativo.

A interface do App Inventor se divide em duas janelas: “Designer” e “Blocos”. A primeira se destina a criar a interface visual do aplicativo, arrastando componentes da “Paleta”, como botões, caixas de texto e seleção, figuras, mapas, entre outros, para o “Visualizador”, conforme a figura ao lado.

Para definir o comportamento dos componentes inseridos no “Designer”, é utilizada a janela de “Blocos”, conforme figura ao lado. Nela, são estabelecidas as funcionalidades do aplicativo a partir de blocos conectáveis, que podem ser eventos ou métodos. Cada bloco realiza diferentes ações, desde controles de sequência e continuidade, até operações matemáticas. O aplicativo desenvolvido pode ser executado diretamente em um dispositivo Android conectado ao computador ou através de um emulador que acompanha o App Inventor.

A partir das funcionalidades existentes no App Inventor, é possível desenvolver diferentes aplicativos para resolver problemas reais. Nas figuras ao lado são exibidos alguns exemplos de aplicativos desenvolvidos pela iniciativa Computação na Escola do INCod/INE/UFSC com parceria do IFSC. O primeiro aplicativo, ECOPONTOS, permite a visualização de pontos de coleta de material reciclável. O segundo, ClicDenúncia, possibilita ao cidadão realizar denúncias a partir do local onde um problema é observado (ruas esburacadas, falta de iluminação pública, pichações, etc.), sendo a mesma enviada imediatamente ao órgão responsável. O último aplicativo, Bikanto, visa identificar e compartilhar com outras pessoas locais onde é possível e seguro deixar a sua bicicleta (UFSC, 2020).

Ao observar as telas desses aplicativos (clique na figura para ampliar), é possível apontar a implementação de alguma melhoria? Quais funcionalidades os aplicativos poderiam contemplar com base em outros Apps que você utiliza? Que outros problemas poderiam ser resolvidos com o desenvolvimento de Apps semelhantes?

Vamos entender na prática?

Execute a sequência de passos abaixo para criar o seu primeiro aplicativo "Olá Mundo" no App Inventor.

  • Acessar o site: https://appinventor.mit.edu;

  • Clicar em “Create Apps!” [1];

  • Fazer login com a sua conta do Google;

  • Aceitar os Termos de Serviço;

  • Clicar em “Continue” na janela de apresentação e em “Close” na janela seguinte de boas-vindas;

  • Após o login, será exibida a tela inicial onde ficarão salvos todos os projetos;

  • Alterar o idioma clicando em “English” na barra superior [2] e selecionar a opção "Português do Brasil" [3];

  • Fechar as janelas inicias, caso sejam exibidas novamente;

  • Clicar em “Iniciar novo projeto...” [4] e atribuir o nome “ola_mundo”;

  • Observar as colunas: "Paleta", “Visualizador”, “Componentes”, “Mídia” e “Propriedades”;

  • Na coluna "Paleta", gaveta "Interface de Usuário", arrastar para a tela do smartphone um componente "Botão" [5] e, também da gaveta "Interface de Usuário", um componente "Notificador" [6] ;

  • Na coluna "Componentes", selecionar o "Botão1" [7] e renomeá-lo para "btOlaMundo" [8]. Na coluna "Propriedades", alterar o seu "Texto" digitando "Olá Mundo!" [9];

  • Alternar da página de “Designer” para a página de “Blocos” [10];

  • Na coluna "Blocos", em "Screen1", clicar no "btOlaMundo" [11] e arrastar o evento "quando btOlaMundo.Clique" para a coluna "Visualizador" [12];

  • Na coluna "Blocos", em "Screen1", clicar no "Notificador1" [13] e arrastar o procedimento "chamar Notificador1.MostrarAlerta" para a coluna "Visualizador", encaixando no bloco anterior [14];

  • Na coluna "Blocos", em "Internos", clicar em "Texto" [15], arrastar o bloco vazio "( )" para a coluna "Visualizador", encaixando no bloco anterior e digitar o texto "Olá Mundo!" [16];


Seu primeiro aplicativo está pronto. Agora, siga os passos abaixo para testá-lo no seu smartphone Android.


  • No smartphone, abrir o aplicativo "Google Play" para acessar a loja de Apps, pesquisar e instalar o aplicativo "MIT AI2 Companion" [17];







  • Voltar ao App Inventor, clicar no menu “Conectar” [18] e em "Assistente AI" [19]. Será gerado um QR Code [20] para acesso ao aplicativo no smartphone.






  • No smartphone, abrir o aplicativo “MIT AI2 Companion” recém instalado, pressionar o botão "scan QR code" [21] e apontar a câmera para a tela do App Inventor para ler o código gerado.


Aguarde um pouco... o aplicativo será executado no seu smartphone! Agora pressione o botão "Olá Mundo!" e veja o resultado.




Desafio

Para se familiarizar com o App Inventor, desenvolva um aplicativo que replica a interface de login do sistema acadêmico SIGAA existente no IFFar.

Procure utilizar diferentes componentes, explorando as gavetas de "Interface de Usuário" e "Organização" para deixar a interface do aplicativo idêntica a figura ao lado.


Clique abaixo para realizar o download da aula 1.

Vamos aprofundar os conhecimentos?

Para saber mais sobre pensamento computacional e App Inventor, explore o material abaixo que contém vídeos, sites e cursos sobre a temática abordada na aula 1.

Curso de extensão "Formação de Professores em Pensamento Computacional" (UFRN). Mais em: pensarn.imd.ufrn.br

Palestra "Pensamento Computacional na Educação Básica: exemplos práticos", Prof. Dr. Christian Brackmann (IFFar)

Evento "Pensamento Computacional como Habilidade do Futuro" (UFRPE)

Oficina "Pensamento Computacional na BNCC", Prof. Dr. Humberto José Bortolossi (UFF)

Curso "Introdução ao Pensamento Computacional" (MEC)

Curso "Aplicações do Pensamento Computacional para os Anos Iniciais do Ensino Fundamental" (MEC)

Minicurso "Introdução ao Pensamento Computacional com Foco em Matemática Básica" (UFPB)

Portal da Iniciativa "Computação na Escola" (UFSC/IFSC)

Curso de App Inventor, Prof. Cassio Onodera (IFSP)

Curso de App Inventor, projeto de extensão "Pensando em Códigos" (UNIFAL)

Curso "Algoritmos e Estruturas de Dados com MIT App Inventor", Prof. Dr. Sérgio de Oliveira (UFSJ)

Referências

AHO, Alfred. V. What is Computation: Computation and Computational Thinking. Ubiquity Symposium, 2011. Disponível em: https://ubiquity.acm.org/article.cfm?id=1922682. Acesso em: 10 de jun. de 2020.


BLIKSTEIN, Paulo. O pensamento computacional e a reinvenção do computador na educação. 2008. Disponível em: http://www.blikstein.com/paulo/documents/online/ol_pensamento_computacional.html. Acesso em: 10 de jun. de 2020.


BOSSE, Yorah; GEROSA, Marco Aurélio. Reprovações e Trancamentos nas Disciplinas de Introdução à Programação da Universidade de São Paulo: Um Estudo Preliminar. In: WORKSHOP SOBRE EDUCAÇÃO EM COMPUTAÇÃO (WEI), 23., 2015, Recife. Anais do XXIII Workshop sobre Educação em Computação. Porto Alegre: Sociedade Brasileira de Computação, jul. 2015, p. 426-435. ISSN 2595-6175. Disponível em: https://sol.sbc.org.br/index.php/wei/article/view/10259. Acesso em: 02 de jul. de 2020.


BRACKMANN, Christian P. Desenvolvimento do Pensamento Computacional através de Atividades Desplugadas na Educação Básica. 2017. 224 f. Tese (Doutorado em Informática na Educação) - Programa de Pós-Graduação em Informática na Educação, Centro de Estudos Interdisciplinares em Novas Tecnologias da Educação, Universidade Federal do Rio Grande do Sul. Porto Alegre, RS.


BRASIL. Ministério da Educação. Secretaria da Educação Básica. Base nacional comum curricular - BNCC. Brasília, DF, 2018. Disponível em: http://basenacionalcomum.mec.gov.br. Acesso em: 05 de jun. de 2020.


CIEB. Currículo de referência em tecnologia e computação. 2020. Disponível em: http://curriculo.cieb.net.br/curriculo. Acesso em: 25 de jun. de 2020.


CAMBRAIA, Adão C.; KEMP, Adriana T.; ZANON, Lenir B. Ciclo de estudos sobre currículo integrado como movimento transformador de concepções e práticas na educaçao. In: FERREIRA, L. S.; SIQUEIRA, S.; CALHEIROS, V. C.; MARASCHIN, M. S.; ANDRIGHETTO, M. J. (Org.) Pesquisas em Educação Profissional e Tecnológica no Rio Grande do Sul: desafios e perspectivas. Curitiba: CRV, 2021.


DA SILVA, Emanuel Oliveira; FALCÃO, Taciana Pontual. O Pensamento Computacional no Ensino Superior e seu Impacto na Aprendizagem de Programação. In: WORKSHOP SOBRE EDUCAÇÃO EM COMPUTAÇÃO (WEI), 28. , 2020, Cuiabá. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2020 . p. 171-175. ISSN 2595-6175. DOI: https://doi.org/10.5753/wei.2020.11152.


HOED, Rafael M.; LADEIRA, Marcelo. Análise de evasão nos Cursos Superiores de Computação: uma abordagem usando análise de sobrevivência e algoritmo Apriori. In: Conferência Ibero Americana em Computação Aplicada, dez. 2016, Lisboa, Portugal. p. 229-236.


KRZYZANOWSKI, Lucas et al. Ensino de programação: um estudo preliminar nos cursos de licenciatura em Computação no Brasil. Anais dos Workshops do Congresso Brasileiro de Informática na Educação, [S.l.], p. 21, nov. 2019. ISSN 2316-8889. Disponível em: https://www.br-ie.org/pub/index.php/wcbie/article/view/8943. Acesso em: 16 de jul. de 2020.


MIT. MIT App Inventor. 2020. Disponível em: http://appinventor.mit.edu. Acesso em: 25 de mar. de 2020.


PAPERT, Seymour. Mindstorms: children, computers, and powerful ideas. New York: Basic Books, 1980.


PAPERT, Seymour. LOGO: computadores e educação. Traduzido por: José Armando Valente, Beatriz Bitelman e Afira Vianna Ripper. São Paulo: Brasiliense, 1986.


SBC. Diretrizes de ensino de computação na educação básica. 2018. Disponível em: http://www.sbc.org.br/educacao/diretoria-de-educacao-basica. Acesso em: 06 de mai. de 2020.


UFSC. Computação na Escola. 2020. Disponível em: https://computacaonaescola.ufsc.br. Acesso em: 25 de mar. de 2020.


WING, Jeannette. Computational Thinking. Communications of the ACM. New York, v. 49, nº 3, p. 33-35, 2006.


WING, Jeannette. Computational thinking and thinking about computing. Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences, v. 366, n. 1881, p. 3717–3725, 2008.


WING, Jeannette. Computational Thinking Benefits Society. Social Issues in Computing, New York: Academic Press. 2014. Disponível em: http://socialissues.cs.toronto.edu/2014/01/computational-thinking. Acesso em: 25 de ago. de 2020.