プログラミング

科目基礎情報

学校 長岡工業高等専門学校 開講年度 令和02年度 (2020年度)
授業科目 プログラミング
科目番号 0034 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 電気電子システム工学科 対象学年 2
開設期 通年 週時間数 2
教科書/教材 (補助教材)柴田望洋,新・明解 C言語,SBクリエイティブ(株),2014年
担当教員 田村 文裕

到達目標

(科目コード:21190、英語名:Programming)
この科目は長岡高専の学習・教育目標の(D)と主体的に関わる。
この科目の到達目標と、各到達目標と長岡高専の学習・教育到達目標との関連を、到達目標、評価の重み、学習・教育目標との関連の順で次に示す。
①C言語の文法を理解し、エディタで仕様通りのプログラムを作成し、コンパイル・実行をすることができる。40% (d1)
②コンパイル時のエラーを解析し、プログラムを修正し再コンパイル・実行ができる。20% (d2)
③プログラミングの基本事項を理解し、プログラムの流れを把握できる。30% (d3)
④ IoTの概略を理解し、簡単なシステムを構築できる。 10% (d1)

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安最低限の到達レベルの目安未到達レベルの目安
評価項目1C言語の文法を詳細に理解し、仕様通りのプログラムを書くことができる。C言語の文法を理解し、例題のプログラムを作成できる。C言語の文法を概ね理解し、簡単なプログラムを書くことができる。左記に達していない。
評価項目2コンパイル時のエラーの詳細を解析し、プログラムを修正し再コンパイル・実行ができる。コンパイル時のエラーを解析し、プログラムを修正し、再コンパイル・実行ができる。コンパイル時のエラーを概ね解析し、プログラムを修正し、再コンパイル・実行ができる。左記に達していない。
評価項目3プログラミングの基本事項を理解し、プログラムの流れを詳細に把握できる。プログラミングの基本事項を理解し、プログラムの流れを把握できる。プログラミングの基本事項を理解し、プログラムの流れを概ね把握できる。左記に達していない。
評価項目4IoTの概略を詳細に理解して、簡単なIoTシステムを構築し、応用できる。IoTの概略を理解して、簡単なIoTシステムを構築し、利用できる。IoTの概略を概ね理解して、簡単なIoTシステムを利用できる。左記に達していない。

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

教育方法等

