C言語による手続き型プログラミングの発展的な内容について,講義と実習を通して理論と実践の両面から学びます。前半は,ポインタ変数,文字列操作,構造体,メモリ動的割当てについて学びます。後半は,前半の内容を踏まえてアルゴリズムとデータ構造について学ぶと同時に,大規模なプログラムの作成に必要な各種技法についても学びます。さらに,パズルゲームやパターン認識といった実践的な情報処理を対象として,数回にわたって大規模なプログラムを作成します。なお,C言語の基礎事項は「手続き型プログラミング基礎(CSC.T243)」等で履修していることが望まれます。
ポインタ変数,構造体,メモリ動的割当てを用いたC言語のプログラムを作成することができます。与えられた問題の解決に最適なアルゴリズムやデータ構造(スタック,キュー,リスト,木構造)を利用することができます。実践的な情報処理に必要とされるプログラミングや大規模プログラムのデバッグに関する技法を使うことができます。
手続き型プログラミング,ポインタ変数,文字列操作,構造体,メモリ動的確保,スタック,キュー,リスト,木構造,木探索,アルゴリズム,データ構造,計算量,デバッグ
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | 展開力(実践力又は解決力) |
毎週3コマの枠を講義1コマ(講義室)と実習2コマ(計算機室)に分けて、【講義】の内容を【実習】で実践します。
授業計画 | 課題 | |
---|---|---|
第1回 | 【講義】ポインタ変数 | 授業時間内に与えられます。 |
第2回 | 【実習】発展的プログラミングへの導入,実習環境の準備,ポインタ変数に関する実習 | 授業時間内に与えられます。 |
第3回 | 【講義】文字列操作,構造体 | 授業時間内に与えられます。 |
第4回 | 【実習】ポインタ変数に関する実習 | 授業時間内に与えられます。 |
第5回 | 【講義】構造体,メモリ動的確保 | 授業時間内に与えられます。 |
第6回 | 【実習】文字列操作に関する実習 | 授業時間内に与えられます。 |
第7回 | 【講義】スタック,キュー,リスト | 授業時間内に与えられます。 |
第8回 | 【実習】構造体,メモリ動的確保に関する実習 | 授業時間内に与えられます。 |
第9回 | 【講義】木構造、木探索 | 授業時間内に与えられます。 |
第10回 | 【実習】スタック,キュー,リストに関する実習 | 授業時間内に与えられます。 |
第11回 | 【講義】大規模プログラム作法,発展的話題 | 授業時間内に与えられます。 |
第12回 | 【実習】情報処理課題(発展)に関するプログラム設計,研究倫理 | 授業時間内に与えられます。 |
第13回 | 【実習】情報処理課題(発展)に関するプログラム実装・評価 | 授業時間内に与えられます。 |
第14回 | 理解度確認 | 授業時間内に与えられます。 |
学修効果を上げるため,教科書や配布資料等の該当箇所を参照し,「毎授業」授業内容に関する予習と復習(課題含む)をそれぞれ本学学修規程で定められた時間を目安に行う。
講義や実習の資料は,時間内に提示します。
プログラミング言語C (第2版・ANSI規格準拠), B.W. カーニハン, D.M. リッチー著, 共立出版, 1989. (原著︓Brian W. Kernighan, Dennis
M. Ritchie. C Programming Language (Second Ed.), Prentice Hall, 1988.)
C言語プログラミング基本例題88+88, 冨永和人, 生野壮一郎, 菊池眞之, 黒川弘章, 関口暁宣著, コロナ社, 2017.
理解度確認試験(50%),実習レポート課題(50%)
情報工学系2年次での履修を推奨する。履修スペース・機材数の制限から、情報工学系以外の学生については受講を制限する場合がある。履修希望者は第1回授業に必ず出席すること。
※CSC.T244:プログラミング創造演習を履修している者は、本科目を履修することはできません。
水曜日の午後(メールによる事前予約が必要)