平成 30 年度県立高等学校教育課程課題研究「情報研究班」授業実践報告Ｂ班

問題解決とコンピュータの活用における思考力・判断力・表現力の指導方法と評価についての研究－コードを読み解き，発展させるプログラミング活動－
１

単元や課題の設定理由・ねらい
学習指導要領の改訂に伴い，小・中学校段階から身の回りにあるプログラムについて体験し，ブロックプログラミングやフローチャートの学習を通してプログラミング的思考を学んできた生徒が，高等学校のプログラミング教育で何をどのように学ぶべきかを考えていく必要がある。
本研究では，自らプログラムを作成するのではなく，用意されたプログラムやフローチャートを読み解き，その仕組みを理解して，更に新たな発想でプログラムを改良していく授業を実践した。一連の思考活動を通して，身の回りの問題解決にコンピュータを活用する姿勢や表現力を身に付け，プログラミングの意義や可能性について考える力を養う ための指導方法と評価について研究した。
２

研究内容(1) 目標アルゴリズムをフローチャートやプログラムで表現する方法について理解し，情報の科学的な見方や考え方を身に付ける。また，生活の中で使われているプログラミングの意義や可能性を知るとともに，問題解決にコンピュータを活用しようという態度を身に付ける。
(2) 学習活動に即した評価規準（「思考・判断・表現」の観点のみ）プログラムを読み解き，その手順や仕組みを説明した上で改良案を考えることができている。
(3) 課題及びその概要
ア

パフォーマンス課題
身の回りにある問題を解決するためのプログラムを提示した。フローチャートを参考にコードを読み解き，相手に伝わるように説明して，「何をしているプログラムか」を読み解くことで，プログラムの目的と仕組みを理解させる課題を設定した。 さらに，このプログラムを改良したり，目的に応じて発展させるための手順などを新たに見つけさせたりする。また，フローチャートから自動的にコードを作成するソフトウェアである PenFlowchart を利用して，実際に改良したプログラムを修正させ，実行結果の確認をさせる。

- 15 -

平成 30 年度県立高等学校教育課程課題研究「情報研究班」授業実践報告Ｂ班(4) ルーブリック
点

達成度

観

プログラムを読み解き，その手順や仕組みを説明できる。また，改良案を考えることができる。

Ａ（十分満足できる状況）

プログラムを読み解き，その手順や仕組みが説明でき，改良案を考え，改良案が動くコードを記述できる。

Ｂ（全員に到達してほしいと望まれる状況）

プログラムを読み解き，その手順や仕組みを説明できる。また，改良案を考えることができる。

Ｃ（努力を要する状況）

手順や仕組みの説明が不十分である。

(5) 基本となる指導の流れ
時
限事前

１

学習活動
○
○

指導上の留意点

フローチャートの基本
基本構造（順次・分岐・反復）の理解
PenFlowchart の基本操作の理解

・フローチャートの見方と，三つの基本構造を理解させる。

○

プログラムの解読（ペアワーク・紙）○

プログラムの動作の確認（パソコン）○プログラムの分析○○

プログラムの説明の記述
プログラムの改良・発展案の検討（個人）
改良箇所の検討
パソコン上でのプログラム修正と実行結果の確認（デバッグ）・ペアを作り，協力しながら課題に取り組ませる。ワークシートは個人で記入させる。
・変数の値が変化する様子を，紙の上で考えてワークシートの表に書き込ませる。
・パソコン上で実際に数値を入れて確認させる。
・二人で協力して記述させる。
・PenFlowchart を利用して行わせる。

○○○(6) 評価の進め方（評価方法）
アプログラムを読み解き，その手順や仕組みをきちんと説明することができるか。
ワークシートの記述から，プログラムの三つの基本構造（順次・分岐・反復）を的確に捉え，筋道を立てて説明できているものを評価Ｂ以上とする。
イプログラムを改良したり，目的に応じて発展させるための手順などを新たに見つけたりすることができるか。
アの評価Ｂ以上のものの中で，ワークシートに記述されたプログラムの改良案について，提示されたコードの変更や追記による方法で実現可能かを検討し，その具体的な手順も記述できているものを評価Ａとする。

- 16 -

３

授業の状況(1) 指導するに当たって，学校の状況に応じて留意したことやその理由事前学習として，基本的な命令文（入出力・繰り返し・条件分岐など）やフローチャートなどのプログラミングの基本事項に関する学習をしている。また，今回の授業の目的は「解読できること」であるため，基本的な命令についてまとめた資料を用意し，分からない部分は資料を見て自主的に調べられるよう配慮した。
また，プログラムの題材として，さまざまな題材を用意した。生徒は問題の発見や解決に慣れておらず，初見の問題に対応できない場合が多い。しかし，関心をもてば意欲的に取り組むことができるため，シンプルで興味をひく題材を選ぶことで，主体的に取り組む姿勢や，プログラミングによってコンピュータを活用する方法についての理解を深めることを期待した。
コードの解読部分において，生徒がワークシートに記入しやすいようにするため，行番号全てを記入できるものや，行番号を命令文である程度まとめて記入できるものなど，学校の状況に応じたワークシートを用意した。
(2) 授業実践後に協議して設定したルーブリックと典型的な作品例

