[en] Learning involves creating mental representations analogous to what is learned, known as mental models. These models allow us to make predictions and decisions. The closer they are to reality, the better our predictions and decisions will be, indicating that effective learning consists of refining these models. Programming, on the other hand, requires carrying out the reverse process: from the desired effects, create a program that produces them. This process, more complex than merely refining a mental model, demands multiple accurate models and associative skills to navigate between them in both directions. Teachers instruct on conceptual models, which are clearly defined abstractions. Acquiring these models involves generalizing and extracting patterns from numerous specific examples. Consequently, initial mental models often link to circumstantial details of the examples, both to the noise and the signal. Although these models may be erroneous, they can work reasonably well in some specific situations, be sufficient to pass, and persist over time. This could explain future difficulties in programming. This study seeks to identify incorrect mental models in programming. We propose an iterative method that starts from hypotheses based on teaching experience and reaches empirical evidence. This approach also allows discovering new models and refining our knowledge. We present its application with fourth-year students and first-year concepts. Our results highlight potential erroneous models and suggest other unforeseen ones that require further investigation.

[es] El aprendizaje implica la creación de representaciones mentales análogas a lo aprendido, conocidas como modelos mentales. Estos modelos nos permiten realizar predicciones y tomar decisiones. Cuanto más cercanos sean a la realidad, mejores serán nuestras predicciones y decisiones, lo que indica que refinar estos modelos puede representar un aprendizaje efectivo. La programación, además, requiere realizar el proceso inverso: a partir de los efectos deseados, crear un programa que los produzca. Este proceso, más complejo que simplemente refinar un modelo mental, demanda múltiples modelos precisos y habilidad asociativa para navegar entre ellos en ambas direcciones. Los profesores enseñamos sobre modelos conceptuales, que son abstracciones claramente definidas. Adquirir estos modelos implica generalizar y extraer patrones de numerosos ejemplos específicos. A menudo, los modelos mentales iniciales se vinculan a detalles circunstanciales de los ejemplos, tanto al ruido como a la señal. Aunque estos modelos sean erróneos, pueden funcionar razonablemente bien en algunas situaciones específicas, ser suficientes para aprobar y persistir en el tiempo. Esto podría explicar dificultades futuras en la programación. Este estudio busca identificar modelos mentales incorrectos en la programación. Proponemos un método iterativo que parte de hipótesis basadas en la experiencia docente y llega hasta la evidencia empírica. Este enfoque también permite descubrir nuevos modelos y refinar nuestro conocimiento. Presentamos su aplicación con estudiantes de cuarto curso y conceptos de primer curso. Nuestros resultados destacan modelos erróneos potenciales y sugieren otros no previstos que requieren más investigación.