自学型習熟度別プログラミング教育の実践 Practice of Programming

論文集「高専教育」 第36号 2013.3
自学型習熟度別プログラミング教育の実践
笈口 誠志1,菅原 浩弥1,速水 健一,高橋 薫
Practice of Programming Education Based on Self-learning and the
Degree of Skill
Seishi OIGUCHI, Kohya SUGAWARA, Ken-ichi HAYAMI and Kaoru TAKAHASHI
In the class of Programming for the third-year students of the Department of Information and Communication
Engineering, Sendai National College of Technology, we used to give lessons according to a common and ordinary
education style in which lecture and practice are repeated. However, in 2002, we changed the education style into a
different one in which the education based on self-learning, degree of skill and explanation for self-understanding is
targeted. By the enforcement of this style, the students seem to have shown a great improvement in their motivation of
programming.
This paper presents the characteristics of this education style and the results of the questionnaire to the students.
.(<:25'6:SURJUDPPLQJHGXFDWLRQVHOIOHDUQLQJGHJUHHRIVNLOOVHOIXQGHUVWDQGLQJ
.まえがき
数学など通常の講義型の授業とは異なり、プログ
ラミング教育の授業は講義と実習をセットとし、こ
れを繰り返す授業形式が一般的である。この方法の
場合、受講学生が初心者あるいはプログラミング入
門レベルの場合には、スムーズに授業を進めること
ができる。しかしながら、受講学生の適性などから、
授業が進むにつれて理解レベルの差が生じ始めてく
る。理解レベルの低い学生は授業について行けなく
なり、また理解レベルの高い学生は授業が簡単すぎ
ておもしろさを感じなくなってしまうなどの弊害が
出てきてしまうことがある。
仙台高専情報通信工学科では、1年次の科目「コ
ンピュータリテラシー」でコンピュータ一般の基礎
を学び、2年次の科目「プログラミング」で従来型
の講義と実習をセットで繰り返す授業形式をとって
いる。2年次では、プログラミングの基礎を入門レ
ベルで理解させるが、3年次の科目「プログラミン
グ」においては、①習熟度別、②自学型、③自己理
解のための説明、を目標とした自学型習熟度別授業
を行っている。
以前は3年次でも講義と実習をセットにして繰り
返す従来型授業形式で行っていたが、以下の改善が
必要であった。
・基礎をすでに終えているため、実習を中心として
理解度を向上させる。
・学生のレベルの多様性に対応させる。
そこで、上記①から③を目標とした自学型習熟度
別プログラミング教育を始めた。この教育方法では
少人数の教員だけでは効果を発揮できないと予想さ
れたため、プログラミングに熟練した教員2名、同
じく技術職員2名の4名体制で臨んだ。スタッフそ
れぞれが、学生のレベルに応じて個々に対応する授
業のため、多くの労苦があったが、本文中で述べて
いるように従来型授業形式に比べ、本授業形式はプ
ログラミングに対する好き嫌いの「好き」の向上、
得意苦手の「得意」の向上がアンケート結果から得
仙台高等専門学校教育研究技術支援室(Education and Research Support Team, Sendai National College of Technology) 〒989-3128 仙台市青葉区愛子中央 4 丁目 16-1
E-mail: [email protected]
仙台高等専門学校専攻科情報電子システム工学専攻(Advanced Course of Information and Electronic Systems, Sendai
National College of Technology)
仙台高等専門学校情報システム工学科(Department of Information Systems, Sendai National College of Technology)
109
られた。また、従来型授業形式に比べ本授業形式を
「良い」と回答する学生が多かった。これらの結果
から、本授業形式の採用は学生のプログラミングへ
の意欲向上につながったと思われる。
本論文では、この授業形式の内容、特色、及び、
学生からのアンケート結果に基づく評価と有効性に
ついて述べる。
なお、習熟度別の授業形式は、数学や英語など一
般科目で広く取り入れられている 。しかし、プロ
グラミング教育などに取り入れるのは、実習などを
含むため難しい。また、複数教員による創造力教育
の実施 及び、 複数教員によるプログラミング教
「複
育の実施 がある。これらに対し本授業形式は、
数教員」
、
「自学型」
、
「習熟度別」の 3 つを同時に取
り入れることにより、多様なレベルの学生たちに手
厚く対応し、学生たちは自分のペースで学習を進め
られるという特徴をもっている。
2.関連授業カリキュラム
本論文の対象である3年次「プログラミング」に
関連する仙台高専情報通信工学科3年次までのコン
ピュータ関連授業内容を次に示す。
1年次「コンピュータリテラシー」
コンピュータとネットワークについて、それらを
利用していく上での基礎的な知識・技能を、講義及
び実習を通して習得する。全学科共通内容で、直接
的なプログラミング教育は行っていないが、プログ
ラミング教育に必要な数値表現、ソフトウェアの役
割などの基礎を習得する。
2年次「プログラミング」
C言語によるプログラミングの基礎を習得するこ
とを目的とし、講義と実習のセットを繰り返す授業
形式である。
また、この授業では &* の作成を行い、その作品を
学生たちが評価するといったことも授業に取り入れ
ている 。
3年次「プログラミング」
2年次の「プログラミング」で学んだプログラミ
ングの基礎知識をもとに、C言語を特徴づける機能
に関する知識や技能を習得する。プログラミングに
ついての発表も行い、発表技術の習得とプレゼンテ
ーションソフトの操作技術の習得も同時に行う。
3.プログラミング授業の内容及び特色
3年次「プログラミング」の授業も以前は講義と
110
実習をセットで繰り返す形式で授業を行っていた。
しかし、この授業形式には次のような疑問を抱えて
いた。
① 2年次においてすでにプログラミングの基礎を
終えているため、講義と実習の繰り返しよりも
実習中心で行った方が理解度が高まるのではな
いか?
② 講義形式では多数の学生の多様なレベルに対応
することが難しく、さらには学生のレベル差を
広げてしまっているのではないか?
③ 定期試験が無意味ではないか?プログラミン
グは実技であるはずなのに、試験は暗記問題に
なりがちである。
これら疑問への対策として、 年度から「習熟
度別」
、
「自学型」
、
「自己理解のための説明」を目標
とする自学型習熟度別プログラミング教育を始めた。
年度から 年度まではこの方法を試行錯誤
しながら行い、具体的アンケートやデータ収集など
は 年度と 年度に行った。この授業は教員
2名及び技術職員2名の合計4名のスタッフで担当
しており、授業の進め方及び特色を次に説明する。
3.1 習熟度別:グループ分け
多様なレベルの学生に対応するために、1クラス
約 名の学生達を習熟度レベル毎に3つのグルー
プに分け、そのグループ別の難易度で授業を行うこ
とにした。
第1回目の授業で学生のレベル確認用課題を行わ
せ、その結果と学生からの自己申告とを基本として、
習熟度別に初級、中級及び上級の3グループに分け
る図1。初級レベルは、プログラミングの基礎か
らじっくりやり直す必要性があると思われるレベル
であり、中級レベルは、プログラミングの基礎は習
得しているが、LI 文、繰り返し、配列などから始め
た方がよいと思われるレベルである。上級レベルは
関数から始めて良いと思われるレベルである。レベ
ル確認用課題は、このようなレベルを判定する材料
となる課題群から成る。これと学生からの自己申告
を併せ、レベル確認用課題の結果に高い優先度をお
いた上で、さらに自己申告を尊重し、スタッフがグ
ループ分けを決定する。自己申告を尊重する理由は、
学生自身が思っているレベルよりも、より上のレベ
ルのグループに入り、難易度の高い課題に取り組み
たいという学生に対して、やる気を大事にするため
の配慮である。
学生達は、レベル毎にグループとして集まり実習
に取り組む。各グループにはそれぞれ難易度の異な
論文集「高専教育」 第36号 2013.3
る課題が数多く用意されているので、その課題を つずつクリアしていく。課題の進み具合と学生本人
の希望などにより別グループへの移動が可能であり、
用意したすべての課題をクリアするかまたは、能力
的に上位レベル相当と思われる場合はスタッフの判
断により上位レベルへ移動する。初級から中級、中
級から上級へとステップアップしていく学生も数多
くいる。また、数は少ないが逆の場合もある。なお、
この課題クリアに関しては、
「3.3自己理解のため
の説明」にて詳しく述べる。
このグループ分けにより学生達に差別感が生じて
いないか確認のため、後述するアンケートの設問と
して用意し、学生からの回答を得ることにした。
授業開始
レベル確認用課題
と自己申告
プログラミングの基礎
(定数、変数、入出力、
四則演算など)
初
級
グループ
分け
if文、繰り返し、配列な
ど
中
級
上
級
関数を多く利用
再帰関数、構造体など
ステップ数の大きな課
題
図1 グループ分け
3.2 自学型:基本的に講義無し
学生は、プログラミングの基礎に関して2年次「プ
ログラミング」で習得しているはずなので、3年次
「プログラミング」では実習中心とし、原則として
講義形式の解説はほとんど行わない。これにより学
生は各自のペースで授業を進められる。
学生は教科書や実習室備え付け参考書及び :HE な
どを参考にして課題に取り組む。このときに学生達
同士の相談や教え合いは禁止してはいない。むしろ、
学生達が課題作成に関して理解が深まるのであれば、
プログラム作成を共同でしても、他の者に教えても
らっても良いとしている。ただし、後述する課題報
告がきちんとできることが条件となる。つまり、各
自が理解することができれば何を行っても良いとい
う考え方である。
なお、講義を全く行わないわけではなく、ときど
き同じ課題に行き詰まった学生達を集めて講義を行
うことがある。その中でも、初級グループ相手に講
義をすることが多い。
3.3 自己理解のための説明:課題報告
学生自身の理解度把握と説明能力向上を目的とし、
なおかつ定期試験を行わない代わりの意味合いも含
め、課題プログラムを作成した学生は、そのプログ
ラムについての説明を授業スタッフに行い、チェッ
クを受けることを義務づけている。
そのチェックでは課題の説明が的確に行われたか
どうかと、課題に関係する質問などもある。課題の
仕様を満たしていないプログラムだった場合、よく
理解できないままに作成したため説明不足な場合、
そして質問に対しての受け答えが不十分な場合など
のときには、チェック不合格となりプログラム修正
や質問に対する再調査再学習などを行うことにな
る。チェック合格なら次の課題へと進む図2。
授業スタッフは、原則として全員が全てのグルー
プの課題チェックを行うことが可能であるが、あえ
て学生へのきめ細やかな対応のために、普段はスタ
ッフ各自の主担当グループを定め、そのグループに
重点を置いてチェックする体制をとっている。
また、理解度把握と説明能力向上という同じ目的
から、プレゼンテーションを数回の時間をかけて行
わせている。発表テーマは「コンピュータ一般」
、
「ネ
ットワーク」
、
「C言語プログラミング」などから適
当なキーワードを決めて、発表資料作成・チェック・
発表という作業を行っている。
開始
課題
自学
次の課題
説明
不合格
チェック
合格
No
グルー
プ移動?
Yes
別グループへ
図2 課題プログラム作成
111
4.授業形式の評価
年度本校情報通信工学科3年5の 名、
及び 年度 5 の 名にアンケート調査を実施し
た表1。このアンケートは自学型習熟度別プログ
ラミング教育形式で授業を受けた学生に評価を得る
こと、そして今後の授業改善などの資料を集めるこ
とを目的として行った。その結果のまとめを次に示
す。
4.1 好き嫌いと得意苦手の変化
本授業を受講した結果、学生達が「プログラミン
グ」という科目に対しての嫌悪感とか苦手意識がど
のように変化したかを知るための設問である。
まず、好き嫌いの変化については「ちょっと嫌い」
または「嫌い」が受講前には約 であったものが
受講後には約 へと変化し、プログラミングに対
して嫌悪感を持つ学生が減ったことを示している
図3。しかし、このデータをグループ別に分けて
見てみると、初級グループの中で「嫌い」と回答し
た割合が、受講前と受講後での変化が他のグループ
に比べ、少ないことが分かった図4。
また、好き嫌いの変化ほど大きな変化ではないが、
得意苦手の変化においても、
「ちょっと苦手」または
「苦手」が受講前の約 から約 へと減少してい
る図5。ただし、グループ別に分けて見ると初級
グループの学生達だけ逆に「苦手」が増えているこ
とが分かった図6。
学生全体としては嫌悪感と苦手意識が減っている
という良好な結果が得られている。しかし、初級グ
ループの中でも特にプログラミングの不得意な学生
達に変化が少ないという結果は、本授業形式の改善
すべき点の一つとして意識する必要があると思われ
る。
4.2 本授業を受講してみての感想
まず、
「講義は必要だと思いますか"」という問い
には、学生達の意見が分かれた結果となった。何ら
かの形で講義が必要と思っている学生が半数以上い
る。その反面、講義は必要ないと思っている学生も
約 いる図7。これは、課題の解説ヒントを
望む学生が多いことと、講義無しのマイペースで課
題に取り組みたい学生がいるためと思われる。なお、
このアンケートの問いには、各グループによる大き
な違いはなかった。つまり、初級グループの学生達
でも約 は講義を必要ないと回答している。
次に、
「授業は大変でしたか"」という問いには、
約 が「大変」または「ちょっと大変」と回答し
表1 アンケート 年度版
112
論文集「高専教育」 第36号 2013.3
ていて、この授業は学生にとって決して「楽な授業」
ではないようである図8。また、
「授業では何が大
変でしたか"」という複数回答ありの問いには、全学
生 名の中で 人から「プログラム作成」と回
答があった。また、
「説明」が 人や、
「調べること」
が 人との回答もあり、ただプログラムを作るだけ
ではなく調査や課題報告などに大変さを感じた結果
と思われる図9。
学生が習熟度別のグループ分けを差別と感じてい
ないか、特に初級グループの学生が差別と感じてい
ないかを確認するためのアンケート結果を見ると、
「ちょっと差別だと思う」と「差別だと思う」を合
わせ 以下の結果となった。また初級グループの
学生達のアンケート結果が他グループとほぼ同じで、
他のグループと比べても大きな差がないことを確認
できた図10。
課題プログラム作成後の授業スタッフへの課題報
告に関して、
「教員への課題報告は自分の理解度把握
に役立つと思いますか"」
、
「教員への課題報告は自分
の説明能力向上に役立つと思いますか"」という問い
に対してどちらも 以上の学生が「役に立つ」ま
たは「ちょっとは役に立つ」と回答している。これ
は、課題報告という手間のいる説明作業でも、学生
自身が自分たちに有用なものであると感じている結
果と思われる。また、
「学生同士による相談教え合
い」に関しても、以上の学生が「役に立つ」ま
たは「ちょっとは役に立つ」と回答している図11。
受講前 (2.7%)
受講後
(16.2%)
(6.8%)
(17.8%)
0%
(33.8%)
(24.3%)
(23.0%)
(31.5%)
20%
(19.2%)
(24.7%)
40%
60%
得意
ちょっと得意
ちょっと苦手
苦手
80%
100%
普通
図5 得意苦手の変化
初級グループ
(0.0%)
受講前 (0.0%)
(45.5%)
(36.4%)
(18.2%)
(0.0%)
受講後 (0.0%)
(54.5%)
(36.4%)
(9.1%)
0%
20%
40%
60%
80%
100%
中級グループ
受講前(0.0%)
受講後
(13.8%)
(3.4%)
(48.3%)
(24.1%)
(13.8%)
(13.8%)
0%
(20.7%)
(34.5%)
(27.6%)
20%
40%
60%
80%
100%
上級グループ
受講前
(5.9%)
受講後
(20.6%)
(32.4%)
(23.5%)
(12.1%)
0%
(17.7%)
(12.1%)
(42.4%)
(27.3%)
20%
40%
60%
得意
ちょっと得意
ちょっと苦手
苦手
(6.1%)
80%
100%
普通
図6 得意苦手の変化グループ別
(62.2%)
0%
20%
(37.8%)
40%
60%
何らかの形で講義が必要
80%
100%
講義は必要ない
図7 講義は必要ですか"
(0.0%)
(36.5%)
受講前
(21.6%)
(10.8%)
受講後
(29.7%)
(20.3%)
(32.4%)
(20.3%)
0%
20%
(33.8%)
40%
60%
好き
ちょっと好き
ちょっと嫌い
嫌い
0%
(17.6%)
20%
(5.4%) (8.1%)
80%
(9.5%)
(52.7%)
40%
60%
大変
ちょっと大変
ちょっと楽
楽だった
80%
(1.4%)
100%
普通
100%
図8 授業は大変でしたか"
普通
図3 好き嫌いの変化
説明
調べること
初級グループ
受講前
(9.1%)
受講後
(9.1%)
20%
40%
60%
80%
(17.2%)
(6.9%)
その他
受講後
(24.1%)
(20.7%)
0%
20%
(24.1%)
(10.3%)
(37.9%)
40%
4
0
(31.0%)
(20.7%)
50
100%
中級グループ
受講前
17
プログラム作成
(27.3%)
(0.0%)
(45.5%)
(18.2%)
0%
(36.4%)
(18.2%)
(27.3%)
(9.1%)
20
60%
80%
10
20
30
40
50
60
70
図9 何が大変でしたか"
(6.9%)
100%
上級グループ
受講前
受講後
0%
(14.7%)
(26.5%)
(44.1%)
20%
(11.8%)
(38.2%)
(29.4%)
(23.5%)
40%
60%
80%
(5.9%)
(2.9%) (2.9%)
100%
初級
(0.0%) (9.1%)
中級
(0.0%) (7.1%)
上級
(3.1%) (6.3%)
0%
好き
ちょっと嫌い
ちょっと好き
(90.9%)
(92.9%)
(90.6%)
20%
40%
60%
80%
100%
普通
嫌い
差別だと思う
ちょっと差別だと思う
差別とは思わない
図4 好き嫌いの変化グループ別
図10 グループ分けは差別だと思いますか"
113
課題報告は理解度把握に?
初級
中級
上級
0%
(63.6%)
(27.3%)
(25.0%)
(81.3%)
20%
40%
初級
中級
上級
(54.5%)
役立つ
100%
60%
(9.1%)
(28.6%)
(0.0%)
(28.1%)
(0.0%)
80%
100%
学生同士による相談(教え合い)は?
初級
中級
上級
0%
(70.0%)
役立つ
ちょっと役立つ (20.0%)
(71.4%)
役立つ思わない
40%
役立つ
(10.0%)
(3.6%)
(25.0%)
(87.5%)
20%
(12.5%)
60%
欠点を学生達も感じていたことを表したものと思わ
れる。
2R
どちらかといえば2R
どちらでもよい
どちらかといえば3R
3R
図12 従来方式との比較
(34.3%)
(2.9%) (12.9%)
ちょっと役立つ
(36.4%)
(71.9%)
40%
(6.3%)
80%
役立つ思わない
(71.4%)
20%
(0.0%)
(12.5%)
60%
課題報告は説明能力向上に?
0%
(9.1%)
(75.0%)
80%
(0.0%)
100%
(47.1%)
(2.9%)
0%
20%
40%
60%
80%
100%
5.おわりに
ちょっと役立つ
役立つ思わない
図11 課題報告などは?
4.3 授業形式の比較
一般的な講義と実習をセットで行う授業形式と自
学型習熟度別プログラミング教育形式の両授業、こ
の2形式を比較することを目的とした「どちらの授
業形態が良かったと思いますか"」という問いでは、
約 が「どちらかと言えば 5」または「5」と3
年次の本授業形式を良かったと回答しており、学生
達の多くが本授業形式に好感を持った結果を得た
図12。また、
「2年次及び3年次プログラミング
授業形式の良い点と悪い点は何か"」という質問には、
多くの回答を得ることができた。この回答の中から
特徴的なものを次に示す。
2年次プログラミング授業形式
「良い点」
・授業に説明があったので分かりやすかった。
・プリントが用意されていて分かりやすい。
「悪い点」
・理解している人には退屈である。
・できる人とできない人の進度が同じになってし
まう。
3年次プログラミング授業形式
「良い点」
・自分のペースで学習を進められる。
・課題を説明するので、自分がどの程度理解して
いるかわかる。
・自分で調べないといけないので、いやが上でも
向上心や能力が身に付く。
「悪い点」
・スタッフの人数が少ない。
・講義が少ない。
・課題説明の際に、専門用語を軸にスタッフから
の質問攻めにあう。
この設問の結果は、入門時に有効だが理解レベル
の差に対して対応できない一般的な授業形式と、そ
れに対応しようとした本授業形式それぞれの利点と
114
本授業形式は、講義をほとんど行わないで、課題
報告を受けチェックするという特殊な形態であり、
授業スタッフ4人がそれぞれ学生1人1人に対応す
るという学生にとってもスタッフにとっても「大変」
な授業である。
今回行った2年分のアンケートでは、学生たちが
この「大変」な授業を自分達に有用な授業であると
感じ、また、プログラミングに対して好感を持つ学
生が増えているという概ね良好な結果が出たと思わ
れる。しかし、初級グループの一部の学生にはこの
授業形式でも対応できていないような結果もアンケ
ートに出ているように思われる。このような学生へ
の対策として、 年度には初級グループの中でも
自学形式には不向きな学生1~3人ほど相手に授
業スタッフ1人がある程度付きっ切りで対応するな
どの取り組みを試みた。
また、スタッフ人数の増員は難しい問題であるが、
代理スタッフ一時的スタッフの準備・訓練などを
考えていきたい。
参考文献
中屋,向山,杉江,小野,竹居:高専の数学における習
熟度別クラス授業について,日本数学教育学会高専・大学
部会研究論文誌第 号,SS
石川,桑田,前田,上杉:英語習熟度別クラスの改善,
広島商船高等専門学校紀要第 号,SS
林,力,柳澤:情報電子工学科における創造教育につい
て , 情 報 処 理 教 育 研 究 発 表 会 論 文 集 第 号 ,
SS
内田,松村,西野,松尾,本間,山口:複数教員による
プログラミング教育,情報処理教育研究発表会論文集第 号,SS
矢島,速水,竹島,脇山:全科共通のコンピュータリテ
ラシ教育,情報処理教育研究発表会論文集第 号,
SS
與那嶺,園田:コンピュータグラフィックスを用いた総
合的情報処理教育の実践報告,論文集「高専教育」第 号,SS