Pointers on Paper: Teaching and learning pointers in the c programming language based on colored envelopes

  • Gustavo Kira UDESC
  • Luiz Ernesto Merkle UTFPR

Abstract


This paper presents a teaching and learning dynamic with colored envelopes as a way to work with pointers in the C language. Pointer mastery is an important step to understand C at same time it is one of it’s most difficult topics. This activity was planned assuming that learning pointers, without a concrete base, privileges those who already have a good algebra understanding or comprehends well the computer’s abstract architecture model. Using envelopes enables a concrete analogy and offers an intermediate step for those who still developing their abilities to handle symbolic manipulation or still learning how to deal with the abstract machine model.

References

Adcock, B., Bucci, P., Heym, W. D., Hollingsworth, J. E., Long, T., e Weide, B. W. (2007). Which pointer errors do students make? In Proceedings of the 38th SIGCSE Technical Symposium on Computer Science Education, SIGCSE ’07, pages 9–13, New York, NY, USA. ACM.

Anido, R. (2015). Saci - ainda outro ambiente para o ensino de programação. In Anais do 35o Congresso da Sociedade Brasileira da Computação (CSBC’15), 23o Workshop sobre Educação em Computação (WEI’15).

Aureliano, V. C. O., Tedesco, P. C. d. A. R., e Giraffa, L. M. M. (2016). Desafios e oportunidades aos processos de ensino e de aprendizagem de programação para iniciantes. In Anais do 36o Congresso da Sociedade Brasileira da Computação (CSBC’16), 24o Workshop sobre Educação em Computação (WEI’16).

Barbosa, W. A., Nunes, I. d. F., Inocêncio, A. C. G., Oliveira, T. B. d., e Júnior, P. A. P. (2015). Deg4trees:um jogo educacional digital de apoio ao ensino de estrutura de dados. In Anais do 35o Congresso da Sociedade Brasileira da Computação (CSBC’15), 23o Workshop sobre Educação em Computação (WEI’15).

Bucci, P., Long, T. J., e Weide, B. W. (2001). Do we really teach abstraction? SIGCSE Bull., 33(1):26–30.

Craig, M. e Petersen, A. (2016). Student difficulties with pointer concepts in c. In Proceedings of the Australasian Computer Science Week Multiconference, ACSW ’16, pages 8:1–8:10, New York, NY, USA. ACM.

Da Silva, L. M. P., Bonfim, B. C., Silva, R. C., e da Silva, J. B. (2016). Poogame: Um jogo sériopar ao ensino de programação orientada a objetos. In Anais do 36o Congresso da Sociedade Brasileira da Computação (CSBC’16), 24o Workshop sobre Educação em Computação (WEI’16).

França, R. S. d. e Tedesco, P. (2015). Explorando o pensamento computacional no ensino médio: do design à avaliação de jogos digitais. In Anais do 35o Congresso da Sociedade Brasileira da Computação (CSBC’15), 23o Workshop sobre Educação em Computação (WEI’15).

Holanda, A. B. d. (2010). Mini Dicionario Aurelio Lingua Portuguesa. Positivo livros.

Lefebvre, H. (1991). Lógica formal, lógica dialéctica. Civilização Brasileira, Rio de Janeiro.

Lippert, E. (2018). References are not addresses. disponível em [link]. Último acesso em 31 de mar. de 2018.

Machado, N. J. (2011). Matemática e língua materna. Cortez: Autores Associados, São Paulo.

Meksenas, P. (1992). As noções de concreto e abstrato: sua relação com as práticas de ensino. Revista da Faculdade de Educação, 18(1):92–98.

Miliszewska, I. e Tan, G. (2007). Befriending computer programming: A proposed approach to teaching introductory programming. In Issues in Informing Science and Information Technology.

Milne, I. e Rowe, G. (2002). Difficulties in learning and teaching programming—views of students and tutors. Education and Information Technologies, 7(1):55–66.

Nunes, M. M., Costa, E. B. B., Feitosa, F. A., e Brancher, J. D. (2015). Análise das ementas de estruturas de dados das universidades brasileiras. In Anais do 35o Congresso da Sociedade Brasileira da Computação (CSBC’15), 23o Workshop sobre Educação em Computação (WEI’15).

Paparidis, O. S. e Franco, M. E. (2016). Plataforma arduino como apoio ao ensino de programação no curso de técnico em informática integrado. In Anais do 36o Congresso da Sociedade Brasileira da Computação (CSBC’16), 24o Workshop sobre Educação em Computação (WEI’16).

Raeder, M., Py, M., Rigo, S., e Pinheiro, J. (2016). L2pm: relato de uma experiência sobre o ensino integrado de lógica, programação e matemática para computação. In Anais do 36o Congresso da Sociedade Brasileira da Computação (CSBC’16), 24o Workshop sobre Educação em Computação (WEI’16).

Raiol, A. A. C., Sarger, J., Souza, A., Sivaldo, S., e Fábio, B. (2015). Resgatando a linguagem de programação logo: Uma experiência com calouros no ensino superior. In Anais do 35o Congresso da Sociedade Brasileira da Computação (CSBC’15), 23o Workshop sobre Educação em Computação (WEI’15).

Silva, T. T. d. (2000). A produção social da identidade e da diferença. In da Silva, T. T., editor, Identidade e diferença: a perspectiva dos estudos culturais, chapter 2, pages 73–102. Editora Vozes, Rio de Janeiro.

Simon, B., Clancy, M., McCartney, R., Morrison, B., Richards, B., e Sanders, K. (2010). Making sense of data structures exams. In Proceedings of the Sixth International Workshop on Computing Education Research, ICER ’10, pages 97–106, New York, NY, USA. ACM.

Wing, J. M. (2006). Computational thinking. Commun. ACM, 49(3):33–35.
Published
2018-07-26
KIRA, Gustavo; MERKLE, Luiz Ernesto. Pointers on Paper: Teaching and learning pointers in the c programming language based on colored envelopes. In: WORKSHOP ON COMPUTING EDUCATION (WEI), 26. , 2018, Natal. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2018 . p. 502-511. ISSN 2595-6175. DOI: https://doi.org/10.5753/wei.2018.3529.