シラバス参照 |
科目一覧へ戻る | 2019/08/20 現在 |
科目名(和文) /Course |
プログラミング技法 |
---|---|
科目名(英文) /Course |
Programming Techniques |
時間割コード /Registration Code |
21146501 |
学部(研究科) /Faculty |
情報工学部 |
学科(専攻) /Department |
情報通信工学科 |
担当教員(○:代表教員)
/Principle Instructor (○) and Instructors |
○小野 孝男 |
オフィスアワー /Office Hour |
小野 孝男(火曜日 5限) |
開講年度 /Year of the Course |
2017年度 |
開講期間 /Term |
前期 |
対象学生 /Eligible Students |
2年 |
単位数 /Credits |
2.0 |
更新日 /Date of renewal |
2017/04/10 |
---|---|
使用言語 /Language of Instruction |
日本語 |
オムニバス /Omnibus |
該当なし |
授業概略と目的 /Cource Description and Objectives |
C言語で大規模なプログラムを作成するためにはポインタや構造体について正しく理解することが必要である. また, 複数のソースコードから 1つのプログラムを作るためにはソースコード間の連携が欠かせない. そこで, これらについて理解するとともに, 簡単なアルゴリズムや基本的なデータ構造を C言語で記述できるようにすることを本講義の目的とする. |
履修に必要な知識?能力?キーワード /Prerequisites and Keywords |
プログラミング言語I の内容を理解し, 簡単なプログラムを C言語で記述できるようになっていることが望ましい. キーワード: アルゴリズム, データ構造, C言語, ポインタ, 構造体 |
履修上の注意 /Notes |
アルゴリズムやデータ構造については, 同時期に開講される「データ構造とアルゴリズム」でも紹介するので, 十分な理解のためにはそちらも受講してほしい. |
教科書 /Textbook(s) |
なし. 毎回資料を配布する. |
参考文献等 /References |
C言語については多数の書籍が存在するので, 「自分に合った」文献を見つけてほしい. 特にポインタについては 柴田望洋, 詳解 C言語 ポインタ完全攻略 などの書籍を併用することできちんと理解すること. |
自主学習ガイド /Expected Study Guide outside Coursework/Self-Directed Learning Other Than Coursework |
プログラミングを学ぶには「説明を聞く」だけの座学では不十分であり, 実際にプログラムを作成?実行してきちんと理解することが必要である. そのため毎回課題を課すが, これはあくまで「最低限」のものであり, それ以外でもプログラムを作成することで基本的な事項を理解してほしい. |
資格等に関する事項 /Attention Relating to Professional License |
|
備考 /Notes |
No. | 単元(授業回数) /Unit (Lesson Number) |
単元タイトルと概要 /Unit Title and Unit Description |
時間外学習 /Preparation and Review |
配布資料 /Handouts |
---|---|---|---|---|
1 | 1 | [プログラミング言語I の復習] プログラミング言語I で学んでいるはずの内容を再確認する. |
当該回に関するプレゼンテーション資料を配布する | |
2 | 2 | [メモリモデルとポインタの基礎] C言語が想定するメモリモデルを紹介し, それに基づいて基本的なポインタ操作を学ぶ. |
当該回に関するプレゼンテーション資料を配布する | |
3 | 3 | [配列とポインタ] C言語における配列とポインタの密接な関係について学び, それらの違いについても理解する. |
当該回に関するプレゼンテーション資料を配布する | |
4 | 4 | [構造体] 複数種類のデータを一体として扱う手段である構造体について理解する. |
当該回に関するプレゼンテーション資料を配布する | |
5 | 5 | [動的メモリ確保] 「必要な時に必要なだけ」メモリを確保する手法を学ぶ. また, 動的メモリ確保に関する注意点を学ぶ. |
当該回に関するプレゼンテーション資料を配布する | |
6 | 6 | [多次元配列と関数へのポインタ] ポインタを通じて多次元配列を操作する手法を学ぶ. また, 関数に対するポインタとその用法について理解する. |
当該回に関するプレゼンテーション資料を配布する | |
7 | 7 | [文字列] C言語の文字列は文字の特殊な配列である. そこで, C言語における文字列の取り扱いについて紹介する. |
当該回に関するプレゼンテーション資料を配布する | |
8 | 8 | [分割コンパイル] 大規模なプログラムを 1つのソースファイルで管理するのは無謀であるため, 複数のソースファイルを連携して 1つのプログラムを作成するための基本的な方法を学ぶ. |
当該回に関するプレゼンテーション資料を配布する | |
9 | 9 | [再帰] 再帰は基本的なアルゴリズム設計手法の 1つである. この再帰の概念を紹介しプログラムとして実装する方法を理解する. |
当該回に関するプレゼンテーション資料を配布する | |
10 | 10 | [連結リスト] 基本的なデータ構造である連結リストを C言語で実装する. |
当該回に関するプレゼンテーション資料を配布する | |
11 | 11 | [スタックとキュー] ここでは連結リストの応用として, より制限されたデータ構造であるスタックとキューについて紹介し C言語での実装を理解する. |
当該回に関するプレゼンテーション資料を配布する | |
12 | 12 | [二分探索木] 多量のデータから目的のものを見つけるためには, 連結リストでは多大な時間がかかってしまうことがある. そこでここでは二分探索木を中心とした根つき木を紹介する. |
当該回に関するプレゼンテーション資料を配布する | |
13 | 13 | [ソート] データを特定の順序に並べ替える「ソート」のアルゴリズムを C言語で実装する. |
当該回に関するプレゼンテーション資料を配布する | |
14 | 14 | [文字列の探索] テキスト処理における操作の 1つである「文字列探索」のアルゴリズムを紹介し, C言語における実装例を示す. |
当該回に関するプレゼンテーション資料を配布する | |
15 | 15 | [動的計画法とまとめ] アルゴリズムの設計方針としての動的計画法を紹介し, 簡単に講義全体のまとめを行う. |
当該回に関するプレゼンテーション資料を配布する |
No. |
到達目標 /Learning Goal |
知識?理解 /Knowledge & Undestanding |
技能?表現 /Skills & Expressions |
思考?判断 /Thoughts & Decisions |
伝達?コミュニケーション /Communication |
協働 /Cooperative Attitude |
||
---|---|---|---|---|---|---|---|---|
1 | C言語の文法を理解する. | ○ | ○ | ○ | ||||
2 | ポインタを正しく扱えるようにする. | ○ | ○ | ○ | ||||
3 | アルゴリズムとデータ構造の基本的な実装方法を理解する. | ○ | ○ | ○ |
No. |
到達目標 /Learning Goal |
定期試験 /Exam. |
レポート | ||||
---|---|---|---|---|---|---|---|
1 | C言語の文法を理解する. | ○ | |||||
2 | ポインタを正しく扱えるようにする. | ○ | |||||
3 | アルゴリズムとデータ構造の基本的な実装方法を理解する. | ○ | |||||
評価割合(%) /Allocation of Marks |
100 |