C++ によるオブジェクト指向プログラミングのトレーニングコース
C 言語におけるオブジェクト指向プログラミングとは、カプセル化、継承、多態性といったオブジェクト指向の原則を C 言語のプログラミングで適用するアプローチです。
このインストラクターによるライブトレーニング(オンラインまたはオンサイト)は、オブジェクト指向の手法を用いてモジュール化され、保守性が高く、スケーラブルなアプリケーションを設計・構築したいと望む開発者を対象としています。
本トレーニングの修了時には、受講者は以下のことができるようになります:
- 構造化プログラミングのための C 開発環境のインストールと設定。
- 構造体や関数ポインタといった C 言語の構成要素を用いたオブジェクト指向設計原則の適用。
- C プログラムにおけるカプセル化と抽象化の実装。
- C におけるオブジェクト指向パターンを活用した、再利用可能で保守性の高いコードの設計。
コースの形式
- 双方向の講義とディスカッション。
- 豊富な演習と実践。
- ライブラボ環境での実地実装。
コースのカスタマイズオプション
- 本コースのカスタマイズされたトレーニングをリクエストする場合は、お問い合わせください。
コース概要
- 概要
- 特徴
- 関数のオーバーロード
- スコープ解決演算子
- C++ におけるクラス
- アクセス指定子
- コンストラクタ、デストラクタ
- 静的メンバ、静的関数
- フレンドクラス、フレンド関数
- 演算子のオーバーロード
- データ変換
- 継承、多態性
- 例外処理、テンプレート
- 入力および出力ストリーム
要求
- 変数、ループ、関数などの基本的なプログラミング概念の理解
- C 言語プログラミングの基礎に関する経験
- ソフトウェア開発概念に関する基礎知識
対象者
- オブジェクト指向プログラミング手法を学びたい C プログラマー
- 手続き型からオブジェクト指向設計へ移行するソフトウェア開発者
- 大規模な C アプリケーションの構造設計に興味を持つエンジニアおよびプログラマー
オープントレーニングコースには5人以上が必要です。
C++ によるオブジェクト指向プログラミングのトレーニングコース - 予約
C++ によるオブジェクト指向プログラミングのトレーニングコース - お問い合わせ
お客様の声 (1)
良い例です。最も有用な資料に焦点を当てています。
Piotr Sowinski - Intel Technology Poland
コース - Object Oriented Programming with C++
機械翻訳
今後のコース
関連コース
高度な組み込みシステム開発
35 時間この講師主導のライブトレーニング(オンラインまたはオンサイト)は、8051、ARM CORTEX M-3、およびARM9などの異なるプロセッサアーキテクチャに基づく様々なタイプのマイコンを組み込みCでプログラミングしたいエンジニア向けです。
Arduinoプログラミング入門
21 時間このインストラクター主導のライブトレーニングでは、参加者はArduinoを使用して実際の用途(例:ライトやモーター、動作検出センサーを制御)にプログラミングする方法を学びます。このコースは、ソフトウェアでシミュレートされたハードウェアではなく、実際のハードウェアコンポーネントを使用することを前提としています。
このトレーニングの終了時には、参加者は以下のことができます:
- Arduinoを使用してライトやモーターなどのデバイスを制御するプログラムを作成します。
- アドオンデバイス用の入力とコネクタを含むArduinoのアーキテクチャを理解します。
- 液晶ディスプレイ、加速度センサー、ジャイロスコープ、GPSトラッカーなどのサードパーティ製コンポーネントを追加してArduinoの機能を拡張します。
- Cからドラッグアンドドロップ言語まで、プログラミング言語のさまざまなオプションを理解します。
- 実際の問題を解決するためにArduinoをテストし、デバッグし、展開する方法を学びます。
Buildroot: a Firmware Generator for Embedded Systems
7 時間Buildrootは、クロスコンパイルツールチェーン、カスタマイズ可能なルートファイルシステムイメージ、および埋め込みデバイス向けのLinuxカーネルを生成するためのスクリプトを含むオープンソースプロジェクトです。この実践的なコースでは、参加者は以下のことを学びます:
- ルートファイルシステムに含まれるソフトウェアを選択する方法
- 新しいパッケージを追加し、既存のパッケージを変更する方法
- 新しい埋め込みボードをサポートする方法
コース中には、ブート可能なファイルシステムイメージが生成されます。リモートコースはQEMUエミュレーターを使用して提供され、教室ではQEMUまたはトレーナーの選択による実際の埋め込みボードを使用することが可能です。
同様の目的を持つ他のプロジェクトにはYocto projectとOpenWRTがあります。適切な選択をするためには、これらのプレゼンテーションを参照してください。
回路と電子工学の基礎
14 時間このインストラクター主導型のライブトレーニング(オンラインまたはオンサイト)は、回路と電子工学の基礎知識を活用して、電気部品の特性を利用し、ハードウェア機能を開発するデバイスやシステムを設計することを目指すエンジニアおよびコンピュータサイエンティスト向けです。
このトレーニング終了時には、参加者は以下のことができます:
- 回路と回路基板開発に必要なツールとプログラムのセットアップと設定を行います。
- 回路と電子工学の基本原理を理解します。
- 効率的なコンピュータハードウェア技術を構築するための主要な電子部品を利用します。
- 回路解析方法を実装して、電子デバイスを最適化します。
- 電子工学と回路の基礎知識を活用して、エンタープライズアプリケーションを開発します。
デジタル信号処理 (DSP) の基礎
21 時間この講師主導のライブトレーニング(オンラインまたはオンサイト)は、エンジニアや科学者が DSP の実装を学び、さまざまな信号タイプを効率的に扱い、マルチチャンネル電子システムの制御を改善することを目指しています。
このトレーニング終了時には、参加者は以下のことをできるようになります:
- DSP 用に必要なソフトウェアプラットフォームとツールをセットアップおよび構成する。
- DSP とその応用の基礎概念と原則を理解する。
- DSP コンポーネントを熟知し、電子システムで活用する。
- DSP の結果を使用してアルゴリズムと操作関数を作成する。
- DSP ソフトウェアプラットフォームの基本機能を利用し、信号フィルターを設計する。
- DSP シミュレーションを作成し、さまざまな種類のフィルターを DSP に実装する。
電子制御装置 (ECU) - 実践的なVectorの利用
28 時間このインストラクター主導のライブトレーニング(オンラインまたはオンサイト)では、中級レベルの自動車エンジニアや技術者がVectorツール(CANoeとCANape)を使用してECUのテスト、シミュレーション、診断を実践する経験を得ることを目指しています。
このトレーニング終了時には、参加者は以下ができます:
- 自動車システムにおけるECUの役割と機能を理解する。
- Vectorツール(CANoeとCANape)の設定と構成を行う。
- CANおよびLINネットワークでのECU通信のシミュレーションとテストを行う。
- データを分析し、ECUの診断を行う。
- テストケースを作成し、テストワークフローを自動化する。
- 実践的なアプローチを使用してECUを校正および最適化する。
電子制御ユニット (ECU) - 理論的アプローチ
21 時間このインストラクター主導の実践的なトレーニング(オンラインまたはオンサイト)は、中級レベルの自動車エンジニアや組み込みシステム開発者向けです。ECUの理論的側面に焦点を当て、自動車設計および開発で使用されるVectorベースのツールと手法について理解することを目指しています。
このトレーニング終了時には、参加者は以下ができます:
- 現代の車両におけるECUのアーキテクチャと機能を理解する。
- ECU開発で使用される通信プロトコルを分析する。
- Vectorベースのツール及其理論的な応用を探索する。
- モデルベースの開発原則をECU設計に適用する。
Vivadoの学習
14 時間この講師主導のライブトレーニング(オンラインまたはオンサイト)では、FPGA開発者がVivadoを使用して設計、デバッグ、およびハードウェアソリューションを実装することを目指しています。
このトレーニング終了時には、参加者は以下のことができるようになります:
- CコードとVivadoツールを使用してHDLシステムを開発する
- Vivadoでソフトプロセッサを生成および実装する
- Vivadoを使用してCコードのテストとシミュレーションを行う
LEDE: Linux ワイヤレスルーターのセットアップ
7 時間LEDE プロジェクト (Linux Embedded Development Environment) は、OpenWrt をベースにした Linux オペレーティングシステムです。これは、多くのワイヤレスルーターおよび非ネットワークデバイス向けのベンダーサプライドファームウェアを完全に置き換えるものです。
この講師主導の実践的なトレーニングでは、参加者は LEDE ベースのワイヤレスルーターのセットアップ方法を学びます。
対象者
- ネットワーク管理者および技術者
コース形式
- 講義とディスカッション、練習問題、実践的な演習を組み合わせた形式
マイクロコントローラーでのAIデプロイメントにTinyMLを使用する
21 時間この講師主導のライブトレーニング(オンラインまたはオンサイト)は、中級レベルの組み込みシステムエンジニアやAI開発者向けです。TensorFlow LiteとEdge Impulseを使用してマイクロコントローラー上に機械学習モデルをデプロイすることを目指しています。
このトレーニング終了時には、参加者は以下のことをできるようになります:
- TinyMLの基本とエッジAIアプリケーションでの利点を理解する。
- TinyMLプロジェクトの開発環境を設定する。
- 低消費電力のマイクロコントローラー上でAIモデルを訓練、最適化、およびデプロイする。
- TensorFlow LiteとEdge Impulseを使用して実世界のTinyMLアプリケーションを実装する。
- AIモデルを消費電力とメモリ制約に最適化する。
マイクロコントローラ設計
35 時間このインストラクター主導のライブトレーニングは、日本(オンラインまたはオンサイト)で実施され、マイクロコントローラ設計の原理を学びたいエンジニア向けです。
Raspberry Piの初心者向け
14 時間Raspberry Piは非常に小さく、単一の基板で構成されたコンピュータです。
この講師主導の実践トレーニングでは、参加者はRaspberry Piを設定し、対話的かつ強力な組み込みシステムとしてプログラムする方法を学びます。
本トレーニング終了時には、参加者は以下のことができるようになります:
- IDE(統合開発環境)のセットアップを行い、最大限の生産性を達成する
- Raspberry Piを使用してモーションセンサ、アラーム、Webサーバー、プリンターなどのデバイスを制御する
- Raspberry Piのアーキテクチャ、追加デバイス用の入力とコネクタを理解する
- プログラミング言語やオペレーティングシステムのさまざまな選択肢を理解する
- Raspberry Piを使用して実際の問題を解決するためにテスト、デバッグ、および展開を行う
対象者
- 開発者
- ハードウェア/ソフトウェア技術者
- すべての産業分野での技術者
- 趣味の人々
コース形式
- 講義、ディスカッション、演習、および実践的な練習を含む
注意事項
- Raspberry Piはさまざまなオペレーティングシステムとプログラミング言語をサポートしています。このコースでは、LinuxベースのRaspbianを使用し、Pythonをプログラミング言語として使用します。特定のセットアップをご希望の場合は、お問い合わせください。
- 参加者はRaspberry Piのハードウェアと部品を購入する必要があります。
Tensorflow Lite for Microcontrollers
21 時間この講師主導のライブトレーニング(オンラインまたはオンサイト)では、非常に小さな組み込みデバイスに機械学習モデルを書き込み、ロードし、実行する方法を学びます。
このトレーニング終了時には、参加者は以下のことができるようになります:
- TensorFlow Liteをインストールします。
- 組み込みデバイスに機械学習モデルをロードし、音声認識や画像分類などの機能を実現します。
- ネットワーク接続に依存せずにハードウェアデバイスにAIを追加します。
Yocto プロジェクト
28 時間このインストラクター主導のライブトレーニングでは、参加者は Yocto プロジェクトに基づいた組み込み Linux のビルドシステムを作成する方法を学びます。
本トレーニング終了時には、参加者は以下ができます:
- Yocto プロジェクトのビルドシステムの基本概念(レシピ、メタデータ、レイヤー)を理解します。
- Linux イメージを構築し、エミュレーション下で実行します。
- 組み込み Linux システムの構築にかかる時間と労力を節約します。
The Yocto Project概要 - ハンズオン
28 時間概要
本4日間のトレーニングでは、理論とハンズオン演習を組み合わせ、Yocto Projectを入門します。
以下の頻出質問への回答を含みます:
- 各GNU/Linuxプロジェクトごとに、別のツールチェーン/ライブラリ/パッケージのバージョンを使用し、さらに異なるワークフローを追うことが本当に必要でしょうか?
- すべての開発者やサプライヤーに対して開発環境を同一に保ち、さらに10年以上後も今日のように同じビルドを生成できることを保証できますか?
- 使用しているパッケージがどのようなソフトウェアライセンスで提供されているか、YPは特定に役立ちますか?
ハンズオンセッションは対象ハードウェア(例:Beagle Bone Black Rev. C - http://beagleboard.org/BLACK)上で実施されます。トレーニング終了後、Ubuntu 14.xとすべての依存関係、さらに例題をあらかじめインストールしたDockerイメージをダウンロードして、ご自身のラボでコース資料と連携して作業することが可能です。なお、これは組み込みGNU/Linuxへの入門コースではありません。組み込みGNU/Linuxの動作原理や、GNU/Linuxカーネルおよびカーネルドライバの設定・ビルド方法について既に知見をお持ちであることを前提としています。
受講対象者
すでにプロジェクトでGNU/Linuxを使用しており、Yocto Projectについて耳にしたことはあるが、深く掘り下げる勇気が出なかった、あるいは使用する上で困難があった方。日々のワークフローをYPでどのように扱えるか、YPが一般的に複雑であると感じている方。「これまですべて( supposedly )ずっと易しかったのになぜこのようなものが必要なのか?」と感じている方。トレーニング終了後、YPが必要かどうかを判断できるようになることを目指します。このワークショップは、組み込みGNU/Linuxに関する確かな知識をお持ちの、ソフトウェアエンジニア、開発者、システムエンジニア、テスター、管理者、エンジニア、およびYPに関心のあるその他の関係者向けです。