Upload
ryota-nakamura
View
439
Download
0
Embed Size (px)
Citation preview
プログラミング入門教育用学習環境 PEN
大阪市立大学 大学院創造都市研究科中村 亮太 / 松浦 敏雄
大阪学院大学 情報学部 西田 知博
背景
中学、高校、大学での情報処理教育リテラシー中心
↓
プログラミング教育の重要性を認識している所もあるが 現実にはあまり実施されていない
習得が難しいと思われている英語のような表現ちょっとしたミスによる文法エラーの発生
習得に時間がかかってしまう
プログラミング教育の目標
職業的なプログラマの養成 ×プログラミングとは何かを理解すること ○
ここでの[プログラミング]学習とはルールに従ってプログラムを記述することの体験
知識状態や考え方を明確にする力をつけられる記述したプログラムを実際に動かしてみる
コンピュータはプログラムの指示通りにしか動かないプログラムのデバッグ作業の体験
自ら発見するという学習そのものであり、
自立的な思考力を養える
本研究の目的
初学者向けプログラミング学習環境(PEN)の作成
PENの特徴
容易に理解できるプログラミング言語を採用とっつきにくさの解消
プログラム入力支援機能プログラムを作成しやすくする工夫
プログラム実行制御/状態表示機能
プログラムの実行を観察できる工夫
初学者向けプログラミング学習環境 PEN
プログラミング言語
入試用手順記述言語に準拠DCNL : 試験用手順記述標準言語
大学入試センター 「情報関係基礎」
TUATLE : 試験用手順記述標準言語
東京農工大学の入試用記述言語
xDNCL変数の宣言を追加組み込み関数
★日本語で表現されている
★付加的な説明がなくても理解できる
xDNCLの記述例 (BMI算出)
1: 実数 sintyo, taiju, bmi /* 変数の宣言 */ 2: 「身長を入力してください(cm)」 を印刷する 3: sintyo ← input() /* キーボードから入力 */ 4: 5: 「体重を入力してください(kg)」 を印刷する 6: taiju ← input() /* キーボードから入力 */ 7: 8: bmi ← taiju ÷ ( ( sintyo ÷ 100 ) × ( sintyo ÷ 100 ) ) 9: 10: もし bmi < 20 ならば11: | 「痩せています」を印刷する12: を実行し,そうでなくもし bmi < 24 ならば13: | 「正常です」を印刷する14: を実行し,そうでなくもし bmi < 26.5 ならば15: | 「やや肥満です」を印刷する16: を実行し,そうでなければ17: | 「肥満です」を印刷する18: を実行する
プログラム入力支援機能
日本語表記のプログラムを間違わずに入力するのは難しい
プログラムの入力を補助するための工夫プログラム入力支援ボタン
インデントの自動挿入
プログラム入力支援ボタン
プログラム入力支援ボタンのカスタマイズ
必要なボタンだけを配置することが可能
初学者向け入力支援ボタン@48@204,204,204もし~そうでなければ@12@140,220,200@もし ≪条件式≫ ならば<br>
| <br>を実行し,そうでなければ<br> | <br>を実行する~の間,繰り返す@12@180,220,200@≪条件式≫ の間,<br> | <br>を繰り返す入力@6@255,255,204@≪変数≫ ← input()出力@6@255,255,204@≪出力文≫ を印刷する代入@6@255,255,204@≪変数≫ ← ≪式≫整数@6@255,204,255@整数 ≪変数≫
支援ボタン定義ファイル:
表示例:
プログラムの実行制御/状態表示機能
実行制御ボタン 実行速度調節バー 状態表示ラベル
実行箇所マーカー
変数表示画面
評価
入力支援機能の有効性を検証するための予備実験
プログラムソースを入力入力支援ボタンを使用した場合 / 使用しなかった場合
被験者はキー操作、プログラミングに習熟した3名
2種類のプログラム(各25行)を入力
実験には教育支援システム(SOLAR-CATS)に組み込まれたPENを使用
キーやマウス操作の記録再生が行える(ご協力:鹿児島大学 山之上先生)
操作記録の解析結果
入力支援ボタンによりキー入力数が減少Program1 : 1,004 -> 709 (29.38%減)
Program2 : 964 -> 549 (43.05%減)支援ボタンを使用しない方が速く入力できた
被験者全員がキー入力に習熟しているから
タイプミスによる文法エラーの発生を 減らせる可能性があると思われる
Pr ogr am1 Pr ogr am2支援ボタン有無 無し 有り 無し 有り
入力間違い箇所 2. 67 1. 33 0. 33 0. 33
285 302 264 293
3 55 0 33
216 120 200 148
キー入力総数 1, 004 709 964 549
消去打鍵数 58 72 52 43
漢字キー打鍵数 55 26 49 19
入力支援ボタン押回数 0 21 0 21
全入力時間( s )
マウス操作時間( s )
キー操作時間( s )
授業での使用例(1)
大阪学院大学 情報学部 1回生を対象 (2005年度前期)プログラミング入門(座学)
プログラミング演習
全13回のうち4回の講義および演習でPENを使用
C言語を学習する前に導入として使用
授業の最終日にアンケート調査
アンケート結果 (1)初めて使いましたがなかなか面白いものだと思いました。
全てというわけではないですが、ある程度は解りました。
日本語環境だったので、C言語よりわかりやすかった。
まだ自分の力でできないので楽しさは、わかりません。楽しくなるようになったらいいなと思ってます
プログラミング自体は、PENを使ってからの方が(何も知らない人間にした)わかりやすいかと思います。まず日本語でやり、その意味を理解してからでないといきなりC言語でプログラムを行っても、圧倒的に出来ない人の方が多いと思う。
C言語をメインにやると思っていたためつまらなかった。
授業での使用例 (2)
大阪市立大学 2部学生を対象 (2005年度前期)共通教育科目「情報処理 I」(全13回 180分/回)
コンピュータリテラシーの習得を目的HTML, 表計算, ワープロ ...etc...
最後の3回の授業でPENを使用(最後1回は自習)昨年度まではLaTeXの使い方について演習していた
全授業終了後にアンケート調査もっとも興味深かったものは何か?
全34人中12人がプログラミングと答えた
アンケート結果 (2)プログラミングをすることで、自分の都合のいいように問題を処理することができる楽しさを学んだ。
プログラミングが全く出来なかったのに先週メールで提出したプログラムの課題や、今日のテストのプログラムが一人で出来て、エラーもなく実行できたので嬉しかったです。
PENを使った作業は新鮮で面白かった。PENは本当におもしろかったと思う。パズルみたいだった
おわりに
初学者向けプログラミング学習環境の作成入力支援ボタンの有効性を検証実際のプログラミング演習に使用
今後の課題言語仕様の拡張
関数呼び出し, グラフィカルな出力, ファイルI/O ...etc...
プログラミング初学者に対して有効性の検証
プログラミング教育での使用経験を積み重ねる
PENの配布 - http://lyen.mine.nu/index.cgi/Thesis