Linguagens visuais para o ensino de programação: uma revisão da literatura com foco em paradigmas de programação

Resumo


As primeiras experiências com programação determinam a atitude desenvolvida pelos aprendizes com relação ao assunto. Frustrações e dificuldades levam à desilusão com a área de Computação para estudantes do Ensino Básico e à retenção de alunos nos primeiros semestres do ensino superior. Uma das dificuldades enfrentadas é o foco em aspectos operacionais da solução de problemas, gerando excessivo esforço na correção de erros de sintaxe e menor atenção no problema a resolver. Linguagens visuais são atrativas devido ao seu aspecto lúdico e aos ambientes de desenvolvimento que facilitam a composição de operadores, estruturas e código. Este trabalho investiga, por meio do método de revisão sistemática da literatura, as linguagens visuais usadas para ensino de programação, com foco no paradigma de programação subjacente, que determina a forma de pensar e implementar a solução de um problema. A revisão mostrou a dominância do paradigma imperativo, decisão de projeto de linguagem que tem impacto tanto na forma como os programas são pensados e construídos quanto na atitude desenvolvida pelos estudantes a respeito da programação.

Palavras-chave: Educação em Computação, Paradigmas de programação, Linguagens de programação

Referências

Friday Joseph Agbo, Solomon Sunday Oyelere, Jarkko Suhonen, and Sunday Adewumi. 2019. A Systematic Review of Computational Thinking Approach for Programming Education in Higher Education Institutions. In Koli Calling 19: Proceedings of the 19th Koli Calling International Conference on Computing Education Research. 12 (1-10).

Ulisses Almeida. 2018. Learn Functional Programming with Elixir - New Foundations for a New World. The Pragmatic Bookshelf. 198 pages.

Gil Andrade, Diego Hoss, Ana Barbosa, and Lana Gomes. 2019. Metodologia Didático Simbólica como Alternativa para o Ensino de Programação de Computadores a Alunos Surdos. In Anais do XXVII Workshop sobre Educação em Computação (Belém). SBC, Porto Alegre, RS, Brasil, 473-482.

David Bau and David Anthony Bau. 2014. A Preview of Pencil Code: A Tool for Developing Mastery of Programming (PROMOTO 14). Association for Computing Machinery, New York, NY, USA, 21-24.

Tim Bell, Ian H. Witten, and Mike Fellows. 2015. Computer Science Unplugged (3 ed.). Google Inc. 243 pages.

M.U. Bers and M. Resnick. 2015. The Official ScratchJr Book: Help Your Kids Learn to Code. No Starch Press. https://books.google.com.br/books?id=Cw3SCgAAQBAJ

R. P. Borges, P. R. F. Oliveira, R. G. da R. Lima, and R. W. de Lima. 2018. A Systematic Review of Literature on Methodologies, Practices, and Tools for Programming Teaching. In IEEE Latin America Transactions.

Karen Brennan and Mitchel Resnick. 2012. New frameworks for studying and assessing the development of computational thinking. In In AERA 2012.

S. Burris and H.P. Sankappanavar. 1981. A Course in Universal Algebra. Springer, Berlin, Heidelberg. 276 pages.

Lucía Gabriela Caguana Anzoategui, María Isabel Alves Rodrigues Pereira, and Monica del Carmen Solís Jarrín. 2017. Cubetto for preschoolers: Computer programming code to code. In 2017 International Symposium on Computers in Education (SIIE). 1-5.

Marleny Carbajal and M. Baranauskas. 2018. Programação tangível e construção de significado: criação de símbolos para o ambiente TaPrEC junto com professoras de ensino fundamental. In Anais do XXIV Workshop de Informática na Escola (Fortaleza, CE). SBC, Porto Alegre, RS, Brasil, 323-332.

José Sérgio Carvalho. 2001. O discurso pedagógico das diretrizes curriculares nacionais: competência crítica e interdisciplinaridade. Cadernos de Pesquisa 12, 155-165.

Matthew J. Conway. 1997. Alice: Easy-to-Learn 3D Scripting for Novices. Ph.D. Dissertation. Faculty of the School of Engineering and Applied Science at the University of Virginia.

