平成２０年度「情報システム設計演習」
実施の手引き

平成２０年４月

金沢大学工学部
情報システム工学科

平成２０年度「情報システム設計演習」について
１．情報システム設計演習の目的与えられた情報システム工学に関する課題に対し、主に２年次までに学んだ基礎・専門科目により修得した知識、理論、プログラミング技術、実験技術などを駆使して、ソフトウェアの設計、シミュレーションや電子回路製作などの課題について実施の計画、遂行からレポート作成、さらには発表までの実践的な演習を行うことにより、問題解決の方法を体験すると共にシステム設計の能力を養う。
学生には、基本的には課題が与えられるだけで、詳細な実施手順は示されず、自分の力で結果まで到達することが要求される。

２．学生の学習目標(1)選択した課題に対して、解を導くためにどうすべきかといった実施計画が立てられること。
(2)実施計画に従い、適切に実施・遂行できること。
(3)グループ課題の場合は、役割分担など適切に共同作業ができること。
(4)レポート作成では、課題に対する到達度、結果の考察などについて適切にまとめることができること。
(5)発表においては、適切に準備を行い、分かり易く提示できるようにすること。

３．実施の方法について(1)課題が提示される。
教員１名が１つの課題のみを設定するときの学生定員数は６人ないしは７人とする。また、教員１名が２種類以上の課題を設定することもあるが、学生定員数の総和は６人ないしは７人である。
(2)各課題に対して、実施の計画・役割分担、遂行、まとめ（レポート作成）、発表を学生が自主的に行う。
(3)課題によっては、未履修科目の範囲のものが用意されたり、使用経験のないソフトの使用が課せられるなどするが、そのような場合は、開始時に出題･指導教員から適宜資料配布や説明などが行われ、その理解と習得などに１～２週間を充てなければならないこともある。
(4)実施の計画、遂行中、行き詰まったり失敗したときは、大きな失敗に到らないよう、指導教員から助言を受けることができる。
(5)各課題実施の最後に、課題の取り組みと達成度について学生の自己評価と指導教員による評価を行う。
(6)発表会場の課題のグループ決めは、類似している課題でグループ分けする。ただし、分け方については世話係りに一任する。

1

４．平成２０年度の実施日程
実施曜日・時間： 毎週金曜日４、５限(全１４週)(1)ガイダンスおよび学生の課題の決定
日時：４月１１日(金)４、５限（第１週）
場所: １０１番教室
ガイダンス: ｢情報システム設計演習｣の実施方法の説明

課題の決定方法：
・希望テーマを1つ書いて提出
・その場で集計する・定員をオーバーすれば、調整する・溢れた人は再調整（ただし、調整、再調整は世話係りに一任）(2)課題決定後、出題・指導教員から課題の進め方等について指示を受け、演習を開始する。
第１週

：４／１１

ガイダンス、課題決定

第２週

：４／１８

課題の取り組み第３週：４／２５・

・

５／２

・・

５／９

・

・

５／１６

・

・

５／２３・・

５／３０

・

・

６／６

・

・

６／１３

・・

６／２０・

第１２週

６／２７

第１３週

７／４

（第１４週

まとめ、発表の練習
発表会

７／１１および１８日予備日）(4)第１２週は、レポートを指導教官に提出すること。
(5)第１３週の発表会終了後に、各課題の取り組みと達成度について学生の自己評価と指導教員による評価を実施する。
(6)発表会終了後に指導教員のところに集まり、発表等のコメントを受けること。
(7)7月11日と18日は、4日に発表会を行うことができなかったり、レポートの不備があった場合のための予備日とします。

５．実施場所(1) 演習の多くはワークステーション実習室で行われるが、学生実験室や研究室なども使用される。実施場所については指導教員の指示に従うこと。
(2) 指導教員への相談、質問のための時間は実施日以外にも設定される（オフィスアワー）。

2

６．レポートのまとめ方(1) 表紙

「平成２０年度情報システム設計演習」と１行目に書き、以下、課題名、学生氏名、指導教員氏名、提出日を記す。
(2) まえがき（緒論）(3) 実施計画案(4) 実施内容課題の目的、課題を選んだ理由などを記す。

