我々が用いるプログラミング学習環境について
名古屋高等学校 中西渉
watayan@meigaku.ac.jp
2022 年 6 月 24 日
いて述べる。 ただし VBA と Scratch について

1 はじめには自ずと使用環境が決まるので， ここでは言及しない。

新しい学習指導要領による学習が開始され，Python の実習環境としては， 特に明示され高 1 で履修する学校では既に 「情報 I」 の授業がたものはない。 ただし日文 「情報 I」 巻末資料で始まっている。 前の学習指導要領の 「社会と情は IDLE を用いているほか， 第一 「高等学校 情報」 「情報の科学」 から新しく追加された要素は報 I」 では Google Colaboratory が使われていくつかあり， プログラミングについてもこれからいる。

は必須となる。

JavaScript の実習環境としては， OS 付属の本稿では， プログラミングの実習を授業で行うテキストエディタと Web ブラウザを用いたものがにあたって， どのような環境が必要であるかにつ多い。 そのため HTML ファイルに script 要素といて考察を行う。 とはいえ， 筆者および勤務校のして埋め込むことになる （図 1 参照）。 数研 「高PC 環境は明らかに多数派とは異なることや1） ，等学校 情報 I」 「情報 I Next」 は JavaScript

私立ゆえに情報教室の管理が自由であることなどのコードだけが書かれているが， 実際には 2.2.3から， 以下で述べることは各学校の抱える事情にで後述するように Web ブラウザ上での実行を想はそぐわないことも多々あることと思われる。 そ定していると思われる。のような点については後の質疑やグループ討論で取り上げていただければ幸いである。

2 プログラミング学習環境
2.1 教科書で想定されている環境
情報 I の各教科書で， 主に用いられているプログラム言語を表 1 にまとめた。 以下実習環境につ1） どちらも Debian GNU/Linux のデスクトップ環境（KDE） で あ る。 筆 者 は VMWare 上 の 仮 想 環 境 でWindows 11 を用いることがある。

<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><title>タイトル</title></head><body><script><!--ここにコードを書く--></script></body></html>

図1

1

JavaScript を埋め込むための HTML作が重すぎて使いづらいのも事実である。

2.2 プログラミング学習環境

2.2.2 Python の実行環境について

情報教室の PC にはソフトウェアを自由にインストールできないとか， スペックの関係で重いソPython の 実 行 環 境 と し て は い ろ い ろ な もフトウェアは使えないという話もよく聞く。 これにの が 考 え ら れ る。 筆 者 は 勤 務 校 で は Google

ついては然るべきところに働きかけていくしかない

Colaboratory を使いたいと考えている。 これとは思うが， 解決していないのが現実だ。 生徒には学校で用意した生徒アカウントに Google アカ持たせている端末についても学校ごとの事情があウントを紐付けているからだが， 学校によってはるのだが， むしろこちらの方が自由が利くのかも使用できるような設定がされていない場合もあるしれない。という話を聞くことがある。

低スペックの PC でも Excel はそれなりに動く

Google Colaboratory については， テキス

ことを考えると， VBA での実習が現実的である

トとコードを合わせて管理できることや， テキストという判断は頷けるものがある。

がマークダウン記法で書けることなどをメリットと考えている。 しかしセルをまたいで変数などが共2.2.1 テキストエディタについて有されるため， 注意しないと予想外の動作が起き

教科書では OS 付属のテキストエディタ （具体てしまうことがあるのは難点ではある。

的には Windows の 「メモ帳」） が使われている

ローカルマシン上で実行するのはいろいろな方

らしきスクリーンショットが見受けられるが， これ法が考えられる。

で実習を行うことはできれば考えたくない。 入力(1)コマンドプロンプト （または PowerShell）

補完や自動インデントどころか行番号さえないので手書きで非常に不便であるし， 生徒に 「テキストエディ(2)IDLE で手書きタはワープロの劣化版」 のような印象を持たれる(3)テキストエディタで書いてコマンドプロンプトのは避けたい。

で実行

無料で使えるテキストエディタはいろいろあ(4)テキストエディタで書いて IDLE で実行

る の で そ れ ら を 使 い た い。 イ ン ス ト ー ル が 自(5)IDLE のエディタで書いて IDLE で実行由にできない環境でも， Sublime Text[1] や(6)テキストエディタで実行

NotePad++[2]， サクラエディタ [3] などは(7)IDE で実行ポータブル版もあるので， どこかのフォルダに(8)Jupyter Notebook などで実行展開してしまえばそれだけで使える。 Sublime
Text は日本語化が面倒ではあるが， 生徒が今(1)(2) は変数への代入や print の結果を確認す

