チームワークの準備
第9回から第11回にかけて、チームで自由に題材を選んでプログラムを開発する。また、プログラムの説明書とプログラムを紹介するWebページおよびパンフレットも作成する。
第12回には、作った作品について発表とデモンストレーションを行い、皆で投票しそれぞれのプログラムを評価する。
そして第13回のときは、基礎プログラミングIIの全クラスが参加する合同成果発表会を開催する予定である。
発表会までに作成するもの
- Rubyプログラム/CGIプログラム
- プログラムを紹介するWebページ
- 説明書(PDF)
- パンフレット(PDF)
(また、必須ではないが発表会ではスライドを使用することも検討してください)
プログラムのテーマの例
- 地域活性
- 実用
- 教育
- シミュレーション
- エンターテイメント
チーム
A(仮)
C1222293
C120014A
C1222270
C1221833
C1221738
B(仮)
C1221394
C1221230
C1220029
C1221744
C1221603
C(仮)
C1220673
C1221543
C1221750
C1220963
C1221282
D(仮)
C1220041
C1222092
C1221520
C1220064
C1222376
E(仮)
C1222301
C1221649
C1222057
C1222399
C1221922
F(仮)
C1221425
C1222287
C1221017
C1220555
C1222146
今後のスケジュール
9回目(本日)
(授業中)
チーム名の決定(作品のテーマを決めてからでもいい)
役割分担の決定
本講義のS4グループでチーム固有の掲示板の作成
作成するプログラムの検討(人数分の候補を挙げてブレーンストーミングを行う)
(次週まで)
作成するプログラムの決定
仕様書の作成
チームでの作業スケジュールの作成
10回目(12/08)
- プログラムの作成
- Webページの作成
- 説明書の作成
- パンフレットの作成
11回目(12/15)
- タイピングテスト
- プログラムの完成
- Webページの完成
- 説明書の完成
- パンフレットの完成
- 発表の準備
12回目(12/22)
13回目(1/19)
14回目
役割分担について
まずは各グループで相談し、下記を参考にチームでの役割分担を決定すること。
- プロジェクトマネージャー(兼任)
プロジェクトのスケジューリングや各自分担部分の進捗管理、連絡の取りまとめ等をおこなう。
- コーディング担当(複数人可)
プロジェクト内で決定した設計を元に、プログラムを実装する。
- Webページ作成担当
プログラムを紹介するWebページを作成する。
- 発表担当(兼任?)
発表会の準備を担当する。発表時にWebページに加えてスライドやその他の発表資料を用いると決めた場合はその資料を作成する。
- [その他](各チームの必要に応じて)
データ作成担当、画像作成担当、CGI担当、等々。
連絡手段
授業以外の時間にもチームが集まって作業を行う必要が生じる可能性が高いし、そうでない場合にもチーム内での情報共有を可能にしなければならないため、メンバーで連絡が取れるようにすること。
たとえば、本講義のS4グループにチーム固有の掲示板を作ることができる。
チーム所有の掲示板の作り方:
- まずはチームを作成しそのメンバーを設定する:
- グループのホームページで「メンバーを個別選択しての操作」を選ぶ。
- 「同じチーム属性を付与」を選んで、チーム名を記入する。
- 下に表示されている名簿でチームのメンバーを探して、☑ を付ける。
- チーム名の右側に表示されている「送信」ボタンを押して、チーム所属を設定する。
- グループのホームページに戻って、「グループの新規話題作成」を選び、分りやすいタイトルと序文で掲示板を作る。
- 「修正」画面末尾にある「☐ この話題を以下のチームのものにする」にチェックを入れ、自分のチームを選択し、「確認」をチェックして「移動」ボタンを押す。
- グループのホームページに戻って、話題一覧の「team」列で自分のチーム名が表示されていることを確認する。
「チーム所有」モードにすると「全員通知モード」がチームのメンバー全員になる。
チーム掲示板書込み通知を受け取るアドレスを変えることも可能である:
- グループのホームページを開き、「自身の参加状態を操作する」を開く。
- 「参加する場合のメイルアドレス」に通知先アドレスを記入して「送信」を押す。
- 通知メールは @k.koeki-u.ac.jp ドメインから送信されるので必要なら受信許可を出す。
プロジェクトマネジメント
複数人で協力して一つのRubyプログラムを作成し発表準備を行うという計画(プロジェクト)を納期内に達成するためには、明確な目標とそれを実現するのに必要な作業のスケジュール、そして進捗状況の管理(マネジメント)が必要である。プロジェクトの管理はプロジェクトマネージャーの主な役割になる。プロジェクトマネジメントの流れを簡単にまとめると、以下の通りである。
- 目標設定
- プログラムの構想(テーマ、目的、解決しようとする問題など)
- 対象者(プログラムのユーザー)は誰か
- オリジナリティ(既存の似たようなプログラムやサービスと何が違うか)
- 仕様書(プログラムの入力と出力、具体的な機能、使い方などを明確にしたもの;例)
- 必要な作業の特定と分解
- 作業スケジュールの作成*
- 誰が行う
- どのぐらい時間がかかる
- いつまでに完了しなければならない
- 進捗状況の管理*
- 計画通りに進んでいるか確認
- 計画通りに進んでいない場合の対応
- スケジュール更新(元の計画になかったが必要だと分かった作業の追加など)
*スケジュールの作成と管理は全員で共有するガントチャートを用いると効率的になる。
プロジェクトマネジメントについてもっと詳しく:プロジェクトマネジメントについて(山本先生のページ)
Webページについて
作成したプログラムを紹介するWebページを作成し ~/public_html/
内のどこかに置くこと。Webページの書き方についてはWebページ作成の基礎を参考にし、emacsなどを用いて作成する。
内容:
- チームメンバーの紹介
- プログラムの概要
- プログラムのソースファイル(ダウンロードリンク)
- 使い方の説明
- 工夫した点
- アピールしたい点
- 注意点
- 参考文献
- 等々
ヒント:他人に作られたページのHTMLを参考にしたい場合はFirefoxでページに右クリックし、「View Page Source」を選ぶ。ページの一部を選んで、その部分のみのHTMLを覗くこともできる(「View Selection Source」)。
プログラム紹介のWebページの例:
架空のプログラム「Five Seconds!!」(神田先生のページ)
架空のプログラム「NumberMagiQ」(広瀬先生のページ)
「Battle Game」(先輩達の作品)
「Koeki Shokugan Site」(先輩達の作品)
説明書について
- PDFで提出
- 内容: プログラムの概要、使い方、工夫した点、アピールしたい点、注意点、参考文献など
- Webページと同じ内容でも良い
プログラム説明書の例(先輩達の作品):
説明書
パンフレットについて
- PDFで提出
- 内容: 作ったプログラムの宣伝
- ヒント: パンフレットは LibreOffice の Impress または Draw で簡単に作成できる(どちらも大学の端末で使用可能)
パンフレットの例(先輩達の作品):
酒田市遊び場検索プログラム
観光地検索プログラム
作品のプレゼンテーション
第12回の授業では完成したプログラムのデモを含めたプレゼンテーションを行なう。プレゼンテーションは全員に見やすいWebページ、もしくは OpenOfficeなどで作成したスライドを見せながら行なう。発表資料の作成係も重要な任務の一つとなる。
評価基準
- 投票の結果(全員が投票する)
- プログラムのアイディアとオリジナリティ
- プログラムの出来
- 説明通り動作するか
- ソースコードのスタイルと分かりやすさ(インデント、変数名、無駄な繰り返しの有無、メソッド定義を活用しているか)
- 技術レベル(CGIやオブジェクト指向など、これまで学んできたことを活用しているか)
- Webサイトの出来
- プレゼンテーションの出来
- 使用した資料を参考文献として明記しているか
- 他人が作ったプログラムや画像などを盗用していないか
注意事項
- 一人に負担が集中することのないように、チーム全員で協力しあってプロジェクトを遂行する
- ネット上で公開されているプログラムを参考にしたりAIを利用したりするのは良いが、他者が作ったソースコードが大部分を占める作品は著作権侵害行為となる
- 他者やAIが作ったソースコードを実行する前に必ずその内容を理解しておくこと(そうじゃないとウイルスなど、有害なソースコードを実行してしまうおそれがある)
- Webサイトを含む、本講義の資料以外の資料を参考にした場合は、出典を明記すること(参考文献)
本日の課題
- 提出先:S4の 「第9回の課題提出」に提出してください.
- 提出期限:2023年12月5日(火)
- 下記の要素を含めること:
- 所属するチーム名
- 自分の役割分担
- 自分が提案したプログラムの概要:
- テーマ
- 内容
- 想定されるユーザー
- オリジナリティ
- 簡単な仕様(プログラムの入力と出力、機能、使い方などを明確にしたもの;例)
- プログラムを開発するために必要な作業のリスト
- 参考文献(Webサイトを含む、本講義の資料以外の資料を参考にした場合)
目次