最初に考えた取り組みの方法について記す。
具体的方法、使用設備・ソフト、結果、考察などを記す。

(5) まとめ（結論）

課題に対する到達度、結果の意義、残された問題などを記す。

(6) システム設計演習の感想

課題内容や取り組み方について、各自の感想を書く。

７．発表会について(1) 発表は複数の会場に分かれて同時進行される。
(2) 学生は自分が発表する会場での発表をすべて聴くこと。同時に積極的に質問をすること。
(3) 発表時間６分、質疑応答３分の計９分とする。２人以上のグループの場合でも各人が担当箇所を発表し、１人あたりの発表時間（６分）、質疑応答時間（３分）は単独で実施する場合と同じとする。
尚、質疑応答については、担当教員の判断でまとめて行うこともある。
(4) 使用機器は液晶プロジェクタ（PowerPoint等でスライド作成）、又はＯＨＰ。

８．成績評価について(1) 実施計画・遂行状況の適切性と努力、レポートのまとめ方・考察力、発表での準備と分かり易さにより総合的に評価を行う。
(2) 課題に対して、実施計画・遂行状況５点、レポート３点、発表２点の１０点満点とし、６点（６０％）以上を合格とする。
(3) レポート提出の遅れ、発表の遅れについては、それぞれ１点の減点とする。
(4) 欠席は１日につき１点の減点とする。ただし、正当な理由がある場合は理由書を提出すること。
(5) 発表が行われなかった場合は、５点以上の減点になる場合があるので注意すること。

９．課題の実施場所及びオフィスアワー
・課題１（今村：ソフトウェアの設計・製作）

計算機実習室 (2A226)
・課題２

木曜５限 居室 (2A711)（榎本：Mathematica による実験数学）

セミナー室(2A628)

金曜６限 居室 (2A612) またはセミナー室(2A628)

・課題３－１（北川：ソフトウエア受信機(SDR)の製作）
集積回路工学研究室 2 (2B736)

金曜６限集積回路工学研究室 2 (2B736)

・課題３－２（北川：ゲームボーイアドバンス(GBA)用アプリケーションの製作）
集積回路工学研究室 2 (2B736)

金曜６限集積回路工学研究室 2 (2B736)

・課題４－１（久保：Webアプリケーションの開発）
情報システム演習室(2A214)

月曜５限 居室 (2B711)

・課題４－２（久保：画像計測システムの開発）
情報システム演習室(2A214)

月曜５限 居室 (2B711)
3

・課題５（後藤：身近な物理現象のコンピュータシミュレーション）

2B530

金曜６限 居室 (2A519)

・課題６（佐藤：最短路探索問題）

数理システムコロキウム室２ (2A626)
・課題７

木曜５限 居室 (2A617)（南保：オセロの思考ルーチンの作成）
月曜５限 居室 (2B615)

工学部(情報)実験室2(2A122-3)

・課題８ （畑上：数学教育におけるWebによる自習システム構築）
計算数理実習室 (2A632)、
・課題９－１

水曜５限 居室 (2A613)（平野：メディアプロセッサによる音響信号・画像処理）

工学部(情報)実験室2 (2A122-3)
・課題９－２

水曜５限 居室 (2A713)（平野：ネットワークやサーバの構築）

工学部(情報)実験室2 (2A122-3)
・課題１０

水曜５限 居室 (2A713)（船田：音声音響信号の情報処理）

計算機実習室 (2A226)、
・課題１１－１

木曜５限 居室 (2B610)（松林：巡回セールスマン問題の近似アルゴリズム）

計算機工学研究室2(2B634)，計算機実習室(2A226)
・課題１１－２

月曜５限 居室(2B613)（松林：OpenGLを用いた無線ネットワークにおけるトポロジ制御
アルゴリズムの可視化）

計算機実習室(2A226)

月曜５限計算機工学実験室2(2B624)

・課題１2 （山田：PHPを使用したWebシステムの作成）
金曜６限 居室 (2B712)

