Publications
Permanent URI for this collectionhttps://repositorio.grial.eu/handle/123456789/34
Browse
4 results
Search Results
Item Teaching and Learning Tools for Introductory Programming in University Courses(IEEE, 2021-09-23) Figueiredo, J.; García-Peñalvo, F. J.Difficulties in teaching and learning introductory programming have been studied over the years. The students' difficulties lead to failure, lack of motivation, and abandonment of courses. The problem is more significant in computer courses, where learning programming is essential. Programming is difficult and requires a lot of work from teachers and students. Programming is a process of transforming a mental plan into a computer program. The main goal of teaching programming is for students to develop their skills to create computer programs that solve real problems. There are several factors that can be at the origin of the problem, such as the abstract concepts that programming implies; the skills needed to solve problems; the mental skills needed to decompose problems; many of the students never had the opportunity to practice computational thinking or programming; students must know the syntax, semantics, and structure of a new unnatural language in a short period of time. In this work, we present a set of strategies, included in an application, with the objective of helping teachers and students. Early identification of potential problems and prompt response is critical to preventing student failure and reducing dropout rates. This work also describes a predictive machine learning (neural network) model of student failure based on the student profile, which is built over the course of programming lessons by continuously monitoring and evaluating student activities.Item Help To Programming: uma Ferramenta para o Ensino e Aprendizagem da Programação(Grupo GRIAL, 2021-02-11) Figueiredo, J.; García-Peñalvo, F. J.Existe a ideia generalizada de que o ensino e aprendizagem da pro-gramação é difícil. Desde que surgiram as linguagens de programação que este tema é estudado e investigado por todos os que se dedicam a esta área das ciên-cias da computação. Os conceitos básicos da programação fazem parte de mui-tos cursos de ensino superior nas mais diversas áreas do conhecimento. As difi-culdades no ensino e aprendizagem da programação refletem-se não só nas altas taxas de reprovação, mas também, e talvez a mais preocupante, nas altas per-centagens de abandono, na falta de motivação e de interesse dos alunos. Neste trabalho apresentamos algumas das razões nas dificuldades do ensino e na aprendizagem da programação. Descrevemos um conjunto de estratégias de en-sino e aprendizagem de introdução à programação de modo a reduzir este pro-blema. Este conjunto de estratégias é auxiliado por uma aplicação HTPro-gramming que nos permitirá acompanhar em pormenor o desenvolvimento de cada aluno, nas diferentes fases do processo de aprendizagem. À medida que o aluno constrói o seu perfil de aprendizagem será possível aplicar um modelo preditivo de sucesso ou insucesso. É possível ao aluno melhorar aspetos especí-ficos do seu perfil de aprendizagem e ao professor ter um conhecimento preciso do nível de conhecimento de cada aluno, e intervir rapidamente se necessário. Os resultados obtidos são encorajadores. Os alunos estão mais interessados, motivados e envolvidos no processo de ensino e aprendizagem e sentem-se mais confiantes com a possibilidade de aprender e praticar ao seu próprio ritmo, sem o receio de errar.Item Increasing student motivation in computer programming with gamification(IEEE, 2020-04-27) Figueiredo, J.; García-Peñalvo, F. J.Games have important motivational power. They take advantage of a set of tools to encourage people to engage with them just for the joy of playing and the possibility to win. While gamification is gaining ground in a lot of areas in our society, its application in education is still an emerging trend. In recent years, gamification has attracted the attention of researchers from different areas such as teaching and learning computer programming. Ever since the first programming languages emerged, the problems inherent to programming teaching and learning have been studied and investigated. The theme is very serious, not only for the important concepts underlying computer science courses but also for reducing the lack of motivation, failure, and abandonment that result from student frustration. In most of these studies and research one factor prevails, lack of student motivation or how to motivate students to learn programming. One way to combat this problem is to use gamification. Using game design elements in non-game contexts is one of the good ways to motivate and encourage students to learn programming. To assess how gamification impacted the learning experience, we compared data from one gamified and non-gamified year. In general, the results show significant improvements in terms of attendance to class, participation, and proactivity. They also suggest that our approach can reduce the high rate of failure grade among students. In conclusion, this case study, we show how the use of concepts related to gamification can improve motivation, passion, beauty, joy, awe, e naturally the succeed in programming.Item Predicting Student Failure in an Introductory Programming Course with Multiple Back-Propagation(ACM, 2019-10-16) Figueiredo, J.; Lopes, N.; García-Peñalvo, F. J.One of the most challenging tasks in computer science and similar courses consists of both teaching and learning computer programming. Usually this requires a great deal of work, dedication, and motivation from both teachers and students. Accordingly, ever since the first programming languages emerged, the problems inherent to programming teaching and learning have been studied and investigated. The theme is very serious, not only for the important concepts underlying computer science courses but also for reducing the lack of motivation, failure, and abandonment that result from students frustration. Therefore, early identification of potential problems and immediate response is a fundamental aspect to avoid student’s failure and reduce dropout rates. In this paper, we propose a machine-learning (neural network) predictive model of student failure based on the student profile, which is built throughout programming classes by continuously monitoring and evaluating student activities. The resulting model allows teachers to early identify students that are more likely to fail, allowing them to devote more time to those students and try novel strategies to improve their programming skills.