プログラミング基礎

科目基礎情報

学校 函館工業高等専門学校 開講年度 2018
授業科目 プログラミング基礎
科目番号 0044 科目区分 専門 / 必修
授業形態 演習 単位の種別と単位数 履修単位: 2
開設学科 生産システム工学科 対象学年 2
開設期 通年 週時間数 2
教科書/教材 筧捷彦監修,後藤良和・高田大二・佐久間修一著 「初級 C言語」(実教出版)/配布プリント
担当教員 河合 博之,倉山 めぐみ,川合 政人,森田 孝,藤原 亮,藤田 宜久

到達目標

1. 基本的な操作(条件文,繰り返し文,配列等)を使い,これを含むプログラムが記述できる.
2. プロシージャ(または,関数,サブルーチンなど)の概念を理解し,これを含むプログラムを記述できる.
3. ポインタやファイルの入出力の概念を理解し,これらを含むプログラムを記述できる.
4. 構造体の概念を理解し,これを含むプログラムを記述できる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1未知の課題に対して,適切に操作を組み合わせてプログラムを記述できる.講義の例と類似した課題に対し,基本的な操作を用いてプログラムを記述できる.基本的な操作を用いてプログラムを記述できない.
評価項目2未知の課題に対して,適切なユーザ関数を定義し,利用するプログラムを記述できる.講義の例と類似した課題に対し,ユーザ関数を定義し,利用するプログラムを記述できる.ユーザ関数の概念が理解できず,ユーザ関数の定義や利用するプログラムを記述できない.
評価項目3未知の課題に対して,適切にポインタやファイルの入出力を用いるプログラムを記述できる.講義の例と類似した課題に対し,ポインタやファイルの入出力を用いるプログラムを記述できる.ポインタや構造体の概念が理解できず,ポインタやファイルの入出力を利用するプログラムを記述できない.
評価項目4未知の課題に対して,適切に構造体を用いるプログラムを記述できる.講義の例と類似した課題に対し,構造体を用いるプログラムを記述できる.ファイルの入出力の概念が理解できず,構造体を利用するプログラムを記述できない.

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

函館高専教育目標 B 説明 閉じる
函館高専教育目標 C 説明 閉じる

教育方法等

概要:
プログラミングとは平易に表現すると「人間の考えた通りの処理をコンピュータに行わせるために,コンピュータに指示を与えること」である.人間に対して指示を与えるためには,言語(例えば日本語)を使用して話しかける.同様にコンピュータに対しては『プログラミング言語』を用いて指示を行う.本講義ではプログラミング言語の1つであるC言語の文法を学ぶ.ユーザ関数,ポインタ,構造体,ファイルの入出力を理解し,それらを活用した簡単なプログラムを独力で作成できるようになることが到達レベルである.
授業の進め方・方法:
1回の授業2時間のうち前半は教室での座学,半はコンピュータを使用して実際にプログラムを作成する演習を行う.
後半の演習については、「成果品・実技」の達成度評価となる.演習問題の採点基準は以下のとおりとする.
①その授業時間内に教員のチェックを受け、正しいプログラムを提出できた。 … 100点
②次回の授業日前日17:00までに正しいプログラムを提出できた。             … 80点
③演習担当教員が定めるその期の提出締切日までに正しいプログラムが提出できた。 … 60点
④③の提出締切日までに正しいプログラムの提出ができなかった。  … 0点
③の期間については、提出したプログラムに間違いがある場合は指摘するので、完成するまで何度でも提出可能とする.
注意点:
1回の授業2時間のうち前半は教室での座学,半はコンピュータを使用して実際にプログラムを作成する演習を行う.
後半の演習については、「成果品・実技」の達成度評価となる.演習問題の採点基準は以下のとおりとする.
①その授業時間内に教員のチェックを受け、正しいプログラムを提出できた。 … 100点
②次回の授業日前日17:00までに正しいプログラムを提出できた。             … 80点
③演習担当教員が定めるその期の提出締切日までに正しいプログラムが提出できた。 … 60点
④③の提出締切日までに正しいプログラムの提出ができなかった。  … 0点
③の期間については、提出したプログラムに間違いがある場合は指摘するので、完成するまで何度でも提出可能とする.

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス (0.5h)
プログラミング入門の復習 (5.5h)
scanf関数, printf関数, if文, switch文を用いたプログラム作成の復習
for文, while文の復習
授業の進め方,年間計画を理解する。
scanf関数, printf関数, if文, switch文を用いてプログラムを正しく作成できる。
for文, while文を用いてプログラムを正しく作成できる。
2週 プログラミング入門の復習 (5.5h)
scanf関数, printf関数, if文, switch文を用いたプログラム作成の復習
for文, while文の復習
scanf関数, printf関数, if文, switch文を用いてプログラムを正しく作成できる。
3週 プログラミング入門の復習 (5.5h)
scanf関数, printf関数, if文, switch文を用いたプログラム作成の復習
for文, while文の復習
scanf関数, printf関数, if文, switch文を用いてプログラムを正しく作成できる。
4週 else-if文、if文のネスト、2重ループ (コア) if - else if - else文を使用することができる。if文、for文のネストを使用することができる。
5週 文字列 (コア) 配列を用いて文字列を扱うことができる。
6週 2次元配列 (コア) 2次元配列を用いて正しいプログラムを作成できる。
7週 まとめ (2h) 復習をかねて今までの知識でプログラムを作成する。
8週 前期中間試験
2ndQ
9週 答案返却・解答解説 (1h)
ユーザ関数 (コア)
・ユーザ関数の定義 (1h)
間違った問題の正答を理解できる。
ユーザ関数を定義し、呼び出すプログラムを作成できる。
10週 ・引数のあるユーザ関数 引数のあるユーザ関数を用いてプログラムを作成できる。
11週 ・戻り値のあるユーザ関数 戻り値のあるユーザ関数を用いてプログラムを作成できる。
12週 ・配列を引数としたユーザ関数 配列を引数として持つユーザ関数を作成し、利用できる。
13週 標準ライブラリ関数 三角関数などの標準ライブラリ関数を利用して,主に数学に関するプログラムを作成できる。
14週 まとめ 今までの知識で正しいプログラムを作成できる。
15週 前期期末試験
16週 試験答案返却・解答解説
復習問題 (1h)
間違った問題の正答を求めることができる
復習問題を理解し、正しいプログラムを作成できる。
後期
3rdQ
1週 ポインタ
ポインタの概念

