Abstract:
Object-oriented programming (OOP) is a widely-used programming paradigm
in industry and an essential part of computing degrees. Teaching and learning OOP
concepts brings challenges due to OOP’s abstract nature, sometimes making it a
difficult topic to grasp and potentially resulting in students developing misconceptions.
Block-based programming languages have demonstrated success for primary
and secondary school levels, targeting introductory programming concepts. However,
such tools have limited relevance for more advanced programming concepts
commonly seen at tertiary level, such as OOP. This research’s objective was to develop
the Blockly-OOP learning tool to support inheritance-related OOP concepts so
that a more comprehensive set of fundamental and advanced OOP concepts could
be covered using a block-based programming approach. Grounded in educational
approaches for teaching OOP, risks and rules for visualisations, the tool is also developed
in line with existing tools and identified learning challenges in mind. An
evaluation was conducted in a CS2 level course (n = 258) to assess the learning tool’s
effectiveness. The results show that Blockly-OOP has value in increasing confidence
with OOP concepts, positive attitudes from students towards block-languages at
CS2 level, and revealing mixed results in improving knowledge.