1. 制御構造を用いたプログラムを作成できる。
2. 配列を用いたプログラムを作成できる。
3. 自作関数を用いたプログラムを作成できる。
4.さまざまなデータ形式でのデータ操作、データ分析、データ視覚化のための基本的なPythonコーディングスキルを示します。
概要:
2年次,3年次の講義や実験において学んだC言語によるプログラミングの知識を前提として,Python言語プログラミングについて学習する。例えば,どの関数を使えばI/Oが提供するどのような機能を利用できるのかをプログラミング演習を通じて学ぶ。
授業の進め方・方法:
本授業では,学習項目にそってPython言語のプログラム文法や用法,アルゴリズムを解説する。その後に,基礎工学実験・実習でプログラミング演習を行い理解を深めるという形態とする。授業中には,学習項目が身に付いているか定期的に小テストを行い理解度を確認する。また適宜,課題問題を課しレポートとして提出させる。matplotlibなどのPythonのオープンソースライブラリを使用したデータの視覚化, 教師なし学習と教師あり学習を使用した機械学習アルゴリズムによる基本的な分類と予測によるデータ分析を行う。
注意点:
授業は英語を用いて行う。実践的な英語・技術英語を毎週学ぶことになるので、英語力の大幅な向上は保証できる。英語に興味がある人、自分の英語が通じるまで粘り強く伝え続ける心構えが必要。Python言語や英会話ができることが望ましい。まじめで根気強く、熱意ある学生が適している。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
Python入門、変数と型(1〜8) |
プログラミングの基本手順を理解する D2:1,E2:1
|
2週 |
操作とリストを入力してください(6〜16) |
プログラミングの基本手順を理解する D2:1,E2:1
|
3週 |
サブセットリストとリストリスト(17〜24) |
プログラミングの基本手順を理解する D2:1,E2:1
|
4週 |
リストの操作と機能(25〜32) |
代入や演算子の概念を理解し、式を記述できる D2:1,2,E2:1,E3:1
|
5週 |
メソッドとパッケージ(33〜40) |
代入や演算子の概念を理解し、式を記述できる D2:1,2,E2:1,E3:1
|
6週 |
インポートとNumPy(41〜48) |
代入や演算子の概念を理解し、式を記述できる D2:1,2,E2:1,E3:1
|
7週 |
二次元NumPyアレイ(49〜57) |
制御構造の概念を理解し、条件分岐や反復処理を記述できる D2:1,2, E2:1, E3:1
|
8週 |
matplotlibを使った基本プロット(1〜10) |
配列を活用した基本的なアルゴリズムを理解する D2:1,2, E2:1, E3:1
|
2ndQ |
9週 |
前期中間試験
|
|
10週 |
プロットのカスタマイズ(11〜19) |
配列を活用した基本的なアルゴリズムを理解する D2:1,2, E2:1, E3:1
|
11週 |
辞書へのアクセスと操作(20〜28) |
配列を活用した基本的なアルゴリズムを理解する D2:1,2, E2:1, E3:1
|
12週 |
データフレーム、loc、iloc(29〜38) |
配列を活用した基本的なアルゴリズムを理解する D2:1,2, E2:1, E3:1
|
13週 |
演算子とifステートメント(39〜56) |
配列を活用した基本的なアルゴリズムを理解する D2:1,2, E2:1, E3:1
|
14週 |
ループとループデータ構造(57〜73) |
配列を活用した基本的なアルゴリズムを理解する D2:1,2, E2:1, E3:1
|
15週 |
乱数とデータの視覚化(74〜87) |
配列を活用した基本的なアルゴリズムを理解する D2:1,2, E2:1, E3:1
|
16週 |
前期期末試験 |
|
後期 |
3rdQ |
1週 |
DLの紹介、フォワードプロパゲーション(1〜5) |
フォワードプロパゲーションの概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
2週 |
DLの紹介、フォワードプロパゲーション(1〜5) |
フォワードプロパゲーションの概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
3週 |
アクティベーション機能、多層ANN(6〜12) |
アクティベーション機能の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
4週 |
アクティベーション機能、多層ANN(6〜12) |
アクティベーション機能の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
5週 |
勾配の最適化と計算(13-19) |
勾配の最適化の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
6週 |
勾配の最適化と計算(13-19) |
勾配の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
7週 |
モデルの重み付け、バックプロパゲーションの改善(20-26) |
バックプロパゲーションの改善の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
8週 |
後期中間試験 |
|
4thQ |
9週 |
モデルの重み付け、バックプロパゲーションの改善(20-26) |
バックプロパゲーションの改善の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
10週 |
Kerasモデル、編集中(27〜32) |
編集中の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
11週 |
Kerasモデル、編集中(27〜32) |
編集中の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
12週 |
フィッティング、モデルの使用、予測の作成(33-37) |
モデルの使用の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
13週 |
フィッティング、モデルの使用、予測の作成(33-37) |
モデルの使用の概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
14週 |
最適化パラメータ(38-43) |
最適化パラメータの概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
15週 |
より広くより深いネットワーク(44〜50) |
DEEP ANNの概念を理解し、これらを含むプログラムを記述できる D2:1,2, E2:1, E3:1
|
16週 |
試験問題の解答 |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 技術者倫理(知的財産、法令順守、持続可能性を含む)および技術史 | 技術者倫理(知的財産、法令順守、持続可能性を含む)および技術史 | 情報技術の進展が社会に及ぼす影響、個人情報保護法、著作権などの法律について説明できる。 | 3 | 前7 |
高度情報通信ネットワーク社会の中核にある情報通信技術と倫理との関わりを説明できる。 | 3 | 前7 |
情報リテラシー | 情報リテラシー | 情報を適切に収集・処理・発信するための基礎的な知識を活用できる。 | 3 | 前16 |
論理演算と進数変換の仕組みを用いて基本的な演算ができる。 | 3 | 前7,前12,前16 |
コンピュータのハードウェアに関する基礎的な知識を活用できる。 | 3 | 前2 |
情報伝達システムやインターネットの基本的な仕組みを把握している。 | 3 | 後2 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | 後1 |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 3 | 前10,後1 |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | 後1 |
情報セキュリティの必要性および守るべき情報を認識している。 | 3 | 前1 |
個人情報とプライバシー保護の考え方についての基本的な配慮ができる。 | 3 | 前1 |
インターネット(SNSを含む)やコンピュータの利用における様々な脅威を認識している | 3 | 前5 |
インターネット(SNSを含む)やコンピュータの利用における様々な脅威に対して実践すべき対策を説明できる。 | 3 | 前5 |