若い人(特に子供)たちにプログラミングやコンピューティングを教えることの意義について、あれこれ行ったり来たりと考えた結果、その意義は「設計の力」を鍛えることを目的にするということで良いんじゃないかと現時点で思っています。
プログラムはそもそも設計図です。
プログラミング=実装という言い方をされることもあるけれど、それは違っていてプログラミング=設計であるということはプログラマーの中では、よく知られたことです。
では、設計とは、与えられた手段(ルールや部品)を使って、目的を具現化することです。
目的があって手段があるところに、プロセスを組み立てるのを設計と呼ぶことにします。
手段の数を増やさずに、目的までの組み立てかたに工夫をしてもらう
この設計の習得を目的とすると、いろんな手段を教えることよりも限られた手段で、複雑なものを設計してもらうことを重視した方が学びの効果が高いと思います。
これは、まだプログラミングそのものの面白さに興味が持てていないような人たちを対象とした話です。
スキルとしてのプログラミングも大変有意義なので、興味がすでにある人にはもっと具体的なことを教えることが私は大事だと思います。