2018.04.01
開講学部 | 未来科学部 情報メディア学科 |
科目名 | サーバプログラミング演習 |
担当教員 | 柿崎 淑郎 |
本科目は3年前期専門選択科目であり、プログラミング、オブジェクト指向、ソフトウェア開発方法論・設計論、データ構造とアルゴリズムなどの知識と技能を総動員して、過年次において学修した内容が集約され、発揮されるべき位置付けとなっている。
それまで別個の科目として独立し、その関係性が不明瞭であった学生も、システム開発全体を通して、学修してきた内容がどのように位置付いて、どのような役割を果たすのかを改めて再認識することになる。
本科目では、過年次に学んだ内容を遺憾なく発揮し、システム開発(問題解決)に取り組む科目として、P(Problem)BL型学習が適切に機能すると考え、取り組んでいる。
PBL導入の目的としては、システム開発という問題解決に取り組むことで、実践的な知識と経験を体得することである。
80名程度の受講者を4~5名のチームとし、全チームを2グループに分ける。各グループは半期隔週で受講するため、受講者にとっては全8週の講義スケジュールとなる。
本科目は情報メディア学科演習室で実施され、担当教員1名に加え、副手6名の体制を準備しており、各副手が毎週2チームずつ担当することとなる。
本科目におけるPBLのPはProblemである。チーム構成後に各チームで開発するシステムの構想を行わせる(要件定義フェーズ)。教員から提示する課題は「何らかの問題を解決するか、新たな付加価値を生み出す、実用的な(自分たちが使いたい)システムであること」「システムはCRUD機能をもつこと」の2点である。CRUD機能とは、データを操作するCreate、 Read、 Update、 Deleteの各機能である。
前半3週ではサーバサイドプログラミングの基礎的な演習に取り組む。4週目にはそれらを総合したサンプルアプリケーションの実践を通して、MVCモデルによるシステム開発を一通り学ぶ。チーム活動として要件定義書、外部設計書、内部設計書に基づいてシステム開発を進める。教員・副手からの積極的な介入は避け、チーム内で問題解決ができるように「促し」を行う程度の介入に留めている。最終8週目には成果物の発表会を行っている。発表会では10分と限られた時間の中で、なぜそのシステムを開発しようとしたか、どのような機能があるかの説明の後に、開発したシステムを実際に動かしながらデモンストレーションさせている。発表会においては発表チームを他チームがルーブリックで評価する受講者間の相互評価を取り入れている。
全講義期間を通じて、要件定義書、外部設計書、内部設計書の3つのドキュメントを作成し、毎講義に副手と教員によるチェックを行っている。これらのドキュメントに従ってシステム開発を進めるため、根幹となる重要な資料であるとともに、ファシリテーションの材料としても活用している。
提出された成果物(要件定義書、外部設計書、内部設計書、ユーザ操作マニュアル、発表会資料、開発したシステムのプログラム一式)を教員ならびに副手が評価し、チームとしての基礎点とする。
発表会においては、ルーブリックを用いて、発表チームを他チームが評価する受講者同士の相互評価を取り入れた。さらに、ルーブリックを用いて、チームメンバをチーム内で相互評価できるようにし、チーム内での協調性・作業量・責任感・貢献度を評価させた。相互評価の結果は、複数人の評価から中央値を採用した。
基礎点と相互評価の結果を加味し、総合的な成績評価を行った。
システム開発における開発工程の可視化は要件定義書などのドキュメントがその役割を果たすが、チーム活動が機能しているかどうかは確認できない。誰がどの作業にどのように関わったかを可視化するには、例えば、バージョン管理システム(gitなど)を用いたり、チケット駆動開発を採用したりするなどが考えられる。
しかし一方で、本科目ではこれ以上に新しい技術を習得させるだけの時間がなく、実質的に導入は不可能である。これらはソフトウェア開発の基本ツールであるので、低学年で必修化などが臨まれる。特にバージョン管理システムは全学共通で初年時導入教育を行うべきであると強く指摘する。
学修成果物については、VPS上で公開されるので、講義用ページからそれらの作品にはアクセス可能であり、自チームのみならず他チームの作品についても触れることが可能である。
最終発表会においては、各チーム10分の持ち時間で成果発表をするとともに、実際に作品を動かしてデモを実施している。この際、先にも述べたように、発表を聞いている受講生はその作品に実際にアクセスして使用することができる。
他チームの作品に触れることで、自チーム作品の良いところ、至らなかったところが見えてくるとともに、気づきを得る良い機会になっていると考えている。
PBL的な教授法あるいは介入法について、副手を十分に育成することができていない。担当副手は実際に講義を受けた経験からメンタリングやファシリテーションを実施しているが、十分とは言えない。副手の育成には課題がある。
受講者各人の能力を活かした(あるいは補った)チーム構成がPBL型学習上は効果が高いと考えるが、必修科目ではなく受講者が講義開始後でないと確定しないこと、プレスクリーニングを行うことが困難であることなどにより、いわゆる「仲の良い仲間」でチームが構成されることがほとんどであり、クラス全体としてのバランスに改善の余地がある。
留年者・落第者などへの対応が必要かもしれないが、年次進行に合わせて段階的に進むような長期間に渡るPBLも検討の価値はあると思われる。特に、本講義で扱うようなシステム開発においては上級生と下級生が連合チームを構成するようなPBLは全体的に上手く機能し、よい教育効果を発揮するのではないかと考える。
第1回 ガイダンス、プロジェクト開発、開発環境構築 チーム分け、グループ分け、開発環境構築
第2回 Webアプリケーションの基礎技術 サーバサイドプログラミングの導入、JSP、ビュー
第3回 MVCモデルに基づくソフトウェア設計 コントローラ、モデル、データベース連携
第4回 チュートリアル MVCモデルを用いたサンプルアプリケーション
第5回 アプリケーション作成(1) VPSサーバへのデプロイ VPSサーバの導入、デプロイ、グループワーク
第6回 アプリケーション作成(2)
第7回 アプリケーション作成(3) 全ての時間をチーム活動としてシステム開発 副手および教員は各チームの進捗確認をしつつ、必要に応じて「促し」を行う
第8回 最終発表会 各チームの成果発表
〇PBLを主体とした教育への取組みに対する支援(PBL教育支援プログラム学内公募)
東京電機大学教育改善推進室では、平成23年度から「学生が主体となって学ぶ」形式を取り入れた、いわゆる「PBL(Problem-Based Learning又はProject-Based Learning)」による教育の開発・運営を「PBL教育支援プログラム」として支援し推進しています。
PBL教育支援プログラムは、これからPBLを取り入れていこうと考えている教員やすでに実践しているPBLをさらに工夫しようと考えている科目を対象に支援を行い、その実践と成果を学内の関係者と共有し、学生の学びを主体とした教育の推進を図ることを目的としています。