後出会うソフトウェアはメニューが英語表記のものる程度ならいいが， それ以上のところでは使いたもあるだろうから， あえてそのまま…というのは乱くない。 (3)(4) はコードを保存したフォルダにつ暴にすぎるだろうか。

いて迷わないかが心配である。 その点 (5) なら

筆者は Visual Studio Code[4] を愛用して保存したフォルダがどこであっても実行はできる。

いるが， バージョンアップが非常に頻繁になされ(6)(7) は Visual Studio Code などのテキるため， 情報教室のクライアントに導入するにはストエディタや， Visual Studio などの IDE を至っていない。 また PC スペックによっては， 動想定している。 端末の状況が許さないこともある
2

かとは思うが， ブレークポイントや変数のウォッチ習で問題になることでもあるので， 妙案があればなどのデバッグ機能が自由に使えるメリットは大き教示いただきたい。

い。 もっとも IDLE のデバッグ機能でもそういったことはできるのだが。
なお， (7) や (8) は書いてみただけである。
Visual Studio や Jupyter Notebook がローカルにインストールできる環境が用意できるような状況があるのなら， 誰も困りはしない…。
2.2.3 JavaScript の実行環境について
JavaScript の実行環境としては， 教科書はWeb ブラウザを使うことを想定しているようで



<!DOCTYPE html><html lang="ja"><head><meta charset="utf-8"><title>タイトル</title></head><body><script src="hoge.js"
type="text/javascript"></script></body></html>

図2ある。 JavaScript 実行環境として Node.js[5]を使うことも考えてみたが， 表 1 で JavaScript

JavaScript を外部ファイルから読み込むHTMLを使っている教科書はすべて入出力に prompt，alert， document.write のどれかを使っているの

ま た， デ バ ッ グ の 際 に は 各 ブ ラ ウ ザ の デ ベ

で， Web ブラウザ上でないとそのままでは実行でロッパーツールを使用することになる。 筆者はきない。 出力だけなら console.log を使えばい

Python の項で述べたように， ブレークポイントといのだが， 入力を変数に読み込むのは難しい2） 。

変数のウォッチができれば十分と考えているので，したがって， テキストエディタで書いて Web ブ

それほどややこしいことにはならないとは考えていラウザで動作を確認して…という流れを繰り返する。 繰り返しになるが， Visual Studio Code なことになるだろう。 その際， 図 1 に書いたようにどデバッグ機能を有するテキストエディタを使うこHTML ファイルに埋め込むか， 図 2 のように外とも候補として考えていいだろう。 また， スマート部ファイルにして読み込むかは検討に値する。 前

フォンのアプリを Web ブラウザ上で開発できるプ

者は 1 ファイルですべて完結するのでわかりやす

ログラミング環境 Monaca[6] を用いることも考

いが， 前後の HTML をいちいち書かなくてはいえられる。

けないのが面倒である。 後者はファイル名だけを3 おわりに書き換えれば済むが， 複数ファイルを管理する手間が生じる。
いずれにしてもテキストエディタと Web ブラウ

大学入学共通テストに情報が追加されることがザの複数ウィンドウを行き来しながら作業すること決定する以前に， 大学入試センターからは検討イになるので， ファイルを置くフォルダを間違えるこメージとしての試作問題 [7] やサンプル問題 [8]とや， 書き換えたファイルの保存忘れ ・ リロード忘が公開されている。 それらのプログラミングに関れなどのトラブルが予想される。 これは Python

する問題では， 日本語をベースにした擬似言語での項でも述べたことであり， ひいてはあらゆる実ある DNCL が用いられている。 これまでのセンター試験や共通テストでも 「情報関係基礎」 で2） おそらく readline モジュールを使うのが一般的と思われる。

DNCL[9] が用いられてきたが， 試作問題やサ3

ンプル問題の DNCL は構文が Python に似たも[16] によれば， 用いるプログラミング言語をクラのになっている （図 3）。

スごとに変えて授業を行ったあとで試作問題のプ

旧 DNCL

ログラミング問題を解かせたところ， 結果に大きい差は生じなかったという。 我々が 「情報関係基礎」 の過去問 [17] を参考にするにあたっても，b ← 1964c ← 2022
旧 DNCL から新 DNCL への読み替えが必要に
y を 1981 から c まで 1 ずつ増やしながら，｜ y と「年も 17 歳です」を表示するなる。 「その程度」 の読み替えが障害になっては｜ もし y - b > 17 ならばいけない。
｜ ｜ 「おいおい」を表示する｜ を実行するを繰り返す新 DNCLb = 1964
c = 2022
y を 1981 から c まで 1 ずつ増やしながら：｜ 表示する (y,"年も 17 歳です")｜ もし y - b > 17 ならば：
└ └ 表示する ("おいおい")
図3

