DNCL による授業実践および「情報 I」への転換
中西渉 ∗2022 年 2 月 19 日
で文法の説明などは存在しなかったが，2002 年の試験はじめに1

問題評価委員会報告中の問題作成部会見解で仕様が示され，翌年の同文書で DNCL と命名された [4]。その後2022 年度からの新学習指導要領で「情報 I」が必履「DNCL と表計算言語の仕様」は予め公表すべきだとの修となり，プログラミングを含む内容が必須となるこ指摘を受け，2011 年度以降の試験のために「センターとに伴い，プログラミング教育が注目されている。ど

試験用手順記述標準言語（DNCL）の説明」[5] が公開のようなプログラミング言語が適当であるかが話題にされた。東京農工大学の入試で試験用手順記述標準言なることも多い。文部科学省が公開した教員研修用資語として使われていた TUATLE も，これに準拠したも料 [1] が Python 寄りであることが話題にもなっていのと考えられる。また，この文書は 2021 年には共通テ

たが，各社の教科書見本を見る中で Python だけでなストに合わせて更新されている [6]。

く JavaScript や VBA，Scratch にも関心が寄せられて2022 年度からの新学習指導要領で学習した生徒が受いる。

験する 2025 年度の共通テストでは情報が出題される

一方，2025 年度からの大学入学共通テストの試作ことが決定しているが，それに先立って大学入試セン問題 [2] やサンプル問題 [3] で使用されている新しい

ターは情報の検討用イメージとしての試作問題やサン

DNCL も話題にのぼることも多い。構文は従来の情報プル問題を公開した。そのプログラミング問題で使わ関係基礎で使われていた DNCL を Python 風にしたよ

れている DNCL は従来のものと違って，Python のよううなものになっている。にインデントでブロックを表現するものになっている。

勤務校では 2006 年度から DNCL でのプログラミン

DNCL の構文の違いを図 1 に示す。ただし新 DNCL にグ実習を行い，筆者もその学習環境を開発してきた。

ついては仕様が示されていないので，上述した問題で本稿ではその実践および学習環境を振り返り，「情報 I」示されたプログラムから想像したものである。の授業を行うにあたっての考えを述べる。

2.2

DNCL について2

実行環境

初心者向きアルゴリズム学習環境として開発された PEN[7] が，前述した TUATLE に対応したことにより [8]，DNCL の実行環境が作られた。本来 DNCL や

2.1 現在までの経緯

TUATLE に変数宣言はないが，データ型の概念の重要

DNCL は大学入試センター試験および大学入学共通さを鑑みて PEN では変数宣言を義務付けたとのことでテストの「情報関係基礎」で出題されるプログラミンある。他にも命令や組み込み関数を追加したことから，グ問題のために考えられた，日本語ベースの擬似言語

PEN で用いる言語は本来の DNCL と区別する意味でである。

xDNCL と名付けられた。

情報関係基礎の出題が始まった 1997 年度の問題ではまた表記のブレなどを防ぎ，入力を効率的に行うたBASIC，COBOL，Pascal のどれでも解答できるようにめに「入力支援ボタン」が設けられた。これにより入なっていたが，1998 年度からは日本語ベースの擬似言力時間が大きく短縮されるわけではないが，キー入語が用いられ，これが現在の DNCL の原型になってい力回数は大幅に減ることが確認されている [9]。またると考えられる。当初は「読めばわかる」という考え

JavaScript を使った演習と PEN を使った演習を比較し∗た研究では，後者のほうが自己評価と成績が高いこと

名古屋高等学校1



現 DNCLn ←【外部からの入力】
n>1 の間，│ もし n%2=0 ならば│ │ n ← n÷2│ を実行し，そうでなければ│ │ n ← 3*n+1│ を実行する│ n を表示するを繰り返す

