狠狠撸

狠狠撸Share a Scribd company logo
高等学校での「プログラミング」教育の導入 – PEN を用いて

                                 中村 亮太*             西田 知博**              松浦 敏雄***
     *大阪府立泉北高等学校                     **大阪学院大学 情報学部 ***大阪市立大学 大学院創造都市研究科
                                     ryota-n@semboku.osaka-c.ed.jp

                                                            概要
      ?プログラミングは一般に難しいものと考えられ,高等学校において教えられていることはまれである.
      しかし,適切なサポートツールを用意することで,生徒が比較的短い時間でプログラミングとは何かを学
      び,コンピュータの本質を理解することは可能であると考える.そこで我々は,大阪府立泉北高等学校に
      おいて,1 年生を対象とした総合科学 I,および 2 年生を対象とした情報 A の授業で,初学者用プログラ
      ミング環境 PEN を用いてプログラミング教育を実践した.ここでは,その授業の内容とアンケート結果
      および考査結果を報告する.



                        Programming Education at a High School with PEN
                  Ryota Nakamura*              Tomohiro Nishida**             Toshio Matsuura***
    *Semboku High School         **Faculty of Informatics, Osaka Gakuin University            ***Graduate School for
                                      Creative Cities, Osaka City University

                                                          Abstract
      Programming is generally considered a dif?cult subject and often not taught at all in high schools. However,
      with an appropriate support tool, we believe that it will not take a long time for students to understand what is
      programming and essential characteristics of computers. One of the authors conducted programming lessons in
      the subject of “Comprehensive Science I” (for ?rst grade) and “Information A” (for second grade) at Semboku
      High School with PEN: Programming Environment for Novices. In this paper, we report the lessons and the
      results of the questionnaire and the examination.



1    はじめに                                                       ログラマの養成を目指すのではなく,プログラミン
                                                                グとは何かを理解し,コンピュータの本質を理解す
    情報教育は,高等学校を始めとした初等中等教育                                      ることと定めるならば,適切なサポートツールを用
でも行われるようになり,その裾野は広がってきて                                         意することで,比較的短い時間でこの目標を達成で
いる.しかし,その内容は「情報自体の理解」を重                                         きると考えた.我々は,そのツールとして初学者用
視し,コンピュータ等の情報機器の利活用教育が中                                         プログラミング環境 PEN (Programming Environment
心となっているのが現実である.しかし,社会に普 for Novices)[2] を構築し,2005 年度から大学の授業
及している情報システムの特性を理解するためは, において用い,実践を重ねてきた [3][4][5].その結
中等教育の段階から,単に使うだけではなく,プロ 果として,文系の学生を対象とした 3 コマ程度の短
グラミングなどを通じて,コンピュータの自動処理                                         期間の授業において,JavaScript を用いたクラスと
のメカニズムを自分で体験することにより,
                   「情報処                                         比べてプログラミング理解度が高くなるなど,PEN
理」の本質を学ぶことも不可欠である [1].                                          のプログラミング入門教育における有用性が確認で
    一方で,プログラミングは大学においてでさえ教                                      きている.
育されない場合が多い.この理由としては,プログラ                                           これらの実践は,大学においてのものであるが,
ミング言語は難しいものであり,その習得には多く                                         我々は,上に述べたようにプログラミングの入門教
の時間が必要と思われていることが挙げられる.し                                         育は,中学,高校などより早い時期に行うことが望
かし,プログラミングの入門教育の目標を,職業プ
ましいと考える.そこで,2007 年度からはいくつか
                                                 表 1: 総合科学の目標
の高校においても,PEN を用いた実践を行っている.
                                     学年      科目名       単位       目標
ここでは,大阪府立泉北高等学校での PEN を活用し           1年     総合科学 I      2   プレゼンテーション能
た授業実践について紹介する.                                              力の向上,論理的思考
                                                            の育成
                                     2年     総合科学 II     1   与えられた課題を解決
2 PEN の概要                                                   する能力の育成
                                     3年     総合科学 III    2   自ら研究テーマを設定
    図 1 は,初学者向けプログラミング学習環境 PEN                              し解決する能力の育成
を実行した時の画面表示例である.
    PEN には入力ミスによる文法エラーを減らすため,
制御構造等をプログラム入力支援ボタンにより入力             3.1.1   実践内容
することができる.また,プログラムの実行過程を
                                      総合科学 I は年間約 45 回 (65 分/回) の授業がある
詳しく観察できるように,プログラムの一時停止?
                                    が,7,9 月の計 6 回で PEN を用いたプログラミング
一行実行などの実行制御機能,実行中の各変数の値
                                    の授業を行った (図 2).各授業は,まず例題を生徒
を表示する変数表示機能を有している [3][4].また,
                                    に入力してもらいプログラムを実行してもらうこと
プログラム言語には,センター試験「情報関係基礎」
                                    から始め,その後,掲示用画面で一行実行を用いて
の出題用に作られた日本語でキーワード等を表現す
                                    実行し,それぞれの制御構造の意味などを説明する
る手順記述言語 DNCL を拡張した xDNCL を用いて
                                    形で進めた.
いる.
                                      初回の授業では,プログラムは上から順に逐次実
                                    行されるということを理解してもらうため,文字表
3     泉北高校での授業実践                    示や変数を用いた計算などの逐次処理を例題とし,
 PEN を用いたプログラミング教育の実践は,2005         一行実行やスロー実行の機能を用いて解説した.
年度から大阪学院大学,大阪市立大学,大阪大学,京              2 回目の授業では,バグのあるプログラム (図 3)
都ノートルダム女子大学など様々な大学で行ってい             を示し,一行実行で変数の値が変化する様子を記録
るが,2007 年度からは高校でも,その実践を開始し          させた.また,掲示資料で生徒の記述したものを確
た.今回は,大阪府立泉北高等学校で行った実践に             認しながら,どの箇所に誤りがあるのか,どのよう
ついて報告する.                            にすれば正常に動くようになるのかを考えさせ,バ
    泉北高校では国際理解の学習中心の国際文化科 1         グのあるプログラムを正常に動作するように修正さ
学年 4 クラス (40 名/クラス),理数系科目の学習中       せた.
心の総合科学科 1 学年 3 クラス (40 名/クラス) の 2    3 回目の授業では,導入として生徒に日常生活の
学科を設置している.                          中での「条件による行動の選択」について考えさせ,
    このうち 2007 年度は,1 年生総合科学科の生徒対     その後,プログラム上での条件分岐の説明を行った.
象の「総合科学 I」,2 年生全生徒対象の「情報 A」         課題は所持金と欲しいものの金額を入力し購入でき
においてプログラミング教育を行った.                  るかを判別するプログラムなど,身近なものを題材
                                    に選んだ.また,4 回目の授業で乱数の説明を行い,
3.1   総合科学 I                        条件分岐と組み合わせ簡単なゲームを作成した.
    「総合科学」とは総合科学科の生徒を対象とした、           5 回目の授業では,計算機は同じ処理を何度も繰
生徒自らがテーマを設定し研究を行うことを目的と             り返すことが得意であることを理解させるため,範
した泉北高校の学校設定科目である (表 1).今回,1         囲指定の加算型繰り返し文 (for 文) を用いた課題を
年生の総合科学 I において PEN を用いたプログラミ        提示した.
ング教育を導入した.このうち,2 クラスを筆者の              最後の授業では,コンピュータとプログラムを用
1 人が担当し,残り 1 クラスは数学科の先生が担当          いれば,様々な応用が可能であることを理解しても
した.                                 らうため,描画命令を用いて 1 次関数や 2 次関数と
                                    いった数学的なグラフを描画する課題を与えた.