画像・生命情報工学研究室(2B722-2)

１０．課題の概要● 課題１：（７名）
ソフトウェアの設計・製作 ・・・ 出題・指導教員： 今村 幸祐（内容）
ソフトウェアの設計および製作といった開発手法の学習を目的としています。基本的に自分以外の多数の人が使用するソフトウェアの作成を前提とします。作成するソフトウェアの内容、動作環境、言語、開発環境は自由に設定するものとします。実施に際しては、ソフトウェアの基本的な設計手順に従うものとし、設計段階で仕様書および計画書を作成します。プログラミングの他にデバック、作成後の動作テスト、マニュアルの作成までを演習の内容としています。
ソフトウェアの作成難易度よりも、仕様・計画性や文書化などを重要視します。
（使用設備・ソフトなど）
基本的に学科計算機システム、各自所有のPC で利用可能な開発環境と言語。
（課題の進め方）(1) 作成するソフトウェアの内容、動作環境、言語、開発環境を決める。
(2) ソフトウェアの機能、インタフェースなどが記述された仕様書を作成する。
(3) プログラミングの作業計画書を作成する。
(4) 仕様書と計画書に従いプログラミングを行う。
4

(5) 動作確認のためのテスト項目を設定し、動作テストを実施する（デバッグを含む）。
(6) マニュアルを作成する。
参考URL: http://vip15.ec.t.kanazawa-u.ac.jp/isseminer/● 課題２：（７名）
Mathematica による実験数学 ・・・ 出題・指導教員： 榎本 文彦（内容）Mathematica は数値計算，記号計算，グラフィックスなどを同一環境で扱える総合的な数式処理システムです．数値計算のみならず，代数計算や微積分そのほか広範な記号計算を行うことができ，強力なグラフィックス機能を利用して，計算結果を簡単に可視化することもできます． Mathematica の基本技術を習得したのち，グループ毎に一つのテーマを定め，実例をもとに課題の理解を深め数学を楽しむことを目的とします．今回は暗号，デジタル署名をテーマに掲げるが，興味ある話題（数学または情報関係のテーマが望ましい）があればそれでも構いません．
（使用設備・ソフトなど）
計算機実習室設置計算機，Mathematica, 紙・鉛筆，その他（課題の進め方）(1) Mathematicaの基本技術を習得する．
(2) 暗号，デジタル署名（または選んだ課題）について学習する．
(3) Mathmatica を用いてプログラムを作成する．
(4) 課題についてさらに理解を深め，プログラミングを改良する．
(5) 課題についてプレゼンテーションをする．

