プログラミング入門

科目基礎情報

学校 沼津工業高等専門学校 開講年度 平成30年度 (2018年度)
授業科目 プログラミング入門
科目番号 2018-362 科目区分 専門 / 必修
授業形態 授業 単位の種別と単位数 履修単位: 1
開設学科 電子制御工学科 対象学年 2
開設期 後期 週時間数 2
教科書/教材 ハンドアウト
担当教員 (D科 非常勤講師),長澤 正氏

到達目標

コンピュータでプログラムが動作する仕組みを理解し、説明できる
マイコンボードarduino上で簡単な数値計算プログラムが作成し、実行できる
マイコンボードarduinoで簡単なハードウェア制御のプログラムが作成でき、実行できる

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
コンピュータでプログラムが動作する仕組みを理解し、説明できるコンピュータ上で機械語が動作する仕組みを説明でき、コンパイラの仕組みと役割を説明できるコンピュータで機械語の役割がわかり、コンパイラの役割を説明できるコンピュータの機械語が理解できず、コンパイラの役割を説明できない
マイコンボード上で簡単なプログラムが作成できるマイコンボード上で基本的なプログラムの書き方がわかり,実問題に適用できるマイコンボード上で基本的なプログラムの書き方がわかるマイコンボード上で基本的なプログラムの書き方がわからない
マイコンボードを使って簡単なハードウェアを制御するプログラムを作成できるマイコンボード上でハードウェアを制御する基本的なプログラムを作成でき、実問題に適用できるマイコンボード上でハードウェアを制御する基本的なプログラムを作成できるマイコンボード上でハードウェアを制御する基本的なプログラムを作成できない

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

【本校学習・教育目標(本科のみ)】 2 説明 閉じる

教育方法等

概要:
ロボットをはじめとする様々な機械制御及びその物理シミュレーションから実験データの解析等,プログラミング技術は欠かす事は出来ない.マイコンボードarduino(以下単にarduinoと呼ぶ)を使用してハードウェア制御のプログラミング技術を学ぶ。Arduinoのプログラミングはハードウェア制御に適しているC言語に近い言語で行われ,この言語でのプログラミングの基礎およびハードウェアの制御方法を習得することを目的とする.また,演習と課題レポートを実施し,知識の定着とプログラミング・デバッグ技術の向上を図る.
授業の進め方・方法:
授業は,プリントを配布し解説を行い、それらに関するプログラムをかく実習の時間で構成される。適宜、課題プリントを配布し,要点をまとめさせ,理解を促すようになっている。実習では,arduinoを使用してマイコンボード上で動作を確認する。時間内に適切な表現でプログラムを完成させることを評価する。時間が足りない場合は宿題とする場合もある。
注意点:
1.試験や課題レポート等は、JABEE 、大学評価・学位授与機構、文部科学省の教育実施検査に使用することがあります。
2.授業参観される教員は当該授業が行われる少なくとも1週間前に教科目担当教員へ連絡してください。
3.情報処理基礎内scratchやロボコードでの制御構造を復習をしておくと理解が深まります.

授業計画

授業内容 週ごとの到達目標
後期
3rdQ
1週 ガイダンス 主要な言語の種類と特徴を説明できる.
一般的にコンピュータ上でプログラムはどのように実行されるのかが説明できる.
機械語と高級言語およびコンパイラの動作について説明できる.
Arduinoの開発環境上でプログラムがどのように実行されるか説明できる.
2週 基本的文法、数の扱い,型,変数,演算子 arduinoプログラミングの基本的な書き方,実行環境を学び,計算機での数の扱いについて理解し実践できる.定数や変数について説明できる.変数の型宣言とスコープについてその意味を説明できる.基本的な演算子について理解する.
3週 基本演算子,条件分岐,シリアルポート経由の出力 シリアルポートを使っての出力方法について理解し書けるようになる.基本的な演算子について実践できる.If文およびswitch文を使った簡単な条件分岐がかける.データの流れについて説明できる.
4週 ポインタ、配列 ポインタ、配列をつかった変数について理解し,プログラムをかけるようになる
5週 for,whileによる繰り返し
for,while文による繰り返し、break,continue脱出プログラムが作成できる.
6週 定期的に実行するプログラミング
時間関数の使い方
定期的にシリアルポートに出力するプログラムを作成することができる.
開始からの経過時間を取得しシリアルポートに出力するプログラムを作成することができる.
7週 文字列操作 文字列の取り出し、挿入、置換を行うプログラムを作成することができる
8週 シリアルポートから入力する シリアルポートを使ったユーザーからの文字列入力方法について理解し書けるようになる.
4thQ
9週 繰返し処理,数学関数を扱うプログラム 繰返し処理を用いて簡単な数学の問題をとくプログラムをかけ,そのアルゴリズムを説明できる.
10週 LEDを制御する1 LEDを点滅させるプログラムを作成できる
11週 LEDを制御する2 PWM制御によるLEDの明るさを変化させるプログラムを作成できる
12週 スイッチ入力 LEDを点滅させるプログラムを作成できる
13週 アナログ入力 アナログ信号(電圧値)を読み取りその値によりLEDの明るさを変化させるプログラムが作成できる
14週 割り込み1 割り込みの概念を説明でき、時刻割り込み処理プログラムが書ける
15週 割り込み2 外部割込み処理プログラムが書ける
16週

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。2
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。2
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。2
専門的能力分野別の専門工学機械系分野情報処理プログラムを実行するための手順を理解し、操作できる。2
定数と変数を説明できる。2
整数型、実数型、文字型などのデータ型を説明できる。2
演算子の種類と優先順位を理解し、適用できる。2
算術演算および比較演算のプログラムを作成できる。2
データを入力し、結果を出力するプログラムを作成できる。2
条件判断プログラムを作成できる。2
繰り返し処理プログラムを作成できる。2
一次元配列を使ったプログラムを作成できる。2
情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3
変数の概念を説明できる。3
データ型の概念を説明できる。3
制御構造の概念を理解し、条件分岐を記述できる。3
制御構造の概念を理解し、反復処理を記述できる。3
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。3
主要な言語処理プロセッサの種類と特徴を説明できる。2
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。2
プログラミング言語は計算モデルによって分類されることを説明できる。2
主要な計算モデルを説明できる。2
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。3
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。3
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。3
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。3
計算機工学整数を2進数、10進数、16進数で表現できる。2
小数を2進数、10進数、16進数で表現できる。2
基本的な論理演算を行うことができる。2
基本的な論理演算を組合わせて、論理関数を論理式として表現できる。2
システムプログラムコンパイラの役割と仕組みについて説明できる。2
正規表現と有限オートマトンの関係を説明できる。2
情報数学・情報理論コンピュータ上での数値の表現方法が誤差に関係することを説明できる。2
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる。2
分野別の工学実験・実習能力情報系分野【実験・実習能力】情報系【実験・実習】与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。2
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。2
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。2
フローチャートなどを用いて、作成するプログラムの設計図を作成することができる。2
問題を解決するために、与えられたアルゴリズムを用いてソースプログラムを記述し、得られた実行結果を確認できる。2
基礎的な論理回路を構築し、指定された基本的な動作を実現できる。2

評価割合

試験課題合計
総合評価割合7030100
基礎的能力000
専門的能力7030100
分野横断的能力000