概要:
身近な家電品などさまざまなものにコンピュータが組み込まれており、最近ではさらにIoTが多く導入されている。また、電気工学や電子工学の様々な問題を解くのに多くの計算を必要とするし、実験データの処理にもコンピュータを利用することが多い。製品の開発、現象の解析、実験結果の処理などあらゆる場面でコンピュータを使うが、目的にあわせてコンピュータ上で処理をするには、プログラムが必要となる。
この講義では、プログラミング言語として現在最も普及しているC言語を用いて,プログラミングの基礎を学ぶ。特に電気電子システム工学科で今後学ぶ様々な課題を解く手法としてプログラミングが利用する方法を検討する。また、IoTシステムの概略を理解し、マイコンとクラウドサービスを利用したIoTを構築する。さらにIoTの応用方法を検討する。
授業の進め方・方法:
各回の授業は、補助教材の説明と演習(教科書の例題と演習)を例に取り組む。また、課題として数学、物理、電気・電子回路、論理回路、組込みシステムなどから例題をだし、それをプログラムを用いて解くことを基本に進める。プログラムは、その授業時間に学ぶ内容だけでなく、それまでに学習した内容を理解していないと理解できない。例題、補助教材の内容を復習しながら、演習課題のプログラムを作成・実行する実習を行う。毎回課題があり、課題の結果(実行例)とプログラムソースなどをメールで提出する。
プログラミングの応用方法、使用例として、IoTシステムの概略を理解し、マイコンとクラウドサービスを利用したIoTシステムを構築する。さらにIoTの応用方法を検討、提案する。
注意点:
演習課題は授業時間中に出すので、欠席が目立つ場合や授業への取り組み方に問題がある場合には、課題提出が難しくなるので注意すること。また、演習課題は単にプログラミングができるだけでは解けないので、関連する諸科(特に物理、数学、電気回路)目十分な予復習をして授業に臨んでほしい。
本科目は本来、面接授業として実施を予定していたものであるが、新型コロナウイルス感染症の拡大による緊急事態において、必要に応じ遠隔授業として実施するものである。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 プログラミングについて
IoTの概略および要素
プログラミングを通して、様々な計算、情報収集、機器操作ができることを理解する。
IoTの概略および用いられるセンサー、マイコン、クラウドサービスの働きを理解し、説明できる。
課題:IoTシステムの基本操作の習得
2週 IoTシステムの構築 簡単なIoTシステムを構築し、利用できる。また応用方法を提案できる。
課題:IoTシステムの応用方法の提案
3週 IoTシステムの応用 提案したIoTシステムの応用方法の概要を他人に説明できる。
課題:応用方法のプレゼン
4週 変数の読込・表示と演算(1) 変数の種類(型)や定義、変数の読み込みや表示補法と演算のルールを含むプログラムを理解する。
参考:1,2,7章
課題:2次方程式の実数解
5週 変数の読込・表示と演算(2) 変数の種類(型)や定義、変数の読み込みや表示補法と演算のルールを含むプログラムを理解する。
参考:1,2,7章
課題:オームの法則の計算
6週 プログラムの流れと分岐:if文、switch文 プログラムの流れを制御(分岐)命令であるif文、switch文を理解する。
参考:3章
課題:2次方程式の解の判別(実数解、二重解、虚数解)
7週 前期中間試験 試験時間:50分
8週 前期中間試験の解説 前期中間試験の解答を行い、問題および解答の内容を理解する。
2ndQ
9週 プログラムの流れと繰り返し処理(1):do文、while文、for文 プログラムの流れを制御(分岐)命令であるdo文、while文、for文を理解する。
参考:4章
課題:指数関数、2次関数などの値の計算
10週 プログラムの流れと繰り返し処理(2):do文、while文、for文 プログラムの流れを制御(分岐)命令であるdo文、while文、for文を理解する。
参考:4章
課題:正弦波交流電圧の瞬時値の表示
11週 配列(1) 配列変数を理解する。
参考:5章
課題:基礎的な配列を用いた演算
12週 配列(2) 配列変数を理解する。
参考:5章
課題:合成抵抗の計算
13週 演習:アルゴリズムの基礎 計算の手法、プログラムの流れが異なっていても同じ演算ができることを理解する。
課題:順列、数列の和、場合の数の計算
14週 まとめと演習(1) 前期の学習内容を確認する。
電気回路などの問題を解くためのプログラムを作成する。
課題:直流回路の分圧・分流の計算
15週 まとめと演習(2) 前期の学習内容を確認する。
電気回路などの問題を解くためのプログラムを作成する。
課題:正弦波交流の瞬時値の計算
16週 前期末試験
17週:前期末試験の解説と発展授業
試験時間:50分
17週:前期末試験の解説
後期
3rdQ
1週 前期の復習と演習 前期の授業内容を復習し、学習内容の確認を行う。
2週 関数を含むプログラミング(1) 関数の機能と使い方を理解する。
参考:6,8章
課題:場合の数を計算する関数とパスカルの三角形の表示
3週 関数を含むプログラミング(2) 関数の機能と使い方を理解する。
参考:6,8章
課題:分圧・分流を計算する関数
4週 いろいろなプログラム(1) 電気回路で出てきたいろいろな課題をプログラムで解いてみよう。
課題:交流電圧の瞬時値を計算する関数
5週 いろいろなプログラム(2) 電気回路で出てきたいろいろな課題をプログラムで解いてみよう。
課題:RC・RL直列回路の瞬時値計算
6週 いろいろなプログラム(3) 電気回路で出てきたいろいろな課題をプログラムで解いてみよう。
課題:RLC直列回路の瞬時値計算
7週 後期中間試験 試験時間:50分
8週 後期中間試験の解説 後期中間試験の解答を行い、問題および解答の内容を理解する。
4thQ
9週 基数変換と論理演算 変数の型を復習し、10進数を2、8、16進数に変換するプログラムを理解する。
参考:7章
課題:2、8、16進数へ変換するプログラムの作成
10週 関数を含むプログラムの復習 中間試験までの範囲を復習するとともに関数を複数含むプログラムの動作の復習を行う。
課題:カレンダーを表示。時刻の表示。
11週 ポインタ(1):文字列と配列 ポインタの使い方、考え方を理解する。
参考:9~13章
課題:文字列の改変
12週 ポインタ(2):ファイルの読み書き テキストファイルから文字列、データの読み込みの方法を理解する。
参考:9~13章
課題:オシロスコープで取得したデータファイル(テキストファイル)を読み込む
13週 ポインタ(3):ファイルの読み書き テキストファイルから文字列、データの書き込みの方法を理解する。
参考:9~13章
課題:取得したデータを演算して出力する
14週 まとめと演習(1) 1年間の学習内容を確認する。
電気回路、物理、数学などの問題を解くためのプログラムを作成する。
15週 まとめと演習(2) 1年間の学習内容を確認する。
電気回路、物理、数学などの問題を解くためのプログラムを作成する。
16週 前期末試験
17週:前期末試験の解説と発展授業
試験時間:50分
17週:前期末試験の解説

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー論理演算と進数変換の仕組みを用いて基本的な演算ができる。3後9
情報伝達システムやインターネットの基本的な仕組みを把握している。3前1,前2,前3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3前13,前14,前15,後2,後3,後4,後5,後6,後9,後10,後12,後13,後14,後15
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3前4,前5,前6,前9,前10,前11,前12,前13,前14,前15,後2,後3,後4,後5,後6,後9,後10,後11,後12,後13,後14,後15
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3前4,前5,前6,前9,前10,前11,前12,前13,前14,前15,後2,後3,後4,後5,後6,後9,後10,後11,後12,後13,後14,後15

評価割合

課題後期中間試験学年末試験合計
総合評価割合701515100
基礎的能力0000
専門的能力701515100
分野横断的能力0000