● 課題３－１：（最大2名）
VLSIの設計と試作 ・・・ 出題・指導教員： 北川章夫
（内容）VDECの設備を利用し、VLSIの設計と試作を体験しよう。設計する回路は自由。半導体メーカで製造できるよう完全な設計検証まで実施する。予算が付いたら、実際に半導体メーカに試作に出して、世界で唯一のオリジナル・チップを手にすることができます。
http://jaco.ec.t.kanazawa-u.ac.jp/designer/ を参照。
（使用設備・ソフトなど）各自のノートPC(Windowsでもかまいません)、VDEC設計CADツール群（課題の進め方）(1)設計内容の検討と仕様書の作成(2)設計講習会(3)設計開始（回路設計、レイアウト設計、設計検証）(4)半導体メーカで製造（予算が付いた場合）● 課題３－２：（５名）
ゲームボーイアドバンス(GBA)用アプリケーションの製作 ・・・出題・指導教員： 北川 章夫（内容）ゲームボーイアドバンス用のアプリケーションを開発します（ゲームとは限らない）。
5クソゲー呼ばわりを恐れずエミュレータ用バイナリをWEB上で公開しよう。ただし、自分でゲーム開発環境を構築する力量がない人は、このテーマは実施できません。
http://merl.ec.t.kanazawa-u.ac.jp/~masashi/gba/ および
http://jaco.ec.t.kanazawa-u.ac.jp/kitagawa/edu/GBA/ を参照。
（使用設備・ソフトなど）各自のノートPC（WindowsまたはLinux）、GBA、フラッシュROM、書込みツール、Cコンパイラ、グラフィックス製作ツール類、GBAエミュレータ（課題の進め方）(1)PC上に開発環境を整備する(2)GBAのアーキテクチャおよび基本的プログラミングを学習する(3)製作するアプリケーションの仕様書を作成する(4)アプリケーションをプログラミングしエミュレータと実機を使用して動作確認する● 課題４-1：（３名）
Webアプリケーションの開発 ・・・ 出題・指導教員：久保 守（内容）Webアプリケーションの仕組みを学び、実用的なシステムを協同開発する。
（使用設備・ソフトなど）ノートパソコンを持参すること。PHP，MySQL。
（課題の進め方）(1)各自のノートパソコンに，Webサーバ，データベース，PHPなどの開発環境を導入する。
(2)PHPとMySQLの参考書籍を使ってWebアプリケーション構築の例題を学習する。
(3)蔵書検索システムの内部構成を具体化する。
(4)コーディングして，テストする。
(5)仕様書を作成する。
http://kubo.ec.t.kanazawa-u.ac.jp/● 課題４-2：（４名）
画像計測システムの開発 ・・・ 出題・指導教員：久保 守（内容）USBカメラをノートパソコンにつなぎ、顔や手の画像計測システムを協同開発する。
（使用設備・ソフトなど）ノートパソコンを持参すること。USBカメラ，Visual C++，OpenCV。
（課題の進め方）(1)各自のノートパソコンに，Visual C++, OpenCVなどのプログラム開発環境を導入する。
(2)画像の取り込み，処理，出力の例題プログラムを学習する。
(3)画像計測システムの内部構成を具体化する。
(4)コーディングして，テストする。
(5)仕様書を作成する。
http://kubo.ec.t.kanazawa-u.ac.jp/● 課題５：（７名）
身近な物理現象のコンピュータシミュレーション ・・・ 出題・指導教員：後藤 由貴（内容）振動，波動現象といった時間変化をともなう身近な物理現象を，コンピュータでシミュレーションし，その理解を深めるとともに，実用的なプログラミング技術を習得する．また6アニメーションの作成法について学び、結果の可視化について検討する．例として以下のようなものがあるが，興味ある別の話題があればそれでも構いません．
-

物体の落下運動-

振り子・バネの振動-

音の伝搬と反射-