Igor Dantas, Jose Neto, Lucas Silva, Lourival Neto, Douglas Lima, Pasqueline Scaico, and Thaíse Costa. 2019. Ensino de lógica de programação no ensino fundamental utilizando o jogo Robotizen: um relato de experiência. In Anais do XXVII Workshop sobre Educação em Computação (Belém). SBC, Porto Alegre, RS, Brasil, 51-60.

DEED/INEP. 2020. Notas Estatísticas do Censo da Educação Superior 2019. Technical Report. Brasília, DF. 32 pages.

Xiaozhou Deng, Danli Wang, Qiao Jin, and Fang Sun. 2019. ARCat: A Tangible Programming Tool for DFS Algorithm Teaching (IDC 19). Association for Computing Machinery, New York, NY, USA, 533-537.

Diego Dermeval and Jorge A. P. M. Coelhoand Ig I. Bittencourt. 2020. Mapeamento Sistemático e Revisão Sistemática da Literatura em Informática na Educação. Vol. 2. CEIE/SBC, Chapter 3, 1-26.

James Devine, Joe Finney, Peli de Halleux, Michał Moskal, Thomas Ball, and Steve Hodges. 2018. MakeCode and CODAL: Intuitive and Efficient Embedded Systems Programming for Education. SIGPLAN Not. 53, 6, 19-30.

J. A. Fabro, E. Teixeira Paula, A. F. G. P. Dias, and L. E. Skora. 2019. Programming Teaching Using Flowcharts in a Simulated Environment Focused on Introducing Practical OBR. In 2019 Latin American Robotics Symposium (LARS), 2019 Brazilian Symposium on Robotics (SBR) and 2019 Workshop on Robotics in Education (WRE).

Martin Fowler. 2010. Domain Specific Languages. Addison-Wesley Professional. 640 pages.

Ilenia Fronza, Nabil El Ioini, and Luis Corral. 2017. Teaching Computational Thinking Using Agile Software Engineering Methods: A Framework for Middle Schools. ACM Trans. Comput. Educ. 17, 4, 28.

Anabela Gomes and Antonio José Mendes. 2007. Learning to program - difficulties and solutions (International Conference on Engineering Education - ICEE 2007).

Lindsey Ann Gouws, Karen Bradshaw, and Peter Wentworth. 2013. Computational Thinking in Educational Activities: An Evaluation of the Educational Game Light-Bot (ITiCSE 13). Association for Computing Machinery, New York, NY, USA, 10-15.

José Manuel Ruiz Gutiérrez. 2012. S4A (Scratch) + Arduino: Utilización de S4A (Scratch) más la tarjeta Arduino en un ambiente de programación gráfica orientado a la educación. Retrieved October 31, 2021 from http://math.tntech.edu/rafal/cliff11/index.html

Keisuke Hattori and Tatsunori Hirai. 2019. An intuitive and educational programming tool with tangible blocks and AR. In SIGGRAPH 19: ACM SIGGRAPH 2019 Posters.

Michael S. Horn and Robert J. K. Jacob. 2007. Designing tangible programming languages for classroom use. In Proceedings of 1st international conference on Tangible and embedded interaction.

Qiao Jin, Danli Wang, Xiaozhou Deng, Nan Zheng, and Steve Chiu. 2018. ARmaze: a tangible programming tool for children based on AR technology. In IDC 18: Proceedings of the 17th ACM Conference on Interaction Design and Children.

Sonya E. Keene. 1989. Object-Oriented Programming in Common Lisp. Addison-Wesley. http://cl-cookbook.sourceforge.net/clos-tutorial/

Brian W. Kernighan and Dennis Ritchie. 1988. The C Programming Language (2 ed.). Prentice Hall. 274 pages.

Cátia Mesquita Brasil Khouri, Gidevaldo Novais dos Santos, and Maria Silva Santos Barbosa. 2020. Mapeamento Sistemático em Metodologias de Ensinoaprendizagem de Programação. Revista de Ciência da Computação 2, 1, 13-27.

Barbara Kitchenham. 2004. Procedures for Performing Systematic Reviews. Joint Technical Report TR/SE-0401. Keele University, Keele.

Wanda M. Kunkle and Robert B. Allen. 2016. The Impact of Different Teaching Approaches and Languages on Student Learning of Introductory Programming Concepts. ACM Transactions on Computing Education 16, 3(1-26). Issue 1.