図 1: PEN の実行画面



3.1.2 評価                       3.2     情報 A
 生徒の理解度に合わせ授業を展開するため,各授         2 年生の国際文化科 4 クラスおよび総合科学科 3
業終了にアンケート調査を行った (図 4).なお,第 1   クラスの「情報 A(1 単位)」において,プログラミン
回目はアンケートに理解度を調査する項目を入れて        グの授業を行った.7 クラスの授業はすべて筆者の
いなかったため,データは取れていない.各授業の        1 人が担当した.
理解度はおおむね良好だったが,5 回目の繰り返し
                               3.2.1   実践内容
命令で「理解できた」と「だいたい理解できた」の
合計が半数を割っている.繰り返しの概念は,大学          2 年生の情報 A は年間約 21 回 (65 分/回) の授業が
生対象の授業でも理解度が高くないという結果が得        あり,12~2 月の 5 回もしくは 6 回で PEN を用いた
られており [5],今後は,課題の難易度や時間数につ     プログラミングの授業を行った (図 5).授業内容は
いての検討が必要である.                   総合科学 I とほぼ同じであるが,その際の反省を生
 しかし,アンケートの自由記述においては, 難し
                    「    かし,第 1 回目の授業は「身の回りには色々な情報
い问题が増えてきて,解くのに時間がかかったけど, 機器があるが,なぜ動いているか?」という問いか
それが解けたときの喜びが大きかったです.面白かっ けから入り,情報機器を支えるプログラムの重要性
たです.
   」や「パソコン相手にこれほど細かい命令を, について考えてもらった.また,配布資料はフロー
自分自身でできたのでとても楽しかった.できるこ チャートの提示を加えるなどの修正を行い,掲示資
とは知っていても,自分でできる機会があるとは思っ       料はプレゼンテーションソフトを用い,アニメーショ
てなかったので,いい勉強になった.
                」といった肯定        ンを活用したものとした.
的な意見もいくつか見られた.一方では, なぜプロ
                  「              授業の進め方は,例題を入力し実行するまでは総
グラミングをやるんだろう」という意見も少なから        合科学 I の時と同じであるが,掲示用画面には事前
ずあり,プログラミングの重要性の説明が不十分で        に作成した掲示資料で各命令や制御構造の意味を説
あったことが反省点として残った.               明した後,教員用のコンピュータで例題を再度実行
                               し,解説する方法に変更した.また,PEN のプログ
                               ラム入力支援ボタンのカスタマイズ機能を用いて,
練習问题:変数 x, y の値を入れ替えるプログラムを作成し
                                        たのだが,実行した結果は x, y ともに 10 となってしまう.
    1. 出力命令,変数と代入文                      プログラムの間違いを見つけ正しく動作するようにせよ.
     例題 1 Hello World
                                              1   :   整数    x, y
     課題 1 自己紹介の出力
                                              2   :   x ←   5
     例題 2 変数宣言と値の代入                           3   :   y ←   10
                                              4   :   x ←   y
     課題 2-1 算術演算と代入                           5   :   y ←   x
     課題 2-2 入力命令と算術演算                                                      
     課題 2-3 三角形の面積を求める                       図 3: 変数の値を入れ替えるプログラム

    2. 変数に代入されている値の入れ替え
     例題 3 トレース作業によるバグの発見
     課題 3-1 rei003 のバグ修正
     課題 3-2 3 つの変数に代入された値の入れ替え
    3. 条件分岐,2 分岐の条件分岐
     例題 4 10 より大きい数の判断
     課題 4-1 正の数の判断
     課題 4-2 偶数の判断
     課題 4-3 購入できるかの判断
     例題 5 0 より大きいか以下かの判断
     課題 5-1 偶数か奇数の判断                                  図 4: 各授業の理解度
     課題 5-2 購入できるかできないかの判断
     課題 5-3 5 段階成績の表示
                                     授業以外に使用することのない命令や制御構造を削
    4. ランダムな数
                                     除しプログラミング環境を簡素化した.
     例題 6 乱数について
     課題 6-1 ハイ&ローゲーム                 3.2.2   評価
    5. 範囲指定の加算型繰り返し命令 (for 文)
                                        情報 A の後期期末考査においてプログラミングに
     例題 7 1~10 の表示
                                     関する问题を解答選択式で 15 問出題した (図 6,7,8).
              ∑
              10

     課題 7-1         Si を求める          図 6 に示した问题ではプログラムコードが書けない
              i=1                    プログラマ志願者を見分ける手法として提唱されて
              ∑
              n
                                     いる FizzBuzz 问题で,生徒にプログラムを読み解
     課題 7-2         Si を求める
                                     く力がどれだけ身に付いたかを測るために出題した.
                                                  ∑
              i=1                                 x
     課題 7-3 0~100 までの乱数を 20 回表示する    図 7 に示した问题では   Si を求めるプログラムを
     課題 7-4 FizzBuzz 问题                                        i=1
                                     2 種類用意した.このプログラムは繰り返しの加算
     課題 7-5 九々の表を表示する
                                     処理で,カウンタ変数をインクリメントする箇所に
    6. グラフの描画,描画命令
                                     よってカウンタ変数の初期値および条件式が変化す
     例題 8 1 次関数の描画                   ることが理解できているかを問う问题で,繰り返し
     課題 8-1 点の描画                     処理の理解度を測るために出題した.図 8 に示した
     課題 8-2 y = 2x2 ? 5 の描画          问题は正の整数 N の約数を求めるプログラムである.
     課題 8-3 y = ax2 + bx + c の描画     この问题はプログラムの大部分を解答させるもので,
     課題 9 描画命令を用いて絵を作成               问题の意味を読み取り,プログラムを一から作成す
                                   
                                     る力を測るために出題した.
        図 2: 総合科学 I の授業構成             試験の各问题毎の正答率は表 2 の通りで,全設問
                                     において,理数系中心の総合科学科の正答率が国際
