自由課題作成(グループワーク)
テーマ
この講義で習ったアルゴリズムやデータ構造は様々な問題に適用できる。今回のチーム課題では、授業で習ったアルゴリズム(多倍超演算のアルゴリズム、探索やソートのアルゴリズム、編集距離を計算するアルゴリズムやその他に再帰・動的計画法を使ったアルゴリズム)の1つ以上、そして適切なデータ構造(配列、構造体と共用体、線形リスト等)を応用するCプログラムを考案し開発する。授業で紹介したもの以外に自分で調べたアルゴリズムやデータ構造を使っても良いが、その仕組みや利点・弱点についてきちんと理解し説明できるように準備すること。
作成するもの
- Cプログラム
- 説明書(PDF)
内容:
- プログラムのタイトル
- プログラムの概要
- 使い方
- 利用したアルゴリズムに関する説明
- 利用したデータ構造に関する説明
- 工夫した点
- アピールしたい点
- 参考文献
- プレゼンスライド(必須ではない)
チーム
A(仮)
C1220118
C1221193
C1221448
C122213A
C1231033
C1231234
B(仮)
C1221187
C122132A
C1221856
C123110A
C1231139
C1231470
C1231955
今後のスケジュール
5回目(1/09)
(授業中)
チーム名の決定
役割分担の決定
本講義のS4グループでチーム固有の掲示板の作成
ブレーンストーミングをして、作成するプログラムの決定
仕様書の作成
チームでの作業スケジュールの作成
(次週まで)
プログラムの作成開始
6回目(1/16)
- プログラムの完成
- 説明書の作成
- (プレゼン資料の作成)
- 発表の準備
7回目(1/23)
評価基準
- 対象の処理に適切なアルゴリズム・データ構造を利用しているか
- プログラムのアイディアとオリジナリティ
- プログラムの出来
- 説明通り動作するか
- 技術レベル(これまで学んできたことを活用しているか)
- ソースコードのスタイルと分かりやすさ(インデント、変数名、無駄な繰り返しの有無、関数定義を活用しているか)
- 利用した資料を参考文献で記述しているか
- 著作権侵害行為(他人が作ったプログラムなどの盗用)をしていないか
複数人で(そして遠隔操作で)プログラミング作業を行う上のポイント
- 作業分担しやすいプログラム設計:
- まずはプログラムの全体的な設計を作る(仕様書)
- 必要な処理とその順番を考えて、記述する(疑似コード)
- 疑似コードで特定された処理ごとに、必要な入力情報および処理の出力を具体的に指定する(関数の骨格)
- メンバーに分けて必要な関数を実装し、最後に一つのプログラムにまとめる
- ソースファイルをチームで共有し更新できるバージョン管理システム(gitなど)を活用する(広瀬先生のチュートリアルを参考)
過去の作品の例
2021年度のグループ課題
2022年度の自由課題
2023年度のグループ課題
本日の課題
各グループの代表者1名がこれまでの進捗状況を報告すること。
- 提出先:S4の 「第5回の課題提出」に提出してください.
- 提出期限:2025年1月15日(水)
- 下記の要素を含めること:
- チーム名
- チームが作るプログラムの概要・仕様
- 作業スケジュールと現時点での進捗状況
- 残っている作業・課題
- ソースコード(添付ファイル; 未完成でOK)
目次