<概要/Course Content Summary>
家電製品や携帯電話などの組込みシステムを操作するためには,WindowsやLinux,Webプログラミングなどの一般的なアプリケーションプログラミングと異なり,ハードウエアを意識したプログラミングの技術が必要となる。本講義では,組込み機器をモデルとして,実際のプログラミング演習を通して,ハードウエアを意識しコンピュータや周辺機器を操作するためのC言語によるプログラミング技法を学ぶ.
<到達目標/Goals,Aims>
具体的には次の項目ができるようになる. (1)プログラミングの観点からマイコンおよびハードウエアの動作の理解 (2)C言語によるコンピュータの操作の理解 (2)割込み,タイマ,DMAなどプログラムによるハードウエア操作の修得 (3)実アプリケーションプログラムの設計とデバック技法の修得
<授業計画/Schedule>
(実施回/ Week)
|
(内容/ Contents)
|
(授業時間外の学習/ Assignments)
|
(実施回/ Week)
1
|
(内容/ Contents)
導入,プログラミング概要
|
(授業時間外の学習/ Assignments)
講義内容の復習(1時間)
|
(実施回/ Week)
2
|
(内容/ Contents)
開発環境構築(コンパイル,リンク,ロード,Makeコマンド)
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
3
|
(内容/ Contents)
データ型(変数,ポインタ)
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
4
|
(内容/ Contents)
制御文(if, while, for, switch)
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
5
|
(内容/ Contents)
演算子,プリプロセッサ
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
6
|
(内容/ Contents)
関数の作り方,変数の種類,有効範囲
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
7
|
(内容/ Contents)
関数の作り方,メモリ配置,再起呼出し
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
8
|
(内容/ Contents)
構造体,配列
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
9
|
(内容/ Contents)
文字表示
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
10
|
(内容/ Contents)
文字列表示
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習,レポート課題(2時間)
|
(実施回/ Week)
11
|
(内容/ Contents)
タイマ
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
12
|
(内容/ Contents)
画面操作,メモリコピー
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
13
|
(内容/ Contents)
DMA(Direct Memory Access)
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習(1時間)
|
(実施回/ Week)
14
|
(内容/ Contents)
C言語全般復習
|
(授業時間外の学習/ Assignments)
講義内容の予習・復習,レポート課題(2時間)
|
(実施回/ Week)
15
|
(内容/ Contents)
総括
|
(授業時間外の学習/ Assignments)
講義内容の総復習(2時間)
|
授業で実施するプログラムの課題に関して必ず事前に予習すること.また,授業で実施する発展課題を授業中に提出できない場合は宿題と課す.
<成績評価基準/Evaluation Criteria>
平常点(クラス参加,発表,グループ作業の成果等)
|
30%
|
各項目の講義内容の理解度を確認するため,講義に関する課題およびアンケートの提出を課す。
|
レポート
|
20%
|
講義内容の応用に関して,独自の問題解決能力を評価する。
|
期末評価
|
50%
|
全体を通しての講義内容の理解度を評価する。
|
期末試験はコンピュータ上でのC言語のプログラム作成を問題とする.期末試験のプログラム作成に必要な基本情報はWebで提供する.その他の持込参照は一切不可.
<成績評価結果/Results of assessment>
成績評価の見方について/Notes for assessment
登録者数 |
成績評価(%) |
評点 平均値 |
備考
|
A |
B |
C |
D |
F |
他 |
96 |
15.6 |
22.9 |
25.0 |
24.0 |
12.5 |
0.0 |
2.1 |
|
<テキスト/Textbook>
林 晴比古 『明快入門 C』 (ソフトバンククリエイティブ、2013)
|
|
一般的なC言語のテキストは大きく2つに分類される.1つはC言語を一般的なプログラミング言語として説明しているテキスト,もう1つはC言語の役割を明確にしているテキストである.本テキストは後者に該当する.現在,一般的なプログラミングをするのであれば,各用途に応じてC言語より効率よく記述できる言語がいくつもあるが,一方で,OSやデバイスドライバ,組込みシステムなど,コンピュータの動作やハードウエアの仕組みを考えながらプログラミングする際にC言語がよく利用される.
<参考文献/Reference Book>
<備考/Remarks>
企業において計算機およびOSの設計の経験を有する教員が,コンピュータを動作させる基盤となるプログラミング技術について,実教材を利用して演習形式で説明する. 教員とのコンタクトが必要な場合は,まずはEMailでアポイントを取ること.
|