プログラミング3

科目基礎情報

学校 久留米工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 プログラミング3
科目番号 3E13 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 1
開設学科 電気電子工学科 対象学年 3
開設期 前期 週時間数 2
教科書/教材 (1)ゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実践,斎藤 康毅(著) オライリー・ジャパン(2)高専機構 情報セキュリティ教材 「K-SEC情報モラル教材」(高専機構 「情報システムユーザーガイドライン」「低学年教材」)(3)入門Python3 (Bill Lubanovic Lubanovic (著), 斎藤 康毅 (監修), 長尾 高弘 (翻訳))
担当教員 加藤 直孝

到達目標

1.NumPyを含むPythonの初歩的なプログラミングができる.
2.Anacondaを自由に使うことができる.
3.パーセプトロンが理解できる.
4.ニューラルネットワークの初歩が理解できる.
5.MNISTデータセットに関する機械学習の初歩的な操作ができる.

ルーブリック

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

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

JABEE B-1 説明 閉じる

教育方法等

概要:
この科目は,Pythonのnumpy等を用いてニューラルネットワークの基礎的な実装ができるようになることを目的とする.また,同時にPythonのプログラミング能力を完成するために,2年生までのPythonの教科書もオムニバスに使用し,Pythonの腕を磨く.授業では,適宜,高専機構が準備した情報セキュリティー教材を活用し,情報セキュリティーの常識も増やしていく.
反転授業を中心にするので,授業への参加が重要となる.
授業の進め方・方法:
学習においては,自宅での独習が重要である.単に教科書を読むだけではなく,自分でPC(Personal Computer)ソフトウェアの環境を整備し,教科書の内容を入力し理解を進める必要がある.授業では,高専が独自に準備した情報セキュリティー教材と教科書(2年生までの教科書を含む)を使用して進めるが,あくまで自宅における学習が前提となる.可能な限り反転授業を行うので,黙って座っていれば,教えてもらえると思わないこと.授業とは,わからないところを質問する場である.ソフトウェアをコンパイルできるPC環境を必要とするため,自分専用のノートブックPCを持つことが必要である.メモリー8GB以上の64bitノートブックパソコンが必要である.
注意点:
教科書:
(1)ゼロから作るDeep Learning Pythonで学ぶディープラーニングの理論と実践,斎藤 康毅(著) オライリー・ジャパン
(2)高専機構 情報セキュリティ教材 「K-SEC情報モラル教材」(高専機構 「情報システムユーザーガイドライン」「低学年教材」)
(3)入門Python3 (Bill Lubanovic Lubanovic (著),斎藤 康毅 (監修), 長尾 高弘 (翻訳)) オライリー・ジャパン
(4)ThinkPython:コンピュータサイエンティストのように考えてみよう 第2版 (アレン・B・ダウニー(著), 相川利樹 (翻訳))
評価方法詳細:
いろいろな発表で 50%,授業への参加,授業での質問,課題等その他で 50% を目安として評価する.60点以上を合格とする.課題の提出が重要である.

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 授業中のどこかで,国立大学や大学院に進学した先輩から話(遠隔講演)をしてもらう予定にしている.プログラミングに関しても話してもらう予定である. 今後の授業計画を理解し,各自プログラミングに関する目標を設定する.
2週 AnacondaによるPythonの環境設定を行う. AIに関するプログラミングの環境設定を理解する.
3週 Linuxを自由に使えるようになるため,WSL2によるUbuntu/Kaliのインストールを行う.
WSL2の概要を理解し,Windows 10 HomeからLinuxを使えるようになる.
4週 AnacondaでPythonの仮想環境を構築する. AnacondaでPythonの仮想環境が自由に使いこなせる.
5週 NumPy(特にN rankのNumpy)を理解し,Numpyに慣れるためのハンズオン学習を行う. 多軸のNumpyを感覚的に理解でき,使いこなせる.
6週 Matplotlibを使って,グラフを書くハンズオンを行う. Matplotlibを使ってグラフが書ける.
7週 論理ゲートをパーセプトロンで表現する学習を行う. 論理ゲートをパーセプトロンで実装できる.
8週 パーセプトロンからニューラルネットワークへ.
ニューラルネットワークのしくみを解説する
ニューラルネットワークの仕組みと活性化関数が説明できる.
2ndQ
9週 活性化関数:
シグモイド関数の実装,ステップ関数の実装,ReLU(Rectified Liner Unit)の説明を行う
主な活性化関数を実装できる.
10週 多次元配列,行列の内積を説明した後,3層ニューラルネットワークを実装する 3層ニューラルネットワークを実装できる.
11週 ソフトマックス関数を実装する ソフトマックス関数が実装できる.
12週 ニューラルネットワークの「推論処理」を実装する. ニューラルネットワークの順方向伝搬を実装できる.
13週 高専機構 「情報システムユーザーガイドライン」を活用し,ネットワークを含むシステムのセキュリティーに関する復習を行う. セキュリティーインシデントを起こさないための要点を説明できる.また,起こしたときの対応を説明できる.
14週 予備(講演等の時間に使う) 予備(講演の感想をmarkdown で書ける.)
15週 予備 予備
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー情報を適切に収集・処理・発信するための基礎的な知識を活用できる。3
論理演算と進数変換の仕組みを用いて基本的な演算ができる。3
コンピュータのハードウェアに関する基礎的な知識を活用できる。3
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3
情報セキュリティの必要性および守るべき情報を認識している。3
個人情報とプライバシー保護の考え方についての基本的な配慮ができる。3
インターネット(SNSを含む)やコンピュータの利用における様々な脅威を認識している3
インターネット(SNSを含む)やコンピュータの利用における様々な脅威に対して実践すべき対策を説明できる。3
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。3
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3
変数の概念を説明できる。3
データ型の概念を説明できる。3
制御構造の概念を理解し、条件分岐を記述できる。3
制御構造の概念を理解し、反復処理を記述できる。3
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。3
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。3
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。3
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。3
計算機工学整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。3
基数が異なる数の間で相互に変換できる。3
整数を2進数、10進数、16進数で表現できる。3
小数を2進数、10進数、16進数で表現できる。3

評価割合

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