Wednesday, March 17, 2021

Programming using Text or Blocks? Why not Both?

Continuing my look at papers from the SIGCSE 2021conference. The papers are available for free for a limited time. Get them while you can. In this post,  I take a look at Dual Modality Instruction & Programming Environments: Student Usage & Perceptions.

This paper took a look at the usage of Dual Modality IDE with students. Dual modality means that the IDE is capable of switching between text based programming and block based programming. The authors used the JetBrains plug-in Amphibian which creates Java code. While teaching AP CS Principles using the curriculum, I used AppLab from with students AppLab is also Dual modality though with JavaScript rather than Java.

I was curious to see if the author’s conclusions matches my far less rigorous observations. They basically did. That is to say that they saw students using the blocks to learn concepts and gradually move to text. Blocks often become a reference for learning concept and less for developing program solutions. I noticed much the same thing. Students might also use blocks to learn and switch to text when writing final solutions.

In my course, I did not mandate either blocks or text but let students switch at will. What I noticed is that students with a prior programming background in text moved to mostly text much sooner than students with no prior programming. Some students seldom used text even near the end of the year. This did not seem to impact final grades in my classes. As the authors of this paper found, I saw even the very comfortable with text students use the blocks to explore new concepts.

If you are thinking about dual modality environments (or not) I recommend this paper. I think you will find it supports the value of this sort of environment.

Are you using a dual modality environment? What are you seeing with it?


Doug said...

I know that I'm probably showing my age but obviously, I was text first and then a late adopter of blocks. I can't tell you the frustration of looking through block after block looking for the one that I want when I know that I could just type what I want. It seems like a backward step and probably is.

The common wisdom is to do blocks first and then transfer. That seems more intuitive to me. The big question would be, in my mind, at what point do you make the switch?

Garth said...

An interesting study would be how adept are old text coders at learning blocks? I teach with Scratch, Thunkable and Alice, all block based. I find them slow to code, cludgy and a pain in the rear. I am not a deft coder to begin with but years of experience with text coding has shaped my limited skills in that direction.