Threshold concepts and programming in school
Threshold Concepts in Computer Programming
Students can struggle to overcome conceptual difficulties in computer programming and often get stuck and frustrated with this discipline. Often students of programming have a superficial understanding and can find abstract representations of knowledge difficult. On the other hand, experts have profound structural and organisation levels of their knowledge and directly understand the critical characteristics or aspects of a concept or a problematic situation. On the journey from novice to expert, teachers can provide valuable assistance: they can help their students surpass their difficulties by directing their teaching more on the difficult parts of the curriculum and can highlight ways to overcome the conceptual obstacles of programming. Thus, the research problem that this study addresses focuses on three different levels of expertise: students, teachers and expert practitioners — and their experiences regarding threshold concepts in computer programming. Threshold concepts refer to places in the curriculum that might be used to organise and focus the education process; they are concepts whose understanding is necessary for mastering a discipline, but are also places in the curriculum where students get stuck and are unable to make progress.
The specific aim of this project is to identify threshold concepts in the broad area of functions and procedural abstraction at key stage 4 and 5 computing curriculum and to explore how students can be helped with understanding and mastering these concepts.
Why is this important?
Computer programming is a complex cognitive ability that requires a variety of skills. Literature suggests that the conceptual understanding of this subject contributes to its difficulty and that threshold concepts, as a source of troublesome knowledge, have a significant role in this. Thus, identifying threshold concepts and developing effective learning and teaching methods for programming are increasingly important. This research project will contribute to the teaching framework of computer programming at schools. The research findings would lead to greater understanding of the difficulties students are facing in computer programming. Possible suggestions would be made on how teachers might rethink and potentially restructure the curriculum more effectively to reduce students’ conceptual difficulties and provide a more dependable, comprehensible and positive learning environment.