LEGO. 2016. LEGO Education WeDo 2.0 Computational Thinking Teacher's Guide. Retrieved October 31, 2021 from [link].

LEGO. 2017. LEGO MINDSTORMS Education EV3 Coding Activities Second Edition. Retrieved October 31, 2021 from [link].

Jiangjiang Liu, Cheng-Hsien Lin, Joshua Wilson, David Hemmenway, Ethan Hasson, Zebulun Barnett, and Yingbo Xu. 2014. Making Games a Snap with Stencyl: A Summer Computing Workshop for K-12 Teachers (SIGCSE 14). Association for Computing Machinery, New York, NY, USA. EduComp’22, Abril 25-29, 2022, Feira de Santana, Bahia, Brasil (On-line)

Andrew Luxton-Reilly, Simon, Ibrahim Albluwi, Brett A. Becker, Michail Giannakos, Amruth N. Kumar, Linda Ott, James Paterson, Michael James Scott, Judy Sheard, and Claudia Szabo. Introductory Programming: A Systematic Literature Review.

Alexandros Merkouris, Konstantinos Chorianopoulos, and Achilles Kameas. 2017. Teaching Programming in Secondary Education Through Embodied Computing Platforms: Robotics and Wearables. ACM Trans. Comput. Educ. 17, 2, 22.

Amon Millner and Edward Baafi. 2011. Modkit: Blending and extending approachable platforms for creating computer programs and interactive objects. 250-253. DOI 10.1145/1999030.1999074

Manasses Neto, Camila Santos, Edmar Souza, and Marcos Fonseca. 2018. Robótica educacional uma ferramenta para ensino de lógica de programação no ensino fundamental. In Anais do XXIV Workshop de Informática na Escola (Fortaleza, CE). SBC, Porto Alegre, RS, Brasil, 315-322.

NI. What is LabVIEW? Retrieved October 31, 2021 from https://www.ni.com/pt-br/shop/labview.html

Daltro José Nunes. 2019. Educação Superior em Computação - Estatísticas 2019. Technical Report. Porto Alegre, RS. 67 pages.

Martin Odersky, Lex Spoon, and Bill Venners. 2008. Programming in Scala (4th ed.). Artima. 776 pages.

Erik Pasternak, Rachel Fenichel, and Andrew N. Marshall. 2017. Tips for creating a block language with blockly. In 2017 IEEE Blocks and Beyond Workshop (B&B).

Arnold Pears, Stephen Seidman, Lauri Malmi, Linda Mannila, Elizabeth Adams, Jens Bennedsen, Marie Devlin, and James Paterson. 2007. A Survey of Literature on the Teaching of Introductory Programming. ACM SIGCSE Bulletin 39, 204-223. Issue 4.

Diego Pereira, Rodrigo Seabra, and Adler Diniz de Souza. 2021. Ferramentas de Apoio ao Ensino Introdutório de Programação: um Mapeamento Sistemático. RENOTE 18, 491-500.

Ana M Pinto-Llorente, Sonia Casillas Martín, Marcos Cabezas González, and Francisco José García-Penalvo. 2016. Developing computational thinking via the visual programming tool: lego education WeDo. In TEEM 16: Proceedings of the Fourth International Conference on Technological Ecosystems for Enhancing Multiculturality.

Roger S. Pressman. 2016. Engenharia de Software: Uma abordagem profissional (8 ed.). Bookman, Porto Alegre. 968 pages.

Thomas W. Price, Neil C.C. Brown, Dragan Lipovac, Tiffany Barnes, and Michael Kölling. 2016. Evaluation of a Frame-Based Programming Editor. In Proceedings of the 2016 ACM Conference on International Computing Education Research (Melbourne, VIC, Australia) (ICER 16). Association for Computing Machinery, New York, NY, USA, 33-42.

Rubens Queiroz and Fábio Sampaio. 2016. DuinoBlocks for Kids: um ambiente de programação em blocos para o ensino de conceitos básicos de programação a crianças do Ensino Fundamental I por meio da Robótica Educacional. In Anais do XXIV Workshop sobre Educação em Computação (Porto Alegre). SBC, Porto Alegre, RS, Brasil, 91-100.