新 DNCL（？）
n=【外部からの入力】
n>1 の間繰り返す:│ もし n%2=0 ならば:
│ └ n=n/2│ そうでなければ:│ └ n=3*n+1└ 表示する (n)
図1校では Windows が使われると考えていたし，生徒や教員には Windows 以外の OS の使用経験がない者がほとんどであることは認識していたが，当時の筆者らには Windows で約 2000 のアカウントを容易に運用する技術がなかったのでそのようにした。端末はネットブートにすることでディスクイメージの管理を容易にしようと考えていたが，サーバへの負荷が予想外に大きかったので，Clonezilla[19] によるディスクイメージ
配布に切り替えた。アカウントは NIS で管理（現在はOpenLDAP），ホームディレクトリは NFS サーバからマウントし，どの端末からでも同じ環境で自分のファイルにアクセスできるようにした。
サーバ構築は納入業者の SE 氏が徹夜して作業してくれたのだが，検収が終わった直後に筆者らがまっさらに戻して再構築を行った。これは学校でシステムを触る者にとってのブラックボックスを残したくなかっ

DNCL の新旧比較たからである。
が示されている [10]。筆者はこれにフローチャートに3.2よるプログラム作成機能を付加した PenFlowchart を開

勤務校では 2003 年度からのカリキュラムでは情報が発した [11]。

高 2 に配置されたので，授業開始は 2004 年度からで

しかし PEN や PenFlowchart は Java アプリケーショあった。情報 B を選択したのは担当者が全員数学科とンであり，インストールの手間がかかるだけでなく兼務していることもあり，他科目よりは手がつけやす

JRE さえ敬遠されることもあるので，Web ブラウザ上いと考えたからである。

で動く環境として WaPEN（Web aided PEN）を開発し当時の教科書にはプログラミングは明示的に入ってた [12]。ほかにも Web 上の DNCL の学習環境は多く作はいなかったが，筆者らは情報の科学的理解のためにられている。

は必須だと考え，自前の教材で授業を行った。プロ• どんくり [13]グラミング環境は Linux だからいろいろあるのだが，• wPEN[14]コンソールで作業させるのはハードルが高いと考え• Tetra[15]たため，オープンソースのオフィススイートである
OpenOffice.org[20] の表計算マクロを用いた（図 2）。

ま た，そ の い く つ か は 新 DNCL に 対 応 し て い る

Excel のマクロと違ってセルにアクセスするのもあまり[16, 17, 18]。

3PEN 以前

簡単ではないため，セルと変数のデータやり取りの部分を既に作っておき，扱わせたい部分を空白にしたマ

授業実践

クロを生徒に配布して，空所を埋めさせるという実践を行った（図 3）。

3.1 勤務校の環境

しかしこれは実習に至るまでの手数が多い上に，本来書き込む場所以外を間違って書き換えてしまうミ

勤務校である名古屋高等学校はキリスト教主義の私スも頻発したりなど，生徒には不評であった。そこで

立男子校（併設型中高一貫校）であり，高校の 1 学年

2005 年度はテキストエディタで BASIC のプログラムは 12 クラス規模である。情報科実施前には情報教室がを書かせて Yabasic[21] で実行させるようにした（図なかったため，2003 年度に間に合うように，情報教室4）。テキストエディタやファイルの操作，コンソール

3 つとプレゼンテーションルームからなる情報棟（メでの作業が必要なのでこれも難しい面はあったが，余ディアセンター）が作られた。

計な記述をしなくていい分いくらかはやりやすくなっ

生徒端末は Linux で構築することにした。多くの学
2

すべての要素が一画面になっていることがその要因ではなかったかと考えている。

図2

OpenOffice.org の表計算マクロの画面

図5

3.4
図3

PEN の実行画面

PenFlowchart

何年か PEN での実践を続けていたのだが，生徒が同OpenOffice.org の表計算マクロでの演習問題の例

じような間違いをしていることに気がついた。PEN でたように感じられた。

は必要な構文は入力支援ボタンで入力でき，生徒はその必要な部分（具体的には「《変数》」などの部分）だ
けを書き換えればいいのだが，本来必要な部分—IF に対応する ENDIF にあたる「を実行する」など—を削除してしまうのだ（図 6）。このような間違いが起こらないようにするため，フローチャートでプログラムを生成することができればいいのではないかと考え，2011
年に PenFlowchart を開発した。実行画面の例を図 7 に示す。


図4

3.3

Yabasic での演習問題の例

PEN

2006 年 3 月に情報処理学会が開催した「教育用プログラミング言語に関するワークショップ 2006」[22] にもし x=0 ならば│ 「ゼロ」を表示するを実行する


