Skip to content
dethe edited this page Jun 1, 2011 · 1 revision

Why blocks?

Pedagogy

It is easier to teach the concepts of programming if they are abstracted away from the typing, the arbitrary syntax (and ubiquitous syntax errors!), the case sensitivity. By being more abstract, blocks can more easily capture the fundamentals of programming without cluttering the core ideas with irrelevancies.

Unlike most visual programming tools, Waterbear still recognizes the usefulness and importance of textual representation, which is why you can always view the text of the program being generated by Waterbear. Blocks can serve as a steppingstone to learning text-based languages, to ease learners into them through experimentation, observation, and play.

Casual Programming

It is true that most people are never going to be Computer Programmers, much less Computer Scientists, nor should they be. However, nearly everyone is going to own and use computers during their lifetime. Moreover, their jobs, even their lives and communities may depend on computers doing what they are supposed to do. That is a lot of power to yield to these machines, however useful they might be.

Moreover, the act of breaking a problem down into sub-problems and solving them (the heart and essence of programming) is a generally useful skill, whether applied to software or not. Writing a piece of code to make these universal machines do something and seeing it happen is immensely empowering and fun. Waterbear aims to lower the barriers to entry, to make casual programming accessible, and to spread the fun. After all, if you aren't able to control your computer, then it is controlling you.

Readability

Scratch (http://scratch.mit.edu) has demonstrated that children can use programming blocks not only to write their own programs, but to understand and modify the programs that others have written. Since a large portion of the time (and cost) that goes into a program is in maintenance, not development, anything which might help with understanding and modifying existing programs should be explored.