Mitchel Resnick, John Harold Maloney, Andrés Monroy-Hernández, Natale Rusk, Evelyn Eastmond, Karen A Brennan, Amon Millner, Eric Rosenbaum, Jay Saul Silver, Brian S Silverman, and Yasmin Bettina Kafai. 2009. Scratch: programming for all. In Communications of the ACM. https://doi.org/10.1145/1592761.1592779

Bernat Romagosa i Carrasquer. 2019. The Snap Programming System. Springer International Publishing, Cham, 1-10.

Peter Van Roy, Joe Armstrong, Matthew Flatt, and Boris Magnusson. 2003. The Role of Language Paradigms in Teaching Programming. In SIGCSE 03: Proceedings of the 34th SIGCSE technical symposium on Computer science education. Reno, Nevada.

S. P. Sarkar, B. Sarker, and S. K. A. Hossain. 2016. Cross platform interactive programming learning environment for kids with edutainment and gamification. In 2016 19th International Conference on Computer and Information Technology (ICCIT).

Herbert Schildt. 2021. Java: The Complete Reference (12 ed.). McGraw Hill. 1280 pages.

Robert W. Sebesta. 2018. Conceitos de linguagens de programação (11 ed.). Bookman, Porto Alegre. 765 pages.

Plácido Segundo, Mysael Carvalho, Osias Santos, Bruno Serejo, Joao Diniz, and Neilson Ribeiro. 2019. PENSAMENTO COMPUTACIONAL: Uma estratégia de ensino e promoção da cidadania na educação básica indígena utilizando robótica livre e lógica de programação Scratch. In Anais do XXV Workshop de Informática na Escola (Brasília). SBC, Porto Alegre, RS, Brasil, 1374-1378.

Rafael J. Segura, Francisco J. del Pino, Carlos J. Ogáyar, and Antonio J. Rueda. 2020. VR-OCKS: A virtual reality game for learning the basic concepts of programming. Computer Applications in Engineering Education 28, 1, 31-41.

Mazyar Seraj, Serge Autexier, and Jan Janssen. 2018. BEESM, a block-based educational programming tool for end users. In NordiCHI 18: Proceedings of the 10th Nordic Conference on Human-Computer Interaction.

Ravi Sethi. 1996. Programming languages: concepts and constructs (2 ed.). Addison-Wesley Publishing, Reading, MA. 640 pages.

Judy Sheard, S. Simon, Margaret Hamilton, and Jan Lönnberg. 2009. Analysis of Research into the Teaching and Learning of Programming. In ICER 09: Proceedings of the fifth international workshop on Computing education research workshop.

Marina Silva da Silva. 2021. Proposta de uma linguagem composicional visual para ensino de programação. Trabalho de Conclusão de Curso (Graduação em Engenharia de Computação), Universidade Federal do Pampa.

Marina Silva Silva and Ana Paula Lüdtke Ferreira. 2021. Sintaxe baseada em gramáticas de grafos para uma linguagem funcional visual voltada ao aprendizado de programação. In Anais do VI Workshop-Escola de Informática Teórica. 120-127. https://eventos.unipampa.edu.br/weit2021/anais/

Elliot Soloway. 1993. Should we Teach Students to Program? Commun. ACM 36, 10.

Lucas Sousa, Eder Farias, and Windson Carvalho. 2020. Programação em Blocos Aplicada no Ensino do Pensamento Computacional: Um Mapeamento Sistemático. In Anais do XXXI Simpósio Brasileiro de Informática na Educação (Online). SBC, Porto Alegre, RS, Brasil, 1513-1522.

Daniella Souza, Maria Goulart, Graziela Guarda, and Ione Goulart. 2018. Lightbot Logicamente: um game lúdico amparado pelo Pensamento Computacional e a Matemática. In Anais do XXIV Workshop de Informática na Escola (Fortaleza, CE). SBC, Porto Alegre, RS, Brasil, 61-69.

J. Su and T. Lin. 2018. Building a Simulated Blockly-Arduino-Based Programming Learning Tool: A Preliminary Study. In 2018 7th International Congress on Advanced Applied Informatics (IIAI-AAI).

