事例研究

ソフトウェア工学教育におけるICTの活用事例

蜂巣 吉成(南山大学 情報理工学部 ソフトウェア工学科准教授)

1.はじめに

 南山大学のある中部地区は伝統的にものづくりの中心地であり、技術者の需要が非常に高いと言えます。2000年度に南山大学における初の理工系の学部として数理情報学部が設立されました。社会から求められる技術者の専門分野の変化に対応するために、2009年度にはソフトウェア工学科、システム創成工学科、情報システム数理学科の3学科からなる情報理工学部へと改組しました。個々の技術課題に特化した能力だけではなく、数理的な基礎理論を身につけた、高度化する技術を理論的に把握することができ、技術が社会にもたらす影響や倫理問題に対する洞察力を備えた人材を育成しています。現在は、数理情報学部生の4年生約250人と情報理工学部生の1〜3年生各約250名の約1,000名の学生が在籍しています。入学時からLinuxとWindowsが動作するノートPCを学生に貸与しており、講義や実習などで活用しています。
 2004年度には大学院数理情報研究科を開設し、より高度な専門知識を持つ技術者を養成してきました。2006年度から2009年度まで、名古屋大学大学院情報科学研究科、愛知県立大学大学院情報科学研究科、静岡大学大学院情報学研究科との「OJLによる最先端技術適応能力を持つIT人材育成拠点の形成」が文部科学省の先導的ITスペシャリスト育成推進プログラムに採択されました[1]。OJL(On the Job Learning)はPBL(Project Based Learning)とOJT(On the Job Training)を融合させた、産学連携による実践型のソフトウェア工学教育手法です。カリキュラムを改正し、ソフトウェア工学専修、数理情報専修の2専修を設け、さらに、ソフトウェア工学専修の中には、ITスペシャリストコースとソフトウェア工学コースを設けました。ITスペシャリストコースでは企業での実際のプロジェクトに学生が教員と企業からの研究員の指導のもとに取り組み、解決策を導き出すという実践的な教育を行いました。2010年度以降もソフトウェア工学専修のカリキュラムを一部変更してソフトウェア工学の先端的な技術を修得した人材を養成しています。
 本稿では、情報理工学部の1,2年次科目である「プログラミング基礎・応用実習」と大学院数理情報研究科の「ソフトウェア工学実践研究」におけるICTの活用事例について紹介します。

2.プログラミング実習におけるWebClassの活用事例

 情報理工学部では数学とプログラミングを基礎的な科目と位置づけて、1,2年次に集中的に学習します。「プログラミング基礎・応用実習」では講義科目「プログラミング基礎・応用」と連動してC言語による手続き型のプログラミングを貸与ノートPCを利用して実地に学習します。プログラミング実習は1クラス50名程度の授業で、学生のレポート提出と、提出されたレポートに不備があった場合に教員から学生へ通知するためにWebClass[2]を活用しています。
 プログラミング実習ではその回に学ぶ事項をまとめた資料とレポート課題をWebに掲示しています。レポート課題は提出することが必須の3〜4問の標準課題と、提出は任意の発展課題1問から構成されます。レポート課題の提出にはWebClassを使用しています。WebClassを使うことで教員は締切時刻の管理などを行うことができ、学生の提出ミスも減り、学生自身による提出状況の確認も行えます。
 提出されたレポート課題(主にC言語のソースプログラム)は教員がその内容を確認し、教員側の意図と異なる解答(プログラム)には、WebClassのレポート採点機能を利用してその旨を学生に通知します(図1)。レポートに不備のあった学生はWebClassに示されたコメントを見て、再学習し、解答を修正して再提出します。
 WebClassを利用することにより次の利点が挙げられます。

図1 WebClass採点結果表示画面
図1 WebClass採点結果表示画面
図2 提出レポート一覧画面
図2 提出レポート一覧画面

● 教員によるレポートの管理が容易になった。

WebClassにより厳密にレポートの提出状況の管理が行え、学生も自分自身で提出状況を容易に確認できる。学生は自宅で学習し、自宅からレポート課題を提出することも可能である。

● 授業時間中でもリアルタイムにレポートの提出状況を把握できる(図2)。実習中に課題未提出の学生を確認し、質問対応などのサポートを行いやすかった。

● 提出されたレポートの内容を確認して、学生にフィードバックすることが容易になった。Web ClassではWeb上でのレポートの採点機能や、採点した結果をCSV形式で保存してアップロードする機能があり、レポートの採点結果にコメントをつけて学生にフィードバックする際の敷居が低い。学生もレポートに対するフィードバックがもらえ、学習意欲の向上につながる。

今後の改善点として次の事柄が挙げられます。

● 教員のレポートの採点に時間がかかる。現在は教員が目視やソースプログラムをコンパイル・実行して、採点を行っているが、その自動化を検討している。教員があらかじめ用意した課題プログラムに対するテストケースを用いて、自動でコンパイル・実行し、その結果を解析・集計してCSV形式で出力するようなツールを開発中である。現在、テストの自動実行までは完成しており、今年度の秋学期(後期)の授業から実際に運用する予定である。

