授業科目名(和文) [Course] |
プログラミング言語Ⅱ <プログラミング技法> |
授業科目名(英文) [Course] |
Programming Language II <Programming Techniques> |
学部(研究科) [Faculty] |
情報工学部 |
学科(専攻) [Department] |
情報システム工学科 |
担当教員(○:代表教員) [Principle Instructor(○) and Instructors] |
○石井 裕 自室番号(2404)、電子メール(ishii**cse.oka-pu.ac.jp) ※利用の際は,** を @に置き換えてください |
単位数 [Point(Credit)] |
後期 2単位 |
対象学生 [Eligible students] |
2年次生 |
授業概略と目標 [Course description and Objects] |
C言語については既に「プログラミング言語Ⅰ」や各演習等で学んでいるが,より大規模なプログラムを作るためにはより進んだ知識が必要である.そこで,ポインタや構造体,分割コンパイルなど「大きなプログラム」で要求される事項を説明し,また基本的なデータ構造やアルゴリズムを実際にC言語で実装することで理解を深めることを目的とする. |
到達目標 [Learning Goal] |
1. ポインタや構造体の知識を学び活用できるようにする. 2. 分割コンパイルについて知る. 3. 再帰的な構造体の扱いを学ぶ. 4. 基本的なデータ構造やアルゴリズムの実装方法を学ぶ. |
履修上の注意 [Notes] |
履修の要件:「プログラミング言語Ⅰ」の内容を十分に理解しておくこと.また,「データ構造とアルゴリズム」は関連する内容を持つため同時に履修してほしい. |
授業計画とスケジュール [Course schedule] |
1. オリエンテーション 2. C言語の基礎復習 ・型宣言や引数など基礎内容の確認 3. メモリとポインタとの関係 ・ポインタとメモリアドレスや内容を利用する方法 4. 配列とポインタ ・配列とポインタの関係を理解し,添字演算子など活用方法を理解する 5. 構造体と入出力 ・構造体宣言と利用方法,およびFILE型構造体による入出力を理解する 6. 動的メモリ確保 ・メモリの動的確保と解放,配列の関数渡しなどについて理解する 7. リスト ・連結リスト構造を実現する構造体定義について理解する 8. 再帰木構造 ・再帰,二分木により構造体の理解を深める 9. 木構造の応用 ・2-3-4木,ヒープにより木構造と探索について理解する 10. スタックとキュー ・配列を用いてスタックとキューを理解し,線形データ構造を俯瞰する 11. ソート ・クイックソート,バブルソートなど様々な種類のソートを理解する 12. 分割コンパイル ・複数ソースファイルを用いた分割コンパイルを理解する 13. 文字列 ・文字列の扱いと探索について理解する 14. 動的計画法 ・再帰と動的計画法を理解し,計算速度の違いを実感する 15. 数式処理 ・ガウス消去法による連立一次方程式の解法を理解する |
成績評価方法と基準 [Grading policy (Evaluation)] |
出席状況を含む学習態度(30%)及び各回の演習課題およびレポート内容(70%)から総合的に評価する. |
教科書 [Textbook] |
適宜資料を配布するため「教科書」の指定はしないが,特にポインタについては講義資料のみならず 柴田望洋,「詳解C言語 ポインタ完全攻略」,ソフトバンククリエイティブ など多数の書籍から自分が理解しやすい参考書を探すことも有意義である. |
自主学習ガイド及び キーワード [Self learning] |
プログラミングは実際にプログラムを作成し,その動作を理解することが不可欠である.また本講義の課題を自ら発展させ,自らの目的でプログラムを作成する機会を設けてほしい. |
開講年度 [Year of the course] |
28 |