観点

達成度

Ａ
（十分満足できる状況）

プログラムを読み解き，その手順や仕組みを説明できる。また，改良案を考えることができる。

生徒の作品例

プログラムを読み解き，その手順や仕組
み が 説 明 でき，改良案を考え，改良案が 動 く コ ー ド ＜改良案＞
を 記 述 で き ・くじを引く回数を 1000 円ごとに１回にする。
る。
・玉の色の種類を増やす。
・０円では引けないようにする。
・一度引いた玉を戻さないようにする。
［評価に対する注釈］
分岐構造・反復構造が理解できており，改良案も記述してある。

- 17 -

平成 30 年度県立高等学校教育課程課題研究「情報研究班」授業実践報告Ｂ班

Ｂ（全員に到達してほしいと望まれる状況）

プログラムを読み解き，その手順や仕組みを説明できる。また，改良案を考える
こ と が で きる。

［評価に対する注釈］解読も改良案も記述 できているが ，何をす るプログラムであるかについて，「 当たりの数と引いた数 を求めるプログラム」と答えており，理解が不十分である。
（作品例省略）Ｃ（努力を要する状
況）［評価に対する注釈］
手順や仕組み・繰り返しや条件分岐 などの基本的な構造部 分が書けていの説明が不十ない。
分である。
・書いてある内容が読み手に伝わらない。
・「玉の色を変える」 など，仕組みを理解し た上での改良案ではない。

(3) 「Ｃ（努力を要する状況）」と評価した生徒への指導の手だて分岐構造や反復構造の理解を確認した上で，トレースをさせながら順を追って考えさせ，どの行で分からなくなったのかをはっきりさせる。また，構造の理解が不十分な場合はコードを括弧や枠で囲みながら解読するように指示をしていく。さらに，それを言葉で表現する方法について考えさせる。そして，プログラムをコンピュータ上で実行させ，問題点に気付かせる。
４

まとめ及び考察(1) 実習課題について（生徒の取組状況も含めて）実習課題として，コードとフローチャート（資料１）及びワークシート（資料２）を用意した。フローチャートは，コードの解読の助けとなるよう記載したが，生徒たちはトレース作業にも活用していた。
題材は，各校で「素数判定，おつり，じゃんけん，福引，約数表示，さいころで１の目が出る確率シミュレーション」などを検討した。幾つかのプログラムを用意した方が，プログラミングで身の回りのいろいろなことが解決できることに気付くと考えた。また，ペアで異なる課題を行うことで，他のペアと相談して取り組むことができ- 18 -ないようにした。しかし，代入文（Ａ＝Ａ＋１）の表現の意味が理解できず止まってしまう生徒がいるなど，各プログラムの難易度に差があり，評価が不公平になると考え，「福引」を評価対象の課題とし，他の題材は練習課題として用いた。
「素数判定」のプログラムは，数学的傾向が強く，理系の生徒は興味深く考えていたが，文系の生徒には少し難しかったようである。また，解読はできてもこれを改良して発展させるような案が見つけにくい題材であった。
「おつり」のプログラムは，トレース作業をする中で，何をしているのかひらめいた生徒もいた。また，改良案が浮かぶようにあえて５円，１円のおつりが出ないプログラムにした。自動販売機をイメージして，50 円が不足した場合には 10 円で支払うというように，発想を広げていく生徒がいた。
「じゃんけん」のプログラムは，フローチャートの見た目が複雑であると感じた生徒 が多 か っ た よう で あ る 。改 善 案 の 中で じ ゃ ん けん の 手 が 「０ , １ , ２ 」で は 分 か りにくいので「グー・チョキ・パー」にコード自体を変えようとしたものがあり，プログラムの本質から外れた改善案を記述している生徒もいた。
「福引」のプログラムは，実際にプログラムを実行させて示したところ，入力した数値が同じ場合でも出力結果が異なることに関心をもち，解読に取り組む意欲につながった。各変数名が解読のヒントになった点や生徒にとってイメージしやすい題材であったこともあり，興味をもって取り組んでいた。玉の数や色を増やしたり，千円で一回くじが引けるなど金額に応じて回数を決めたりする改良案が出され，実際の福引をイメージしながら考えた様子であった。また，一度引いた玉を元に戻さないようにするという改良案を提案したが，改良することまではできなかった。改良案の試行については PenFlowchart などを用いたが，くじを引く回数が多すぎると実行に時間がかかることや，乱数生成の幅を広げるとなかなか当たりが出ないなど，新たな問題点や改良点に気付く生徒もいた。幅広い思考が期待でき，個々のレベルに応じた改良案が考えられる題材であると感じた。
(2) 評価について当初は改良案のみで評価しようと考えていたが，コードを理解した上で改良案が書かれているのかという点で疑問が残った。そのため，コードの説明の記述とそれを踏まえた改良案が出されているかどうかで評価を行うこととした。
コードの説明は，分岐構造と反復構造に着目して，理解しているかどうかを読み取って評価した。中には，コードの説明はおおむねできているが，「何をするプログラムか」の記述が不適切である生徒もいた。この部分は評価対象外であったが，理解した上でコードの説明を記述しているかどうかの判断材料として用いた。
改良案について，分岐の条件を増やす案や，乱数生成の幅を広げる案，入出力事項を増やす案などは，プログラムの手順や仕組みを理解した上での改良案であると判断した。「景品を用意する」「分かりやすくする」「日本語にする」などは，改良案として不適切であると判断した。コードの解読の記述が不十分でありながらも改良案が記述されている生徒もいたが，そのプログラムを実際に動作させてみた結果から出された案であり，手順や仕組みが理解できているとは言えないため，評価Ｃとした。
- 19 -