電波の伝搬と反射（使用設備・ソフトなど）ノートPC・C言語, 3D描画ライブラリなど．
（課題の進め方）(1) シミュレーションの方法を学ぶ．
(2) Windowsアプリの作成方法の基礎を学ぶ．
(3) 対象とする現象のモデル化を行う．
(4) プログラムを完成させる．
(5) 結果の可視化，アニメーション化の検討を行い，考察する．
● 課題６：（７名）
最短路探索問題 ・・・ 出題・指導教員： 佐藤 卓治（内容）与えられた重み付きグラフにおいて２点間の最短経路を求める問題についてのアルゴリズムを調査し，その内容を理解する．自分の得意とする方法でそのプログラムを作成し，実際の問題に適用してみる．余裕があれば問題のバリエーションを考える．
（使用設備・ソフトなど）
計算機実習室設置の計算機， C言語，Mathematica 等(何でも可)（課題の進め方）(1) 問題の理解とアルゴリズムの調査および作成(2) プログラミング(3) 実際の問題への応用(4) 問題の変形，アルゴリズム・プログラムの改良● 課題７：（７名）
オセロの思考ルーチンの作成 ・・・ 出題・指導教員：南保 英孝（内容 ）有名なゲームの一つであるオセロを題材に，コンピュータがどこに打てばよいのかを考えるためのプログラムを作成する．画面表示やインタフェース部分は用意されており，課題では思考ルーチンのみの作成となる．
（使用設備・ソフトなど） Linux, C言語（課題の進め方）(1)スケルトンプログラムについて理解する．嗜好ルーチン作成のために役に立ついくつかの関数が既に用意されているので，それらの使い方を理解する．さらに，サンプルとして単純な嗜好ルーチンを紹介する．
(2)ゲームの思考ルーチンについて調査する．いろいろなゲームの思考ルーチンで用いられている手法について調査する．
(3)(2)で調べた手法やサンプルプログラムを参考に，各自の思考ルーチンの方針を決め，プロ7グラムとして実装する．
● 課題８：（７名）
数学教育におけるWebによる自習システム構築 ・・・ 出題・指導教員：畑上 到（内容）高等学校の数学科目のうち，１つの単元を選択して，自習によって学習効果が上がるようなシステムを構築する．特にグラフィックスやアニメーションなどオリジナルなコンテンツの作成にも取り組み，グループ内で各自のソフトの教育的効果について議論し，よりよい数学教育ステムとはどのようなものかを追求する．
（使用設備・ソフトなど）研究室および学科の計算機，KompoZer，ホームページビルダー，Microsoft WORD等のホームページ作成ソフト，Mathematica等の数値解析ソフト，Java，各種描画ソフト，Windowsムービーメーカーその他（課題の進め方）(1)現在，教育システムとして取り入れられているe-learningシステムにはどのようなものがあるかをリサーチする．
(2)単元を１つ選び，自分なりに自習システムの大枠を構成する．
(3)解説だけでなく，コンテンツを使った教育効果の高いシステムを作成する．
(4)プレゼンテーションを通じて，教育システムとしてのe-learning の長所・短所を抽出し，他の作品を批評することによって情報システムが数学教育に貢献できることは何かについて考える．
● 課題９－１：（３～５名）
メディアプロセッサによる音響信号・画像処理 ・・・ 出題・指導教員：平野 晃宏（内容）ディジタルシグナルプロセッサ (DSP) やグラフィックプロセッサ (GPU) などのメディアプロセッサを用いて、音声・音楽・動画像などを処理するシステムを構築する。
（使用設備・ソフトなど）DSPボード、パソコン、マイク、スピーカ、カメラ、C/C++コンパイ
ラ（課題の進め方）(1) ディジタル信号処理、画像処理の基礎を学ぶ。
(2) サンプルプログラムを元に簡単なメディア処理プログラムを作成・動作させることにより、メディア処理の基礎を学ぶ。
(3) プログラムを作成する。
(4) 実際に動作させ、性能などを評価する。
(人数) 装置の台数に限りがあるため、DSPによる音響信号処理が3～4人、DSPによる画像処理が0～1人、GPUによるメディア処理が0～2人。
● 課題９－２：（２～３名）
ネットワークやサーバの構築 ・・・ 出題・指導教員：平野 晃宏（内容）ネットワークやサーバクライアントシステムを構築する。例えば下記など。
・IPv6、プライベートネットワーク等のネットワーク構築
・組込・制御用CPUボードを用いたシステムの構築
・サーバクライアントシステムの構築
8