文化科を上回る結果となった.問 1~5 の FizzBuzz
                                   问题では,問 3 までの正答率が 70%を超え,多くの
                                   生徒が一定の理解をしていることがわかる.問 6~
                                  では,プログラム 2 においてのカウンタ変数の初
                                   10
    1. 出力命令,変数と代入文                 期値や繰り返し条件を答えさせる問 9,10 での正答率
      例題 1 Hello World             が低いという結果となった.プログラム 1 での繰り
      課題 1 自己紹介の出力                 返し条件を答えさせる問 7 の正答率も低く,繰り返
      例題 2 変数宣言と値の代入               し処理については更なる教育内容の改善が必要であ
      課題 2-1 算術演算と代入               ることが伺えた.問 11~15 は,プログラムの大部
      課題 2-2 入力命令と算術演算             分が空欄として出題されるという難しい内容であっ
      課題 2-3 三角形の面積を求める            たが,全問正解した生徒が 18 名 (6.6%),4 問正解し
    2. 変数に代入されている値の入れ替え            た生徒が 7 名 (2.6%) いた.

      例題 3 トレース作業によるバグの発見
      課題 3-1 rei003 のバグ修正                      表 2: 学科別正答率
                                       設問番号   国際文化科 総合科学科        全体
      課題 3-2 3 つの変数に代入された値の入れ替え
                                        問1      72.1%    78.3%   74.8%
    3. 条件分岐,2 分岐の条件分岐
                                        問2      74.7%    82.5%   78.1%
      例題 4 赤点 (40 点未満) の判断
                                        問3      65.6%    85.8%   74.5%
      課題 4-1 正の数の判断
                                        問4      28.6%    47.5%   36.9%
      課題 4-2 偶数の判断
                                        問5      41.6%    64.2%   51.5%
      課題 4-3 購入できるかの判断
                                        問6      69.5%    86.7%   77.0%
      例題 5 赤点 (40 点未満) かどうかの判断
                                        問7      49.4%    69.2%   58.0%
      課題 5-1 偶数か奇数の判断
      課題 5-2 購入できるかできないかの判断
                                        問8      69.5%    80.0%   74.1%
                                        問9      37.0%    52.5%   43.8%
    4. 条件分岐の入れ子構造
                                       問 10     26.6%    40.0%   32.5%
      例題 6 遊園地の入園料表示
                                       問 11     60.4%    76.7%   67.5%
      課題 6-1 5 段階成績の表示
                                       問 12     38.3%    50.0%   43.4%
    5. 繰り返し命令 (while 文)
                                       問 13      6.5%    16.7%   10.9%
      例題 7 1~10 の表示
                                       問 14     15.6%    18.3%   16.8%
      課題 7-1 0~100 までの偶数の表示
                                       問 15     27.3%    44.2%   34.7%
      課題 7-2 0~n までの表示
               ∑
               10                      受験者数     154 人    120 人   274 人
      課題 7-3         Si を求める
               i=1

               ∑
               n

      課題 7-4         Si を求める
               i=1

      課題 7-5 n! を求める               4    おわりに
    6. 特別課題                            ここでは、大阪府立泉北高等学校の 1 年生の総合
      課題 7-1 九々の表を表示               科学科と,2 年生を対象としたプログラミング教育
      課題 7-2 FizzBuzz 问题           の実践内容と結果を報告した.
                                  1 年生の総合科学科に行った授業では,アンケート
                                   から 6~7 割の生徒が授業内容はある程度理解してい
           図 5: 情報 A の授業構成
                                   ると答えた.2 年生の情報 A で行った授業では,プ
                                   ログラムの活用方法を何度か見せることにより, プ
                                                        「
                                   ログラムができたら便利」という声を生徒から得る
ことができた.考査からは 6 時間程度の学習でも,                                                                 
                           问题
生徒はプログラムをトレースして読み解く力をある
                                                      ?次のプログラムは 1~100 までの数を表示するもの
程度得ているが確認できた.しかし一方で,繰り返                               である.しかし,3 の倍数の時に「Fizz」 5 の倍数
                                                                                ,
し処理に関する问题の正答率は高くなく,今後,内                               の時に「Buzz」 3 かつ 5 の倍数の時に「FizzBuzz」
                                                               ,                       ,
容の改善や教える時間数を増やすなどの対策が必要                               それ以外の時に数を表示する.[問 1]~[問 5] に当て
                                                      はまるものを解答群 (1)~(10) から 1 つ選べ.
である.
 今後は,より身近にある问题を題材としたプログ                               問 1 5 行目が 5 回実行されたときの i の値を答えよ
ラミングや,プログラムを用いると便利な場面を見                               問 2 8 行目が 2 回実行されたときの i の値を答えよ
せるなどし,生徒が興味を持ちやすく,理解しやす                               問 3 プログラムを実行すると「FizzBuzz」は何回表
い授業にしていきたいと考える.                                            示されるか
                                                      問 4 プログラムを実行すると 12 行目は何回実行さ
参考文献                                                       れるか
                                                      問 5 16 行目を「 i ← i + 2 」に変更し実行すると,
[1] 情報処理学会情報処理教育委員会: “日本の情報                               「FizzBuzz」は何回表示されるか
    教育?情報処理教育に関する提言 2005”,                                                                
   http://www.ipsj.or.jp/12kyoiku/                   プログラム                                
   proposal-20051029.pdf (2005-10).                   1: 整数 i
                                                      2: i ← 1
[2] 初 学 者 向 け プ ロ グ ラ ミ ン グ 学 習 環 境 PEN:              3: i  101 の間,
   http://www.media.osaka-cu.ac.jp/PEN/ (2008-04).    4: | もし i % 3 = 0 ならば
                                                      5: | | 「Fizz」 を改行なしで表示する
[3] 中村亮太, 西田知博, 西田知博: “プログラミング                        6: | を実行する
                                                      7: | もし i % 5 = 0 ならば
   入門教育用学習環境 PEN”, 情報処理学会研究報
                                                      8: | | 「Buzz」 を改行なしで表示する
   告 2005-CE-81,pp. 65–71(2005-10).                   9: | を実行する
                                                      10: | もし i % 3 !=0 ならば
[4] 西田知博, 原田章, 中村亮太, 宮本友介, 松浦敏                        11: | | もし i % 5 != 0 ならば
   雄: “初学者用プログラミング学習環境 PEN の                          12: | | | i を改行なしで表示する
                                                      13: | | を実行する
   実装と評価”, 情報処理学会論文誌, Vol.48,No.8,                    14: | を実行する
   pp.2736-2747 (2007-08).                            15: | 「」 を表示する
                                                      16: | i ← i + 1
[5] 松浦, 豊田, 菅澤, 原田, 西田, 外川, 清川, 宮本,                   17:を繰り返す
    安留, 中西: “リテラシーとしてのプログラミン                                                              
   グ入門 – 大阪大学文学部?人間科学部での PEN                                          ?
                                                                     解答群
   を用いた実践 –”, 平成 19 年度情報教育研究集会
                                                            (1) 3      (6) 15
   (2007-11).
                                                            (2) 6      (7) 50
                                                            (3) 9      (8) 51
                                                            (4) 10     (9) 52
                                                            (5) 12     (10) 53

                                                           図 6: トレース能力を測る问题
问题                                    问题
                                                                             

 ?次のプログラム 1,プログラム 2 は 1~x まで加             ?正の整数 N の約数をすべてもとめるプログラムで
 算した結果を表示するプログラムである.[問 6]~                ある.[問 11]~[問 15] に当てはまるものを解答群 (1)
 [問 10] に当てはまるものを解答群 (1)~(10) から 1        ~(10) から 1 つ選べ.
 つ選べ.                                                                        
                                                                           
                                          プログラム
プログラム 1                              
                                          1:    整数 N, i
 1:   整数 i, x, s                          2:    「整数入力:」 を改行なしで表示する
 2:   「数を入力:」 を改行なしで表示する                  3:    N ← input()
 3:   x ← input()                         4:    i ← 1
 4:   i ← [問 6]                           5:    [問 11]
 5:   i [問 7] x の間,                       6:    [問 12]
 6:     | [問 8]                           7:    i を表示する
 7:     | i ← i + 1                       8:    [問 13]
 8:   を繰り返す                               9:    [問 14]
 9:   「1~」と x と「の合計:」と s を表示する            10:   [問 15]
                                                                           
                        ?                                        ?
                                                                解答群
プログラム 2                              
                                                (1) i = N の間,
 1:   整数 i, x, s                                (2) i を表示する
 2:   「数を入力:」 を改行なしで表示する
 3:   x ← input()                               (3) もし N % i = 0 ならば
 4:   i ← [問 9]                                 (4) もし N / i = 0 ならば
 5:   i [問 10] x の間,
 6:     | i ← i + 1
                                                (5) もし N * i = 0 ならば
 7:     | [問 8]                                 (6) i ← i
 8:   を繰り返す                                     (7) i ← i + 1
 9:   「1~」と x と「の合計:」と s を表示する
                                              (8) N ← N + 1
                        ?                       (9) を繰り返す
                                                (10) を実行する
                    解答群
        (1) 0               (6)          図 8: プログラムを一から作成する力を測る问题
        (2) 1               (7) 
        (3) s ← s + i       (8) =
        (4) i ← i + s       (9) =
        (5) =               (10) !=

      図 7: 繰り返し処理の理解度を測る问题

