見出し画像

Scratchプログラミング-その2(脱線投稿)


今回はScratchから少し脱線します。


その1でプログラミング教育では(言い換えると)カット&トライの思考能力を養えるのが良いところ・・・という風に書きましたが、
プログラミング的思考をネット検索すると、何となくウォーターフォール型のプログラミングを指しているような気がします。
プログラムの説明に、基本は、順次処理、分岐処理(IF文)、反復処理(ループ)と書いてあり、あくまでも順次処理がメインです。


私が現役でやっていた頃は徹底的にウォーターフォール型で、要求定義から仕様を決めて、設計をやって、設計書通りにプログラムを書く、そして仕様書から作ったテスト仕様書に沿ってテストする、

という上流工程重視の完全なウォーターフォール型でした。


ウォーターフォール型開発


さらに脱線しますが・・・
今、成りたい職業に『プログラマー』というのが出てきますが、私たちの頃は、プログラマーは、SEが作成したプログラム設計書に従ってプログラムを作成しテストする、という仕事でした。いわばIT業界の下っぱでした。いまは、


これはこれで非常に大切なことだと思います。しかし、仕様決めの時に顧客の要求を100%理解することは出来ずに、現地で客先に使ってもらうといろいろと変更点(客先からみると不具合、設計者側からみると仕様変更)が出てきます。
そんな事をいくつも経験して、
『先ずは50%でも良いから動くものを客先に見せて、そこからいろいろと客先の要望を聞いて100%に近づけていく』
これが客先にとっても製作者側にとっても良い(win.winになる)と思いました。しかし、受注時の客先の予算(つまりこちらの製造のコスト)が確定してからスタートとなるため、この中に納めるにはどうしてもウォーターフォール型になってしまう。
当時もオブジェクト指向型プログラミングが良いと盛んに言われましたが、その特徴の一つのスパイラル開発は、受注時に全予算が決まってしまうやり方では難しいものでした。
私の所属した世界のやり方が今はどうか分かりませんが・・・・・

今は、例えばホームページ作成にしても、ちゃんとしたところに発注すると、初期作成費用が数十万円で、いろいろなオプション開発は+α、その後に月々のメンテに月いくら、とかの契約方法があるので、この方式でスパイラル開発が出来そうです。

そこでプログラミング的思考能力ですが、
ウォーターフォール型思考も重要だとは思いますが(これは今までの通常の教育の中に含まれているのでは)、カット&トライのスバイラル開発的な作業の中で培われる能力というものがプログラミング教育で一番発揮しやすいのではないかと思います(私は教育者ではありませんので100%とは言えませんが)。現実的にはスパイラル開発ではなくアジャイル開発という方が適しているかもしれません。
だから私のScratchプログラミングの説明は、カット&トライ方式です。
自分で不満点、改善点を見つけて、改善方法を考えて、修正して試してみる。これを繰り返してより良いものにしていく。

今回の投稿は、現役を卒業して10年以上も経っている私の自分勝手な考え方の投稿でした。

Scratchから脱線してしまいましたが、次のその3からScratchに戻します


この記事が気に入ったらサポートをしてみませんか?