Estratégias para o ensino e a aprendizagem da iniciação à programação no ensino superior

  1. Quitério Figueiredo, José Alberto
Supervised by:
  1. Francisco José García Peñalvo Director

Defence university: Universidad de Salamanca

Defense date: 09 July 2024

Committee:
  1. Fernando Joaquim Lopes Moreira Chair
  2. Alicia García Holgado Secretary
  3. José Alexandre de Carvalho Gonçalves Committee member
Department: Informática y Automática
Universidad: University of Salamanca

Type: Thesis

GREDOS. Repositorio Institucional de la Universidad de Salamanca: lock_openOpen access Externo

Abstract

Learning to program allows you to acquire technical skills for software development. But also, the development of cognitive skills such as problem solving, logical reasoning, creativity, and critical thinking. These skills are highly valued and seen as fundamental for anyone facing the job market today and in the future. Technology has a strong impact on society and by teaching programming we enable students to better understand technology, to be responsible, more informed, and aware users. However, teaching and learning of programming is a complex task. Difficulties in teaching and learning programming have been a recurring theme throughout the ages. Many students face difficulties in the initial stages of learning programming. Teaching and learning programming requires a lot of work, dedication and commitment from everyone involved in this process. This doctoral thesis faces the challenge of improving the teaching and learning process of beginning programming, in a very specific context, in the introduction to programming curricular unit of the computer science course at the Instituto Polit ´ecnico da Guarda. Our group of students has very particular characteristics. Most of the students on our course have low levels of motivation and poor general knowledge. A large percentage of students do not acquire basic programming skills. This problem is extremely important, as poor programming skills will always be a major obstacle to the pursuit of studies in computer science course. With the main objective of minimizing this problem, we investigated, experimented, and implemented a set of activities and teaching methodologies that allowed us to improve basic programming skills. To achieve this goal, and given the characteristics of our study group, we used the scientific research methodology, with the development of an artifact, called Design Science Reasearch Methodology. This research has resulted in a strategy for teaching and learning initial programming that has significantly improved our students’ skills. The computational thinking activities used as an introduction and a set of multiple-choice activities and parson problems, with immediate feedback, put into practice for the initial concepts of learning programming, clearly contributed to this improvement. But also, the large number of coding exercises, also with immediate feedback, available for students to practice and consolidate the different learning concepts of initial programming. In this strategy, we have included a predictive model of student failure, based on a neural network, with the aim of detecting the student’s difficulties early on and acting quickly to help them. The entire strategy involved in the teaching and learning process in the initial programming would not be possible without the help of a technological management tool. In this work, we present the development of a technological tool to aid the teaching and learning process. The results obtained in the evaluation of the Introduction to Programming course, depending on the strategy and tool adopted, show that we have significantly improved our teaching and learning process. This indicates that we are on the right track and that the efforts made to ensure that a greater number of students acquire basic programming skills have been achieved. Our work has a very particular origin and characteristics, but we are convinced that the measures suggested will contribute to significant improvements in any system for teaching and learning initial programming. We conclude this work with an approach to what could be the use and impact of intelligent systems, such as ChatGPT, in teaching and learning initial programming.