Luciano Teran, Fabiola Araújo, and Yomara Pires. 2019. ELIS: Uma ferramenta inclusiva para o ensino de lógica de programação aos surdos. In Anais do XXV Workshop de Informática na Escola (Brasília). SBC, Porto Alegre, RS, Brasil, 1024-1033.

Simon Thompson. 1999. Haskell: The Craft of Functional Programming (2 ed.). Addison-Wesley. 507 pages. https://www.haskell.org/

Bruno Toledo, Davi Silva, Karina Lemos, and Marcos Toledo. 2020. DESENVOLVIMENTO DE UM JOGO EDUCACIONAL PARA O ENSINO DE PROGRAMAÇÃO BÁSICA. DOI 10.22533/at.ed.33420051110

David S. Touretzky. 1990. COMMON LISP: A Gentle Introduction to Symbolic Computation. The Benjamin/Cummings Publishing Company, Inc., Redwood City. 587 pages. http://www.inf.ufsc.br/~aldo.vw/func/touretzky/touretzky.pdf

Sergio Trilles and Carlos Granell. 2018. El proyecto SUCRE4Kids: una iniciativa de hardware y software libre para la introducción a la programación. Novática 240, 2444-6629.

Jeffrey D. Ullman. 1998. Elements of ML Programming. Prentice Hall, Englewood Cliffs, New Jersey. 383 pages.

Adilson Vahldick, António Mendes, Maria Marcelino, and Paulo Farah. 2016. Pensamento Computacional Praticado com um Jogo Casual Sério no Ensino Superior. In Anais do XXIV Workshop sobre Educação em Computação (Porto Alegre). SBC, Porto Alegre, RS, Brasil, 308-317.

Maja Videnovik, Elena Vlahu-Gjorgievska, and Vladimir Trajkovik. To code or not to code: Introducing coding in primary schools. Computer Applications in Engineering Education. https://doi.org/10.1002/cae.22369

Y.Wang, Y. Zhang, A. Mao, J.Wang, and N. Li. 2020. The Research of Programming Teaching in Primary School on the Cultivation of Computational Thinking. In 2020 Ninth International Conference of Educational Innovation through Technology (EITT).

Takeshi Watanabe, Yuriko Nakayama, Yasunori Harada, and Yasushi Kuno. 2020. Analyzing Viscuit Programs Crafted by Kindergarten Children (ICER 20). Association for Computing Machinery, New York, NY, USA, 238-247.

Robert Stuart Weiss. 1995. Learning from Strangers: The Art and Method of Qualitative Interview Studies. Free Press. 256 pages.

Jeannette M. Wing. 2008. Computational thinking and thinking about computing. Philosophical Transactions of the Royal Society.

Jeannette M. Wing. 2014. Computational thinking benefits society. Social Issues in Computing. Academic Press.

Eben B. Witherspoon, Christian D. Schunn, Ross M. Higashi, and Robin Shoop. 2018. Attending to structural programming features predicts differences in learning and motivation. Journal of Computer Assisted Learning 34, 2, 115-128. https://onlinelibrary.wiley.com/doi/pdf/10.1111/jcal.12219

David Wolber. 2011. App Inventor and Real-World Motivation. In Proceedings of the 42nd ACM Technical Symposium on Computer Science Education (Dallas, TX, USA) (SIGCSE 11). Association for Computing Machinery, New York, NY, USA, 601-606.

Ebru Yilmaz Ince and Mustafa Koc. 2021. The consequences of robotics programming education on computational thinking skills: An intervention of the Young Engineer’s Workshop (YEW). Computer Applications in Engineering Education 29, 1, 191-208. arXiv: https://onlinelibrary.wiley.com/doi/pdf/10.1002/cae.22321

Weixin Zhang, Yaozhu Sun, and Bruno C. D. S. Oliveira. 2021. Compositional Programming. ACM Trans. Program. Lang. Syst. 43, 3, Article 9, 61
Publicado
24/04/2022
SILVA, Marina Silva da; FERREIRA, Ana Paula Lüdtke. Linguagens visuais para o ensino de programação: uma revisão da literatura com foco em paradigmas de programação. In: SIMPÓSIO BRASILEIRO DE EDUCAÇÃO EM COMPUTAÇÃO (EDUCOMP), 2. , 2022, Online. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2022 . p. 18-28. DOI: https://doi.org/10.5753/educomp.2022.19195.