DNCL の新旧比較

旧 DNCL には PEN[10] を始めとする実行環 境 が 作 ら れ て き た が， 新 DNCL に つ い ても 筆 者 の PyPEN[11] や 「つ ち の こ」 [12]，wPEN[13]， 「どんくり」 [14] などの実行環境が対応している。
だったら DNCL で実習をやればちょうど入試対策にもなるのではないか， と考えることは自然ではあるが， 筆者はそれをするべきではないと考えている。 もちろんアルゴリズムだけに着目すれば， これらの環境でも十分なことができるのではあるが， その先， つまりプログラミングを使って何らかの問題解決につなげようとしたときに， ある程度以上進めなくなってしまうからである。 この件については， 大学入試センター試験問題調査官も同じ趣旨の発言 [15] をしている。
もちろん入試に対応していくことは我々の現実的な責務である。 しかしそれは教科書で用いられているプログラム言語で学習することで達成できるものだと考えている。 実際， 井手の最近の研究
4

表 1 各教科書で用いられているプログラム言語

使用言語

出版社

書名

東書

新編情報 I東書

情報 I Step Forward!

PJV◯ ◯

実教

高校情報 I Python

実教

高校情報 I JavaScript

実教

最新情報 I

実教

図説情報 I開隆堂

実践 情報 I

数研

高等学校 情報 I（理論編）◯（実習編）◯ ◯ ◯ ◯◯◯◯◯◯◯ ◯ ◯

巻末実習◯

◯

数研

情報 I Next◯ ◯ ◯日文情報 I◯
巻末資料

日文

情報 I 図解と実習

第一高等学校 情報 IS◯ ◯◯
◯

巻末資料

◯

※ P=Python， J=JavsScript， V=VBA， S=Scratch

参考文献
[1]

Sublime HQ Pty Ltd. “Sublime Text”. https://subliimetext.com/.

[2]

Don Ho. “Notepad++”. https://notepad-plus-plus.org/.

[3]

Sakura Editor Organization. “サクラエディタ”. https://sakura-editor.github.io/.

[4]

Microsoft. “Visual Studio Code”. https://code.visualstudio.com.

[5]

OpenJS Foundation. “Node.js”. https://nodejs.org/ja/.

[6]

アシアル情報教育研究所. “Monaca Education”. https://edu.monaca.io/.

[7]

情報処理学会. “大学入学共通テストへの 「情報」 の出題について”. https://www.ipsj.or.
jp/education/edu202012.html, 2020.

[8]

大 学 入 試 セ ン タ ー. “令 和 7 年 度 以 降 の 試 験 に 向 け た 検 討 に つ い て—サ ン プ ル 問 題”.
https://www.dnc.ac.jp/kyotsu/shiken_jouhou/r7ikou.html, 2021.

[9]

大学入試センター. “共通テスト手順記述標準言語 (DNCL) の説明”. https://www.dnc.ac.
jp/albums/abm00040701.pdf, 2021.
5

[10] 中村 亮太, 西田 知博, 松浦 敏雄. “プログラミング入門教育用学習環境 PEN”. 情報処理学会
研究報告コンピュータと教育 (CE), Vol.2005-CE-081(104), 2005.
[11]中西 渉. “プログラミング学習環境 PyPEN の開発”.

日本情報科教育学会 第 13 回研究報

告書, (5), 2019.
[12] 大門 巧. “つちのこ”. https://t-daimon.jp/tsuchinoko/.
[13] 下村 亮太, 中西 通雄, 松浦 敏雄, 西田 知博, 安留 誠吾, 宮本 友介. “初学者用ブロックプログラミング環境 wPEN の改良”.

情報処理学会研究報告コンピュータと教育 (CE),Vol.2021-CE-159(5), 2021.
[14] 本多 佑希, 漆原 宏丞, 兼宗 進. “試験問題記述言語 DNCL の改定に合わせた 「どんくり」 システムの修正と検討”. 情報処理学会研究報告コンピュータと教育 (CE), Vol.2021-CE-159(2),2021.
[15] 水 野 修 治. “大 学 入 学 共 通 テ ス ト 新 科 目 「情 報 I」 ～ サ ン プ ル 問 題 等 と そ の ね ら い ～”.
https://www.wakuwaku-catch.net/kouen210801/04/.
[16] 井手 広康. “大学入学共通テストを見据えたプログラミング教育の言語選択に関する考察”.

情報処理学会研究報告コンピュータと教育 (CE), Vol.2022-CE-163(14), 2022.
[17] 情報処理学会情報入試委員会. “情報関係基礎 アーカイブ”. https://sites.google.com/a.
ipsj.or.jp/ipsjjn/resources/JHK, 2021.

6