Threshold Concepts in Computer Programming

maria One of our PhD students, Maria Kallia, is working in the area of threshold concepts in programming. Here she discusses how her research is going and why this is an important topic:

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.

 What I am doing now

At this stage, the project is in its second phase. We are currently conducting interviews with computing teachers at key stage 4 and/or key stage 5. The interviews are based on the concepts that computing teachers identified as potential threshold concepts in the first phase of the study. These concepts are the following:

  • Arguments
  • Parameters
  • Parameter Passing
  • Calling a function
  • Control flow
  • Procedural decomposition and design
  • Return values
  • Variable
  • Variable scope
  • Recursion
  • Abstraction

The interviews focus on teachers’ perspectives about the difficulties that students’ encounter with these concepts and the conceptual changes or transformation that the students’ experience as a result of grasping these concepts. The interview lasts approximately 30-40 minutes and can be conducted via phone, Skype or in person.

If you would like to be interviewed for this project, please contact Maria (maria.kallia@kcl.ac.uk ), or Sue (sue.sentance@kcl.ac.uk )

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. Then, 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.