到達目標
(1)最近のC++の基礎的な文法を理解する.
(2)C++のテンプレートメタプログラミングを理解する.
(3)GPUプログラミングについて理解する.
ルーブリック
| 理想的な到達レベルの目安 | 標準的な到達レベルの目安 | 未到達レベルの目安 |
| 評価項目1 | C++プログラミングの基礎をよくに理解した. | C++プログラミングの基礎を理解した. | C++プログラミングの基礎を理解していない. |
| 評価項目2 | C++のテンプレートメタプログラミングをよく理解した. | C++のテンプレートメタプログラミングを理解した. | C++のテンプレートメタプログラミングを理解していない. |
| 評価項目3 | GPUプログラミングについてよく理解した. | GPUプログラミングについて理解した. | GPUプログラミングについて理解していない. |
学科の到達目標項目との関係
教育方法等
概要:
前半はC++の最近(C++11以降)の文法やテンプレートメタプログラミングの講義・演習を行う.
後半はCUDAによるGPUプログラミングの講義・演習を行う.
授業の進め方・方法:
PCを用いて,講義+演習の形式で行う.
PCは演習室のPCを用いてもよいし,自分のラップトップでも構わない.
注意点:
C++の基本的な文法をしていることが望ましい.
また、1授業につき180分の自習時間を設けること.
授業の属性・履修上の区分
授業計画
|
|
週 |
授業内容 |
週ごとの到達目標 |
| 後期 |
| 3rdQ |
| 1週 |
C++の基礎(1) |
変数と出力について理解する.
|
| 2週 |
C++の基礎(2) |
様々な型、リテラルについて理解する.
|
| 3週 |
C++の基礎(3) |
関数、演算子のオーバーロードについて理解する.
|
| 4週 |
C++の基礎(4) |
関数オブジェクトやラムダ式について理解する.
|
| 5週 |
C++の基礎(5) |
メモリの動的確保、スマートポインタについて理解する.
|
| 6週 |
C++の基礎(6) |
moduleを用いたプログラミングについて理解する.
|
| 7週 |
テンプレートプログラミング(1) |
クラステンプレート、関数テンプレートの基本的な使い方を理解する
|
| 8週 |
テンプレートプログラミング(2) |
テンプレートメタプログラミングの基礎を理解する.
|
| 4thQ |
| 9週 |
テンプレートプログラミング(3) |
SFINAE, コンセプトについて理解する.
|
| 10週 |
基本的なSTLの使い方 |
有用なSTLの使い方を理解する.
|
| 11週 |
今までのまとめてテスト |
今までの学習内容が理解できているかを確認する.
|
| 12週 |
GPUプログラミング(1) |
GPUプログラミングの歴史や基礎について理解する.
|
| 13週 |
GPUプログラミング(2) |
GPUとホストのデータ転送ができるようにする
|
| 14週 |
GPUプログラミング(3) |
GPUで簡単なプログラムを書けるようにする.
|
| 15週 |
GPUプログラミング(4)
|
GPUで簡単なプログラムを書けるようにする.
|
| 16週 |
GPUプログラミング(5) |
GPUでの最適化方法を理解し、効率的なプログラムを書けるようにする.
|
モデルコアカリキュラムの学習内容と到達目標
| 分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
| 専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数の概念を説明できる。 | 3 | |
| データ型の概念を説明できる。 | 3 | |
| 代入や演算子の概念を理解し、式を記述できる。 | 3 | |
| 制御構造の概念を理解し、条件分岐を記述できる。 | 3 | |
| 制御構造の概念を理解し、反復処理を記述できる。 | 3 | |
| プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
| 与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
| 与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 4 | |
| ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | |
| プログラミング言語は計算モデルによって分類されることを説明できる。 | 4 | |
| 主要な計算モデルを説明できる。 | 4 | |
| 要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 4 | |
| 要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 4 | |
| 要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 4 | |
| 要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを実装できる。 | 4 | |
評価割合
| 演習・課題 | テスト | 合計 |
| 総合評価割合 | 60 | 40 | 100 |
| 基礎的能力 | 20 | 30 | 50 |
| 専門的能力 | 20 | 10 | 30 |
| 分野横断的能力 | 20 | 0 | 20 |