（使用設備・ソフトなど）パソコン、組込・制御用CPUボード、ネットワーク機器、UNIX、Windows（課題の進め方）(1) 構築するシステムを決定する。
(2) オペレーティングシステムをインストールする。
(3) サーバクライアントプログラムをインストールし、設定する(4) 動作を確認する。
●課題１０：（７名）
音声音響信号の情報処理 ・・・ 出題・指導教員： 船田 哲男（内容）音声音響信号の情報処理をとおして、音響信号の性質の学習、データファイル様式についての理解、プログラム作成のスキル向上を目指す。
（使用設備・ソフトなど）
ハードウェア：学科計算機システム、各自所有のパーソナルコンピュータ
ソフトウェア：C/C++、Java（課題の進め方）(1)対象とする音響信号、および処理内容についての具体的テーマを定める。
(2)周波数分析法、音声や楽音などの音響信号について基本的な性質を調査する。
(3)目標とするシステムを作成する。
(4)システムのテストを行い、問題点に対する考察を行う。
（テーマ例）：
１．コンピュータで自然現象の音を生成する
２．コンピュータで日本語母音を生成する
３．ギター弦のチューニング支援システムを作る
４．MIDIで曲を創作し演奏する
５．楽曲波形を作成し演奏する
６．電話回線の伝達特性を推定するなど● 課題１１－１：（４名）
巡回セールスマン問題の近似アルゴリズム ・・・ 出題・指導教員： 松林 昭（内容）巡回セールスマン問題(TSP)は指定された複数の訪問先を最短距離で巡回する経路を求める問題である．TSPはNP困難であることが知られており，正解を高速に求めるアルゴリズムは恐らく存在しないだろうと考えられている．現実の問題の多くはNP困難であり，そのような問題に対しては正解を近似する解を高速に求めるアルゴリズム(近似アルゴリズム・発見的アルゴリズム)を設計することが重要なのである．
このテーマでは，TSPに対してなるべく性能の良い近似アルゴリズムまたは発見的アルゴリズムを設計し，計算機上でプログラムとして実装し，計算機実験によって評価する．
このテーマの設計・実験を通して，アルゴリズム設計の理解が深められるとともに，基本的なプログラミングの良い練習にもなるはずである．
（使用設備・ソフトなど）計算機実習室，Cコンパイラ，gnuplot（課題の進め方）(1) 問題の理解
9

- TSPの種類- NP困難とは何か(2) アルゴリズムの設計- 様々なアルゴリズムの理解- アルゴリズムの検討設計(3) プログラミング(4) 評価実験
- 実験方法・種類の検討- 実験の実施●課題１１－２： (3名)
OpenGLを用いた無線ネットワークにおけるトポロジ制御アルゴリズムの可視化・・・出題・指導教員： 松林 昭
（内容）2/3次元のグラフィックスライブラリであるOpenGLを用いて，無線アドホックネットワ
ークにおけるトポロジ制御アルゴリズムの動作をアニメーションで観察するためのデモプログ
ラムを作成する．無線アドホックネットワークとは，P2Pに代表されるようなルータによる集中制御を必要としない，自律分散型のネットワークである．無線アドホックネットワークにおいては通信による消費電力を抑えるために，複雑なネットワークを単純化するトポロジ制御アルゴリズムを用いる．
このテーマでは，トポロジ制御アルゴリズムの動作をどのような表現で伝えるのかということを考えてアニメーションを設計し，デモプログラムを作成する．
このテーマを通して，アルゴリズムの理解が深められるとともに，グラフィカルなプログラミングを身に付けることが出来る．
（使用設備・ソフトなど）計算機実習室，Cコンパイラ，OpenGL（課題の進め方）(1) OpenGLの使用方法を学習する- LinuxシステムにOpenGLをインストールする- デモプログラムの雛型を作成する- OpenGLを用いてアニメーションを作成する方法を学ぶ(2) トポロジ制御アルゴリズムについて学習する- 無線アドホックネットワークとは何か- トポロジ制御アルゴリズムの動作を理解する(3) デモプログラムの作成- データ生成プログラム- 入出力部の設計- アルゴリズムの実装- アニメーションの設計●課題１２：（７名）
PHPを使用したWebシステムの作成・・・出題・指導教員：山田 洋一
10

（内容） PHP(Hypertext Preprocessor)は、サーバ上で動作する HTML への埋め込み型スクリプト言語である。 また PukiWiki は、PHP で動作し、ウェブブラウザを利用して Web サーバ上のハイパーテキスト文書を書き換えるシステムである。 PukiWiki では通常、誰でも、ネットワーク上のどこからでも、文書の書き換えができるようになっているので、共同作業で文書を作成するのに向いている。本システム設計演習では、始めに PHP の基礎を学び、次に PukiWikiを始めとした様々な PHP の応用事例にふれる。またこれらの学習を基に、XML Web サービスを用いた検索システム、掲示板、会社などグループ内における文書管理システムそしてアンケート調査システムなどを自ら構築できる能力を養う。
（使用設備・ソフトなど） 学科計算機システム、PHP、PukiWiki(課題の進め方)(1) PHP及びPukiWikiの学習(2) Webシステムの作成

11