山梨大学電子シラバス>検索結果一覧>授業データ



授業科目名
担当教官
ソフトウェア設計II及び実習
塙  雅典/中村 一彦
時間割番号
単位数
コース
履修年次
期別
曜日
時限
262019 S 2 S 2 前期 III
[概要]
 この授業では、コンピュータソフトウェアを設計・作成する手法を講義と実習を通じて学ぶ。この授業の目的は、UNIX系オペレーティングシステム上のC 言語を用いて自由自在にプログラミングを行える技術を身につけることと、課題として作成するソフトウエアの仕様を明確に表現する技術を身につけることである。
 具体的には、タスクオリエンテッドアプローチに基づいたソフトウエアの設計・作成課題として、携帯電話やPDAに搭載されているアドレス帳の作成を目標とする。その目標の実現のために、まず機能を絞った複数のプログラムを組み合わせて作業をこなすタイプのソフトウェアの作成を行う。その後、各種ライブラリを用いた比較的大規模なソフトウェアの作成方法を学び、UNIX系オペレーティングシステムに実装されている各種のツールを効果的に利用し、各自の仕様に基づいた効率的なアドレス帳を実現する。
[具体的な達成目標]
(ア)コマンドライン引数によりCプログラムの動作を制御できること
(イ)制御ループの構造とデータ型を利用したCプログラムが作成できること
(ウ)関数を利用したCプログラムが作成できること
(エ)ファイル入出力を利用したCプログラムが作成できること
(オ)配列型データ構造を利用したCプログラムが作成できること
(カ)ポインタを利用したCプログラムが作成できること
(キ)メモリの動的確保を利用したCプログラムが作成できること
(ク)構造体/共用体を利用したCプログラムが作成できること
(ケ)パイプライン処理、リダイレクションが利用できること
(コ)リスト、ツリーを利用した整列,探索のCプログラムが作成できること
(サ)分割コンパイルが行えること
(シ)簡単なMakefileを作成して分割コンパイル支援が行えること
(ス)プロファイラを利用してプログラムの性能向上が行えること
[必要知識・準備]
C言語の基礎知識とUNIX系オペレーティングシステムの基本操作
(これらについては講義中では解説しないので,あらかじめよく復習しておくこと)
[評価基準]
達成目標に掲げたように、C 言語を用いて自由自在にプログラミングが行える技術を身につけるため、毎回ソフトウエア課題を課し、評価する。また、知識の修得の結果としての、用語の正しい理解、オンラインマニュアルの利用方法、使い方の理解も課題として課し、評価する。
各課題毎のレポートの評点の平均値により評価を行う。全レポートの平均評点が、60%以上の者を合格とする。
 評価は厳密に行い、課題の要求項目を満たしていない場合には、大幅に減点する。
また、他者の提出したレポートと類似のプログラムコードが提出された場合には両者とも
未提出扱いとする。
[教科書]
  1. 内田智史監修, C言語によるプログラミング基礎編第2版, オーム社, ISBN:4-274-06440-9
  2. 内田智史監修, C言語によるプログラミング応用編第2版, オーム社, ISBN:4-274-06487-5
[参考書]
  1. Steve Oualline著,望月康司監訳, C実践プログラミング 第3版, オライリー・ジャパン, ISBN:4-900900-64-8
  2. Brian W. Kernighan and Rob Pike著、石田晴久監訳, UNIXプログラミング環境, アスキー出版局, ISBN:4-87148-351-7
  3. Brian W.Kernighan and P.J.Plauger 著、木村 泉 訳, ソフトウェア作法, 共立出版, ISBN:4320021428
  4. 藤原博文, Cプログラミング診断室, 技術評論社, ISBN:4774117870
  5. Brian W. Kernighan and Dennis M. Ritchie著、石田晴久訳, プログラミング言語C 第2版, 共立出版, ISBN:4-320-02692-6
[講義項目]
講義と実習では、主に以下の項目を学ぶ。
(1) コマンドライン引数
(2) 制御ループの構造とデータ型
(3) 関数の取り扱い
(4) ファイル入出力
(5) 配列型データ構造とポインタの取り扱い、メモリの動的確保
(6) 構造体/共用体
(7) パイプライン処理、リダイレクション、
(8) リスト、ツリー、整列、探索
(9) make の使い方と分割コンパイル
(10) プロファイラ
[教育方法]
毎回ソフトウエア作成課題を課す.また知識の修得の結果としての,用語の正しい理解,オンラインマニュアルの利用方法,使い方の理解も課題として課す.
[JABEEプログラムの学習・教育目標との対応]
本科目は電気電子システム工学科の掲げる学習・教育目標のうち「C-2:情報技術を身につける」に対応する.
[その他]
提出されるプログラムコードは要求仕様通りに正しく動作し,レポートに付された実行結果もその要求仕様を満たす結果が示されていることが重要である.正しく動作しない場合,その仕様と理由を明記し,どのように修正すれば要求を満たすかの分析がなされていなければならない.