プログラミング演習

科目基礎情報

学校 熊本高等専門学校 開講年度 2017
授業科目 プログラミング演習
科目番号 HI304 科目区分 専門 / 必修
授業形態 実験・実習 単位の種別と単位数 履修単位: 2
開設学科 人間情報システム工学科 対象学年 3
開設期 通年 週時間数 2
教科書/教材 柴田望洋著,新・明解C言語 入門編および実践編,SBクリエイティブ
担当教員 島川 学,大隈 千春

到達目標

(1) 2年次の情報処理で学習した内容を繰り返し演習を行い,基本的なプログラミングができる.
(2) ポインタやメモリの動的割当て,浮動小数点数と誤差など,コンピュータの内部処理について理解ができる.
(3) デバッグやテストなどについて理解し,バグの少ないプログラムを効率的に開発するための技術を身に付ける.
(4) 2年次の情報処理で作成したものよりも規模の大きい,複数の関数,複数のソースコードから成るプログラムを記述できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
基本データ型と入出力 文字と文字列「標準的な到達レベルの目安」に加え,文字列と数字が混在する入力ができる.基本データ型の入出力ができる.基本的な入出力ができない.
ポインタ「標準的な到達レベルの目安」に加え,ポインタを配列の参照などに応用できる.ポインタの概念を理解し,ポインタを活用した基本的なプログラムを記述できる.ポインタの概念を理解できず,ポインタを活用したプログラムを記述できない.
デバッグとテスト「標準的な到達レベルの目安」に加え,テストケースを想定して検証ができる.デバッガの基本機能を活用できる.テストケースを想定できる.デバッガを全く活用できない.テストケースを想定できない.
浮動小数点数と誤差「標準的な到達レベルの目安」に加え,誤差について理解し,プログラムで確認できる.浮動小数点数の内部表現を理解でき,プログラムで確認できる.浮動小数点数の内部表現を理解できず,誤差をプログラムで確認できない.
メモリの動的割当て「標準的な到達レベルの目安」に加え,構造体データの動的割当てができる.メモリの動的割当てを理解でき,プログラムで確認できる.メモリの動的割当てが理解できず,プログラムを記述できない.
分割コンパイルとリンク「標準的な到達レベルの目安」に加え,makeファイルを活用できる.分割コンパイルとリンクの概念を理解でき,複数のソースによるプログラムを作成できる.分割コンパイルの概念ができず,ソースプログラムを分割コンパイルできない.
総合演習「標準的な到達レベルの目安」に加え,作成したぷrグラムの処理や性能を評価して説明できる.提示されたテーマに沿ったプログラムを作成できる.提示されたテーマに沿ったプログラムを作成できない.

学科の到達目標項目との関係

教育方法等

概要:
プログラミングの技術を身に付けるための科目である.プログラミングにはC言語を用いる.
2年次の情報処理の授業で作成したものよりも規模の大きいプログラムを,プログラミングスタイルや実行効率を考慮して記述できるようになるのが目標である.
授業の進め方・方法:
演習主体で進める.演習レポート(100%)で総合評価し,60%以上の得点率で合格とする.
注意点:
規定授業時数(単位時間)は60である.
演習レポートの提出遅れは大きな減点となるので注意すること.

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 基本データ型と入出力(1) scanf()とprintf()で基本データ型変数の入出力ができる.
文字と文字列の入出力ができる.
文字列と数字の混在する入力ができる.
2週 基本データ型と入出力(2) 同上
3週 文字と文字列(1) 文字と文字列の扱いを理解し,文字列の操作ができる.
4週 文字と文字列(2)
同上
5週 ポインタ(1) ポインタの概念を理解し,プログラムで確認できる.
6週 ポインタ(2) 同上
7週 ポインタ(3) 同上
8週 レポートまとめ(1) 演習レポートのまとめができる
2ndQ
9週 デバッグとテスト(1) デバッガを活用することができる.
テストケースを想定して検証ができる.
10週 デバッグとテスト(2) 同上
11週 デバッグとテスト(3) 同上
12週 浮動小数点数と誤差(1) 浮動小数点数の内部表現を理解し,プログラムで確認できる.
誤差について理解し,プログラムで確認できる.
13週 浮動小数点数と誤差(2) 同上
14週 浮動小数点数と誤差(3) 同上
15週 浮動小数点数と誤差(4) 同上
16週 レポートまとめ(2) 演習レポートのまとめができる
後期
3rdQ
1週 メモリの動的割当て(1) メモリ領域の動的割当てを理解し,プログラムで確認できる.
2週 メモリの動的割当て(2) 同上
3週 メモリの動的割当て(3) 同上
4週 分割コンパイルとリンク(1) コンパイル,アセンブル,リンク,実行可能形式について理解し,複数のソースコードからなるプログラムを作成できる.
5週 分割コンパイルとリンク(2) 同上
6週 分割コンパイルとリンク(3) 同上
7週 分割コンパイルとリンク(4) 同上
8週 レポートまとめ(3) 演習レポートのまとめができる
4thQ
9週 総合演習(1) これまでの学習内容を基盤として,提示されたテーマに沿ったプログラムを作成できる.
作成したプログラムの処理の流れや性能を評価して説明できる.
10週 総合演習(2) 同上
11週 総合演習(3) 同上
12週 総合演習(4) 同上
13週 総合演習(5) 同上
14週 総合演習(6) 同上
15週 総合演習(7) 同上
16週 レポートまとめ(4) 演習レポートのまとめができる

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング変数とデータ型の概念を説明できる。3
代入や演算子の概念を理解し、式を記述できる。3
制御構造の概念を理解し、条件分岐や反復処理を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3
主要な言語処理プロセッサの種類と特徴を説明できる。3
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。3
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3
ソフトウェアアルゴリズムの概念を説明できる。3
与えられたアルゴリズムが問題を解決していく過程を説明できる。3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。3
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。3
整列、探索など、基本的なアルゴリズムについて説明できる。3
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。2
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。2
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。2
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。2
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。2

評価割合

演習レポート合計
総合評価割合100100
基礎的能力4040
専門的能力6060
分野横断的能力00