More Related Content

Viewers also liked (20)

[CE81] プログラミング入門教育用学習環境PEN
[CE81] プログラミング入門教育用学習環境PEN[CE81] プログラミング入門教育用学習環境PEN
[CE81] プログラミング入門教育用学習環境PEN
Ryota Nakamura
?
социальные сервисы для 226
социальные сервисы для 226социальные сервисы для 226
социальные сервисы для 226
nikulina13
?
You are here, content strategy
You are here, content strategy You are here, content strategy
You are here, content strategy
Misty Weaver
?
Global issues bio
Global issues bioGlobal issues bio
Global issues bio
007__Savannah
?
[CE81] プログラミング入門教育用学習環境PEN (発表資料)
[CE81] プログラミング入門教育用学習環境PEN (発表資料)[CE81] プログラミング入門教育用学習環境PEN (発表資料)
[CE81] プログラミング入門教育用学習環境PEN (発表資料)
Ryota Nakamura
?
[CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて (発表資料)
[CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて (発表資料)[CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて (発表資料)
[CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて (発表資料)
Ryota Nakamura
?
Collaboration of the Masses: Crowdsourcing & Crowdfunding
Collaboration of the Masses: Crowdsourcing & CrowdfundingCollaboration of the Masses: Crowdsourcing & Crowdfunding
Collaboration of the Masses: Crowdsourcing & Crowdfunding
Laura Amole
?
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
Ryota Nakamura
?
[学位(修士)論文公開審査会] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[学位(修士)論文公開審査会] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築[学位(修士)論文公開審査会] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[学位(修士)論文公開審査会] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
Ryota Nakamura
?
Percubaan Prinsip Perakaunan SPM 2011 - Kertas 1
Percubaan Prinsip Perakaunan SPM 2011 - Kertas 1Percubaan Prinsip Perakaunan SPM 2011 - Kertas 1
Percubaan Prinsip Perakaunan SPM 2011 - Kertas 1
Fatimah Noor Zainal
?
Retrometabolic drug design
Retrometabolic drug designRetrometabolic drug design
Retrometabolic drug design
reem tawfeek
?
Misty Weaver Content Strategy in the Bush - CS Seattle
Misty Weaver Content Strategy in the Bush - CS SeattleMisty Weaver Content Strategy in the Bush - CS Seattle
Misty Weaver Content Strategy in the Bush - CS Seattle
Misty Weaver
?
Tatacara pelupusan aset
Tatacara pelupusan aset Tatacara pelupusan aset
Tatacara pelupusan aset
Osman Hj Mohamed
?
[CE81] プログラミング入門教育用学習環境PEN
[CE81] プログラミング入門教育用学習環境PEN[CE81] プログラミング入門教育用学習環境PEN
[CE81] プログラミング入門教育用学習環境PEN
Ryota Nakamura
?
социальные сервисы для 226
социальные сервисы для 226социальные сервисы для 226
социальные сервисы для 226
nikulina13
?
You are here, content strategy
You are here, content strategy You are here, content strategy
You are here, content strategy
Misty Weaver
?
[CE81] プログラミング入門教育用学習環境PEN (発表資料)
[CE81] プログラミング入門教育用学習環境PEN (発表資料)[CE81] プログラミング入門教育用学習環境PEN (発表資料)
[CE81] プログラミング入門教育用学習環境PEN (発表資料)
Ryota Nakamura
?
[CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて (発表資料)
[CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて (発表資料)[CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて (発表資料)
[CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて (発表資料)
Ryota Nakamura
?
Collaboration of the Masses: Crowdsourcing & Crowdfunding
Collaboration of the Masses: Crowdsourcing & CrowdfundingCollaboration of the Masses: Crowdsourcing & Crowdfunding
Collaboration of the Masses: Crowdsourcing & Crowdfunding
Laura Amole
?
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[修士論文] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
Ryota Nakamura
?
[学位(修士)論文公開審査会] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[学位(修士)論文公開審査会] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築[学位(修士)論文公開審査会] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
[学位(修士)論文公開審査会] 入力支援機能を備えた日本語表記による初学者向けプログラミング学習環境の構築
Ryota Nakamura
?
Percubaan Prinsip Perakaunan SPM 2011 - Kertas 1
Percubaan Prinsip Perakaunan SPM 2011 - Kertas 1Percubaan Prinsip Perakaunan SPM 2011 - Kertas 1
Percubaan Prinsip Perakaunan SPM 2011 - Kertas 1
Fatimah Noor Zainal
?
Retrometabolic drug design
Retrometabolic drug designRetrometabolic drug design
Retrometabolic drug design
reem tawfeek
?
Misty Weaver Content Strategy in the Bush - CS Seattle
Misty Weaver Content Strategy in the Bush - CS SeattleMisty Weaver Content Strategy in the Bush - CS Seattle
Misty Weaver Content Strategy in the Bush - CS Seattle
Misty Weaver
?

Similar to [CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて (20)

小学生へのプログラミングの学習における 「足場かけ」の適用
小学生へのプログラミングの学習における 「足場かけ」の適用小学生へのプログラミングの学習における 「足場かけ」の適用
小学生へのプログラミングの学習における 「足場かけ」の適用
satonorisan
?
20130223 google apps+能動的教育とコミュニケーション-open
20130223 google apps+能動的教育とコミュニケーション-open20130223 google apps+能動的教育とコミュニケーション-open
20130223 google apps+能動的教育とコミュニケーション-open
Norio Toyama
?
Enshu1
Enshu1Enshu1
Enshu1
sudahiroshi
?
ビジネス系大学の学生が Monacaを使って スマホアプリ制作プロジェクトを やりきった
ビジネス系大学の学生がMonacaを使ってスマホアプリ制作プロジェクトをやりきったビジネス系大学の学生がMonacaを使ってスマホアプリ制作プロジェクトをやりきった
ビジネス系大学の学生が Monacaを使って スマホアプリ制作プロジェクトを やりきった
Norio Toyama
?
2012デジタル教科書学会 web用
2012デジタル教科書学会 web用2012デジタル教科書学会 web用
2012デジタル教科書学会 web用
Shota Koike
?
コミュニケーションスキルを重视したソフトウェア技术者教育手法の研究
コミュニケーションスキルを重视したソフトウェア技术者教育手法の研究コミュニケーションスキルを重视したソフトウェア技术者教育手法の研究
コミュニケーションスキルを重视したソフトウェア技术者教育手法の研究
Yuichiro Saito
?
データ解析の効果的学修を目指した取り组みと课题
データ解析の効果的学修を目指した取り组みと课题データ解析の効果的学修を目指した取り组みと课题
データ解析の効果的学修を目指した取り组みと课题
Jun-Ichi Sagara
?
【Unity道場スペシャル 2017幕張】大学、専門学校て?unityの講座をおこなった感触
【Unity道場スペシャル 2017幕張】大学、専門学校て?unityの講座をおこなった感触【Unity道場スペシャル 2017幕張】大学、専門学校て?unityの講座をおこなった感触
【Unity道場スペシャル 2017幕張】大学、専門学校て?unityの講座をおこなった感触
Unity Technologies Japan K.K.
?
TENTO 2012/01 筑波大学プレゼン資料
TENTO 2012/01 筑波大学プレゼン資料TENTO 2012/01 筑波大学プレゼン資料
TENTO 2012/01 筑波大学プレゼン資料
Shinichi Kusano
?
プログラミング勉强会
プログラミング勉强会プログラミング勉强会
プログラミング勉强会
ssuser50bb47
?
别齿迟谤别尘别笔谤辞驳谤补尘尘颈苍驳入门
别齿迟谤别尘别笔谤辞驳谤补尘尘颈苍驳入门别齿迟谤别尘别笔谤辞驳谤补尘尘颈苍驳入门
别齿迟谤别尘别笔谤辞驳谤补尘尘颈苍驳入门
You&I
?
Distributed Agile using UML
Distributed Agile using UMLDistributed Agile using UML
Distributed Agile using UML
Kenji Hiranabe
?
時代のニーズに合わせた学習意欲を向上させるための 実践的な組込みシステム教育教材の開発
時代のニーズに合わせた学習意欲を向上させるための実践的な組込みシステム教育教材の開発時代のニーズに合わせた学習意欲を向上させるための実践的な組込みシステム教育教材の開発
時代のニーズに合わせた学習意欲を向上させるための 実践的な組込みシステム教育教材の開発
Yuuki Kojima
?
Programming in Special Needs Education
Programming in Special Needs EducationProgramming in Special Needs Education
Programming in Special Needs Education
Ritsuko Nishibata
?
Deep Learning reading club at SWEST 2017 interactive session
Deep Learning reading club at SWEST 2017 interactive session Deep Learning reading club at SWEST 2017 interactive session
Deep Learning reading club at SWEST 2017 interactive session
Kiyoshi Ogawa
?
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
Preferred Networks
?
2012?1 TENTOプレゼン資料
2012?1 TENTOプレゼン資料2012?1 TENTOプレゼン資料
2012?1 TENTOプレゼン資料
TENTO_slide
?
小学生へのプログラミングの学習における 「足場かけ」の適用
小学生へのプログラミングの学習における 「足場かけ」の適用小学生へのプログラミングの学習における 「足場かけ」の適用
小学生へのプログラミングの学習における 「足場かけ」の適用
satonorisan
?
20130223 google apps+能動的教育とコミュニケーション-open
20130223 google apps+能動的教育とコミュニケーション-open20130223 google apps+能動的教育とコミュニケーション-open
20130223 google apps+能動的教育とコミュニケーション-open
Norio Toyama
?
ビジネス系大学の学生が Monacaを使って スマホアプリ制作プロジェクトを やりきった
ビジネス系大学の学生がMonacaを使ってスマホアプリ制作プロジェクトをやりきったビジネス系大学の学生がMonacaを使ってスマホアプリ制作プロジェクトをやりきった
ビジネス系大学の学生が Monacaを使って スマホアプリ制作プロジェクトを やりきった
Norio Toyama
?
2012デジタル教科書学会 web用
2012デジタル教科書学会 web用2012デジタル教科書学会 web用
2012デジタル教科書学会 web用
Shota Koike
?
コミュニケーションスキルを重视したソフトウェア技术者教育手法の研究
コミュニケーションスキルを重视したソフトウェア技术者教育手法の研究コミュニケーションスキルを重视したソフトウェア技术者教育手法の研究
コミュニケーションスキルを重视したソフトウェア技术者教育手法の研究
Yuichiro Saito
?
データ解析の効果的学修を目指した取り组みと课题
データ解析の効果的学修を目指した取り组みと课题データ解析の効果的学修を目指した取り组みと课题
データ解析の効果的学修を目指した取り组みと课题
Jun-Ichi Sagara
?
【Unity道場スペシャル 2017幕張】大学、専門学校て?unityの講座をおこなった感触
【Unity道場スペシャル 2017幕張】大学、専門学校て?unityの講座をおこなった感触【Unity道場スペシャル 2017幕張】大学、専門学校て?unityの講座をおこなった感触
【Unity道場スペシャル 2017幕張】大学、専門学校て?unityの講座をおこなった感触
Unity Technologies Japan K.K.
?
TENTO 2012/01 筑波大学プレゼン資料
TENTO 2012/01 筑波大学プレゼン資料TENTO 2012/01 筑波大学プレゼン資料
TENTO 2012/01 筑波大学プレゼン資料
Shinichi Kusano
?
プログラミング勉强会
プログラミング勉强会プログラミング勉强会
プログラミング勉强会
ssuser50bb47
?
别齿迟谤别尘别笔谤辞驳谤补尘尘颈苍驳入门
别齿迟谤别尘别笔谤辞驳谤补尘尘颈苍驳入门别齿迟谤别尘别笔谤辞驳谤补尘尘颈苍驳入门
别齿迟谤别尘别笔谤辞驳谤补尘尘颈苍驳入门
You&I
?
Distributed Agile using UML
Distributed Agile using UMLDistributed Agile using UML
Distributed Agile using UML
Kenji Hiranabe
?
時代のニーズに合わせた学習意欲を向上させるための 実践的な組込みシステム教育教材の開発
時代のニーズに合わせた学習意欲を向上させるための実践的な組込みシステム教育教材の開発時代のニーズに合わせた学習意欲を向上させるための実践的な組込みシステム教育教材の開発
時代のニーズに合わせた学習意欲を向上させるための 実践的な組込みシステム教育教材の開発
Yuuki Kojima
?
Programming in Special Needs Education
Programming in Special Needs EducationProgramming in Special Needs Education
Programming in Special Needs Education
Ritsuko Nishibata
?
Deep Learning reading club at SWEST 2017 interactive session
Deep Learning reading club at SWEST 2017 interactive session Deep Learning reading club at SWEST 2017 interactive session
Deep Learning reading club at SWEST 2017 interactive session
Kiyoshi Ogawa
?
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太
Preferred Networks
?
2012?1 TENTOプレゼン資料
2012?1 TENTOプレゼン資料2012?1 TENTOプレゼン資料
2012?1 TENTOプレゼン資料
TENTO_slide
?

Recently uploaded (6)

それ、マルハラかも。 ~メッセージ上の句点による暗黙的ハラスメント の実在性についてのサーベイ実験
それ、マルハラかも。 ~メッセージ上の句点による暗黙的ハラスメント の実在性についてのサーベイ実験それ、マルハラかも。 ~メッセージ上の句点による暗黙的ハラスメント の実在性についてのサーベイ実験
それ、マルハラかも。 ~メッセージ上の句点による暗黙的ハラスメント の実在性についてのサーベイ実験
KeisukeHattori1
?
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docxALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ruthbarnuevo1
?
cardiom??????????????????????yopathy .pdf
cardiom??????????????????????yopathy .pdfcardiom??????????????????????yopathy .pdf
cardiom??????????????????????yopathy .pdf
ssuser16d694
?
タワーマンション効果 ?高所からの眺望が、人の心理状態に及ぼす影響を探るRCTs
タワーマンション効果 ?高所からの眺望が、人の心理状態に及ぼす影響を探るRCTsタワーマンション効果 ?高所からの眺望が、人の心理状態に及ぼす影響を探るRCTs
タワーマンション効果 ?高所からの眺望が、人の心理状態に及ぼす影響を探るRCTs
KeisukeHattori1
?
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptxTAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
SheanOrvinBalao
?
第57回計測自動制御学会北海道支部講演会 特別講演 システムインテグレーションとロボットミドルウェア
第57回計測自動制御学会北海道支部講演会 特別講演 システムインテグレーションとロボットミドルウェア第57回計測自動制御学会北海道支部講演会 特別講演 システムインテグレーションとロボットミドルウェア
第57回計測自動制御学会北海道支部講演会 特別講演 システムインテグレーションとロボットミドルウェア
OpenRTM1
?
それ、マルハラかも。 ~メッセージ上の句点による暗黙的ハラスメント の実在性についてのサーベイ実験
それ、マルハラかも。 ~メッセージ上の句点による暗黙的ハラスメント の実在性についてのサーベイ実験それ、マルハラかも。 ~メッセージ上の句点による暗黙的ハラスメント の実在性についてのサーベイ実験
それ、マルハラかも。 ~メッセージ上の句点による暗黙的ハラスメント の実在性についてのサーベイ実験
KeisukeHattori1
?
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docxALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ALPHABET FLASHCARD FOR PRESCHOOL TO KINDERGARTEN LEARNERS.docx
ruthbarnuevo1
?
cardiom??????????????????????yopathy .pdf
cardiom??????????????????????yopathy .pdfcardiom??????????????????????yopathy .pdf
cardiom??????????????????????yopathy .pdf
ssuser16d694
?
タワーマンション効果 ?高所からの眺望が、人の心理状態に及ぼす影響を探るRCTs
タワーマンション効果 ?高所からの眺望が、人の心理状態に及ぼす影響を探るRCTsタワーマンション効果 ?高所からの眺望が、人の心理状態に及ぼす影響を探るRCTs
タワーマンション効果 ?高所からの眺望が、人の心理状態に及ぼす影響を探るRCTs
KeisukeHattori1
?
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptxTAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
TAUHANNGNOLIMETANGEREKAYAYANBOISGL!!!.pptx
SheanOrvinBalao
?
第57回計測自動制御学会北海道支部講演会 特別講演 システムインテグレーションとロボットミドルウェア
第57回計測自動制御学会北海道支部講演会 特別講演 システムインテグレーションとロボットミドルウェア第57回計測自動制御学会北海道支部講演会 特別講演 システムインテグレーションとロボットミドルウェア
第57回計測自動制御学会北海道支部講演会 特別講演 システムインテグレーションとロボットミドルウェア
OpenRTM1
?

[CE94] 高等学校での「プログラミング」教育の導入– PEN を用いて

  • 1. 高等学校での「プログラミング」教育の導入 – PEN を用いて 中村 亮太* 西田 知博** 松浦 敏雄*** *大阪府立泉北高等学校 **大阪学院大学 情報学部 ***大阪市立大学 大学院創造都市研究科 ryota-n@semboku.osaka-c.ed.jp 概要 ?プログラミングは一般に難しいものと考えられ,高等学校において教えられていることはまれである. しかし,適切なサポートツールを用意することで,生徒が比較的短い時間でプログラミングとは何かを学 び,コンピュータの本質を理解することは可能であると考える.そこで我々は,大阪府立泉北高等学校に おいて,1 年生を対象とした総合科学 I,および 2 年生を対象とした情報 A の授業で,初学者用プログラ ミング環境 PEN を用いてプログラミング教育を実践した.ここでは,その授業の内容とアンケート結果 および考査結果を報告する. Programming Education at a High School with PEN Ryota Nakamura* Tomohiro Nishida** Toshio Matsuura*** *Semboku High School **Faculty of Informatics, Osaka Gakuin University ***Graduate School for Creative Cities, Osaka City University Abstract Programming is generally considered a dif?cult subject and often not taught at all in high schools. However, with an appropriate support tool, we believe that it will not take a long time for students to understand what is programming and essential characteristics of computers. One of the authors conducted programming lessons in the subject of “Comprehensive Science I” (for ?rst grade) and “Information A” (for second grade) at Semboku High School with PEN: Programming Environment for Novices. In this paper, we report the lessons and the results of the questionnaire and the examination. 1 はじめに ログラマの養成を目指すのではなく,プログラミン グとは何かを理解し,コンピュータの本質を理解す 情報教育は,高等学校を始めとした初等中等教育 ることと定めるならば,適切なサポートツールを用 でも行われるようになり,その裾野は広がってきて 意することで,比較的短い時間でこの目標を達成で いる.しかし,その内容は「情報自体の理解」を重 きると考えた.我々は,そのツールとして初学者用 視し,コンピュータ等の情報機器の利活用教育が中 プログラミング環境 PEN (Programming Environment 心となっているのが現実である.しかし,社会に普 for Novices)[2] を構築し,2005 年度から大学の授業 及している情報システムの特性を理解するためは, において用い,実践を重ねてきた [3][4][5].その結 中等教育の段階から,単に使うだけではなく,プロ 果として,文系の学生を対象とした 3 コマ程度の短 グラミングなどを通じて,コンピュータの自動処理 期間の授業において,JavaScript を用いたクラスと のメカニズムを自分で体験することにより, 「情報処 比べてプログラミング理解度が高くなるなど,PEN 理」の本質を学ぶことも不可欠である [1]. のプログラミング入門教育における有用性が確認で 一方で,プログラミングは大学においてでさえ教 きている. 育されない場合が多い.この理由としては,プログラ これらの実践は,大学においてのものであるが, ミング言語は難しいものであり,その習得には多く 我々は,上に述べたようにプログラミングの入門教 の時間が必要と思われていることが挙げられる.し 育は,中学,高校などより早い時期に行うことが望 かし,プログラミングの入門教育の目標を,職業プ
  • 2. ましいと考える.そこで,2007 年度からはいくつか 表 1: 総合科学の目標 の高校においても,PEN を用いた実践を行っている. 学年 科目名 単位 目標 ここでは,大阪府立泉北高等学校での PEN を活用し 1年 総合科学 I 2 プレゼンテーション能 た授業実践について紹介する. 力の向上,論理的思考 の育成 2年 総合科学 II 1 与えられた課題を解決 2 PEN の概要 する能力の育成 3年 総合科学 III 2 自ら研究テーマを設定 図 1 は,初学者向けプログラミング学習環境 PEN し解決する能力の育成 を実行した時の画面表示例である. PEN には入力ミスによる文法エラーを減らすため, 制御構造等をプログラム入力支援ボタンにより入力 3.1.1 実践内容 することができる.また,プログラムの実行過程を 総合科学 I は年間約 45 回 (65 分/回) の授業がある 詳しく観察できるように,プログラムの一時停止? が,7,9 月の計 6 回で PEN を用いたプログラミング 一行実行などの実行制御機能,実行中の各変数の値 の授業を行った (図 2).各授業は,まず例題を生徒 を表示する変数表示機能を有している [3][4].また, に入力してもらいプログラムを実行してもらうこと プログラム言語には,センター試験「情報関係基礎」 から始め,その後,掲示用画面で一行実行を用いて の出題用に作られた日本語でキーワード等を表現す 実行し,それぞれの制御構造の意味などを説明する る手順記述言語 DNCL を拡張した xDNCL を用いて 形で進めた. いる. 初回の授業では,プログラムは上から順に逐次実 行されるということを理解してもらうため,文字表 3 泉北高校での授業実践 示や変数を用いた計算などの逐次処理を例題とし, PEN を用いたプログラミング教育の実践は,2005 一行実行やスロー実行の機能を用いて解説した. 年度から大阪学院大学,大阪市立大学,大阪大学,京 2 回目の授業では,バグのあるプログラム (図 3) 都ノートルダム女子大学など様々な大学で行ってい を示し,一行実行で変数の値が変化する様子を記録 るが,2007 年度からは高校でも,その実践を開始し させた.また,掲示資料で生徒の記述したものを確 た.今回は,大阪府立泉北高等学校で行った実践に 認しながら,どの箇所に誤りがあるのか,どのよう ついて報告する. にすれば正常に動くようになるのかを考えさせ,バ 泉北高校では国際理解の学習中心の国際文化科 1 グのあるプログラムを正常に動作するように修正さ 学年 4 クラス (40 名/クラス),理数系科目の学習中 せた. 心の総合科学科 1 学年 3 クラス (40 名/クラス) の 2 3 回目の授業では,導入として生徒に日常生活の 学科を設置している. 中での「条件による行動の選択」について考えさせ, このうち 2007 年度は,1 年生総合科学科の生徒対 その後,プログラム上での条件分岐の説明を行った. 象の「総合科学 I」,2 年生全生徒対象の「情報 A」 課題は所持金と欲しいものの金額を入力し購入でき においてプログラミング教育を行った. るかを判別するプログラムなど,身近なものを題材 に選んだ.また,4 回目の授業で乱数の説明を行い, 3.1 総合科学 I 条件分岐と組み合わせ簡単なゲームを作成した. 「総合科学」とは総合科学科の生徒を対象とした、 5 回目の授業では,計算機は同じ処理を何度も繰 生徒自らがテーマを設定し研究を行うことを目的と り返すことが得意であることを理解させるため,範 した泉北高校の学校設定科目である (表 1).今回,1 囲指定の加算型繰り返し文 (for 文) を用いた課題を 年生の総合科学 I において PEN を用いたプログラミ 提示した. ング教育を導入した.このうち,2 クラスを筆者の 最後の授業では,コンピュータとプログラムを用 1 人が担当し,残り 1 クラスは数学科の先生が担当 いれば,様々な応用が可能であることを理解しても した. らうため,描画命令を用いて 1 次関数や 2 次関数と いった数学的なグラフを描画する課題を与えた.
  • 3. 図 1: PEN の実行画面 3.1.2 評価 3.2 情報 A 生徒の理解度に合わせ授業を展開するため,各授 2 年生の国際文化科 4 クラスおよび総合科学科 3 業終了にアンケート調査を行った (図 4).なお,第 1 クラスの「情報 A(1 単位)」において,プログラミン 回目はアンケートに理解度を調査する項目を入れて グの授業を行った.7 クラスの授業はすべて筆者の いなかったため,データは取れていない.各授業の 1 人が担当した. 理解度はおおむね良好だったが,5 回目の繰り返し 3.2.1 実践内容 命令で「理解できた」と「だいたい理解できた」の 合計が半数を割っている.繰り返しの概念は,大学 2 年生の情報 A は年間約 21 回 (65 分/回) の授業が 生対象の授業でも理解度が高くないという結果が得 あり,12~2 月の 5 回もしくは 6 回で PEN を用いた られており [5],今後は,課題の難易度や時間数につ プログラミングの授業を行った (図 5).授業内容は いての検討が必要である. 総合科学 I とほぼ同じであるが,その際の反省を生 しかし,アンケートの自由記述においては, 難し 「 かし,第 1 回目の授業は「身の回りには色々な情報 い问题が増えてきて,解くのに時間がかかったけど, 機器があるが,なぜ動いているか?」という問いか それが解けたときの喜びが大きかったです.面白かっ けから入り,情報機器を支えるプログラムの重要性 たです. 」や「パソコン相手にこれほど細かい命令を, について考えてもらった.また,配布資料はフロー 自分自身でできたのでとても楽しかった.できるこ チャートの提示を加えるなどの修正を行い,掲示資 とは知っていても,自分でできる機会があるとは思っ 料はプレゼンテーションソフトを用い,アニメーショ てなかったので,いい勉強になった. 」といった肯定 ンを活用したものとした. 的な意見もいくつか見られた.一方では, なぜプロ 「 授業の進め方は,例題を入力し実行するまでは総 グラミングをやるんだろう」という意見も少なから 合科学 I の時と同じであるが,掲示用画面には事前 ずあり,プログラミングの重要性の説明が不十分で に作成した掲示資料で各命令や制御構造の意味を説 あったことが反省点として残った. 明した後,教員用のコンピュータで例題を再度実行 し,解説する方法に変更した.また,PEN のプログ ラム入力支援ボタンのカスタマイズ機能を用いて,
  • 4. 練習问题:変数 x, y の値を入れ替えるプログラムを作成し たのだが,実行した結果は x, y ともに 10 となってしまう. 1. 出力命令,変数と代入文 プログラムの間違いを見つけ正しく動作するようにせよ. 例題 1 Hello World 1 : 整数 x, y 課題 1 自己紹介の出力 2 : x ← 5 例題 2 変数宣言と値の代入 3 : y ← 10 4 : x ← y 課題 2-1 算術演算と代入 5 : y ← x 課題 2-2 入力命令と算術演算 課題 2-3 三角形の面積を求める 図 3: 変数の値を入れ替えるプログラム 2. 変数に代入されている値の入れ替え 例題 3 トレース作業によるバグの発見 課題 3-1 rei003 のバグ修正 課題 3-2 3 つの変数に代入された値の入れ替え 3. 条件分岐,2 分岐の条件分岐 例題 4 10 より大きい数の判断 課題 4-1 正の数の判断 課題 4-2 偶数の判断 課題 4-3 購入できるかの判断 例題 5 0 より大きいか以下かの判断 課題 5-1 偶数か奇数の判断 図 4: 各授業の理解度 課題 5-2 購入できるかできないかの判断 課題 5-3 5 段階成績の表示 授業以外に使用することのない命令や制御構造を削 4. ランダムな数 除しプログラミング環境を簡素化した. 例題 6 乱数について 課題 6-1 ハイ&ローゲーム 3.2.2 評価 5. 範囲指定の加算型繰り返し命令 (for 文) 情報 A の後期期末考査においてプログラミングに 例題 7 1~10 の表示 関する问题を解答選択式で 15 問出題した (図 6,7,8). ∑ 10 課題 7-1 Si を求める 図 6 に示した问题ではプログラムコードが書けない i=1 プログラマ志願者を見分ける手法として提唱されて ∑ n いる FizzBuzz 问题で,生徒にプログラムを読み解 課題 7-2 Si を求める く力がどれだけ身に付いたかを測るために出題した. ∑ i=1 x 課題 7-3 0~100 までの乱数を 20 回表示する 図 7 に示した问题では Si を求めるプログラムを 課題 7-4 FizzBuzz 问题 i=1 2 種類用意した.このプログラムは繰り返しの加算 課題 7-5 九々の表を表示する 処理で,カウンタ変数をインクリメントする箇所に 6. グラフの描画,描画命令 よってカウンタ変数の初期値および条件式が変化す 例題 8 1 次関数の描画 ることが理解できているかを問う问题で,繰り返し 課題 8-1 点の描画 処理の理解度を測るために出題した.図 8 に示した 課題 8-2 y = 2x2 ? 5 の描画 问题は正の整数 N の約数を求めるプログラムである. 課題 8-3 y = ax2 + bx + c の描画 この问题はプログラムの大部分を解答させるもので, 課題 9 描画命令を用いて絵を作成 问题の意味を読み取り,プログラムを一から作成す る力を測るために出題した. 図 2: 総合科学 I の授業構成 試験の各问题毎の正答率は表 2 の通りで,全設問 において,理数系中心の総合科学科の正答率が国際
  • 5. 文化科を上回る結果となった.問 1~5 の FizzBuzz 问题では,問 3 までの正答率が 70%を超え,多くの 生徒が一定の理解をしていることがわかる.問 6~ では,プログラム 2 においてのカウンタ変数の初 10 1. 出力命令,変数と代入文 期値や繰り返し条件を答えさせる問 9,10 での正答率 例題 1 Hello World が低いという結果となった.プログラム 1 での繰り 課題 1 自己紹介の出力 返し条件を答えさせる問 7 の正答率も低く,繰り返 例題 2 変数宣言と値の代入 し処理については更なる教育内容の改善が必要であ 課題 2-1 算術演算と代入 ることが伺えた.問 11~15 は,プログラムの大部 課題 2-2 入力命令と算術演算 分が空欄として出題されるという難しい内容であっ 課題 2-3 三角形の面積を求める たが,全問正解した生徒が 18 名 (6.6%),4 問正解し 2. 変数に代入されている値の入れ替え た生徒が 7 名 (2.6%) いた. 例題 3 トレース作業によるバグの発見 課題 3-1 rei003 のバグ修正 表 2: 学科別正答率 設問番号 国際文化科 総合科学科 全体 課題 3-2 3 つの変数に代入された値の入れ替え 問1 72.1% 78.3% 74.8% 3. 条件分岐,2 分岐の条件分岐 問2 74.7% 82.5% 78.1% 例題 4 赤点 (40 点未満) の判断 問3 65.6% 85.8% 74.5% 課題 4-1 正の数の判断 問4 28.6% 47.5% 36.9% 課題 4-2 偶数の判断 問5 41.6% 64.2% 51.5% 課題 4-3 購入できるかの判断 問6 69.5% 86.7% 77.0% 例題 5 赤点 (40 点未満) かどうかの判断 問7 49.4% 69.2% 58.0% 課題 5-1 偶数か奇数の判断 課題 5-2 購入できるかできないかの判断 問8 69.5% 80.0% 74.1% 問9 37.0% 52.5% 43.8% 4. 条件分岐の入れ子構造 問 10 26.6% 40.0% 32.5% 例題 6 遊園地の入園料表示 問 11 60.4% 76.7% 67.5% 課題 6-1 5 段階成績の表示 問 12 38.3% 50.0% 43.4% 5. 繰り返し命令 (while 文) 問 13 6.5% 16.7% 10.9% 例題 7 1~10 の表示 問 14 15.6% 18.3% 16.8% 課題 7-1 0~100 までの偶数の表示 問 15 27.3% 44.2% 34.7% 課題 7-2 0~n までの表示 ∑ 10 受験者数 154 人 120 人 274 人 課題 7-3 Si を求める i=1 ∑ n 課題 7-4 Si を求める i=1 課題 7-5 n! を求める 4 おわりに 6. 特別課題 ここでは、大阪府立泉北高等学校の 1 年生の総合 課題 7-1 九々の表を表示 科学科と,2 年生を対象としたプログラミング教育 課題 7-2 FizzBuzz 问题 の実践内容と結果を報告した. 1 年生の総合科学科に行った授業では,アンケート から 6~7 割の生徒が授業内容はある程度理解してい 図 5: 情報 A の授業構成 ると答えた.2 年生の情報 A で行った授業では,プ ログラムの活用方法を何度か見せることにより, プ 「 ログラムができたら便利」という声を生徒から得る
  • 6. ことができた.考査からは 6 時間程度の学習でも, 问题 生徒はプログラムをトレースして読み解く力をある ?次のプログラムは 1~100 までの数を表示するもの 程度得ているが確認できた.しかし一方で,繰り返 である.しかし,3 の倍数の時に「Fizz」 5 の倍数 , し処理に関する问题の正答率は高くなく,今後,内 の時に「Buzz」 3 かつ 5 の倍数の時に「FizzBuzz」 , , 容の改善や教える時間数を増やすなどの対策が必要 それ以外の時に数を表示する.[問 1]~[問 5] に当て はまるものを解答群 (1)~(10) から 1 つ選べ. である. 今後は,より身近にある问题を題材としたプログ 問 1 5 行目が 5 回実行されたときの i の値を答えよ ラミングや,プログラムを用いると便利な場面を見 問 2 8 行目が 2 回実行されたときの i の値を答えよ せるなどし,生徒が興味を持ちやすく,理解しやす 問 3 プログラムを実行すると「FizzBuzz」は何回表 い授業にしていきたいと考える. 示されるか 問 4 プログラムを実行すると 12 行目は何回実行さ 参考文献 れるか 問 5 16 行目を「 i ← i + 2 」に変更し実行すると, [1] 情報処理学会情報処理教育委員会: “日本の情報 「FizzBuzz」は何回表示されるか 教育?情報処理教育に関する提言 2005”, http://www.ipsj.or.jp/12kyoiku/ プログラム proposal-20051029.pdf (2005-10). 1: 整数 i 2: i ← 1 [2] 初 学 者 向 け プ ロ グ ラ ミ ン グ 学 習 環 境 PEN: 3: i 101 の間, http://www.media.osaka-cu.ac.jp/PEN/ (2008-04). 4: | もし i % 3 = 0 ならば 5: | | 「Fizz」 を改行なしで表示する [3] 中村亮太, 西田知博, 西田知博: “プログラミング 6: | を実行する 7: | もし i % 5 = 0 ならば 入門教育用学習環境 PEN”, 情報処理学会研究報 8: | | 「Buzz」 を改行なしで表示する 告 2005-CE-81,pp. 65–71(2005-10). 9: | を実行する 10: | もし i % 3 !=0 ならば [4] 西田知博, 原田章, 中村亮太, 宮本友介, 松浦敏 11: | | もし i % 5 != 0 ならば 雄: “初学者用プログラミング学習環境 PEN の 12: | | | i を改行なしで表示する 13: | | を実行する 実装と評価”, 情報処理学会論文誌, Vol.48,No.8, 14: | を実行する pp.2736-2747 (2007-08). 15: | 「」 を表示する 16: | i ← i + 1 [5] 松浦, 豊田, 菅澤, 原田, 西田, 外川, 清川, 宮本, 17:を繰り返す 安留, 中西: “リテラシーとしてのプログラミン グ入門 – 大阪大学文学部?人間科学部での PEN ? 解答群 を用いた実践 –”, 平成 19 年度情報教育研究集会 (1) 3 (6) 15 (2007-11). (2) 6 (7) 50 (3) 9 (8) 51 (4) 10 (9) 52 (5) 12 (10) 53 図 6: トレース能力を測る问题
  • 7. 问题 问题 ?次のプログラム 1,プログラム 2 は 1~x まで加 ?正の整数 N の約数をすべてもとめるプログラムで 算した結果を表示するプログラムである.[問 6]~ ある.[問 11]~[問 15] に当てはまるものを解答群 (1) [問 10] に当てはまるものを解答群 (1)~(10) から 1 ~(10) から 1 つ選べ. つ選べ. プログラム プログラム 1 1: 整数 N, i 1: 整数 i, x, s 2: 「整数入力:」 を改行なしで表示する 2: 「数を入力:」 を改行なしで表示する 3: N ← input() 3: x ← input() 4: i ← 1 4: i ← [問 6] 5: [問 11] 5: i [問 7] x の間, 6: [問 12] 6: | [問 8] 7: i を表示する 7: | i ← i + 1 8: [問 13] 8: を繰り返す 9: [問 14] 9: 「1~」と x と「の合計:」と s を表示する 10: [問 15] ? ? 解答群 プログラム 2 (1) i = N の間, 1: 整数 i, x, s (2) i を表示する 2: 「数を入力:」 を改行なしで表示する 3: x ← input() (3) もし N % i = 0 ならば 4: i ← [問 9] (4) もし N / i = 0 ならば 5: i [問 10] x の間, 6: | i ← i + 1 (5) もし N * i = 0 ならば 7: | [問 8] (6) i ← i 8: を繰り返す (7) i ← i + 1 9: 「1~」と x と「の合計:」と s を表示する (8) N ← N + 1 ? (9) を繰り返す (10) を実行する 解答群 (1) 0 (6) 図 8: プログラムを一から作成する力を測る问题 (2) 1 (7) (3) s ← s + i (8) = (4) i ← i + s (9) = (5) = (10) != 図 7: 繰り返し処理の理解度を測る问题