[ce81] プログラミング入門教育用学習環境pen (発表資料)

18
プログラミング入門教育用学習環境 PEN 大阪市立大学 大学院創造都市研究科 中村 亮太 / 松浦 敏雄 大阪学院大学 情報学部 西田 知博

Upload: ryota-nakamura

Post on 01-Jul-2015

439 views

Category:

Education


0 download

TRANSCRIPT

Page 1: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

プログラミング入門教育用学習環境 PEN

大阪市立大学 大学院創造都市研究科中村 亮太 / 松浦 敏雄

大阪学院大学 情報学部 西田 知博

Page 2: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

背景

中学、高校、大学での情報処理教育リテラシー中心

プログラミング教育の重要性を認識している所もあるが 現実にはあまり実施されていない

習得が難しいと思われている英語のような表現ちょっとしたミスによる文法エラーの発生

習得に時間がかかってしまう

Page 3: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

プログラミング教育の目標

職業的なプログラマの養成 ×プログラミングとは何かを理解すること ○

ここでの[プログラミング]学習とはルールに従ってプログラムを記述することの体験

知識状態や考え方を明確にする力をつけられる記述したプログラムを実際に動かしてみる

コンピュータはプログラムの指示通りにしか動かないプログラムのデバッグ作業の体験

自ら発見するという学習そのものであり、

自立的な思考力を養える

Page 4: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

本研究の目的

初学者向けプログラミング学習環境(PEN)の作成

PENの特徴

容易に理解できるプログラミング言語を採用とっつきにくさの解消

プログラム入力支援機能プログラムを作成しやすくする工夫

プログラム実行制御/状態表示機能

プログラムの実行を観察できる工夫

Page 5: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

初学者向けプログラミング学習環境 PEN

Page 6: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

プログラミング言語

入試用手順記述言語に準拠DCNL : 試験用手順記述標準言語

大学入試センター 「情報関係基礎」

TUATLE : 試験用手順記述標準言語 

東京農工大学の入試用記述言語

xDNCL変数の宣言を追加組み込み関数

★日本語で表現されている

★付加的な説明がなくても理解できる

Page 7: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

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: を実行する

Page 8: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

プログラム入力支援機能

日本語表記のプログラムを間違わずに入力するのは難しい

プログラムの入力を補助するための工夫プログラム入力支援ボタン

インデントの自動挿入

Page 9: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

プログラム入力支援ボタン

Page 10: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

プログラム入力支援ボタンのカスタマイズ

必要なボタンだけを配置することが可能

初学者向け入力支援ボタン@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@整数 ≪変数≫

支援ボタン定義ファイル:

表示例:

Page 11: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

プログラムの実行制御/状態表示機能

実行制御ボタン 実行速度調節バー 状態表示ラベル

実行箇所マーカー

変数表示画面

Page 12: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

評価

入力支援機能の有効性を検証するための予備実験

プログラムソースを入力入力支援ボタンを使用した場合 / 使用しなかった場合

被験者はキー操作、プログラミングに習熟した3名

2種類のプログラム(各25行)を入力

実験には教育支援システム(SOLAR-CATS)に組み込まれたPENを使用

キーやマウス操作の記録再生が行える(ご協力:鹿児島大学 山之上先生)

Page 13: [CE81] プログラミング入門教育用学習環境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 )

Page 14: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

授業での使用例(1)

大阪学院大学 情報学部 1回生を対象 (2005年度前期)プログラミング入門(座学)

プログラミング演習

全13回のうち4回の講義および演習でPENを使用

C言語を学習する前に導入として使用

授業の最終日にアンケート調査

Page 15: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

アンケート結果 (1)初めて使いましたがなかなか面白いものだと思いました。

全てというわけではないですが、ある程度は解りました。

日本語環境だったので、C言語よりわかりやすかった。

まだ自分の力でできないので楽しさは、わかりません。楽しくなるようになったらいいなと思ってます

プログラミング自体は、PENを使ってからの方が(何も知らない人間にした)わかりやすいかと思います。まず日本語でやり、その意味を理解してからでないといきなりC言語でプログラムを行っても、圧倒的に出来ない人の方が多いと思う。

C言語をメインにやると思っていたためつまらなかった。

Page 16: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

授業での使用例 (2)

大阪市立大学 2部学生を対象 (2005年度前期)共通教育科目「情報処理 I」(全13回 180分/回)

コンピュータリテラシーの習得を目的HTML, 表計算, ワープロ ...etc...

最後の3回の授業でPENを使用(最後1回は自習)昨年度まではLaTeXの使い方について演習していた

全授業終了後にアンケート調査もっとも興味深かったものは何か?

全34人中12人がプログラミングと答えた

Page 17: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

アンケート結果 (2)プログラミングをすることで、自分の都合のいいように問題を処理することができる楽しさを学んだ。

プログラミングが全く出来なかったのに先週メールで提出したプログラムの課題や、今日のテストのプログラムが一人で出来て、エラーもなく実行できたので嬉しかったです。

PENを使った作業は新鮮で面白かった。PENは本当におもしろかったと思う。パズルみたいだった

Page 18: [CE81] プログラミング入門教育用学習環境PEN (発表資料)

おわりに

初学者向けプログラミング学習環境の作成入力支援ボタンの有効性を検証実際のプログラミング演習に使用

今後の課題言語仕様の拡張

関数呼び出し, グラフィカルな出力, ファイルI/O ...etc...

プログラミング初学者に対して有効性の検証

プログラミング教育での使用経験を積み重ねる

PENの配布 - http://lyen.mine.nu/index.cgi/Thesis