Nice thread, some great input.
I’ll inject an observation out from left field: I feel we’re discussing solutions although the issue at hand is not yet agreed upon. All here are giving great input, but I don’t feel we’re all taking about the same problem yet.
OP posits – based on their tutoring observations – that the current array implementation is too high a barrier for novices. But what does this actually mean?
Do beginners bounce off of the square bracket syntax? Or is the core concept of an array just a way of thinking that’s not very intuitive? Is the use of indices too opaque? Is it something else? And before everything: is there evidence that this observation is a wide-spread issue at all?
Whatever the concrete problem definition is, the solution will get pulled into different directions.
I don’t think I’m overestimating just how much novices struggle with code. From my own experiences in attending creative coding courses during my studies, I can tell you that the mere presence of “strange” characters like ; and { and & put the fear in a lot of fellow pupils, e.g. even after the course, they where struggling in finding how to type a brace. Sounds stupid, but that’s a reality.
Everybody would eventually come around to “getting” the idea behind variables. They’d come to understand the difference between int and float. They’d be able to draw a smiley face using basic shapes. Maybe they’d get a basic if() statement running. But anything more complex would become a really really high barrier. I’m not kidding. (Although I will caveat, that this was a low-weighted course on the curriculum and motivations to perform… varied).
What I’m saying: for all the technical details that might need sussing out in this discussion, never forget to step out of your expert mode and go down to the level of full beginners and consider their immediate woes.
Alternatively…
There may also be a hard truth that coding can NOT be made universally accessible. As in, higher foundational concepts – like arrays – do require that the person puts in that effort necessary to rewire their brain into coding-mode. It’s clearly not for everyone and no amount of abstraction and simplification will ever make it easily accessible.
Uff, wall of text. Sorry for that.