到達目標
卒業後にソフトウェアを作成または利用する業務を行う基礎として、プログラミングの基礎的知識と技能を身に付けることが目標である。
評価項目1a:(6A, MCC IV-C)基礎的なプログラムを作成できる。
評価項目1b:(6A, MCC IV-C)計算機を用いて数学的な処理を行うことができる。
評価項目2:(6A, MCC V-D-1)プログラミングの基本的な構造を理解し、プログラムを記述できる。
評価項目3a:(6A, MCC V-D-1)与えられた問題に対して、それを解決するためのソースプログラムを記述できる。
評価項目3b:(6A, MCC V-D-1)与えられたソースプログラムを解析し、プログラムの動作を予測できる。
評価項目3c:(6A, MCC V-D-1)ソフトウェア生成に必要なツールを使い、ソースプログラムを実行できる。
評価項目4:(6A, MCC V-D-1)主要な言語処理プロセッサの種類と特徴を説明できる。
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
| 評価項目1a:(6A, MCC IV-C)基礎的なプログラムを作成できる。 | 客観的にみて優良にできる。 | できる。 | できない。 |
| 評価項目1b:(6A, MCC IV-C)計算機を用いて数学的な処理を行うことができる。 | 客観的にみて優良にできる。 | できる。 | できない。 |
| 評価項目2:(6A, MCC V-D-1)プログラミングの基本的な構造を理解し、プログラムを記述できる。 | 客観的にみて優良にできる。 | できる。 | できない。 |
| 評価項目3a:(6A, MCC V-D-1)与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 客観的にみて優良にできる。 | できる。 | できない。 |
| 評価項目3b:(6A, MCC V-D-1)与えられたソースプログラムを解析し、プログラムの動作を予測できる。 | 客観的にみて優良にできる。 | できる。 | できない。 |
| 評価項目3c:(6A, MCC V-D-1)ソフトウェア生成に必要なツールを使い、ソースプログラムを実行できる。 | 客観的にみて優良にできる。 | できる。 | できない。 |
| 評価項目4:(6A, MCC V-D-1)主要な言語処理プロセッサの種類と特徴を説明できる。 | 客観的にみて優良にできる。 | できる。 | できない。 |
学科の到達目標項目との関係
準学士課程(R6) 6A 制御工学を中心とした基礎工学の幅広い知識の修得
教育方法等
概要:
コンピュータを用いてソフトウェアを作るためのプログラミングの基礎的知識と技能を、C言語を用いて学び実践演習する。
授業の進め方・方法:
スライドを用いた講義をなるべく手短に受けた後で、演習課題によって学習内容を身に付ける。課題は、授業内容を十分に理解すればするほど、取り組みやすい。課題の内容を常に十分理解して、遅延や未提出なく出すことができれば、試験勉強に多くの時間を割かなくてもよいと考えられる。質問があればそのままにせず、授業時間内や授業時間外に積極的に担当教員まで申し出ること。
授業用プリントを配布する。このプリントを教科書代わりとして授業を進める。このため、各自でA4のファイルを用意して整理しておくこと。もしも整理ができないと、本科目を履修する難易度を自ら高くしてしまうことになる。この科目も例外ではなく、授業内容を身につけて単位という第3者評価をもらうかどうかは一人一人の判断に委ねられており、教員はこれを支援することができても強制することができない。補助教材「明快入門C」は、辞書あるいはハンドブックのように使用する。このため、人によって授業で用いることは多くないかもしれないが、自習や本科目履修以後にも用いることができる。
注意点:
プログラミングの知識と技能は、実験実習・情報処理・制御工学・卒業研究ほか多くの専門科目の礎の一つである。すなわち、低学年の他科目や実験実習Iで実施したタッチタイピングと同様に、本科目が身につかないと卒業に支障をきたす。したがって、分からない個所があれば、積極的に質問あるいは補助教科書などで調べること。卒業後の諸君が余計な苦労をしないために、タッチタイピングにより授業に臨むこと。本科目を習得して勉学を重ねると、たとえば簡単なゲームを作ることすら可能となる。
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
| 前期 |
| 1stQ |
| 1週 |
【プログラミングの技と法】 「フローチャート」 ○シラバスの説明 ○ガイダンス ○プログラミングの歴史 ○構造化プログラミング ○フローチャート ☆課題(構造化プログラミング・フローチャート) |
□プログラミングの技法をなぜ身に付けるべきであるのか考える。 □プログラミングの歴史的経緯を知る。 □【特に重要】プログラムの流れを順次構造、分岐構造、反復構造の組み合わせで表すことができる。 □フローチャートを正しい描き方で描く事ができる。 □コンパイラとインタプリタの違いを説明できる。
|
| 2週 |
「UNIX(入門編)」 ○2進数・10進数・16進数・ASCII文字 ○UNIX環境の操作方法 ○エディタemacsの操作方法 ○簡単なプログラムの作成 |
□コンピュータで整数や文字がどのように表されているか、知人や家族に説明できる。 □UNIX環境を基本的なコマンドで操作することができる。 □emacsでテキストファイルを編集することができる。 □キーボード操作における初歩的なミス(Caps LockやInsertなど)に対処することができる。
|
| 3週 |
【順次構造】 「C言語入門」 ○プログラム作成の手順 ○基本的なプログラムの作成 ○コンパイラgccのはたらき ☆課題(適切な書式、画面表示) |
□ソースファイルをコンパイル・デバッグして実行ファイルを作成する手順を実施できる。 □【特に重要】プログラムを適切な書式(インデント・コメント)で書くことができる。 □ソースファイルからどのような仕組みで実行ファイルが作成されるか、説明できる。
|
| 4週 |
「整数・文字と計算」 ○整数や文字を表示する方法 ○変数を使って計算する方法 ○整数・文字のデータ型とバイト数 ○変数のもつ値とアドレス ○数値や文字をキーボード入力する方法 ☆課題(printf()、scanf()、変数、整数型、アドレス、sizeof演算子) |
□表示したい内容に合わせてprintf()の書式を使い分けることができる。 □キーボード入力したい内容に合わせてscanf()の書式を使い分けることができる。 □整数と文字のデータ型の種類と、表せる範囲を理解する。 □整数型の変数と基礎的な演算子を使ったプログラムを作成することができる。 □【特に重要】メモリ上に割り当てられている変数のアドレス(番地)を求めることができる。
|
| 5週 |
「浮動小数点数と計算」 ○固定小数点数と浮動小数点数 ○丸め誤差 ○浮動小数点数のデータ型とバイト数 ○実数と整数の割り算にご用心 ○キャスト演算子を用いた型変換 ○定数に名前を付ける(constと#define) ☆課題(printf()、scanf()、変数、浮動小数点数型、定数、整数÷整数) |
□浮動小数点数型の変数を用いて、実数を扱うプログラムを作成することができる。 □【特に重要】整数型と浮動小数点数型の違いを正しく理解して扱うことができる。 □キャスト演算子を用いて型変換を行うことができる。 □定数に名前を付ける二つの方法を使うことができる。
|
| 6週 |
【分岐構造】 「if-else文」 ○if文・if-else文(条件式による分岐構文) ○条件式 ○関係演算子・等価演算子・論理演算子 ○演算子の優先順位 ○time.hでUNIX時間を扱う ☆課題(if-else文、条件式、素数、★エラストテネスのふるい、割り算のあまり) |
□if-else文による分岐構文を用いたプログラムを作成することができる。 □【特に重要】関係演算子・等価演算子・論理演算子を用いて適切な条件式を記述することができる。 □stdio.h以外のヘッダファイルを用いることで、利用可能な関数が増えることを理解する。 □素数を判定するための基礎的なアルゴリズムの仕組みを説明することができる。
|
| 7週 |
「演習」 |
□いままでの学習内容について身につけておりそれを活用できることを、自己点検することができる。
|
| 8週 |
「前期中間までの確認問題」 ○プログラミング関連の英単語 ○プログラミングに関する基礎用語 ○基本操作・プログラム作成・デバッグ ○フローチャート ○if文、if-else文 |
いままでの内容を説明あるいは実践できる。特に: □処理の順序をフローチャートで表現することができる。 □基礎的なC言語のプログラムの動作を説明することができる。
|
| 2ndQ |
| 9週 |
○前期中間までの確認問題の解答と解説 |
□試験で間違った内容から、何に集中して復習すれば効率的に知識・技術を身に付けることができるか、前向きに取り組むことができる。
|
| 10週 |
「switch文」 ○switch文(整数・文字の値による分岐構文) ○if文とswitch文の違い ○stdlib.hで疑似乱数を扱う ○じゃんけんゲームのプログラム ○goto文 ☆課題(switch文、break、default) |
□switch文による分岐構文を用いたプログラムを作成することができる。 □goto文の使用が基本的に推奨されない理由を理解する。
|
| 11週 |
【反復構造】 「while文」 ○while文(条件式による反復構文) ○インクリメント/デクリメント演算子 ○break文とcontinue文 ○do-while文 ☆課題(while文、定数、乱数、UNIX時間、条件式、break、continue、ゲーム) |
□while文による反復構文を用いたプログラムを作成することができる。 □break文とcontinue文の違いを理解して使い分けることができる。 □定数、条件式、乱数、UNIX時間など、以前に学習した内容が身についている。
|
| 12週 |
「for文」 ○for文(C言語でよく使われる反復構文) ○for文と浮動小数点数 ○C言語の分岐構文・反復構文のまとめ ☆課題(for文、定数、★最大・最小・合計・平均を求めるアルゴリズム) |
□【特に重要】for文による反復構文を用いたプログラムを作成することができる。 □for文のカウント変数として浮動小数点数を用いてはいけない理由を理解する。 □【特に重要】最大・最小・平均を求めるための基礎的なアルゴリズムの仕組みを説明することができる。
|
| 13週 |
「数学関数の使用」 ○math.hで数学関数を扱う ○無限(inf)と非数(nan) ☆課題(for文、定数、三角関数、度とラジアン) |
□数学関数を用いたプログラムを作成できる。 □for文を用いて、表に近い形式で計算結果を表示することができる。
|
| 14週 |
「演習」 |
□いままでの学習内容について身につけておりそれを活用できることを、自己点検することができる。
|
| 15週 |
「前期定期試験」 ○プログラミング関連の英単語 ○プログラミングに関する基礎用語 ○条件式の書き方 ○プログラム作成 |
いままでの内容を説明あるいは実践できる。特に: □構造化プログラミングにおける順次構造・分岐構造・反復構造の構造化文を、C言語において正しく記述できる。
|
| 16週 |
○前期定期試験の解答と解説 |
□試験で間違った内容から、何に集中して復習すれば効率的に知識・技術を身に付けることができるか、前向きに取り組むことができる。
|
モデルコアカリキュラムの学習内容と到達目標
| 分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
| 基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 基礎的なプログラムを作成できる。 | 3 | 前1,前3,前4,前5 |
| 計算機を用いて数学的な処理を行うことができる。 | 3 | 前4,前5,前13 |
| 専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | プログラミングの基本的な構造を理解し、プログラムを記述できる。 | 3 | 前2,前3,前4,前5,前6,前10,前11,前12 |
| 与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | 前6,前10,前11,前12,前13 |
| 与えられたソースプログラムを解析し、プログラムの動作を予測できる。 | 3 | 前6,前10,前11,前12,前13 |
| ソフトウェア生成に必要なツールを使い、ソースプログラムを実行できる。 | 3 | 前2,前3 |
| 主要な言語処理プロセッサの種類と特徴を説明できる。 | 3 | 前1 |
評価割合
| 試験 | 課題 | 合計 |
| 総合評価割合 | 50 | 50 | 100 |
| 評価項目1, 2, 4 | 50 | 0 | 50 |
| 評価項目3 | 0 | 50 | 50 |