見出し画像

高等学校「情報」のプログラミングを考察する(1)

 高等学校「情報」のプログラミング。新学習指導要領は,2022年度から適用される。今は移行期間だけど,いまのうちに準備しないと間に合わないのではないだろうか。

 ということで,まず,学習指導要領を読む。
のだが,わかりにくいことおびただしい。これをなんとか読み解いていこう。
プログラミングに関するところだけ拾う。

第1 情報I
1 目標
 〜 中略 〜
(1) 効果的なコミュニケーションの実現,コンピュータやデータの活用につ いて理解を深め技能を習得するとともに,情報社会と人との関わりについ て理解を深めるようにする。
(2) 様々な事象を情報とその結び付きとして捉え,問題の発見・解決に向けて情報と情報技術を適切かつ効果的に活用する力を養う。
2 内容
(3) コンピュータとプログラミング
コンピュータで情報が処理される仕組みに着目し,プログラミングやシミュレーションによって問題を発見・解決する活動を通して,次の事項を 身に付けることができるよう指導する。
ア 次のような知識及び技能を身に付けること。
(ア) コンピュータや外部装置の仕組みや特徴,コンピュータでの情報の 内部表現と計算に関する限界について理解すること。
(イ) アルゴリズムを表現する手段,プログラミングによってコンピュー タや情報通信ネットワークを活用する方法について理解し技能を身に付けること。
(ウ) 社会や自然などにおける事象をモデル化する方法,シミュレーショ ンを通してモデルを評価し改善する方法について理解すること。
イ 次のような思考力,判断力,表現力等を身に付けること。
(ア) コンピュータで扱われる情報の特徴とコンピュータの能力との関係について考察すること。
(イ) 目的に応じたアルゴリズムを考え適切な方法で表現し,プログラミングによりコンピュータや情報通信ネットワークを活用するとともに,その過程を評価し改善すること。
(ウ) 目的に応じたモデル化やシミュレーションを適切に行うとともに,その結果を踏まえて問題の適切な解決方法を考えること。

 このあとに,(4) 情報通信ネットワークとデータの活用 があり,これもプログラミングに関係するが,これは稿をあらためよう。

さて,上記の「2 内容 」であるが,いろいろわからないことがある。「学習指導要領解説」を読む必要があるだろう。後ほど読む。

まず(3) のはじめ。

プログラミングやシミュレーションによって問題を発見・解決する活動

 これが奇妙だ。どうしても「問題を発見・解決する活動」という言葉に縛られているようだ。
 なぜって? プログラミングをすることによって問題を発見するのだろうか。
シミュレーションによって発見することはあるが。プログラミングで問題を発見することがあるのだろうか。ないとは言い切れないが,それは「言語仕様についての問題を発見する」ことがほとんどで一般性はない。
 一般的には,次のようになるだろう。

問題を発見する → シミュレーションをしよう → そのためにプログラミングをする →シミュレーションの結果,新たな問題が発見される → プログラムを変更してシミュレーションを繰り返す → 問題解決につながる

 その前の文から読むとさらにおかしい。「コンピュータで情報が処理される仕組みに着目し」って,こんなことに着目して,どんな問題を発見するのだろう。「に着目」ではなく「を理解」なら話はわかる。

 次の ア の(ア)にある,「計算に関するの限界」はコンピュータの計算誤差のことをいっているようだ。これは現在の教科書(社会と情報)にはない。(残念ながら,「情報の科学」の教科書が手元にないのでそちらは不明)
個人的に,授業で扱っているが,これからはそれをちゃんとやるようで,研修用教材に具体的に載っている。

 次の,ア の(イ)「アルゴリズムを表現する手段,プログラミングによってコンピュータや情報通信ネットワークを活用する方法について理解し技能を身に付ける」
 さりげなく書いてあるが,これは大変なことだ。
「アルゴリズムを表現する手段」とはコーディングのことを指すと考えられるが,それともフローチャートのことだろうか。学習指導要領解説を読むと,フローチャートのようだ。これについては別項で論じる。
 さらに,ここにある「情報通信ネットワークを活用」が不可解だ。「プログラミングによって情報通信ネットワークを活用」は何を想定しているするのだろうか。ネットワークにアクセスし,サーバにアクセスするプログラムを書く? それは一般の高校生には無理だろう。もしかすると,HTMLのことをいっているのかもしれないが,それを,「プログラミングによりコンピュータや情報通信ネットワークを活用する」とは普通言わないだろう。HTMLは,確かに広い意味ではプログラミングだろうが,「プログラミング」の概念にHTMLを含める人が何人いるか,おおいに疑問である。

(ウ) はモデル化とシミュレーショ ンで,現行教科書にもある。
しかし「モデルを評価し改善する方法」となると難しくなる。
たとえば,現行教科書にある「待ち行列」の問題。窓口が1つの場合についてExcelでシミュレーションをする例が示されているのだが,これを「評価し改善」となるとどうか。ヒントなしで「改善してごらん」ではまず無理。窓口が2つの場合に「改善」しようとすると,Excelでは非常に困難。できるが,条件式を作るのが大変だ。Excelでなく,プログラミング言語を使ってプログラムする方が楽だが,それでも,ガイドして,ほとんど穴埋め状態のプログラムを示してもできるのは半数いくかどうか。これは実際に授業でやったのでわかる。(タイトル画像がその実行例)
「モデルを評価し改善する」は,言うは易し,行うは難しなのである。

以上,他教科もそうだろうが,学習指導要領だけでは具体的に何をしていけばいいのかわからない。そこで「解説」があるわけだ。次回以降はこの「学習指導要領解説」を見ていこう。