マイコンのためのC++講座

C言語を含めてプログラミング経験がない人が、12週間でESP32などのマイコン上のプログラムをクラスと複数ファイルで設計・実装できるようになることを目指す講座の教材。

対象

本講座は、C言語を含めてプログラミング経験がない人を対象とする。最終的には、ESP32などのマイコン上で動作するプログラムを、C++のクラスや複数ファイルを用いて設計・実装できるようになることを目標とする。

期間

項目内容
全体2〜3か月
標準12週間
頻度週1回〜2回
1回の長さ90〜120分程度
進め方講義だけでなく、毎回必ずコードを書く

最終到達目標

受講者が以下を自力で使用できることを目標とする。

プログラミング基礎

  • 変数
  • 型
  • 演算子
  • 条件分岐
  • 繰り返し
  • 関数
  • 配列
  • スコープ

C/C++の基礎

  • ポインタ
  • 参照
  • const
  • struct
  • enum
  • enum class
  • 名前空間

C++の主要機能

  • クラス / オブジェクト / コンストラクタ
  • メンバ変数 / メンバ関数
  • public / private / protected / カプセル化
  • 継承 / 仮想関数 / virtual / override
  • 純粋仮想関数 / 抽象クラス / ポリモーフィズム
  • STL(std::vector / std::array)
  • スマートポインタ / RAII

プログラム設計

  • .hpp / .cppへの分割
  • クラスの責務分離
  • インターフェースと実装の分離
  • センサ・アクチュエータなどのクラス化
  • 状態をenum classで管理
  • 複数クラスを組み合わせたマイコンプログラムの設計
  • クラス間の依存の向きを決める / 相互参照を解く

学習の流れ

プログラミングの基礎
        ↓
C/C++の基本文法
        ↓
関数
        ↓
複数ファイル
        ↓
クラス
        ↓
カプセル化
        ↓
enum
        ↓
継承
        ↓
virtual / override
        ↓
クラス設計
        ↓
マイコン向けシステム設計
        ↓
STL / std::vector
        ↓
スマートポインタ
        ↓
クラス間の相互参照

はじめに読む

各回の教材

課題と確認