概要:
この科目は,Pythonのnumpyなどを用いてデータサイエンスのためのデータを処理できるようになることを目的とする.また,同時にPythonのプログラミング能力を完成するために,2年生までのPythonの教科書もオムニバスに使用し,Pythonの腕を磨く.授業では,適宜,高専機構が準備した情報セキュリティー教材を活用し,情報セキュリティーの常識も増やしていく.
反転授業を中心にするので,授業への参加が重要となる.
授業の進め方・方法:
学習においては,自宅での独習が重要である.単に教科書を読むだけではなく,自分でPC(Personal Computer)ソフトウェアの環境を整備し,教科書の内容を入力し理解を進める必要がある.授業では,高専が独自に準備した情報セキュリティー教材と教科書(2年生までの教科書を含む)を使用して進めるが,あくまで自宅における学習が前提となる.可能な限り反転授業を行うので,黙って座っていれば,教えてもらえると思わないこと.授業とは,わからないところを質問する場である.授業では,PythonデータサイエンスハンドブックのNumPyの部分に重点を置いた授業をおこない,NumPyは完全に使えるようになることを目指す.pandasに関しては時間にゆとりがあれば,授業で取り上げるが,基本この授業終了後各自が自学自習を行うものとする.
注意点:
教科書:
(1)Pythonデータサイエンスハンドブック - Jupyter, NumPy, pandas, Matplotlib, scikit-learnを使ったデータ分析,機械学習,Jake VanderPlas (著), 菊池 彰 (翻訳),オライリー・ジャパン
(2)高専機構 情報セキュリティ教材 「K-SEC情報モラル教材」(高専機構 「情報システムユーザーガイドライン」「低学年教材」)
(3)入門Python3 (Bill Lubanovic Lubanovic (著),斎藤 康毅 (監修), 長尾 高弘 (翻訳)) オライリー・ジャパン
(4)ThinkPython:コンピュータサイエンティストのように考えてみよう 第2版 (アレン・B・ダウニー(著), 相川利樹 (翻訳))
評価方法詳細:
いろいろな発表で 50%,授業への参加,授業での質問,課題等その他で 50% を目安として評価する.60点以上を合格とする.課題の提出が重要である.
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
授業中のどこかで,国立大学や大学院に進学した先輩から話(遠隔講演)をしてもらう予定にしている.プログラミングに関しても話してもらう予定である. |
今後の授業計画を理解し,各自プログラミングに関する目標を設定する.
|
2週 |
AnacondaによるPythonの環境設定を行う.IPythonが動作することやJupyterが動作することを確認する. |
AIに関するプログラミングの環境設定を理解する.
|
3週 |
Linuxを自由に使えるようになるため,WSL2によるUbuntu/Kaliのインストールを行う.
|
WSL2の概要を理解し,Windows 10 HomeからLinuxを使えるようになる.
|
4週 |
AnacondaでPythonの仮想環境を構築する. |
AnacondaでPythonの仮想環境が自由に使いこなせる.
|
5週 |
IPythonを使いこなす. |
IPythonの機能を使える.
|
6週 |
NumPyを学習するために,Pythonのデータ型を復習し,NumPy配列とPythonのリストとの差を理解する. |
NumPyはPythonにどのような機能を付加するのかを理解している.
|
7週 |
NumPy配列の基礎(1) NumPy配列の次元,次元のサイズ,型などを理解する. |
NumPy配列の基本の基本を理解する.
|
8週 |
NumPy配列の基礎(2) NumPy配列のスライス,多次元配列のスライスを理解する,その他 |
NumPy配列のスライスが理解できる.
|
2ndQ |
9週 |
Universal Functionにより計算が早くなっていることを確認する. |
ufuncと通常のPythonの関するを動かし,計算速度の違いが理解でいきている.
|
10週 |
NumPyの集約関数(Aggregation Functions)(np.sum, np.mean, np.std, np.var, np.min, np.argminなど)を使えるようになる. |
NumPyの集約関数を実験結果等に活用できるようになる.
|
11週 |
NumPyのブロードキャストを理解し,使ってみる. 機械学習とは(1) |
NumPyでブロードキャスト機能を使った演算が行える.
|
12週 |
Boolean mask を活用したNumPy演算によりデータ処理を行う. 機械学習とは(2) |
NumPyを活用した,比較,マスク,ブール演算を行うことができる.
|
13週 |
NumPyの色々なソートを理解する. 機械学習とは(3) |
NumPyの色々なソートが理解できる.
|
14週 |
予備(講演等の時間に使う) |
予備(講演の感想をmarkdown で書ける.)
|
15週 |
予備 |
予備(何週目かにセキュリティーに関する注意喚起を行う.)
|
16週 |
|
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 工学基礎 | 情報リテラシー | 情報リテラシー | 情報を適切に収集・処理・発信するための基礎的な知識を活用できる。 | 3 | 前1 |
論理演算と進数変換の仕組みを用いて基本的な演算ができる。 | 3 | 前2,前3,前4 |
コンピュータのハードウェアに関する基礎的な知識を活用できる。 | 3 | 前2,前3,前4 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。 | 3 | 前2,前3,前4 |
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。 | 3 | 前2,前3,前4 |
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。 | 3 | 前2,前3,前4 |
情報セキュリティの必要性および守るべき情報を認識している。 | 3 | 前15 |
個人情報とプライバシー保護の考え方についての基本的な配慮ができる。 | 3 | 前15 |
インターネット(SNSを含む)やコンピュータの利用における様々な脅威を認識している | 3 | 前15 |
インターネット(SNSを含む)やコンピュータの利用における様々な脅威に対して実践すべき対策を説明できる。 | 3 | 前15 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 3 | 前2,前3,前4,前5 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | 前2,前3,前4,前5 |
変数の概念を説明できる。 | 3 | 前2,前3,前4,前5 |
データ型の概念を説明できる。 | 3 | 前2,前3,前4,前5 |
制御構造の概念を理解し、条件分岐を記述できる。 | 3 | 前2,前3,前4,前5 |
制御構造の概念を理解し、反復処理を記述できる。 | 3 | 前2,前3,前4,前5 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 3 | 前2,前3,前4,前5 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | 前2,前3,前4,前5 |
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。 | 3 | 前2,前3,前4,前5 |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | 前2,前3,前4,前5 |
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。 | 3 | 前2,前3,前4,前5 |
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。 | 3 | 前2,前3,前4,前5 |
計算機工学 | 整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 3 | 前2,前3,前4,前5 |
基数が異なる数の間で相互に変換できる。 | 3 | 前2,前3,前4,前5 |
整数を2進数、10進数、16進数で表現できる。 | 3 | 前2,前3,前4,前5 |
小数を2進数、10進数、16進数で表現できる。 | 3 | 前2,前3,前4,前5 |