誤り


もし x=0 ならば「ゼロ」を表示する




図6

参加し，そこで紹介されていた DNCL の実行環境 PEN

正しいプログラムPEN で生徒の間違いで多かったものに改めて興味を持った。実はそれ以前にも使ったこと定期テストの結果などを用いて比較を行ったところ，はあるのだが，生徒に使わせる環境を準備するにはPEN だけで学習を行っていたときと比べて，授業の進至っていなかった。

行（特に序盤の演習）がスムーズになったほか，特にそこで 2006 年度の授業から PEN に切り替え，生徒成績下位者の成績向上が見られた [23]。

からは好評を得た。図 5 に示した実行画面のように，
3

図7

3.5

PenFlowchart の実行画面

図9

PyPEN の実行画面

WaPEN

4

PenFlowchart での実践は続いていたのだが，フローチャートの画面が別であることや，生徒が自宅で学習「情報 I」への転換
学 校 に 届 い て い る「情 報 I」の 教 科 書 見 本 で は，したいときにインストールしなくてはいけないなどのPython の他に JavaScript，VBA，Scratch などが使わ手間がかかることが気になったため，Web アプリケーれている。どれを実習に使うかは悩ましいところではションとして WaPEN を開発し，2018 年度の授業で用あるが，井手の研究 [24] では，実際にそれぞれの言語いた。実行画面を図 8 に示す。

で授業を行った結果，大きい差は生じなかったことに言及している。
一方，大学入学共通テストの試作問題やサンプル問題が新 DNCL で出題されていることから，演習をこれで行うことも考えられる。しかし大学入試センター試
験問題調査官は，DNCL で演習を行うべきではないと述べている [25]。この考えには—DNCL の学習環境の開発者ではあるが—同意する。というのも「情報 I」ではいろいろな学習にプログラミングを用いることが想図8定されているのであるから，DNCL にとどまってはい

WaPEN の実行画面けないからだ。
先日ある生徒に「PyPEN っていろんなことができま

PenFlowchart は実行部分を PEN に依存しているのすね」と声をかけられた。そう言われることは開発者で文法はほとんどいじれなかったが1），WaPEN は構文としては嬉しいのだが，自分自身もそこにとどまって解析から自分で行っているので開発の自由度は増した。

3.6

はいけない。彼には「その通りだ。しかし Python ならPyPENもっと多くのことができる。自分で思ったコードが書けるのなら，Python のコードに変換してもっと自由な2019 年の夏頃，某氏に「WaPEN を Python っぽくしところに進んでほしい」と回答した。それが PyPENたの作ってみない?」と持ちかけられたので作ってみたの開発者として望むべきことなのだ。のが PyPEN である。これは WaPEN で構文解析を自勤務校での授業もこれまでは PyPEN を中心におい分で行うようにしていたので，それを Python 風にアレて実施してきたが，次年度からの「情報 I」では PyPENンジすることで実現できた。実行画面を図 9 に示す。

は導入程度にして，Python でわからなくなったら戻っ前述の大学入学共通テストの試作問題やサンプル問題てこられるような補助輪として用いるべきだと考えてでこのようなプログラミング言語が使われていることいる。共通テストが DNCL で行われるとしても，授業を知ったときには驚いた。

で使った言語からの読み替え程度のことができなければ問題の読解にさえ至らないだろう。

1） 配列の要素をまとめて初期化する構文を追加しただけ。

4

