プログラミング

科目名
プログラミング
英語名
Programming
学科
学年・組
情報システム工学科
3年
講義E・3単位・必修
開講形態 通年・週(前期4/後期2)時間
竹島久志,海野啓明,安藤敏彦
担当教員
授業概要と
ねらい
ポインタ,ユーザ関数,構造体と共用体,データ型と記憶クラス,ファイル処理等について,講義と実
習を通じて学習する。小・中規模のプログラムを作成する課題に取り組む。基本アルゴリズムとデータ構
造について学習する。
2年次で学んだプログラミングの知識に加えて,C言語に関する文法を全て習得し,小・中規模のプロ
グラムを作成できるようになる。基本アルゴリズムおよび基本データ構造を理解し,それらを有効利用し
たプログラミングができる。Java言語を学習し,オブジェクト指向プログラミングの基礎であるクラスとメソッ
ドが使えるようになる。
学習上の
留意点
・本科目は,2年の「プログラミング基礎」の続きであり,4年の「応用プログラミングI」,「ディジタルシステ
ムA・B」に発展する。Java言語については4年の「ソフトウェア分析設計」への導入である。
・授業は講義と演習からなり,演習課題はレポートとして提出する。
・プログラムの作成にあたっては,①課題内容を十分検討,②プログラムの設計図(フローチャート/
PAD),③コーディング,④検証(テスト)を行い、課題を満足するか確認することが大切である。
到達目標
1. C言語で実用に供することができるソフトウェアをプログラミングできること。
2. 問題解決を効率よく行うにはアルゴリズムとデータ構造の選択が重要であると理解していること。
3. Java言語を用いて簡単なプログラムを作成できる。
学習・
教育目標
教科書
A. 「新訂 新C言語入門 ビギナー編」 林晴比古 著 (ソフトバンククリエイティブ)
B. 「C言語によるアルゴリズム入門」 河西朝雄 著 (技術評論社)
C. 「Java言語によるオブジェクト指向プログラミング」 吉田幸二 他著(共立出版)
この分野については,多数の教科書/参考書が市販されている。
Webページとしても多数公開されている。
参考書等
評価方法
授業は6期(前期4期、後期2期)で構成され,各期毎に筆記試験を実施する。筆記試験80%、課題提出
状況20%の割合で各期毎に評価する。学年成績は各期の評価の平均とする。
授業内容
授業項目
【第1期】 C言語の完成(竹島)
1. 2年の復習と補足,PADの導入
前 2. ポインタ,多次元配列のポインタ
3. 構造体
4. ライブラリ関数
期
5. 演習問題,テスト
時間
授業内容と達成目標
4
4
2
4
2
(教科書A)
・変数・演算子の詳細を知る。
・PADを用いてプログラムの制御構造を記述できる。
・ポインタを理解し,自由に使える。
・構造体を用いたプログラムを作れる。
・乱数関数,動的記憶域操作関数等が利用できるようになる。
【第2期】 基本アルゴリズム(竹島)
1. アルゴリズムとは
2. 直接選択法,バブルソート
3. シェルソート
4. 逐次探索,2分探索,マージ
5. 演習問題,テスト(前期中間試験)
【第3期】 再帰を用いたアルゴリズム(竹島)
1. 文字列の照合,ハッシュ
2. 再帰呼出し,順列生成
前 3. 迷路,クイックソート
5. 演習問題,テスト 期
4
2
2
6
2
(教科書B)
・アルゴリズムの概念を説明できる。
・与えられたアルゴリズムが問題を解決していく過程を説明で
きる。
・整列、探索など、基本的なアルゴリズムについて説明でき
る。
4
6
4
2
(教科書B)
・時間計算量や領域計算量などによってアルゴリズムを比較・
評価できることを理解している。
・再帰呼出しについて理解し,それを応用したプログラムを作
成できる。
【第4期】 データ構造(海野)
1. スタック,キュー
1. リスト構造(作成,挿入,削除)
2. 双方向リスト
3. 逆ポーランド記法,パージング
4. 演習問題
2
4
2
4
2
前期期末試験
前期期末試験の返却
2
【第5期】 木,グラフ(海野)
1. 2分探索木
2. ヒープ,ヒープソート
3. 知的データベース
4. グラフ,Eulerの一筆書き
5. 演習問題,テスト(後期中間試験)
4
4
2
4
2
後 【第6期】 Javaによるオブジェクト指向プログ
ラミングの導入(安藤)
期 1. C言語との比較,処理系の使い方
2. クラスとメソッド
3. 演習問題
後期期末試験
後期末試験の返却
(教科書B)
・コンピュータ内部でデータを表現する方法(データ構造)に
はバリエーションがあることを理解している。
・同一の問題に対し,選択したデータ構造によってアルゴリズ
ムが変化しうることを理解している。
・リスト構造,スタック,キューなどの基本的なデータ構造の概
念と操作を説明できる。
(教科書B)
・木構造について説明できる。
・2分探索木を用いたサーチプログラムを作成できる。
・ヒープについて説明できる。
・グラフについて説明できる。
(教科書C)
4
6
4
2
・Java言語でプログラミングができる。
・オブジェクト指向の基本概念であるクラスとメソッドを理解す
る。