Block-based programming environments are increasingly becoming the first coding experience for many students1, as more and more schools begin introducing and expanding computer science courses and curricula. One of the most popular block-based programming languages is called Scratch2 (scratch.mit.edu). Everyday, over 1,500 new programming projects are uploaded to the Scratch site3. VEXcode is itself powered by Scratch blocks.
One of the primary motivations behind the creation of Scratch is that many young students find programming with text-based programming languages too difficult4, as these students find both the typing and the syntax difficult to master. As a result, block-based programming languages have been designed for students as young as preschoolers, but most are designed for students between the ages of 8 and 16. Block-based programming, including VEXcode, present several advantages to for beginning programmers5.
- Readability: Block-based programming languages have commands that are much easier to read than text-based commands.
- Memorization: Block-based programming languages have all of their commands visible to the user. With text-based programming languages, commands often need to be memorized. Additionally, users have to memorize the syntax that is associated with the text commands. There is no syntax associated with block-based commands.
- Typing/Spelling: Younger students struggle with using a keyboard. Spelling mistakes become compiler errors with a text-based programming language. Block based programming languages use drag and drop. Therefore, no typing and mastery of spelling is needed.
Even though it's proven that it is easier for novice users to begin programming with a block-based programming language, it is still important to ask if block-based languages are effective in teaching computer science concepts. The short answer is: yes. Research has shown that block-based programming languages have been effective in teaching computer science concepts such as algorithms, variables, conditional logic, and code comprehension6.
There are, of course, some disadvantages in using block-based programming languages. For example, students can sometimes feel that using blocks is not an “authentic” learning experience7. In other words, real programmers do not use blocks. This is an important aspect to keep in mind, but it is also important to keep in mind the well-documented challenges that text-based programming languages introduce to novice programmers.
As educators, we know that the tools that we use to teach concepts change as students change. Math is taught K - College. The tools that are used to teach a first grader are much different than the tools that are used to teach a junior in college. Research has shown that block-based programming languages are easier for novices to use, and they are an effective means to teach important computer science topics. This does not mean, however, that students should or need to always stay in a block-based programming environment. Instead, a better conclusion to draw is that one programming modality, blocks or text, is not inherently better than the other8. Whichever one is right for your classroom will depend on both your comfort level as an educator and the readiness of your students. Just as students master their multiplication facts at different rates, some students will master programming with blocks faster than others. The opportunity to begin with text-based programming will keep them engaged and challenged. Tools like VEXcode and Text allow you to meet each student at their individual instructional level.