H27年度 情報工学実験および演習2 2015.7.16 MS(Ver.1)
ACMプログラミングコンテストを利用した実践的プログラミング(第3回)
[目的]
プログラミングの授業を一通り終えた時期に,@授業の試験問題や演習問題ではない現実世界で起こりえる実践的な問題として与えられた課題を解決するプログラミング開発の経験と,Aデータ構造やアルゴリズムの知識をいかに活用して実際の問題を解くか,あるいは逆に複雑なデータ構造やアルゴリズムを使わない戦略を選ぶのか等々,非常に多くのプログラム戦略(解法)が存在するなかから,『限られた時間』で『正しく動くプログラム』[1]をつくるという(非常に短時間ではありますが)『工程管理』の経験をすること,Bこれらを通して『情報系の設計工学』を経験することが実験の目的である.さらに,第2回目からは協調設計という観点を追加します.
[本日の実施形態]
本日分は,最初の2問は個人単位で,3問目は3人(あるいは2人)でチームを作ってプログラム開発を行います.第2回目とは異なるメンバでチームを構成すること.夫々のプログラムに関する十分な解説「プログラム開発の基本戦略,高速化等の最適化戦略など工夫した点、チーム内での自分の役割,貢献度、感想」をレポートとして提出します. レポートは指定の表紙[2]をつけて個人毎に提出します.
[実施形態]
指定された問題に対して,第1回目と同様の手順でプログラミング,動作検証,性能解析,プログラム登録を行います.3種類のプログラムを開発します.
第一回目に配布した手順は以下のURLでアクセスできます.
http://sylph.fuis.u-fukui.ac.jp/~moris/lecture/EX2ACM/1st.html
プログラム投稿システムのURL は以下の通りです.
http://isv.fecs.eng.u-fukui.ac.jp/jikken/ex2acm/form.html
いずれも学内からのみアクセスできます.
投稿システムにプログラムを投稿する際に使用するUIDは,皆さんのログインIDの下2桁と皆さんの名前のイニシャル姓名の順で入力してください.例えば ログインID i1389 姓:情報 名:太郎の場合,UIDは 89JT となります.入力する文字列は半角英数字のみにしてください.アップロードするファイルのファイル名も同様に半角英数字のみにしてください.
投稿した自己申告データは「自己申告」の欄に投稿時刻順で表示されます.「自己申告」のページには,
投稿時刻 UID 自己申告の実行時間(lap) 投稿したプログラムの名前
が時刻順で表示されます.最新情報を得るにはブラウザの「リロードボタン」を押してください.「仮ランキング」は授業中のみ更新します.「自己申告」と「仮ランキング」以外は更新しない予定です。
[以下は,指示があるまで作業を行なわないでください.]
(1)開始の合図で問題8,9を解いてください.(制限時間 XX分)
(2)開始の合図で問題10を解いてください.(制限時間 XX分)
問題8,問題9,問題10の問題自体,制限時間は別途指示します.開始後,一定時間経過後に,順にヒントを出していきます.時間計測時の平均値計算は第一回目に作ったプログラムを是非活用してください.
各問題が解けた人は、余った時間でレポート作成に取り掛かってください。
[1] 「コンパイルエラーが出ない」のと「正しく動く」のは全くことなります.特定の入力パターンのみで動くプログラムではなく,(仕様で定められる範囲の)いかなる入力データ(系列)に対しても正しく動く必要があります.