DfE Consultation on Computer Science GCSE

DfE Consultation on Computer Science GCSE

“Do you support the opportunity for visual programming languages to be used in meeting the GCSE programming requirements, in addition to textual ones?”

This is one of the questions that the DfE are consulting on in their update to the subject content of GCSE Computer Science (Opened 24th May 2024, closes 21st July 2024).  What follows are my views on why this proposal could be a step backwards.

Visual programming languages come in many forms but traditionally use blocks that snap together, e.g. Scratch or Lego. (Edit: And as quite rightly pointed out by comments on LinkedIn, this also includes any graphical language such as that which makes use of flowcharts.)

While visual programming languages may facilitate teaching for non-specialists, enable AI marking, boost student engagement, and meet most GCSE programming requirements, their use could restrict progression from KS2/3 which would impact upon preparation for further study.

Meeting GCSE Requirements

All fundamental programming concepts can be taught with block programming.  However, at the GCSE level, block programming restricts the ability to teach key concepts such as key-based data structures and SQL (structured query language for use with databases). This makes block-based programming an oversimplification of text-based programming.

Unintended consequences

The potential unintended consequences are numerous:

Encouragement of Superficial Understanding: Text-based coding encourages students to deeply understand their code rather than experimenting with blocks on a trial-and-error basis.

Lack of Structured Coding Practices: Block-based programming often leads to code that is not well-structured into meaningful functions and does not encourage good practices such as commenting.

Editing Difficulties: Editing block-based code can be laborious, frustrating and time-consuming, as moving one block often requires rearranging others. Typing code can be significantly quicker, aiding progress.

Screen Space Limitations: Block-based programming requires a lot of screen space. With the increasing use of Chromebooks with limited screen space, students find it challenging to view and debug entire programs. As a teacher, it would also be time-consuming to scroll through blocks to support students effectively.

Transition Challenges: Learning a block-based programming language can impede the transition to text-based languages. Students may become dependent on blocks and find it frustrating to switch to text-based coding, potentially discouraging further learning.

Preparation for Advanced Studies: Students familiar only with block-based languages may struggle with object-oriented programming and abstract data types in advanced courses.

Creativity and Integration Limits: Block-based programming can limit creativity, especially when integrating code with other environments or code bases.

Detraction from Using IDEs: Whilst many block-based languages also support text-based programming, some do not.  Block-based programming can detract from the use of Integrated Development Environments (IDEs) that facilitate experimentation.

Limited Problem-Solving Scope: Most block-based projects involve making stories, which may not teach students to solve a wide range of problems. We need to consider the types of problems we want students to learn to solve.

Conclusion

The aim of developing skills for further study or employment in computing is undermined by relying on block-based programming languages. For students to be well-prepared for qualifications beyond GCSE, I think that they need experience typing syntactically correct code in environments that support exploration beyond what block-based alternatives offer.

Whatever your views are on this, be sure to respond to the consultation.

Comments are closed.