アドレスに関する基本概念が理解できる。
2週 ポインタの使用例 ポインタを使う意味を理解し、利用できる。
3週 ユーザ関数への利用 ユーザ関数の引数にポインタを使用できる。
4週 ポインタと配列 配列とアドレスの関係を理解できる。
5週 ポインタと文字列 ポインタを利用した文字列を理解し、利用できる。
6週 ファイルの入出力
ファイルの書き込み、読み込み

プログラムでファイルの読み書きができる。
7週 ファイル操作を用いたデータの処理 計算結果をファイルに書き込んだり、ファイルからデータを読み込んでプログラムで計算したりすることができる。
8週 後期中間試験
4thQ
9週 テストの解答 (1h)
構造体
・構造体の概念 (1h)
間違った問題の正答を理解できる。

構造体のメリットを理解できる。
10週 構造体の利用 構造体変数の入出力を用いてプログラムを作成できる。
11週 構造体の配列 構造体の配列を用いてプログラムを作成できる。
12週 ユーザ関数の引数に構造体を利用 引数に構造体を利用したユーザ関数を用いてプログラムを作成できる。
13週 構造体へのポインタ ユーザ関数の引数に構造体へのポインタを利用できる。
14週 まとめ これまで学習した内容を利用して,複雑なプログラムを作成することができる。
15週 学年末試験
16週 試験答案返却・解答解説 ・間違った問題の正答を求めることができる

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

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学機械系分野情報処理プログラムを実行するための手順を理解し、操作できる。4
定数と変数を説明できる。4
整数型、実数型、文字型などのデータ型を説明できる。4
演算子の種類と優先順位を理解し、適用できる。4
算術演算および比較演算のプログラムを作成できる。4
データを入力し、結果を出力するプログラムを作成できる。4
条件判断プログラムを作成できる。4
繰り返し処理プログラムを作成できる。4
一次元配列を使ったプログラムを作成できる。4
情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。2
変数の概念を説明できる。3
データ型の概念を説明できる。3
制御構造の概念を理解し、条件分岐を記述できる。3
制御構造の概念を理解し、反復処理を記述できる。3
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。2
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。2
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。2
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。2
システムプログラムコンパイラの役割と仕組みについて説明できる。4
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。2
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。2
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。2

評価割合

試験発表相互評価成果品・実技ポートフォリオその他合計
総合評価割合50005000100
基礎的能力0000000
専門的能力50005000100
分野横断的能力0000000