平成 30 年度県立高等学校教育課程課題研究「情報研究班」授業実践報告Ｂ班(3) 授業実践の改善に向けて
今回の授業実践は，生徒の取組姿勢や実習課題の内容，教員の指導のしやすさなど，プログラミング教育の教材としてよくできていると感じた。改善点として，扱う題材は一回の実践で一つのプログラムとし，徐々に難易度を上げ，複数回授業実践を行う方がよいと感じた。また，異なるプログラムの解読をしているので，解読した結果や改良したプログラムをペアごとに発表する時間をつくると，他のプログラムを知る機会が得られる。
ペアワークによる話し合いの中では，さまざまな意見が出て活発な活動をしている様子が見られた。しかし，それをワークシートに記述することができず，結果として評価が低くなってしまう生徒がいた。全てのペアの活動の様子を観察して評価することは難しいため，生徒が記入しやすく，評価が妥当なものとなるように，ワークシートを改善していく必要があると感じた。
改良案を幾つか記載する欄に，改良案を考えるヒントを載せたが，生徒から「保守性とは何か」などプログラミングの本質に関わる質問も出て，深い学びにつながるものとなった。また，「何をしているプログラムか」という記述も，コードの理解度の判断材料の一つとしたが，トレース作業の状況も記述させておくと，より理解度の判断材料となったであろうと感じた。トレースの作業の状況を丁寧に記述させることで生徒の理解も深まると考えられる。
(4) その他
プログラミングの授業ではコードの入力で苦労することが多い。しかし，今回のように最初から用意したコードの解読・改良という形態であれば，効率的に学習が行えるのではないかと感じた。プログラムの改良を行う実践では PenFlowchart を利用したことにより，直接コードを書き換える必要がなく，言語に影響しないという利点があった。
プログラムの解読を生徒に興味・関心をもって取り組ませることができるかという不安はあったが，ペアワークで考えることができたためか全体的な取組状況はよかった。しかしながら，正しく理解し，説明・表現ができたか，という点については，一度の実践で成果を求めることは難しく，題材を変えて複数回行うことで効果が発揮されるであろうと強く感じた。
今回の実践では，プログラミングの記述方法の習得に時間を割くことなく，教室内で同時に発生するエラーの修正に追われて情報の科学的な見方や考え方の本質を見失うこともない。加えて，１時間単位での実践が可能である。使用言語やツールについては各校の実情や教員の考えに応じて設定できる。さらに，題材を差し替えて何度も繰り返し行うことができるので，プログラミングやアルゴリズムをより高度で深い理解へとつなげることもできる。
プログラミング教育を行うことのできる時間数が，学校や教科として大きく異なる中で，今回の実践は一つのアプローチ・フレームワークとして大変優れていると感じた。
情報科の教員にとって，新教育課程「情報Ⅰ」でのプログラミングの授業はとても- 20 -

関心の高い部分である。生徒の興味・関心や理解度の差にも対応でき，思考力，判断力，表現力の向上を目指した授業実践を今後も研究していきたい。
参考文献と参考ＵＲＬ
名古屋高等学校「プログラムとアルゴリズム～ PenFlowchart を使って」(2016)
http://watayan.net/doc/20170217/programming_b4.pdf（最終閲覧日：2018/11/20）「PenFlowchart」
https://watayan.net/prog/#penflowchart （最終閲覧日：2018/11/20）- 21 -

平成 30 年度県立高等学校教育課程課題研究「情報研究班」授業実践報告Ｂ班【資料１

コードとフローチャート】（実践授業を行った複数の学校の資料のため，使用言語が異なる）- 22 -

- 23 -

平成 30 年度県立高等学校教育課程課題研究「情報研究班」授業実践報告Ｂ班【資料２ワークシート】- 24 -