How do children transition from a Block Interface to native code?

Written by Ucode Research on September 11, 2019

While Scratch is a powerful language that can be used to create quite sophisticated applications, a time may come when students may want to perform tasks that are too complex for block-based programming languages, which may be more easily achieved in Python. This is a great time for teachers to consider introducing a new language. The adopted language will be determined by the platform (and more importantly the processor) being used.

Teachers should try to slowly incorporate the language into their learning sessions. A good starting point to help this transition is to show students real-world examples of language in use. For example, a useful task may be to translate a simple project or feature from an existing project into the new language.

Often it is useful to have an example solution available to the student as a guide. When the student encounters an error, a productive way to help them solve the problem is through ‘spot the difference’, where the student has to identify any small syntactical differences between the example solution and their own.

Edublocks is one of many applications built specifically to help transition from block-based learning languages to Python. It uses a block-based, drag and drop method similar to that of Scratch, informing the user of the equivalent Python code needed to perform a task. Edublock challenges can be found on sites such as edublocks.org and allaboutcode.co.uk.

Some websites offer ‘gamified’ representations of learning applications, which present coding challenges as fun and easily navigable games. A popular example is CodeCombat, which challenges the user to code their way through various levels of dungeons using languages such as Python and JavaScript.

Sources:

  1. https://blog.codeclub.org.uk/2018/06/13/how-to-move-from-scratch-to-python-in-code-club/
  2. https://blogs.dxc.technology/2017/04/20/scratch-to-python-taking-your-coding-to-the-next-level/