プログラミング

科目基礎情報

学校 高知工業高等専門学校 開講年度 平成30年度 (2018年度)
授業科目 プログラミング
科目番号 R3015 科目区分 専門 / 必修
授業形態 講義・演習 単位の種別と単位数 履修単位: 2
開設学科 SD ロボティクスコース 対象学年 3
開設期 通年 週時間数 2
教科書/教材 「明快入門C」,プリント
担当教員 榎本 隆二,岡村 修司,芝 治也,小崎 裕平

到達目標

1.Linux上でプログラム開発を行う方法を修得し,C言語による高度なプログラミング技法を用いたプログラム開発を行うことができる。
2.マイクロコンピュータモジュールを制御するための基礎技術を修得し,制御のためのプログラム開発を行うことができる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1Linuxの基本操作が行え,C言語による高度なプログラミング技法を用いたプログラムを記述することができる。C言語による高度なプログラミング技法を用いたプログラムを記述することができる。Linuxの基本操作が行えず,C言語による高度なプログラミング技法を用いたプログラムを記述することができない。
評価項目2課題をより効果的に解決するための制御プログラムを記述できる。課題を解決するための制御プログラムを記述できる。課題を解決するための制御プログラムを記述できない。
評価項目3

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

教育方法等

概要:
「プログラミング基礎」で学んだ内容を基礎とし,Linux上でプログラム開発を行うための方法を学び,C言語による高度なプログラミング技法(構造体やポインタを用いたプログラミング)の修得を目指す。Arduinoマイコンモジュールを制御するための基礎技術を学び制御プログラムの記述手法を修得する。体験的な学習を通じて,論理的思考能力の修得および問題解決能力の向上を目指す。
授業の進め方・方法:
演習内容について,教科書やプリントを用いて,1時間程度説明する。残りの時間を使って,コンピュータを用いた演習を行う。演習は動作確認を行うことで終了する。演習の内容を報告書にまとめ,次の回までに提出する。定期試験も実施する。
注意点:
単位認定には,すべての報告書が提出されていることが必要条件となる。定期試験を40%,平素の学習状況(課題等。自主性,積極性に欠ける場合には減点することもある)を20%,報告書(内容,提出期限の順守状況)を40%の割合で総合的に評価する。報告書には,作業を通じて理解できた内容,考察が含まれていること。学年の評価は前学期と後学期の平均とする。
初めから,教えてもらうつもりでは,問題を解決する能力の向上は望めない。授業中はノートをとり,わからない内容については積極的に質問すること。他の学生と相談することは構わないが,各自が主体的に取り組むことが必要である。

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 ガイダンス 授業の進め方,評価方法などについて理解する。
エディタの基本操作,実行可能プログラムの作成法, ディレクトリの基本操作などについて理解する。
2週 リスト リストの構造と特徴を理解する。セルを構造体と再帰的定義により定義する。ディレクトリの作成と移動が行える。
3週 リスト セルの追加,表示,挿入,削除,探索を行うプログラムを記述する。
4週 2分木 2分木の構造と特徴を理解する。ノードを構造体と再帰的定義により定義する。ディレクトリの作成と移動が行える。
5週 2分木 後行順探索を行うプログラムを記述する。
6週 2分木 再帰的手続きによる後行順探索のプログラムを記述する。
7週 グラフ グラフの構造と特徴を理解する。ノードを構造体と再帰的定義により定義する。ディレクトリの作成と移動が行える。
8週 グラフ グラフの探索を行うプログラムを記述する。
2ndQ
9週 ファイル処理 逐次ファイルの構造と操作法を理解する。ファイルのオープン,データの読み込み,ファイルのクローズを行うプログラムを記述する。ディレクトリの作成と移動が行える。
10週 ファイル処理 データの書き込みと読み込みを行うプログラムを記述する。
11週 Arduinoマイコンモジュールの概要とプログラム開発環境の使用方法について学ぶ Arduinoモジュールの構造と機能概要およびプログラム開発環境の使い方を理解する。
12週 出力ポートの活用手法について学ぶ 出力ポートに接続されたLEDの点灯制御手法を理解する。制御プログラムを実装する。
13週 入力ポートの活用手法について学ぶ 入力ポートに接続されたスイッチの活用手法を理解する。制御プログラムを実装する。
14週 PWM制御による電力制御について学ぶ PWM制御により電力を制御する手法を理解する。制御プログラムを実装する。
15週 モータドライブ回路とモータの回転制御手法について学ぶ ハーフブリッヂ回路,フルブリッジ回路の構造と動作原理を理解する。モータドライブIC制御プログラムを実装する。
16週 期末試験 1週から15週までに学んだ知識が定着していることを確認する。
後期
3rdQ
1週 Arduino活用総合演習1 数名のグループで課題解決型演習を行う。自ら課題を設定し,Arduinoを中心とした装置により課題解決を検討する。課題解決手法を提案する。
2週 Arduino活用総合演習2 課題解決のための装置を設計する。
3週 Arduino活用総合演習3 課題解決のための装置を製作する。
4週 Arduino活用総合演習4 課題解決のための装置を製作する。
5週 Arduino活用総合演習。相互評価 各グループの作品を相互評価する。
6週 リアルタイム処理 リアルタイム処理の基本を理解する。
7週 リアルタイム処理 タイマー割り込み処理を実装する。
8週 リアルタイム処理 多重割り込み処理を実装する。
4thQ
9週 リアルタイム処理 スレッド処理を実装する。
10週 シリアル通信 ホストPCから制御する。
11週 シリアル通信 ホストPCへデータを送る。
12週 シリアル通信 双方向通信を活用する。
13週 総合演習 簡単な組み込みシステムをシステム設計する。
14週 総合演習 簡単な組み込みシステムを開発する。
15週 総合演習 開発したシステムを評価し改造する。
16週 学年末試験 1週から15週までに学んだ知識が定着していることを確認する。

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー情報を適切に収集・処理・発信するための基礎的な知識を活用できる。3
論理演算と進数変換の仕組みを用いて基本的な演算ができる。3
コンピュータのハードウェアに関する基礎的な知識を活用できる。3
情報伝達システムやインターネットの基本的な仕組みを把握している。3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3
情報セキュリティの必要性および守るべき情報を認識している。3
個人情報とプライバシー保護の考え方についての基本的な配慮ができる。3
インターネット(SNSを含む)やコンピュータの利用における様々な脅威を認識している3
インターネット(SNSを含む)やコンピュータの利用における様々な脅威に対して実践すべき対策を説明できる。3
専門的能力分野別の専門工学機械系分野情報処理プログラムを実行するための手順を理解し、操作できる。4
定数と変数を説明できる。4
整数型、実数型、文字型などのデータ型を説明できる。4
演算子の種類と優先順位を理解し、適用できる。4
算術演算および比較演算のプログラムを作成できる。4
データを入力し、結果を出力するプログラムを作成できる。4
条件判断プログラムを作成できる。4
繰り返し処理プログラムを作成できる。4
一次元配列を使ったプログラムを作成できる。4
計測制御自動制御の定義と種類を説明できる。2
フィードバック制御の概念と構成要素を説明できる。2
伝達関数を説明できる。2
ブロック線図を用いて制御系を表現できる。2
電気・電子系分野制御伝達関数を用いたシステムの入出力表現ができる。3
ブロック線図を用いてシステムを表現することができる。3
システムの過渡特性について、ステップ応答を用いて説明できる。3
システムの定常特性について、定常偏差を用いて説明できる。3
システムの周波数特性について、ボード線図を用いて説明できる。3
フィードバックシステムの安定判別法について説明できる。3

評価割合

試験発表相互評価平素の学習状況ポートフォリオ報告書合計
総合評価割合400020040100
基礎的能力400020040100
専門的能力0000000
分野横断的能力0000000