DNCL による授業実践および「情報 I」への転換
中西渉
watayan@meigaku.ac.jp
名古屋高等学校2022-02-19

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

1 / 24

はじめに

1

はじめに

2

DNCL について

3

授業実践

4

「情報 I」に向けての展望

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

2 / 24

はじめにはじめに
2022 年度「情報 I」開始
→ プログラミングが必須
どのような言語を使うか「教員研修用資料」は Python 寄り
教科書見本 →Python，JavaScript，VBA，Scratch あたり

DNCL は?

「情報関係基礎」で使用
試作問題・サンプル問題で使用（新 DNCL）

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

3 / 24

DNCL について

1

はじめに

2

DNCL について

3

授業実践

4

「情報 I」に向けての展望

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

4 / 24

DNCL について

現在までの経緯

現在までの経緯
DNCL とは大学入試センター試験・大学入学共通テスト「情報関係基礎」プログラミング問題で使用されてきた，日本語ベースの擬似言語
1997 年 BASIC，COBOL，Pascal で出題
1998 年 日本語ベースの擬似言語「読めばわかる」
2002 年 仕様公開
2003 年 DNCL と命名
2011 年 仕様が事前公開
2021 年 共通テストにあわせて仕様調整
2025 年 新 DNCL(?)
中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

5 / 24

DNCL について

現在までの経緯

現 DNCL新 DNCL（？）

n ←【外部からの入力】
n>1 の間，│ もし n%2=0 ならば│ │ n ← n÷2│ を実行し，そうでなければ│ │ n ← 3*n+1│ を実行する│ n を表示するを繰り返す

n=【外部からの入力】
n>1 の間繰り返す:│ もし n%2=0 ならば:
│ └ n=n/2│ そうでなければ:│ └ n=3*n+1└ 表示する (n)中西渉 (名古屋高等学校)

Python だと…
n = int(input())
while n > 1:
if n % 2 == 0:n = n / 2else:
n = 3 * n + 1
print(n)日本情報科教育学会東海中部支部総会

2022-02-19

6 / 24

DNCL について

実行環境

実行環境
PEN(Programming Environment for Novice) が TUATLE に対応
変数宣言などを追加→ xDNCL と命名
入力支援ボタン中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

7 / 24

DNCL について

実行環境

PenFlowchart
フローチャート ↔ プログラム実行部分は PEN そのまま

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

8 / 24

DNCL について

実行環境

PEN，PenFlowchart は Java アプリケーション
インストールの手間
JRE を敬遠する空気→Web ブラウザ上の DNCL 学習環境
WaPEN
どんくりwPEN
Tetra，XTetra
新 DNCL への対応も
PyPEN
つちのこ…

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

9 / 24

授業実践

1

はじめに

2

DNCL について

3

授業実践

4

「情報 I」に向けての展望

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

10 / 24

授業実践

勤務校の環境勤務校の環境名古屋高等学校
キリスト教主義
私立男子校（併設型中高一貫校）
高校 12 クラス/学年，中学 6 クラス/学年

2003 年度に間に合うようにメディアセンター設置
情報教室 3，プレゼンテーションルーム 1
生徒端末は Linux
ネットブート →Clonezilla によるディスクイメージ配布
アカウントは LDAP で管理
ホームディレクトリは NFS でマウント

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

11 / 24

授業実践

PEN 以前PEN 以前2004 年度…OpenOffice.org の表計算マクロ
セルと変数のやり取りが（VBA より）面倒→ 穴埋め形式で実習

いじってはいけないところを間違って編集するなどのトラブル→ 生徒には不評
中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

12 / 24

授業実践

PEN 以前2005 年度…Yabasic
テキストエディタで記述
コンソールで実行

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

13 / 24

授業実践

PEN

PEN
「教育用プログラミング言語に関するワークショップ 2006」

JavaJavaScript
C/C++
BasicLogo
Lisp
バンダイ「ワンダーボーグ」
Squeak中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

言霊
ひまわり/なでしこ
ドリトル

Tonyu
PENHSP
Rosetta
Viscuit2022-02-19

14 / 24

授業実践

PEN

2006 年度から PEN を使用→ 生徒には好評
すべてが 1 画面
入力支援ボタン
日本語ベース

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

15 / 24

授業実践

PenFlowchart

PenFlowchart
PEN で生徒がよくやる間違い
正しいプログラムよくある間違いもし x=0 ならば│「ゼロ」を表示するを実行するもし x=0 ならば「ゼロ」を表示する

日本語的には正しいのだが…
構文を壊せないようにしたい→ フローチャートでプログラムを生成しては?
→PenFlowchart の開発
中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

16 / 24

授業実践

PenFlowchart

PenFlowchart の実行画面

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

17 / 24

授業実践

WaPEN

WaPENPenFlowchart は比較的好評だがフローチャートの画面が別インストールの手間→自宅でやりづらい→Web アプリケーション化

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

18 / 24

授業実践

PyPEN

PyPEN
2019 夏某氏 WaPEN の構文を Python っぽくしたの作ってみない?
筆者 作ってみた

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

19 / 24

授業実践

PyPEN

まさか試作問題・サンプル問題がその形式だとは…

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

20 / 24

「情報 I」に向けての展望

1

はじめに

2

DNCL について

3

授業実践

4

「情報 I」に向けての展望

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

21 / 24

「情報 I」に向けての展望「情報 I」に向けての展望
教科書見本で用いられている言語Python
JavaScript
VBA
Scratchどれを使っても結果に大差はない [24][24] 大学入学共通テストを見据えたプログラミング教育の言語選択に関する考察
井手広康 情報処理学会研究報告コンピュータと教育 (CE) 2022-CE-163 No.14

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

22 / 24

「情報 I」に向けての展望

試作問題・サンプル問題では新 DNCL→ 新 DNCL で演習するといい?（入試対策?）
少し懸念していることは，DNCL だけを使ってプログラミングの授業が行われることがないように，ということです。やはり授業では，教科書で使われている実用的なプログラム言語を使っていただきたい。
（略）プログラミ
ングの授業は，教科書に掲載されてる言語を使って教えることになると思いますが，いずれかのプログラム言語で学んだ生徒であれば，この DNCL の仕様を知らなくても，問題の中に出てくるプログラムは，無理なく理解できると考えていますし，その逆，つまり DNCL は特異な仕様ではありませんので，問題の中のプログラムを日頃授業で使ってる言語で試すこともできると考えています。
[25] 大学入学共通テスト 新科目「情報 I」～サンプル問題等とそのねらい～
水野修治（大学入試センター問題調査官）
中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

23 / 24

「情報 I」に向けての展望

筆者の DNCL 観

DNCL「だけ」の授業ではいけない「情報 I」の学習活動にプログラミングが活かされるべき→ 実用的な言語を使いこなせるようにしたい
導入としての意味はある
思ったことを書くための補助輪
PyPENっていろんなことできますよね

その通りでもPythonに踏み出せばもっといろんなことができる

中西渉 (名古屋高等学校)

日本情報科教育学会東海中部支部総会

2022-02-19

24 / 24