● WebClassによる教材を開発する。レポート課題に取り組む前の練習問題等をWebClassの空欄補充問題として提供することを検討している。

 WebClass利用に関する直接の学生アンケートは実施していませんが、各学期毎に約20の設問からなる学生による授業評価アンケートを教員のFD活動の一環として大学全体で実施しています。2011年度春学期(前期)のプログラミング応用実習で実施した授業評価アンケートから、WebClassの導入に関連して三つの設問について評価を行います(表)。

表 学生による授業評価アンケート(5点満点)
設問 プログラミング実習 学部平均
(a)教科書、板書、配布資料、視聴覚教材、課題、実技などは効果的でしたか。 4.50 3.97
(b)学生の学習意欲を引き出し、積極的な授業参加を促すような工夫はありましたか。 4.27 3.66
(c)自主的・発展的に学習を進めることができるように、適切な指導・情報提供がありましたか。 4.26 3.80

 各設問は5点満点ですが、どの設問も4.2点以上の高評価を得られました。情報理工学部の他の科目の平均評価が約3.8点前後ですので、WebClassをもちいた授業運営は学生からも評価されていると言えます。

3.企業との連携プロジェクトにおけるICTの活用事例

 大学院数理情報研究科ソフトウェア工学専修ITスペシャリストコースの科目である「ソフトウェア工学実践研究」はOJLを実施するための授業です。OJLは先導的ITスペシャリスト育成推進プログラムの一拠点として推進してきた、企業との連携によって現実のソフトウェア開発プロジェクトを教材とする実践教育です(図3)。大学教員と産業界からのプロジェクトマネージャの指導のもと、大学院修士(博士前期)課程の学生が1年次後期から1年半にわたって実製品レベルの開発プロジェクトに携わり、学生はその中でソフトウェア開発技術の適用能力だけでなく、実問題に照らした技術の取捨選択や組合せを可能とする能力を身に付けます。1プロジェクトにつき、学生が1〜3名、企業からのプロジェクトマネージャおよび開発メンバ1〜2名と教員1〜3名でOJLを実施します。

図3 OJLの概要
図3 OJLの概要

 OJLでは次のようにICTを活用しています。

(1)ソフトウェア構成管理システム(Software Configuration Management, SCM)

 複数の学生が共同して実製品レベルのソフトウェア開発を行うためには、ソフトウェアの構成管理(バージョン管理)が必須となる。Subversion[3]を用いて構成管理を行った。OJLでは開発システムのソースプログラムだけでなく、テストケース、仕様書やマニュアルなどのドキュメントもSCMを用いて管理した。

(2)バグ追跡システム(Bug Tracking System, BTS)

 ソフトウェアの開発ではバグの修正も重要な作業である。バグの報告から修正までを確実に行うためにBTSを利用してバグの集中管理を行った。Subversionと連携でき、Wikiの機能も備えているTrac[4]をBTSとして用いた。Tracではソフトウェアに対する追加機能の要望や、バグ報告などをチケットとして管理する(図4)。Wikiでは重要な作業などを記録し、グループでその情報を共有した。

図4 バグ追跡システム(Trac)のチケット登録画面
図4 バグ追跡システム(Trac)のチケット登録画面

(3)グループウェア

 グループでドキュメント共有などを行うためにグループウェア(サイボウズ[5])を用いた。一般にグループウェアではスケジュール管理も行えるが、BTSによりプロジェクトの管理を行ったので、グループウェアのスケジュール管理機能は利用していない。

 (1)(2)はソフトウェア開発では必須のツールとも言えるものですが、教育の観点からは次のことが言えます。

● 学生の行っていることの「見える化」

SCMでは一作業毎にコミット(修正作業の登録)を行い、作業内容をコメントとして記述する。BTSではバグの報告者を記録し、修正、レビュー、再テストなどの作業担当者を割り当て、作業が終了したら報告する。学生の役割や作業を明確にすることができ、教員が把握・管理することができる。実際、BTSで確認し作業が進まない学生に対してサポートすることも多々あった。

● 学部演習系科目への応用

OJLではソフトウェア開発を題材にしているので、SCMやBTSなどを用いたが、これらは学部生のグループで行う演習系の授業や卒業研究などにも応用できそうである。グループでの作業は、率先して行う学生と共同作業に消極的な学生に別れがちである。BTSなどを用いて作業を明確にして割り当て、随時進捗状況を管理し、見える化することで、学生が今何を行っているか、どこで躓いているかを把握し、サポートが行えるのではないかと思う。

4.おわりに

 本稿では、学部1,2年生のプログラミング実習と大学院生のソフトウェア工学実践研究(OJL)におけるICTの活用事例について述べました。授業評価アンケートなどから効果的にICTを活用できていると言えます。今後の課題として、ICT活用における教員の負担軽減のための仕組み作り、卒業研究などへのICTを利用した見える化などが挙げられます。

関連URL [1]http://www.ocean.is.nagoya-u.ac.jp/
[2]http://www.webclass.jp/
[3]http://subversion.tigris.org/
[4]http://trac.edgewall.org/
[5]http://cybozu.co.jp/

【目次へ戻る】 【バックナンバー 一覧へ戻る】