プログラミング3

科目基礎情報

学校 久留米工業高等専門学校 開講年度 令和04年度 (2022年度)
授業科目 プログラミング3
科目番号 3E13 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 電気電子工学科 対象学年 3
開設期 前期 週時間数 2
教科書/教材 (1)Pythonデータサイエンスハンドブック - Jupyter, NumPy, pandas, Matplotlib, scikit-learnを使ったデータ分析,機械学習,Jake VanderPlas (著), 菊池 彰 (翻訳),オライリー・ジャパン(2)高専機構 情報セキュリティ教材 「K-SEC情報モラル教材」(高専機構 「情報システムユーザーガイドライン」「低学年教材」)(3)入門Python3 (Bill Lubanovic Lubanovic (著), 斎藤 康毅 (監修), 長尾 高弘 (翻訳))
担当教員 加藤 直孝

到達目標

1.Pythonの初歩的なプログラミングができる.
2.Anacondaを自由に使うことができる.
3.NumPyを理解し,NumPyを使いこなせる.
4.機械学習の初歩的な概要を知っている.
5.MNISTデータセットに関する機械学習の初歩的な操作ができる.

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1プログラム開発に必要なコンピューター環境を独力で準備できる.Anacondaを自由に使える.Pythonのプログラム開発環境を準備することができる.独力でプログラム開発環境を準備することができない.
評価項目2Pythonの基礎が理解でき,自由にプログラミングができる.Pythonの基礎的なプログラムを開発できる.Pythonで動く基礎的なプログラムが書けない
評価項目3機械学習の初歩的な知識を有し,Pythonでデータサイエンスのための簡単なデータ処理ができる.機械学習の初歩的な知識を持っている.機械学習の初歩的な事項を説明できない.

学科の到達目標項目との関係

JABEE B-1 説明 閉じる

教育方法等

概要:
この科目は,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点以上を合格とする.課題の提出が重要である.

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
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

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合05000050100
基礎的能力000001010
専門的能力0250002045
分野横断的能力0250002045