C言語による手続き型プログラミングの発展的な内容について,講義と実習を通して理論と実践の両面から学びます。前半は,ポインタ変数,文字列操作,構造体,メモリ動的割当てについて学びます。後半は,前半の内容を踏まえてアルゴリズムとデータ構造について学ぶと同時に,大規模なプログラムの作成に必要な各種技法についても学びます。さらに,パズルゲームやパターン認識といった実践的な情報処理を対象として,数回にわたって大規模なプログラムを作成します。なお,C言語の基礎事項は「手続き型プログラミング基礎(CSC.T243)」等で履修していることが望まれます。
ポインタ変数,構造体,メモリ動的割当てを用いたC言語のプログラムを作成することができる。与えられた問題の解決に最適なアルゴリズムやデータ構造(スタック,キュー,リスト,木構造)を利用することができる。実践的な情報処理に必要とされるプログラミングや大規模プログラムのデバッグに関する技法を使うことができる。
手続き型プログラミング,ポインタ変数,文字列操作,構造体,メモリ動的確保,スタック,キュー,リスト,木構造,木探索,アルゴリズム,データ構造,計算量,デバッグ
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | 展開力(実践力又は解決力) |
毎週3コマの枠を講義1コマ(講義室)と実習2コマ(計算機室)に分けて,講義の内容を次回の実習で実践します。
授業計画 | 課題 | |
---|---|---|
第1回 | 【実習】発展的プログラミングへの導入,実習環境の準備 | 授業時間内に与えられる。 |
第2回 | 【講義】ポインタ変数 | 授業時間内に与えられる。 |
第3回 | 【実習】ポインタ変数に関する実習 | 授業時間内に与えられる。 |
第4回 | 【講義】文字列操作 | 授業時間内に与えられる。 |
第5回 | 【実習】文字列操作に関する実習 | 授業時間内に与えられる。 |
第6回 | 【講義】構造体,メモリ動的割当て | 授業時間内に与えられる。 |
第7回 | 【実習】構造体,メモリ動的割当てに関する実習 | 授業時間内に与えられる。 |
第8回 | 【講義】スタック,キュー,リスト | 授業時間内に与えられる。 |
第9回 | 【実習】スタック,キュー,リストに関する実習 | 授業時間内に与えられる。 |
第10回 | 【講義】木構造 | 授業時間内に与えられる。 |
第11回 | 【実習】情報処理課題(発展)に関するプログラム設計 | 授業時間内に与えられる。 |
第12回 | 【講義】木探索 | 授業時間内に与えられる。 |
第13回 | 【実習】情報処理課題(発展)に関するプログラム実装 | 授業時間内に与えられる。 |
第14回 | 【講義】大規模プログラム作法 | 授業時間内に与えられる。 |
第15回 | 【実習】情報処理課題(発展)に関するプログラム評価 | 授業時間内に与えられる。 |
講義や実習の資料は,時間内に提示します。
プログラミング言語C (第2版・ANSI規格準拠), B.W. カーニハン, D.M. リッチー著, 共立出版, 1989.
プログラミングに活かすデータ構造とアルゴリズムの基礎知識, 今泉貴史著, アスキー, 2004.
筆記による期末試験(50%),実習レポート課題(50%)
無し。