シラバス参照

授業情報/Course information

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

授業基本情報
科目名(和文)
/Course
プログラミング技法
科目名(英文)
/Course
Programming Techniques
時間割コード
/Registration Code
23230201
学部(研究科)
/Faculty
情報工学部
学科(専攻)
/Department
スポーツシステム工学科
担当教員(○:代表教員)
/Principle Instructor (○) and Instructors
佐藤 洋一郎
オフィスアワー
/Office Hour
佐藤 洋一郎(月曜5限)
開講年度
/Year of the Course
2017年度
開講期間
/Term
第3クォーター
対象学生
/Eligible Students
1年,2年,3年,4年
単位数
/Credits
2.0
授業概要情報
更新日
/Date of renewal
2017/03/21
使用言語
/Language of Instruction
日本語
オムニバス
/Omnibus
該当なし
授業概略と目的
/Cource Description and Objectives
C言語については既に「プログラミング言語I」や各演習等で学んでいるが,より大規模なプログラムを作るためにはより進んだ知識が必要である.そこで,ポインタや構造体,分割コンパイルなど「大きなプログラム」で要求される事項を説明し,また基本的なデータ構造やアルゴリズムを実際にC言語で実装することで理解を深めることを目的とする.
履修に必要な知識・能力・キーワード
/Prerequisites and Keywords
「プログラミング言語I」および「データ構造とアルゴリズム」に関連する知識

キーワード:データ構造、ポインタ、再帰、リスト、スタック、探索、ソート
履修上の注意
/Notes
「プログラミング言語I」の内容を十分に理解しておくこと.また,「データ構造とアルゴリズム」は関連する内容を持つため履修することが望ましい.
教科書
/Textbook(s)
指定しない.講義の開始時に資料を配布する.
参考文献等
/References
柴田望洋,「詳解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 [C言語の復習]
プログラミング言語I 等で学んでいる内容を復習し再確認する.
データ構造に重きを置いて復習し、「計算機工学入門」で学んだメモリ構造について復習しておくこと。 授業で使用するスライドを印刷したものを配布。
2 2 [メモリモデルとポインタの基礎]
C言語が想定するメモリ構造を示し,それを用いて基本的なポインタ操作を学ぶ.
ポインタの意味をまとめ、配列について復習しておくこと。 授業で使用するスライドを印刷したものを配布。
3 3 [配列とポインタとの関係]
C言語における配列とポインタとの関係を理解する.
配列とポインタの相違をまとめ、データの種類を調べておくこと。 なし。
4 4 [構造体]
構造体の定義及び利用方法を学び,互いに関連のある複数のデータを一体として扱う方法を理解する.
構造体の応用例を調査し、コンピュータのメモリ階層について復習しておくこと。 授業で使用するスライドを印刷したものを配布。
5 5 [動的メモリ確保]
動的メモリ確保により「必要なときに必要なだけ」メモリが利用可能であることを知るとともに実際に動的メモリ確保を行う際の注意点を学ぶ.
静的・動的メモリ確保と、配列・ポインタとの関連をまとめておくこと。 なし。
6 6 [多次元配列と関数へのポインタ]
C言語においてポインタを用いて多次元配列を扱う方法を学ぶ.また,データのみならず関数に対してもポインタを経由して利用可能であることを知る.
データと関数のポインタの相違についてまとめておくこと。 なし。
7 7 [文字列]
文字の特殊な配列である文字列の操作方法を理解する.
文字列と文字との相違についてまとめておくこと。 授業で使用するスライドを印刷したものを配布。
8 8 [分割コンパイル]
大規模なプログラムを 1つのソースファイルで記述するのは非現実的であるため,複数のソースファイルを連携させる際の注意点を学ぶ.
コンパイルとは何か復習し、分割コンパイルの利点・欠点をまとめておくこと。 授業で使用するスライドを印刷したものを配布。
9 9 [再帰]
プログラムを作成する 1つの方針として「再帰」という考え方を紹介する.
再帰と関数との関連について調査し、まとめておくこと。 授業で使用するスライドを印刷したものを配布。
10 10 [連結リスト]
データ構造の 1つである連結リストを C言語で実装するときの考え方を理解する.
リストについて調査し、まとめておくこと。 授業で使用するスライドを印刷したものを配布。
11 11 [スタックとキュー]
連結リストの応用として,「スタック」・「キュー」といったデータ構造について理解する.
スタック、キューの利活用法について調査し、まとめておくこと。 なし。
12 12 [二分探索木]
多量のデータから目的とするデータを高速に探し出すためのデータ構造として二分探索木を C言語で実現する手法を知る.
サーチの既存手法について復習しておくこと。 授業で使用するスライドを印刷したものを配布。
13 13 [ソートアルゴリズム]
データを一定の基準で並べ替える操作である「ソート」を C言語で実装する.
ソートの既存手法について復習しておくこと。 なし。
14 14 [文字列の探索]
長いテキストデータから特定の文字列を見つけ出す手法について,基本的な考え方と C言語における実装方法を学ぶ.
数値データのサーチと文字データのサーチの相違をまとめておくこと。 なし。
15 15 [動的計画法]
アルゴリズムを設計する考え方として動的計画法を紹介する.また,講義の簡単なまとめも行う.
動的計画法の適用例を調査し、まとめておくこと。 授業で使用するスライドを印刷したものを配布。
16 16 [期末試験]
理解度を確認する。
なし。 なし。
授業評価詳細情報
到達目標及び観点/Learning Goal and Specific Behavioral Viewpoints
No. 到達目標
/Learning Goal
知識・理解
/Knowledge & Undestanding
技能・表現
/Skills & Expressions
思考・判断
/Thoughts & Decisions
伝達・コミュニケーション
/Communication
協働
/Cooperative Attitude
1 ポインタや構造体の知識を学び活用できるようにする.
2 分割コンパイルについて知る.
3 再帰的な構造体の扱いを学ぶ.
4 基本的なデータ構造やアルゴリズムの実装方法を学ぶ.
成績評価方法と基準/Evaluation of Achievement
※出席は2/3以上で評価対象となります。
No. 到達目標
/Learning Goal
定期試験
/Exam.
レポート
1 ポインタや構造体の知識を学び活用できるようにする.
2 分割コンパイルについて知る.
3 再帰的な構造体の扱いを学ぶ.
4 基本的なデータ構造やアルゴリズムの実装方法を学ぶ.
評価割合(%)
/Allocation of Marks
70 30

科目一覧へ戻る