シラバス参照

授業情報/Course information

科目一覧へ戻る 2019/08/20 現在

授業基本情報
科目名(和文)
/Course
プログラミング言語Ⅱ
科目名(英文)
/Course
Programming Language II
時間割コード
/Registration Code
21270501
学部(研究科)
/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 [動的計画法とまとめ]
アルゴリズムの設計方針としての動的計画法を紹介し, 簡単に講義全体のまとめを行う.
当該回に関するプレゼンテーション資料を配布する
授業評価詳細情報
到達目標及び観点/Learning Goal and Specific Behavioral Viewpoints
No. 到達目標
/Learning Goal
知識・理解
/Knowledge & Undestanding
技能・表現
/Skills & Expressions
思考・判断
/Thoughts & Decisions
伝達・コミュニケーション
/Communication
協働
/Cooperative Attitude
1 C言語の文法を理解する.
2 ポインタを正しく扱えるようにする.
3 アルゴリズムとデータ構造の基本的な実装方法を理解する.
成績評価方法と基準/Evaluation of Achievement
※出席は2/3以上で評価対象となります。
No. 到達目標
/Learning Goal
定期試験
/Exam.
レポート
1 C言語の文法を理解する.
2 ポインタを正しく扱えるようにする.
3 アルゴリズムとデータ構造の基本的な実装方法を理解する.
評価割合(%)
/Allocation of Marks
100

科目一覧へ戻る