神戸情報大学院大学 シラバス 2024

1. 科目コード1292
2. 科目名G81: IoT開発
3. 担当教員
孫 一 (Yi Sun)
4. 開講期
秋2期
5. 履修要件(前提科目)・重要情報「1208 プログラミング基礎論C」終了、または同等以上の知識
6. 科目の目的・概要
IoTや組み込みシステムについて概念から実践的なノーハウまで広く学ぶ。小型コンピューターArduino、Raspberry Piを対象に、ハードに直結したプログラミング、センサーやアクチュエーターの操作、データ収集と通信、自動制御の基本を例題を通じて理解する。IoTについて、Big DataやAIを使った解析について基礎的な知識を身につけて、将来の発展について行ける基盤を築く。
7. 授業概要
1 IoTの概念・過去・現状を紹介する
2 授業で使用するIoT装置のセットアップ、環境整備
3 Arduinoの基礎使用方法を紹介する
4 Arduinoを使った開発環境の説明、プログラム開発方法の練習
5 Arduinoと接続するセンサーなどの入出力装置を紹介する
6 Arduinoを使った入出力装置との通信のプログラムの書き方の説明
7 Arduinoのためのプログラミング入門
8 Arduinoのためのプログラミングの練習
9 Raspberry Piの紹介
10 Raspberry Piの応用方法の説明
11 IoTのデータの収集、MQTTプロトコルの説明
12 IoTデータの蓄積、解析、可視化の方法を説明
13 その他IoT機器の紹介
14 IoTの応用事例の紹介とディスカッション
15 発表会とまとめ
16
8. 教科書
実験用機材の自費購入が必要です。
Freenove ESP32-WROVER用スーパースターターキット ￥4,380
https://qr.paps.jp/3KPWQ
9. 参考書なし
10. 科目の学習目標(1) IoTシステムの目的・構成・応用を理解し、導入等について判断できる(2) ハード直結プログラミング(Processing)ができる(3) IoTのためのセンサー情報取得、通信、解析ができる(Pythonを使用)(4) IoTの応用について企画・提案ができる
(5)
(6)
(7)
(8)

11. 本学の教育目標と科目の学習目標との対応教育目標
高度ICT
基礎的素養
スキルの修得 専門知識および業務応用力
自ら強みを磨き続ける力
自ら社会における課題設定
課題を発見し、仮説立案
人間力
解決する力
仮説検証
（＝探究力）
実行の修得前に踏出す力
社会人基礎力
考え抜く力
チームで働く力
職業倫理の修得
12. 評価方法と配点
学習目標
達成度評価方法と配点
期末試験 小テスト
レポート
発表
(1)
○
(2)
○
(3)
○(4)
○(5)
(6)
(7)
(8)
配点
40
13. 評価基準
期末試験

学習目標(1)、(4)(2)、(3)(1)、(4)(1)、(4)(2)、(3)(2)、(3)

成果物

その他

○
○
○

60

小テスト
レポート
発表

IoTの概念を理解出来ること。IoTと組み込みシステムの区別がわかること。IoTを使って、社会課題の解決策を提案できること

成果物

processingのプログラミングができること。Arudino IDEの使い方がわかる
こと、センサーとの通信方法が理解できること。MQTTを使ったデータの転送ができること

その他
14. アクティブラーニング（A:行っている B:やや行っている C:行っていない）
授業時間全体に占めるアクティブラーニングの時間的な割合
1 授業で得られた知識や技能を活用し、出題された問題を解いたり、課 B題に取り組むなど能動的学習を行う
2 グループワークで課題に取り組み、学生同士が自由に発言することで A何らかの課題に取り組むなど能動的学習を行う
3 能動的学習の成果を発表し、そのフィードバックを得て自ら主体的に B振り返り、学習効果を高める
4 学生自身が主体となって、授業における学習の方向性を定める

B40%

15. 備考

16. 授業計画（注）授業計画は、あくまでも予定であり、実施時に、適時、追加・変更・修正等が生じる場合があります。

第１回 オリエンテーション(講義・90分)

組み込みシステムやIoTの概念・過去・現状を紹介し、社会的な位置付けや今後の展開について考える。授業の構成、カバーされる項目、進め方、評価方法等を説明する。

第２回 IoTの環境整備(講義、実習・90分)

授業で使用するサーバ、デバイス環境の整備、設定。IoT領域でよく使用されるハードウェア、ソフトウェアを紹介する。

第３回 Arduinoの紹介1(講義、実習・90分)

組み込みコンピューターとして広く使われているArduino、その機能、クロス開発の概念と開発環境、Arduinoのプログラミング言語の基礎を学ぶ。プログラムの初期化部分とメインループ部分の役割と書き方を理解する。

第４回 Arduinoの紹介２(講義、実習・90分)

組み込みコンピューターとして広く使われているArduino、その機能、開発環境、プログラミング言語の基礎を学ぶ。プログラムの初期化部分とメインループ部分の役割と書き方を理解する。

第５回 Arduinoと入出力機器(講義、実習・90分)

Arduinoで直接に使えるスイッチ、アナログセンサー、表示器、サーボ等についてその機能・動作原理・プログラミング方法を学ぶ。

第６回 Arduinoの入出力機器の応用(グループディスカッション・90分)
Arduinoで使える機器の実際の応用について考え、タスクとハード・ソフトの関連付けについてグループディスカッション行う。
プロジェクトのための作業チームを編成し、プロジェクトを発足する。

第７回 Arduinoのプログラミング(講義、実習・90分)

Arduinoのプログラムにおける信号割り込み、タイマー割り込みの概念・使い方、割り込みで実施できる動作について学ぶ。

第８回 Arduinoのプログラミング２(講義、実習・90分)

Arduinoで使われる主なライブラリー（I2CのためのWire、サーボ、NeoPixel等）の使い方、導入、構成を学ぶ。
プロジェクトのメンバー紹介、目標設定を発表。

第９回 Raspberry Piの紹介(講義、実習・90分)

小型PCの代表となってきたRaspberry Piのハード・OS・ソフト・付属品について学ぶ。
Pythonによるハードのプログラミング、プログラムの起動、通信についての基礎知識を身に付ける。ArduinoとRaspberry Piの使い分けについて考える。
第 １０回 Raspberry Piの応用、中間発表(講義、発表・90分)

Raspberry Piを使った組み込みシステム構築、周辺機器、ヘッドレス環境での開発手順を学ぶ。
各チームよりプロジェクトの状況を報告し、全員でディスカッションする。
第１１回 IoTのデータ(講義、実習・90分)

Arduino、Raspberry Piで取得した情報を通信でクラウドやサーバー等に収集する方法、そのための通信手段や機器を紹介する。MQTTプロトコルや公開サイトThingspeak等について学ぶ。
第１２回 IoTのデータ２(講義、実習・90分)

IoTのセンサーデータの解析、可視化、Big Data（BD)としての取り扱いについて学ぶ。
Apache Sparkの導入、PySparkを使ったBD処理を実演する。

第１３回 IoT機器(講義、実習・90分)

Arduino、Raspberry Pi以外の主要な機器として、ESP2866、PyCOM、CircuitPython機器、TI SensorTag等について紹介する。

第１４回 IoTの応用(グループディスカッション・90分)
産業界、農業、交通、電力、流通等の各分野や各自の周囲にあるものからIoTや組み込み機器の応用例を紹介し、現状や今後の発展についてディスカッションする。

第１５回 発表会、まとめ(講義、実習・90分)

各チームよりプロジェクトの成果について発表する。
コースで学んだことを振り返って整理し、今後の研究や職務の中で使う事について考える。