参考文献
[1] 文部科学省. “高等学校情報科に関する特設ページ”. https://www.mext.go.jp/a_menu/shotou/zyouhou/
detail/1416746.htm.
[2] 情報処理学会. “大学入学共通テストへの「情報」の出題について”. https://www.ipsj.or.jp/education/edu202012.html, 2020.
[3] 大 学 入 試 セ ン タ ー. “令 和 7 年 度 以 降 の 試 験 に 向 け た 検 討 に つ い て—サ ン プ ル 問 題”. https://www.dnc.ac.jp/kyotsu/shiken_jouhou/r7ikou.html, 2021.
[4] 情報処理学会情報入試委員会. “情報関係基礎 アーカイブ”. https://sites.google.com/a.ipsj.or.jp/
ipsjjn/resources/JHK, 2021.
[5] 大学入試センター. “センター試験用手順記述標準言語 (DNCL) の説明”. https://www.dnc.ac.jp/albums/abm00004841.pdf, 2011.
[6] 大学入試センター. “共通テスト手順記述標準言語 (DNCL) の説明”. https://www.dnc.ac.jp/albums/abm00040701.pdf, 2021.
[7] 中村 亮太, 松浦 敏雄, 西田 知博. “初心者向きアルゴリズム学習環境の構築”. 2004PC カンファレンス論文集,
pp.102–103, 2004.
[8] 中村 亮太, 松浦 敏雄, 西田 知博. “プログラミング環境 PEN—入試用言語 TUATLE への対応”. 2005PC カン
ファレンス論文集, pp.343–344, 2005.
[9] 中村 亮太, 西田 知博, 松浦 敏雄. “プログラミング入門教育用学習環境 PEN”.

情報処理学会研究報告コン

ピュータと教育 (CE), Vol.2005-CE-081(104), 2005.
[10] 西田 知博, 原田 章, 中村 亮太, 宮本 友介, 松浦 敏雄. “初学者用プログラミング学習環境 PEN の実装と評価”.
情報処理学会論文誌, Vol.48(8), 2007.
[11] 中西 渉. “PenFlowchart の開発”.

情報処理学会研究報告コンピュータと教育 (CE), Vol.2012-CE-113(13),2012.
[12] 中西 渉. “WaPEN…DNCL の Web ブラウザ上の実行環境におけるフローチャートなどの実装”. 情報教育シンポジウム論文集, Vol.2018(31), 2018.
[13] 本多 佑希, 兼宗 進. “ブラウザ上で動作する DNCL 学習環境「どんくり」の開発”. 情報処理学会研究報告コンピュータと教育 (CE), Vol.2018-CE-147(10), 2018.
[14] 大宮 大地, 松本 嵩大, 松浦 敏雄, 中西 通雄. “試験問題作成機能と学習及び受験用機能を持つ DNCL プログラ
ミング環境”. 情報処理学会研究報告コンピュータと教育 (CE), Vol.2019-CE-148(7), 2019.
[15] 大門 巧, 大西 建輔. “ブラウザ上で動作する DNCL 処理系「Tetra」の開発”.

情報処理学会研究報告コン

ピュータと教育 (CE), Vol.2019-CE-151(7), 2019.
[16] 本多 佑希, 漆原 宏丞, 兼宗 進. “試験問題記述言語 DNCL の改定に合わせた「どんくり」システムの修正と検討”. 情報処理学会研究報告コンピュータと教育 (CE), Vol.2021-CE-159(2), 2021.
[17] 下村 亮太, 中西 通雄, 松浦 敏雄, 西田 知博, 安留 誠吾, 宮本 友介. “初学者用ブロックプログラミング環境
wPEN の改良”. 情報処理学会研究報告コンピュータと教育 (CE), Vol.2021-CE-159(5), 2021.
[18] 大門 巧. “つちのこ”. https://t-daimon.jp/tsuchinoko/.
[19] “Clonezilla”. https://clonezilla.org/.
[20] OpenOffice.org Project. “OpenOffice.org”.
[21] Marc-Oliver Ihm. “Yabasic”. https://www.yabasic.de/.
[22] 情報処理学会情報処理教育委員会. “教育用プログラミング言語に関するワークショップ 2006 報告集”. 2006.
[23] 中西 渉, 辰己 丈夫, 西田 知博. “PenFlowchart を用いた，フローチャートによるプログラミング学習の効果に対する評価”. 情報処理学会論文誌 教育とコンピュータ（TCE）, Vol.1(4), 2015.
5

[24] 井手 広康. “大学入学共通テストを見据えたプログラミング教育の言語選択に関する考察”.

情報処理学会研

究報告コンピュータと教育 (CE), Vol.2022-CE-163(14), 2022.
[25] 水 野 修 治. “大 学 入 学 共 通 テ ス ト 新 科 目「情 報 I」～ サ ン プ ル 問 題 等 と そ の ね ら い ～”. https://www.wakuwaku-catch.net/kouen210801/04/.

6