区分 環境データサイエンス科目 環境情報科目 環境情報基本科目
ディプロマ・ポリシーとの関係
専門性 理解力 実践力
カリキュラム・ポリシーとの関係
専門知識 教養知識 思考力
実行力
カリキュラム全体の中でのこの科目の位置づけ
多様化する環境問題や地域社会の諸問題に関心を持ち、環境・情報・社会に関連する幅広い基礎知識と専門的な理解を深めると共に、学際的な柔軟性を有し、実践的な能力を有する。グローバルな視野と研究調査力を持ち、昨今の情報社会に貢献できる力を有する。企業・地域社会などのあらゆるコミュニティに寄与する組織的な活動能力を有する。
科目の目的
自然・社会環境において収集される膨大なデータを解析するためには、取得したデータを処理・可視化・分析・分類・予測するための本格的なプログラミングツールの利用が必要不可欠である。本講義では、基本的なデータ処理から高度なデータ解析、AI(人工知能)実装までを扱うことが可能なPython言語を用いて、その基本となる構文や記述ルール、データ構造、ライブラリの利用、アルゴリズムの実行等について、演習を通じて学習し、データサイエンスに必要なプログラミングに関する基礎知識とスキルを修得することを目的とする。
到達目標
Pythonを用いた基本的なプログラムの記述、実行ができること。変数、条件文、繰り返し文、データ構造、関数、クラスを理解し、コンピュータ上でプログラムを実装でき、エラーに対処し、実行結果の確認と理解が問題なく行えること。また、適宜、ライブラリを利用して、ファイル入出力によるデータ操作や基本的な画像処理、統計処理、データの可視化を行えること。
科目の概要
本科目は、環境データサイエンス学科環境情報領域における重要な基礎教育の一つであり、3年次以降の演習に必ず必要となる知識と技術を身につけることを目的としている。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。
科目のキーワード
プログラミング、Python、データ構造、アルゴリズム、ライブラリ、データ処理、文字列処理、画像処理、統計処理、可視化
授業の展開方法
各回において講義+演習の形式で行う。プログラム(コード)の意味や基本構文を講義し、記述方法、動作、実行結果などを解説した後、それらに関するプログラミング演習(コーディング)を行う。演習において生じた構文エラー等をその対処方法とともに共有し、プログラミング作法の理解を深める。なお、演習は、各自所有のノートPCで行うため、毎回の授業においては必ずノートPCを持参すること(前日までに充電しておくことも忘れない)。試験においては、これまで学んだ内容を踏まえ、プログラミングに関する基礎知識や技術、コードの記述方法、実行結果、などについて問う。
オフィス・アワー
【火曜日】1・2・5時限目、【木曜日】5時限目、【金曜日】4・5時限目
科目コード ENS503
学年・期 2年・後期
科目名 環境プログラミング基礎
単位数 4
授業形態 講義
必修・選択 選択
学習時間 【授業】90分×15 【予習】90分以上×15 【復習】90分以上×15
前提とする科目 環境統計解析学基礎、Rプログラミング入門
展開科目 環境プログラミング応用
関連資格 なし
担当教員名 平山高嗣
主題コマシラバス項目内容教材・教具
1 Python 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第1回目は、Pythonを用いたプログラミングのための準備を行い、簡単なプログラムを作成し、実行する手順を学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.1-3.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.iv-vii.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.vii-xiii,pp.5-21.

①〜③教員が配布する資料.
コマ主題細目 ① Pythonの特徴 ② インストール ③ コードの記述と実行
細目レベル ① コンピュータに何かしらを処理させるためには、その内容を理解させなければならない。コンピュータが理解できる言語は二進数で書かれる機械語であるため、人間の言葉に近い水準のプログラミング言語がこれまでにいくつも考案されていて、Pythonはその1つである。Pythonで書かれたプログラム(コード)は1行ずつ機械語に翻訳されることによって実行される。このようなプログラミング言語はインタプリタ言語と呼ばれる。Pythonは、近年、重要性を増しているデータ分析や機械学習を行うために良く使われ、データサイエンスの必須ツールとなっている。Pythonには、データをまとめて扱うための仕組みや、データ分析や機械学習を簡単に行うための機能が充実している。本講義では、Pythonの生い立ちや特徴を把握する。
② Pythonでプログラムを書き、実行するための開発環境を構築するためにAnacondaというツールを本科目では使用する。Anacondaは、PythonおよびR言語を用いた科学計算(大規模データ処理、統計処理、機械学習など)のための無料のオープンソース・ディストリビューション(ソフトウェア群を1つにまとめ、ユーザが容易にインストールや管理できるようにしたもの)である。1500万人以上のユーザによって使用されていて、Windows、Linux、macOSに対応している1500を超える人気のあるデータサイエンスパッケージが含まれている。その中には、ユーザがコマンドラインを使用せずにアプリケーションを起動し、ツールの管理やプログラミングを可能とするグラフィカルユーザインタフェース(GUI)であるAnaconda Navigatorを含む。本講義では、Anacondaを用いてPythonをインストールし、プログラミング環境を整える。
③ Pythonでプログラムを作成(コードを記述)、実行する方法は、大別して、インタラクティブモードとスクリプトモードの2つがある。インタラクティブモードは、WindowsのPowerShellやMac OSのターミナルなどのコマンドラインインターフェース上で、Pythonのコードを1行入力して実行結果を表示することを繰り返す対話的な方法である。このモードは、とても手軽であるが、複雑なコードや長いコードを入力して実行する場合には不便である。一方、スクリプトモードは、コードをファイルに一括記述して保存し、そのファイルからコードを読み込んで実行する方法である。このファイルはテキストエディタを用いて作成することができる。本科目では、Visual Studio Code(VS Code)という開発環境か、ブラウザベースのGUI開発環境であるJupyter Notebookを利用してプログラムを実行する。それぞれ、両方のモードでコードを入力し、実行することができる。本講義では、両モードを用いて簡単な計算や、print関数を用いた文字列や数値の表示を行う。
キーワード ① プログラミング言語 ② インタプリタ ③ コード ④ インタラクティブモード ⑤ スクリプトモード
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、Pythonとその特徴、Pythonのインストール方法、コードの記述と実行方法について確認しておくこと。
【本コマの復習】Pythonを用いた簡単なプログラムの作成と実行方法について配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

2 変数と式 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第2回目は、計算処理のために、変数と演算子を用いた式の記述について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.29-37.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.38-51.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.52-55.

①〜③教員が配布する資料.
コマ主題細目 ① 変数 ② 演算子 ③ キーボードからの入力
細目レベル ① Pythonでは、様々なデータやその処理結果などを記憶するための仕組みとして、変数という機能がある。コンピュータは、いろいろな値を記憶しておくために、内部にメモリを持つ。変数は、このメモリを利用して値を記憶する仕組みであり、値を入れる箱をイメージすると良い。変数を使うには、その箱に名前を付ける必要がある。名前は、次の規則に従っていれば自由に付けることができる。①英字、数字、アンダースコアのいずれかを用いる。②数字で始めることはできない。③大文字と小文字は区別される。④コードとして意味を持つ言葉を使えない。
 変数に値を記憶させるために、変数に値を代入する。それは、「変数名=値」と記述される。値に文字列や式を代入することもできる。本講義では、代入以外にも、変数を利用して、変数の値を出力したり、変数の値を変更する方法も理解する。

② Pythonでは、計算(演算)によって様々な処理を行う。計算のために、基本的には式を記述することになる。Pythonで扱われる式の多くは、演算子(演算するもの:operator)とオペランド(演算の対象:operand)を組み合わせて作られる。例えば、1+2の場合、+が演算子で、1と2がオペランドである。値同士の計算だけではなく、変数をオペランドとすることも可能である。Pythonでは、45種類の演算子が用意されている。そのうちの13種類は、加算(+)と代入(=)を組み合わせて加算代入(+=)を行うといった代入演算子である。例えば、a+=bを記述すると、aにbを加算したものをaに代入する。なお、演算子には、数学の数式のように優先順位がある。本講義では、演算子を網羅し、その使い方を理解する。
③ プログラムの開発者がプログラムの中で変数に値を代入するのではなく、プログラムのユーザにキーボードから値を入力させるコードを記述してみよう。キーボードからの入力を受け付ける方法を学ぶと、柔軟なプログラムを開発できるようになる。入力を受け付けるコードは、例えば、次のような文を記述する。「n=input(“値を入力してください。”)」この文を持つコードを実行し、input()の処理が行われると、ユーザからの入力を待つ状態になる。ここで、ユーザが数値や文字などを入力し、Enterキーを押すと、入力した値が変数nに読み込まれる。ただし、input()によって入力された値は、文字列として扱われることに注意が必要である。そこで、文字列を数値に変換する必要がある。例えば、整数に変換する場合は、int()を用いて、「n=int(input(“値を入力してください。”))」と記述する。本講義では、ユーザにキーボードから値を入力させて、それを処理して表示するコードの記述方法を理解する。
キーワード ① 変数 ② 演算子 ③ オペランド ④ input() ⑤ int()
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、変数とその仕組み、変数と演算子を用いた式の記述方法について確認しておくこと。
【本コマの復習】変数名のルールや演算子の種類、変数と演算子を用いた式の記述方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

3 条件文 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第3回目は、条件文の処理の流れと記述、条件判断に用いる演算子について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.59-62, 68-70.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.62-67.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.71-74.

①〜③教員が配布する資料.
コマ主題細目 ① if文 ② 比較演算子 ③ 論理演算子
細目レベル ① プログラムでは、様々な状況に応じた処理を行う場合がある。様々な状況を表すためには、条件という概念を用いる。Pythonでは、条件判断文であるif文を用い、条件を満たす(あるいは条件が正しい)場合に条件がTrue(真)という値を持ち、条件を満たさない(あるいは条件が正しくない)場合に条件がFalse(偽)という値を持つ。そして、それぞれの場合に応じた処理が実行される。TrueとFalseは真偽を表すための値で、ブール値と呼ばれる。if文の基本構文は下記である。
------------------------------------------------------------
if 条件:
 処理1
 処理2
------------------------------------------------------------
条件がTrueの場合に、「:」の次の行の字下げ(インデント)された「処理1」を実行し、さらに「処理2」のようにインデントされた文が続くなら、それも実行する。インデントされた行の集まりはブロックと呼ばれる。条件がFalseの場合の処理を設定するためには、下記のようにelifやelseを用いる。
------------------------------------------------------------
if 条件1:
 処理1
elif 条件2:
 処理2
else:
 処理3
------------------------------------------------------------
本講義では、まず、if文の構文を理解する。

② if文などにおける条件の設定については、比較演算子を用いて記述する。Pythonでは、次の10種類の比較演算子が用意されている。右辺が左辺に等しい(==)、右辺が左辺に等しくない(!=)、右辺より左辺が大きい(>)、右辺より左辺が大きいか等しい(>=)、右辺より左辺が小さい(<)、右辺より左辺が小さいか等しい(<=)、右辺に左辺が存在する(in)、右辺に左辺が存在しない(not in)、右辺が左辺と同一である(is)、右辺が左辺と同一でない(is not)。これらの演算子を使って、例えば、「if x>3:」と記述すると、変数xが3より大きい場合はTrue、そうではない場合はFalseとなる。なお、「!=」や「==」は、2文字で1つの演算子であるため、間にスペースを入れてはならない。本講義では、基本的なif文を記述し、全ての比較演算子の演算を理解して、それらの使い方に慣れる。
③ より複雑な条件を設定したい場合がある。例えば、「売上が100万円以上かつ、来客人数が30人以上の場合に、目標達成」という判定を行う場合である。この判定には、「売上が100万円以上」と「来客人数が30人以上」という2つの条件があり、両方を満たす場合にTrue、それ以外の場合にFalseと条件判断を行うことになる。Pythonでは、論理演算子の1つである「and」を用いて、例えば、「if x >= 100 and y >= 30:」と記述する。Pythonでは、3種類の論理演算子が用意されていて、「and」の他には「or」と「not」が用意されている。「or」は左辺と右辺のどちらかがTrueかどうかを判断し、「not」は例えば、「not(x >= 100)」と記述することで条件がFalseかどうかを判断する。本講義では、論理演算子を用いて複雑な条件判断を実習し、全ての論理演算子の演算を理解する。
キーワード ① if, elif, else ② True ③ False ④ and ⑤ or
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、条件文の処理の流れとif文を用いた記述方法、条件判断に用いる演算子として比較演算子と論理演算子について確認しておくこと。
【本コマの復習】if文の基本構文や条件判断に用いる比較演算子と論理演算子についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

4 繰り返し文 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第4回目は、繰り返し文の処理の流れと記述について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.75-78.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.79-85.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.86-89.

①〜③教員が配布する資料.
コマ主題細目 ① for文 ② while文 ③ 処理の流れを変更する文
細目レベル ① プログラムでは、同様の処理を繰り返し行う場合がある。例えば、「1月から12月まで売上データを繰り返し表示する」といった処理である。このような処理は、繰り返し文(ループ文)と呼ばれる構文で記述することができる。Pythonの繰り返し文には、for文とwhile文がある。ここでは、まず、for文を学ぶ。for文の基本構文は下記である。
------------------------------------------------------------
for 変数 in 繰り返し反復処理できる仕組み:
 繰り返したい処理
------------------------------------------------------------
「in」の後には、繰り返し反復処理できる仕組みを指定する必要がある。Pythonには、繰り返し反復処理を行う様々な仕組みが用意されている。本講義では、まず、最も代表的なrange()を使う。range()の引数に数値を指定すると、0から1つずつ増やして指定した数値までの数列を得ることができる。例えば、for i in range(12):と記述した場合、0から11までの12個の数列が得られ、それが変数iに順番に代入されながら、ブロックとして指定した繰り返したい処理が実行される。本講義では、range()のさらに詳細な使い方も学ぶ。

② Pythonで用意されているもう1つの繰り返し文であるwhile文の基本構文は下記である。
------------------------------------------------------------
while 条件:
 繰り返したい処理
------------------------------------------------------------
while文は、条件を指定して繰り返し処理を行う。条件がTrueである限り、ブロックとして指定した繰り返し処理を何度でも処理する。ここで、条件に繰り返し回数を数える変数を含めることが一般的に行われる。例えば、while i<=12: と記述するが、ブロックとして指定した繰り返し処理の中に変数iの値を増やす処理(i=i+1)を含めないと永遠に繰り返し処理が続いてしまうことに注意する。本講義では、繰り返し文の中に繰り返し文やif文を埋め込んで入れ子にする(ネストする)ことも学び、繰り返し文の使い方を修得する。

③ これまでに学んだことから、条件判断文や繰り返し文には一定の処理の流れがあることが分かる。しかし場合によっては、このような処理の流れを強制的に変更したい場合がある。Pythonには、処理の流れを変更する文として、break文とcontinue文が用意されている。まず、break文は、処理の流れを強制的に終了し、そのブロックから抜ける処理を行う。一般的には、ブロックとして指定した繰り返し処理の中で条件を設定し、その条件を満たした場合にbreakを実行するように記述して、それ以降の繰り返し処理から抜けることを実現する。一方、continue文は、ブロック内の処理を飛ばし、ブロックの先頭位置に戻って次の処理を続ける処理を行う。つまり、条件を満たした場合のみ繰り返し処理を飛ばすことを実現する。本講義では、break文とcontinue文を使って処理の流れを変更する方法を学ぶ。
キーワード ① ループ ② range() ③ ネスト ④ break ⑤ continue
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、繰り返し文の処理の流れと、for文やwhile文を用いた記述方法について確認しておくこと。
【本コマの復習】for文とwhile文の基本構文や処理の流れを変更するbreak文とcontinue文の基本構文についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

5 コレクション(リスト) 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第5回目は、データを整理して扱う仕組みであるコレクションの1つとしてリストの構造とその操作について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.93-102.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.103-112.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.113-128.

①〜③教員が配布する資料.
コマ主題細目 ① リストの作成 ② リストの操作 ③ リストの連結とスライス
細目レベル ① プログラムの中で大量のデータを扱う場合、複数のデータをまとめて扱う仕組みを利用すると便利である。こうした仕組みはデータの集まりであることから、コレクションと呼ばれる。また、複数のデータを含む「入れ物」のような仕組みであるため、コンテナと呼ばれることもある。Pythonで用意されているコレクションのうち、良く使われているものがリストである。リストは、複数の値が列のように並べられているコレクションである。データの各値を格納する箱のような概念は、要素と呼ばれる。リストの要素には、列のように順序がつけられている。このように各要素の並びに順序が存在する仕組みをシーケンスと呼ぶ。リストはシーケンスの1つである。また、リストの要素は、値の変更・追加・削除などの操作を行うことができる。これを変更可能と呼ぶ。リストを扱うには、まず、作成の処理が必要になる。その最も一般的な方法は下記である。
------------------------------------------------------------
リストを表す変数名 = [値1, 値2, …]
------------------------------------------------------------
例えば、sale=[80,60,22,50,75]と記述することで、5つの要素に値を格納できる。作成されたリスト内の各要素の値はsale[0]、sale[1]、sale[2]、sale[3]、sale[4]として取得することができる。[]内の番号は、要素の順序を表すもので、インデックス(添字)と呼ばれる。リストは、要素をさらにリストにすることで、2次元以上に要素が並んだ多次元のリストを作成することもできる。本講義では、まず、リストを作成して、各要素の値を取得する方法を理解する。

② 作成したリストに対して、各要素の値を変更したり、要素を追加・削除したり操作することができる。まず、各要素の値の変更については、インデックスを用いて特定の要素に値を代入する形になる。例えば、sale[0]=100とすることで、リストsaleのインデックス0の要素が100に変更される。また、リストに要素を追加するには、下記のようにappend()を用いてリストの末尾に要素を追加して値を代入する。
------------------------------------------------------------
リスト名.append(値)
------------------------------------------------------------
リスト内の指定した位置に要素を追加して値を代入したい場合は、リスト名.insert(位置,値)と記述する。リストの要素は削除することもできる。具体的には、del文によって削除することができる。その際、削除したい要素をインデックスで指定する。
------------------------------------------------------------
del リスト名[インデックス]
------------------------------------------------------------
本講義では、これらのリストの操作以外にリストのコピーについても学ぶ。

③ リストを他のリストに連結することができる。リスト同士で+演算子を使うと、2つのリストを連結して新しいリストが作成される。例えば、sale=sale1+sale2と記述する。また、extend()を使って、リスト1.extend(リスト2)と記述することで、リスト1にリスト2が連結される。リスト内の各要素の値を取得する方法は上記で学んだが、Pythonでは、スライスと呼ばれる指定を使って、下記のように記述することによってインデックスの範囲を指定し、その範囲に該当する要素からなるリストを取り出すことができる。
------------------------------------------------------------
リスト名[開始位置:停止位置:間隔]
------------------------------------------------------------
例えば、sale=sale1[2:3:1]と記述することで、sale1のインデックス2と3の要素の値がリストsaleとして取り出される。ここで、開始位置、停止位置、間隔は2つまで省略することができる。開始位置を省略した場合は、先頭の要素を、停止位置を省略した場合は、末尾の要素を指定したことになる。間隔を省略した場合は、1を指定したことになる。本講義では、リストの連結とスライスに加え、リストを逆順にする方法、複数のリストの要素を組み合わせる方法、逆に分解する方法、リストの集計と並び替え、反復処理する仕組みであるイテレータについても学ぶ。

キーワード ① コレクション ② リスト ③ インデックス ④ 多次元リスト ⑤ スライス
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、データを整理して扱う仕組みであるコレクションと、その1つであるリストについて確認しておくこと。
【本コマの復習】リストの構造、リストの作成方法、リストの各要素の値の取得と変更、要素の追加と削除、リストの連結とスライスなどの操作方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

6 コレクション(タプル、ディクショナリ、セット) 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第6回目は、第5回目に引き続き、データを整理して扱う仕組みであるコレクションとしてタプル、ディクショナリ、セットの構造とその操作について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.137-141.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.142-154.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.155-160.

①〜③教員が配布する資料.
コマ主題細目 ① タプル ② ディクショナリ ③ セット
細目レベル ① 第5回でコレクションの1つであるリストを学んだが、Pythonには、他にもタプル、ディクショナリ、セットというコレクションが用意されている。タプルは、リストと同様に、複数のデータを扱うシーケンスである。ただし、タプルの要素は変更することができない。このため、変更されたくないデータを管理する場合は、タプルを使うと良い。タプルを扱うには、まず、作成の処理が必要になる。その最も一般的な方法は下記である。
------------------------------------------------------------
タプルを表す変数名 = (値1, 値2, …)
------------------------------------------------------------
リストとカッコの形が異なることに注意する。例えば、sale=(80,60,20,50,75)と記述することで、5つの要素に値を格納できる。タプルの要素が1つだけである場合は、他の()を使った表記と区別するために、タプル名=(値,)と記述する必要がある。タプルの各要素の値は、リストと同じ表記で取得することができる。本講義では、リストとタプルの違いを理解する。

② リストやタプルと同様に、大量のデータを扱う仕組みであるコレクションとして、ディクショナリが用意されている。ディクショナリでは、連続値が割り当てられるインデックスの代わりにキーと呼ばれる値で要素を指定する。キーの値は、分かりやすいものをプログラム作成者が決めることができる。例えば、「東京」「大阪」「名古屋」というキーを指定して、そのキーに関連づけられているデータを格納、取得することができる。ディクショナリの作成方法は下記である。
------------------------------------------------------------
ディクショナリを表す変数名 = {キー:値, キー:値, …}
------------------------------------------------------------
作成されたディクショナリから、指定したキーに対応する要素の値を、リストやタプルと同様に、ディクショナリ名[キー]と記述することによって取得することができる。また、リストと同様に、ディクショナリも要素の変更、追加、削除を行うことができる。要素の追加については、存在しないキーを指定する形で、ディクショナリ名[新規キー]=値と記述すれば良い。本講義では、ディクショナリを作成し、操作することに慣れる。

③ もう1つのコレクションとして、セットが用意されている。セットも、シーケンスではなく、並び順のないデータの集合を表すものである。セットを扱うには、まず、作成の処理が必要になる。その最も一般的な方法は下記である。
------------------------------------------------------------
セットを表す変数名 = {値1, 値2, …}
------------------------------------------------------------
リストやタプルとカッコの形が異なることに注意する。また、セットの要素にインデックスもキーもないため、セットの要素の値を重複させることができない。セットは、要素の追加と削除を行うことができ、次のように記述する。
------------------------------------------------------------
セット名.add(値)
セット名.remove(値)
------------------------------------------------------------
また、セットは、セット同士で演算子を使って集合演算を行うことができる。可能な演算は、和(|)、共通(&)、差(-)、対称差(^)である。対称差とは、どちらか一方の集合のみにある要素をすべて求める演算である。本講義では、複数のセットを作成して操作を行い、リストやタプルとの違いを理解する。

キーワード ① タプル ② ディクショナリ ③ キー ④ セット ⑤ 集合演算
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、第5回で学んだコレクションに属するタプル、ディクショナリ、セットについて確認しておくこと。
【本コマの復習】タプル、ディクショナリ、セットの構造、作成方法、操作方法についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

7 関数の仕組み 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第7回目は、関数の仕組み、使い方、そして基本的な作成方法について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.163-171.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.172-183.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.184-189.

①〜③教員が配布する資料.
コマ主題細目 ① 定義と呼び出し ② 引数 ③ 戻り値
細目レベル ① 他のプログラム言語と同様に、Pythonにおいても、一定の処理をまとめて記述する関数という機能が用意されている。関数を作成すると、複数の処理をひとまとめにして、いつでも利用でき、何度でも再利用できるようになる。関数を作成する作業は、関数を「定義する」と呼ばれ、下記が関数の定義の基本構文である。
------------------------------------------------------------
def 関数名(引数リスト):
 処理
 …
------------------------------------------------------------
一方、定義された関数を利用することを、関数を「呼び出す」と呼ばれ、下記のように記述する。
------------------------------------------------------------
関数名(引数リスト)
------------------------------------------------------------
関数を呼び出す際は、関数名をインデントしないことに注意する。なお、Pythonでは、関数の定義を呼び出しよりも前に記述する必要がある。これは、Pythonがインタプリタ言語であり、先頭から1行ずつ読み込んで処理を行うためである。本講義では、まず、関数の定義と呼び出しの方法を理解する。

② 関数を呼び出す際に、呼び出し元から関数内にデータ(値)を渡し、その値に応じた処理を行うという処理ができるようになっている。関数に渡す値を引数と呼ぶ。1つの関数で複数の引数を指定することができる。例えば、下記のように記述する。
------------------------------------------------------------
def wa(a, b):
 c = a+b
 print(‘a+b=’, a, ‘+’, b, ‘=’, c)
------------------------------------------------------------
関数waの引数aとbに値を入力すると、関数内でaとbの足し算を行って、その結果を変数cに代入し、a, b, cを表示する。引数を渡して関数を呼び出すには、例えば、下記のように記述する。
------------------------------------------------------------
wa(1, 2)
------------------------------------------------------------
これを実行することによって、a+b=1+2=3と表示される。ここで、関数内で値を受け取る変数を仮引数、関数を呼び出す際に渡される値を実引数と呼ぶ。実引数に変数の値を指定することもできる。つまり、下記のように記述することができる。
------------------------------------------------------------
x = 1
y = 2
wa(x, y)
------------------------------------------------------------
また、引数を持たない関数を定義することもできる。本講義では、引数について様々な指定方法を学ぶ。

③ 関数には、その呼び出し元に関数から特定の値を返すという仕組みを設定することができる。関数から返される値を戻り値と呼ぶ。戻り値を返すためには、関数内でreturn文を下記のように記述する。
------------------------------------------------------------
def 関数名(引数リスト):
 処理
 …
 return 戻り値
------------------------------------------------------------
return文を関数内の途中で記述した場合、return文が処理されたところで関数の処理が終了し、呼び出し元に処理が戻るようになっていることに注意する。上記の関数waにreturn文を追加し、それを呼び出すには、例えば、下記のように記述する。
------------------------------------------------------------
def wa(a, b):
 c = a+b
 return c

x = 1
y = 2
z = wa(x, y)
print(‘x+y=’, x, ‘+’, y, ‘=’, z)
------------------------------------------------------------
このように記述することで、呼び出し元の変数zに関数からの戻り値が代入される。本講義では、関数の戻り値について、複数の値を呼び出し元に返す方法についても学ぶ。

キーワード ① 関数 ② 仮引数 ③ 実引数 ④ 戻り値 ⑤ return
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、関数の仕組み、作成方法、利用方法について確認しておくこと。
【本コマの復習】関数の作成(定義)方法と関数の利用(呼び出し)方法、呼び出し元と関数の間で値をやりとりするための引数と戻り値についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

8 関数と変数 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第8回目は、関数の作成を通じて、変数が有効な範囲について学ぶ。また、関数に関する高度な機能を学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.197-203.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.204-207.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.190-196.

①〜③教員が配布する資料.
コマ主題細目 ① 変数のスコープ ② 変数の記憶寿命 ③ 関数の変数への代入
細目レベル ① 関数を定義するようになると、変数を関数の中だけではなく、外でも使うようになる。関数内で名前が決められ、値の代入が行われる変数はローカル変数と呼ばれる。関数の仮引数もローカル変数の1つである。これに対して、関数の外で名前が決められ、値の代入が行われる変数はグローバル変数と呼ばれる。ローカル変数は、その関数内でしか利用できない。同じ関数内のローカル変数には同じ名前を付けることができないが、異なる関数内で利用するローカル変数には同じ名前を付けることができる。一方、グローバル変数は、関数の外でも中でも利用することができる。つまり、グローバル変数は、プログラムが書かれたファイル内のどこでも利用することができる。ただし、グローバル変数とローカル変数で同じ名前を利用する場合は、別のものとして区別される。このように変数の名前が通用する範囲のことをスコープと呼ぶ。本講義では、ローカル変数とグローバル変数の使い分けに慣れる。
② 変数は、プログラムを開始してから終了するまで、ずっと値を記憶し続けるわけではない。変数を使う際には、値を記憶するための箱がコンピュータの記憶装置であるメモリ内に確保される。この箱に値を格納して利用するが、箱が廃棄されることによって、メモリが解放され、別の用途に利用できるようになる。変数の箱が存在し、値を記憶していられる有効期間のことを記憶寿命と呼ぶ。変数がどのような記憶寿命を持つかは、変数を利用する位置にも関係する。通常のローカル変数は、関数内で定義された時に、変数の箱がメモリ内に準備され、関数が終了する際に箱が廃棄される。一方、グローバル変数は、プログラムの実行が開始される時にメモリが確保され、プログラムの終了時にメモリが解放される。本講義では、演習を通じて、変数に代入された値がいつまで有効か理解する。
③ 関数についての高度な機能として、Pythonでは、関数の名前を指定して、関数の処理を変数に代入することができるようになっている。代入した変数では、()を使って関数の処理を呼び出すことができる。例えば、下記のように記述すると、変数zに1+2の結果が代入される。
------------------------------------------------------------
def wa(a, b):
 c = a+b

w = wa
z = w(1, 2)
------------------------------------------------------------
このような代入は、リストの要素の値として関数を代入する場合に特に重要となる。例えば、wa(a, b), sa(a, b), seki(a, b), sho(a, b)の4つの関数を定義し、下記のように記述することで、関数をリストの要素にし、リスト名[インデックス]という形でリストの要素として関数を呼び出すことができる。
------------------------------------------------------------
shisoku = [wa, sa, seki, sho]

z = shisoku[0](1, 2)
------------------------------------------------------------
これによって、変数zに1+2の結果が代入される。本講義では、これらの他にも関数に関する高度な機能を学ぶ。

キーワード ① スコープ ② ローカル変数 ③ グローバル変数 ④ 記憶寿命 ⑤ メモリ
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、ローカル変数とグローバル変数を調べ、変数の有効範囲について確認しておくこと。
【本コマの復習】ローカル変数とグローバル変数、それらのスコープや記憶寿命、さらには関数に関する高度な機能についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

9 クラス 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第9回目は、クラスの概念、作成方法、利用方法について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.211-220.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.221-242.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.243-253.

①〜③教員が配布する資料.
コマ主題細目 ① クラスの定義と利用 ② コンストラクタ ③ モジュール
細目レベル ① プログラムが複雑になるにつれて、効率良くプログラムを作成する機能が必要になり、クラスと呼ばれる概念が用いられる。クラスは、モノの概念に着目して、データと処理をまとめるための仕組みである。例えば、大学においては、「学生」という概念に着目してクラスを考えることができる。学生に関するデータを変数やリストに入れ、学生のデータについて行う処理を関数にしてまとめるということである。クラスの定義は、下記のように記述する。
------------------------------------------------------------
class クラス名:

 def メソッド名(self, 引数リスト):
  self.変数 = …
  …
  return文
------------------------------------------------------------
クラス名とメソッド名は、変数名や関数名と同様に、識別子の規則に従っていれば自由に付けることができる。メソッドは、1つ目の引数をselfとした関数である。また、「self.」を頭に付けた変数にデータを代入して使うことができる。この変数はデータ属性と呼ばれる。selfは、インスタンスを表す慣習的な引数である。例えば、nameとageという2つのデータ属性と、nameとageに代入されているデータを返す2つのメソッドを持つStudentクラスを下記のように定義する。
------------------------------------------------------------
class Student:

 def getName(self):
  return self.name

 def getAge(self):
  return self.age
------------------------------------------------------------
このように定義したクラスを利用するには、インスタンスを作成するという処理を行う。Studentクラスから1人1人の学生用にインスタンスを作成する。インスタンスの作成は下記のように記述する。
------------------------------------------------------------
st1 = Student()
#インスタンス名 = クラス名()
------------------------------------------------------------
これにより、インスタンスst1はStudentクラスのデータ属性とメソッドを下記のように記述することで利用できるようになる。
------------------------------------------------------------
st1.name
#インスタンス名.データ属性名
st1.getName()
#インスタンス名.メソッド名(引数リスト)
------------------------------------------------------------
より具体的には、例えば、st1.name=“平山” と記述することによって、インスタンスst1のデータ属性nameに平山を代入できる。また、n=st1.getName() と記述することによって、インスタンスst1のデータ属性nameに格納されている平山をnに代入できる。本講義では、データと処理をまとめることに適した概念を考え、演習を通じてクラスの作成方法を理解する。

② インスタンスを作成する際に、最初に様々な初期化処理を行いたい場合がある。例えば、データ属性に初期値を与えるなどである。そこで、インスタンスが作成される際に最初に必ず処理される特殊メソッドを定義することができる。このメソッドをコンストラクタと呼ぶ。コンストラクタは、__init__という名前を持つメソッドとして扱われ、下記のように記述される。
------------------------------------------------------------
def __init__(self, 引数リスト)
 処理
------------------------------------------------------------
例えば、下記のように定義して利用する。
------------------------------------------------------------
class Student:

 def __init__(self, name, age):
  self.name = name
  self.age = age

st1 = Student(“平山”, 20)
------------------------------------------------------------
本講義では、__init__()以外にも特殊なメソッドについて学ぶ。

③ 作成したクラスや関数を他のプログラムから利用できると便利である。これは本格的なプログラムを効率良く作成するために重要である。Pythonでは、再利用したいコードを別のファイルに分割して記述しておくことができる。分割された個々のファイルは、モジュールと呼ばれる。モジュールの名前は、ファイル名から拡張子(.py)を除いたものとなる。モジュールを利用するには、コードの先頭に下記のように記述する。
------------------------------------------------------------
import モジュール名
------------------------------------------------------------
インポートしたモジュール内のクラスや関数は、「モジュール名.」を頭に付けることで利用できる。また、モジュールをインポートする際に、下記のように記述することで、モジュールに新たに名前を付けることができる。
------------------------------------------------------------
import モジュール名 as 自分で付ける名前
------------------------------------------------------------
さらには、モジュール内のクラスや関数を下記のように直接インポートすることもできる。
------------------------------------------------------------
from モジュール名 import クラス名や関数名
------------------------------------------------------------
本講義では、演習を通じてモジュールを作成し、利用する他に、標準ライブラリのモジュールも利用してモジュールについて理解を深め、使い方を修得する。

キーワード ① データ属性 ② メソッド ③ インスタンス ④ コンストラクタ ⑤ モジュール
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、クラスの概念、クラスの作成方法と利用方法について確認しておくこと。
【本コマの復習】クラスを作成(定義)するための基本構文やクラスの利用方法、作成したクラスや関数を他のプログラムで利用するためのモジュールについての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

10 文字列 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第10回目では、第2回目で扱った文字列について高度な処理を学ぶ。文字列処理を修得することによって、テキストの検索や操作を自在に行えるようになる。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.258-263.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.264, 267-282.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.265-266.

①〜③教員が配布する資料.
コマ主題細目 ① 文字列の基本操作・変換 ② 文字列の検索 ③ 文字列の置換
細目レベル ① Pythonの文字列は、リストやタプルなどと同様にシーケンスの一種である。そのため、文字列に対して、シーケンスに対する操作と同じことを行うことができる。例えば、文字列str[]の先頭の文字を取得するためには、str[0]としてインデックスに0を指定する。第5回で学んだスライスを使って、str[1:5]のように範囲を指定することもできる。また、for文を使ってfor s in strと記述すれば、文字列中の文字に1文字ずつアクセスすることもできる。ただし、文字列は、変更不可能なシーケンスであり、タプルと同様に値を変更することができないことに注意する。Pythonには、文字列を操作するための様々な組み込みメソッドが用意されている。本講義では、文字列の基本操作に加え、文字列を分割するsplit()メソッドや結合するjoin()メソッド、指定書式で埋め込むformat()メソッドの使い方を学ぶ。
② Pythonには、文字列を検索、置換するためのメソッドも用意されている。まず、文字列を検索するためには、find()メソッドを使う。例えば、下記のように記述する。
------------------------------------------------------------
str = input(“文字列を入力してください:”)
key = input(“検索する文字列を入力してください:”)

res = str.find(key)

if res != -1:
 print(str, “のインデックス”, res, “の位置に”, key, “が見つかりました。”)
else:
 print(str, “の中に”, key, “が見つかりませんでした。”)
------------------------------------------------------------
これを実行すると、例えば、下記のように文字列を検索できる。
------------------------------------------------------------
文字列を入力してください:こんにちは
検索する文字列を入力してください:ん
こんにちは のインデックス 1 の位置に ん が見つかりました。
------------------------------------------------------------
find()メソッドは、検索対象文字列の中に、指定した部分文字列が見つかった場合、見つかった部分の先頭のインデックスを返す。見つからなかった場合は-1を返す。本講義では、正規表現と呼ばれる方法も使って、柔軟に文字列を検索する文字列処理について理解する。

③ 文字列を置換するためには、replace()メソッドを使う。例えば、下記のように記述する。
------------------------------------------------------------
str1 = input(“文字列を入力してください:”)
old = input(“置換される文字列を入力してください:”)
new = input(“置換する文字列を入力してください:”)

if old in str1:
 str2 = str1.replace(old, new)
 print(str2, “に置換しました”)
else:
 print(str1, “の中に”, old, “が見つかりませんでした。”)
------------------------------------------------------------
これを実行すると、例えば、下記のように文字列を置換できる。
------------------------------------------------------------
文字列を入力してください:こんにちは
置換される文字列を入力してください:にち
置換する文字列を入力してください:ばん
こんばんは に置換しました。
------------------------------------------------------------
Pythonには、文字列の検索・置換に関するメソッドが他にも用意されている。本講義では、これらのメソッドの演習を通じて、基本的な文字列処理の技術を身につける。

キーワード ① スライス ② 分割・結合 ③ 検索 ④ 正規表現 ⑤ 置換
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、テキストの検索や操作を自在に行うための文字列処理について確認しておくこと。
【本コマの復習】文字列の分割や結合といった基本操作や変換、検索、置換についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

11 ファイル処理 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第11回目は、テキストファイルやCSVファイル、JSONファイルを扱う方法を学ぶ。大量のデータを扱う場合には、ファイルのデータを読み、ファイルにデータを書くファイル処理を行う必要があり、その際に併用される例外処理(エラー処理)とシステム処理についても学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.285-297.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.298-304.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.305-313.

①〜③教員が配布する資料.
コマ主題細目 ① ファイル処理 ② 例外処理 ③ システム処理
細目レベル ① 大量のデータを扱う場合に、ファイルの内容を読み書きするファイル処理が有用である。ファイル処理の基本的な手順は、①ファイルをオープンする、②ファイルを読み込む、または書き込む、③ファイルをクローズする、である。テキストファイルを読み込む場合は、例えば、下記のように記述する。
------------------------------------------------------------
f = open(“sample1.txt”, “r”)
texts = f.read()
f.close()
------------------------------------------------------------
open()関数の引数として指定されている“r”は、読み込みモードでファイルをオープンすることを意味する。read()メソッドは、テキストファイル内のデータを全て読み込む。テキストファイルを書き込む場合は、例えば、下記のように記述する。
------------------------------------------------------------
f = open(“sample2.txt”, “w”)
f.write(“こんにちは”)
f.close()
------------------------------------------------------------
“w”を指定して、書き込みモードでファイルをオープンし、write()メソッドを用いてテキストファイルにデータを書き込む。ここで、ファイルをオープンして読み書きした後に、必ずclose()メソッドでファイルをクローズすることに注意する。これを怠ると、意図しない処理が実行される場合がある。ただし、with open(“sample.txt”, “w”) as f:と記述するようにwith文を使ってファイルをオープンすると、close()メソッドがなくても、必ずファイルがクローズされる。また、Pythonには、各種形式のファイルを容易に読み書きすることができる標準ライブラリなどのモジュールが用意されている。CSVファイルを読み書きする場合は、csvモジュールをインポート、JSONファイルを読み書きする場合は、jsonモジュールをインポートする。本講義では、各種形式のフォーマットを理解し、各種ファイルの読み書きの具体的な方法を演習を通じて学ぶ。

② ファイル処理を実行した際に、エラーが生じる可能性がある。例えば、読み込もうとしたファイルが存在しない場合や、リストやディクショナリに存在しないインデックスやキーにアクセスしてしまうような場合である。Pythonでは、こうした各種のエラーを処理するために、例外処理と呼ばれる処理を行うことができる。様々なエラーを表す例外と呼ばれる特殊なクラスが用意されていて、例外処理を下記のように記述する。
------------------------------------------------------------
try:
 例外の発生を調べたいコード
 …
except 例外クラス名:
 例外が起きた場合の処理
 …
else:
 例外が起きなかった場合の処理
finally:
 必ず最後に行う処理
 …
------------------------------------------------------------
ただし、elseブロックとfinallyブロックを省略することができる。例外クラスとしては、ファイルが存在しないエラーであるFileNotFoundError、インデックスが無効であるエラーIndexError、キーが無効であるエラーKeyErrorなどが用意されている。本講義では、エラーを想定したコードを記述して例外処理を把握する。

③ Pythonでは、ファイルやフォルダに関して様々な処理を容易に行えるように、標準ライブラリに各種システム処理を行うためのosモジュールが用意されている。ファイルを整理する概念として使われるフォルダは、プログラミングの世界ではディレクトリと呼ばれる。ファイルやディレクトリは階層的に整理されていて、その場所を表す概念をパスと呼ぶ。osモジュールのlistdir()関数を使うと、指定したパスのディレクトリ内のファイルとディレクトリのリストを得ることができる。その他に、指定したファイルの情報を取得するstat()関数や指定したファイルを削除するremove()関数、ファイル名を変更するrename()関数などが用意されている。本講義では、演習を通じて、システム処理についても慣れる。
キーワード ① ファイルのオープン・クローズ ② CSV ③ JSON ④ 例外 ⑤ エラー
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、ファイルからのデータの読み込みやファイルへのデータの書き込みといったファイル処理について確認しておくこと。
【本コマの復習】テキストファイルやCSVファイル、JSONファイルの処理方法や例外処理(エラー処理)、システム処理についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

12 画像処理 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第12回目は、データサイエンスで対象とされる一般的なメディアである画像に対するPythonを用いた処理方法について学ぶ。
①日比野 新,“文系でも転職・副業で稼げるAIプログラミングが最速で学べる!”,かんき出版,2020,pp.157-171,180-181,188-193.

②日比野 新,“文系でも転職・副業で稼げるAIプログラミングが最速で学べる!”,かんき出版,2020,pp.172-179,182-187.

③日比野 新,“文系でも転職・副業で稼げるAIプログラミングが最速で学べる!”,かんき出版,2020,pp.194-179,182-240.

①〜③教員が配布する資料.
コマ主題細目 ① 画像の読み込み ② 画像の描画 ③ 画像処理
細目レベル ① 読み込むファイルの1つとして、データサイエンスおよびAIが扱う重要なメディアが画像である。Pythonで画像を読み込んだり、描画や処理したりする場合、OpenCVライブラリを使うと便利である。OpenCVはAnacondaでインストール可能である。近年、プログラムを無償公開(オープンソース化)する流れが強いが、OpenCVはその先駆け的存在である。OpenCVには、画像の特徴抽出や物体検出、物体認識などの機能も用意されている。OpenCVをインポートするには、import cv2と記述する。画像を読み込んで、それを表示する場合は、例えば、下記を続けて記述する。
------------------------------------------------------------
img = cv2.imread(‘human.jpg’)
cv2.imshow(‘Photo’, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
------------------------------------------------------------
imshow()関数の1つ目の引数は、画像を表示するウィンドウのタイトルである。waitKey()関数は、引数のミリ秒数だけ処理を待つもので、0を指定するとキーボード入力を待つ(キーボードが押されるまで無限に処理を待つ)ことになる。destroyAllWindows()関数は、ウィンドウを閉じて終了するという処理である。本講義では、OpenCVをインストールして、様々な形式の画像を読み込み、表示する方法を修得する。

② 画像を扱うプログラミングの基本を理解するために、まず画像の上に円や四角を描くと良い。画像を読み込んで、指定した場所に円と四角を描画して表示するためには、例えば、下記のように記述する。
------------------------------------------------------------
cv2.circle(img, (250, 250), 200, (0, 200, 255), 3, 4)
cv2.rectangle(img, (400, 50), (500, 150), (0, 0, 200), 3, 4)
cv2.imshow(‘Photo+Circle+Rectangle’, img)
cv2.waitKey(0)
cv2.destroyAllWindows()
------------------------------------------------------------
circle()関数は、円を描く関数で、1つ目の引数が円を描く対象の画像、2つ目の引数が円の中心座標、3つ目の引数が円の半径の画素数、4つ目の引数が線の色であり、(0, 200, 255)の場合は、B(青)が0、G(緑)が200、R(赤)が255の色を意味する。さらに、5つ目の引数は線の太さ、6つ目の引数は線の種類である。一方、rectangle()関数は、2つ目の引数が四角の左上座標、3つ目の引数が四角の右下座標であり、他の引数はcircle()関数と同じである。本講義では、ディジタル画像の仕組みを学び、様々な画像の上に、様々に円と四角を描いて画像の基本操作を修得する。

③ OpenCVには、様々な画像処理を行うための関数が用意されている。本講義では、基本的な画像処理のアルゴリズムについて学び、OpenCVの関数を用いて画像処理を実行するプログラムを作成する。主な画像処理として、画像の拡大縮小、画像の回転、画像の2値化、画像からの特徴抽出として物体のエッジ(輪郭)抽出を行う。これらを順番に実行するためには、例えば、下記のように記述する。
------------------------------------------------------------
img_height = img.shape[0] # 元画像の縦サイズ
img_width = img.shape[1] # 元画像の横サイズ
img_resize = cv2.resize(img, (int(img_width*0.5), int(img_height*0.5))) # 元画像の縦横サイズを0.5倍
img_center = (int(img_width/2), int(img_height/2)) # 元画像の中心座標
img_temp = cv2.getRotationMatrix2D(img_center, 20.0, 1.0) # 回転行列の設定
img_rotate = cv2.warpAffine(img, img_temp, (img_width, img_height)) # 半時計回りに20.0度回転、サイズは1.0倍
img_gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) # カラー画像をグレースケール画像に変換
retValue, img_binary = cv2.threshold(img_gray, 100, 200, cv2.THRESH_BINARY) # 画素値100を閾値にして、それ未満を0、それ以上を200に変換する形で2値化
img_edge_1 = cv2.Sobel(img, -1, 1, 0) # ソーベルフィルタで横方向 (1, 0) のエッジ抽出、-1はエッジ以外を画素値0に
img_edge_2 = cv2.Sobel(img, -1, 0, 1) # ソーベルフィルタで縦方向 (0, 1) のエッジ抽出、-1はエッジ以外を画素値0に
------------------------------------------------------------
また、画像からの物体検出として顔検出をHarr-likeフィルタを用いて行う。本講義では、プログラミングを通じて、データサイエンスおよびAIが扱う重要なメディアである画像の基本的な処理について理解する。

キーワード ① OpenCV ② 画像の読み込み ③ 画像の表示 ④ 描画 ⑤ 画像処理
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、Pythonを用いた画像処理を行うためのOpenCVライブラリについて確認しておくこと。
【本コマの復習】OpenCVを用いた画像の読み込みや描画の方法、画像の拡大縮小、画像の回転、画像の2値化、画像からのエッジ(輪郭)抽出、コーナー抽出、顔検出などの画像処理についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

13 統計処理 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第13回目は、データサイエンスにおいて最も重要なスキルである統計処理に関してPythonを用いた実装方法について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.343-346.
Pythonドキュメント statistics---数理統計関数,https://docs.python.org/ja/3/library/statistics.html

②Pythonドキュメント statistics---数理統計関数,https://docs.python.org/ja/3/library/statistics.html

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.361-365.

①〜③教員が配布する資料.
コマ主題細目 ① 1つのデータ群の代表値 ② 2つのデータ項目間の関係 ③ 配列
細目レベル ① 大量のデータから基本的な数理統計指標を容易に得るために、Pythonの標準ライブラリには、statisticsモジュールが用意されている。まず、1つのデータ群の代表値として、平均値、中央値、最頻値、分散、標準偏差が挙げられる。平均値は、全てのデータを足し合わせた値をデータの個数で割ったものである。中央値は、データを昇順もしくは降順で並べた時に中央に位置する値である。最頻値は、データの中で最も多く存在する値である。分散は、各データと平均との差である偏差の二乗を平均した値であり、データが平均からどのくらい散らばっているかを表す。標準偏差は、分散の平方根を取ったものである。statisticsモジュールにおいて、それぞれ、mean()関数、median()関数、mode()関数、variance()関数、stdev()関数が用意されている。なお、variance()関数は不偏分散、stdev()関数は不偏標準偏差を計算するため、母分散と母標準偏差を得たい場合は、pvariance()関数とpstdev()関数を用いる。本講義では、statisticsモジュールを使うことを最低限に、それを使わずにこれまでの学びを総結して代表値を計算するコードを作成することも試み、環境プログラミングのスキルを修得できているかを確認する。
② 次に、組になっている2つのデータ項目の関係を表す数理統計指標として、相関係数と回帰直線が挙げられる。A項目が大きくなるにつれてB項目も大きくなる場合、相関係数は正の値を取り、その傾向が強いほど+1に近づく。その逆に、A項目が大きくなるにつれてB項目が小さくなる場合、相関係数は負の値を取り、その傾向が強いほど-1に近づく。相関係数は、A項目の偏差とB項目の偏差の積の平均値をA項目の標準偏差とB項目の標準偏差で割った値である。回帰直線は、データが2つの要素を持つ時、一方をグラフのx軸、他方をy軸としてプロットした場合に、データの分布の真ん中を通る直線y=ax+bのことである。この直線の傾きaは、相関係数にxの標準偏差をかけて、yの標準偏差で割った値として求まる。statisticsモジュールにおいて、相関係数はcorrelation()関数、回帰直線はlinear_regression()関数が用意されている。本講義では、statisticsモジュールを使うことを最低限に、それを使わずにこれまでの学びを総結して相関係数と回帰直線を計算するコードを作成することも試み、環境プログラミングのスキルを修得できているかを確認する。
③ データを取り扱う際に、高度なデータ構造を扱うNumPyモジュールが一般的に利用されている。NumPyモジュールは標準ライブラリではなく、Anacondaなどでインストールされるモジュールである。NumPyモジュールは、npという名前で使用するのが一般的であり、import numpy as npと記述してインポートする。NumPyモジュールでは、リストに似たデータ構造であるndarray(配列)を使ってデータを扱うことができる。ndarrayは、リストよりもさらに高度なデータ処理が可能なデータ構造になっている。例えば、x=np.arrange(0.0,2.5,0.05)と記述することで、0.0から2.5まで0.05間隔でデータ系列を生成することができたり、さらには、y=x*np.piと記述するだけで、その系列の全ての値に円周率をかけることができる。つまり、繰り返し処理を記述する必要がない。このNumPyモジュールを拡張したライブラリであるPandasモジュールについても学ぶ。NumPyモジュールは数値計算に特化する一方で、Pandasは文字列などの様々なデータ型も扱え、データフレームと呼ばれる多次元配列のデータ構造を扱う際に良く用いられる。Pandasモジュールは、pdという名前で使用するのが一般的であり、import pandas as pdと記述してインポートする。NumPyモジュールとPandasモジュールには、数学関連やデータ処理の様々な関数が用意されている。本講義では、NumPyモジュールとPandasモジュールを使った高度なデータ処理を学ぶ。
キーワード ① statisticsモジュール ② 代表値 ③ 相関 ④ NumPyモジュール ⑤ Pandasモジュール
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、Pythonを用いた統計処理を行うためのstatisticsモジュールについて確認しておくこと。
【本コマの復習】statisticsモジュールを用いた代表値や相関係数の算出、回帰直線の推定、高度なデータ処理に適したデータ構造を扱うNumPyモジュールとPandasモジュールについての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

14 グラフの描画 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。このようなコマの流れの中の位置付けとして、第14回目は、データを可視化する技術を修得するためにPythonを用いたグラフの描画方法について学ぶ。
①高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.347-352.

②高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.353-356.

③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,pp.357-360.
Pythonドキュメント math---数学関数,https://docs.python.org/ja/3/library/math.html

①〜③教員が配布する資料.
コマ主題細目 ① ヒストグラム ② 散布図 ③ 数学関数のグラフ
細目レベル ① データの分布や変化を読み取ることが重要であり、グラフなどを描画することによるデータの可視化が1つの方法である。Pythonでグラフの描画を行うには、Matplotlibのmatplotlib.pyplotモジュールを使うと便利である。MatplotlibはAnacondaでインストールされるモジュールである。matplotlib.pyplotモジュールは、pltという名前を付けてインポートすることが一般的であり、import matplotlib.pyplot as pltと記述する。本講義では、まず、データの度数分布を示すヒストグラムを描画する。ヒストグラムは、データの値をx軸、ある範囲の値を持つデータが現れる頻度をy軸としたグラフである。リストの構造を持つ変数dataが与えられた場合、下記のように記述して、ヒストグラムを描画する。
------------------------------------------------------------
plt.hist(data)
plt.show()
------------------------------------------------------------
hist()関数には様々な引数が定義されていて、ヒストグラムの各種設定が可能である。本講義では、演習を通じて、Pythonを用いてヒストグラムを容易に描けることを把握する。

② 第13回で、組になっている2つのデータ項目の関係を表す数理統計指標を学んだが、その関係を可視化するグラフとして散布図が良く描かれる。散布図もmatplotlib.pyplotモジュールを用いる。リストの構造を持ってデータの順番に対応がある2つの変数が与えられた場合、下記のように記述して、散布図を描画する。
------------------------------------------------------------
plt.scatter(x, y)
plt.show()
------------------------------------------------------------
scatter()関数にも様々な引数が定義されていて、散布図の各種設定が可能である。本講義では、演習を通じて、Pythonを用いて散布図を容易に描けることを把握する。また、matplotlib.pyplotモジュールには、ヒストグラムと散布図以外に時系列などのデータ系列を描画するplot()関数が用意されている。散布図に回帰直線を描く場合は、plot()関数を用いて散布図に回帰直線を上書きする。matplotlib.pyplotモジュールには、グラフの各種設定を行う関数も多数用意されていて、plot()関数とともに次の主題細目で扱う。

③ matplotlib.pyplotモジュールのplot()関数を用いて、数学関数も容易に描画することができる。本講義では、Pythonの標準ライブラリに数学関連のモジュールとして用意されているmathモジュールを併用して、様々なグラフを描画する演習を通じて、データを可視化するスキルを修得する。例えば、下記のように記述することによって、sin()関数とcos()関数を描画することができる。
------------------------------------------------------------
import math
import matplotlib.pyplot as plt

x = []
s = []
c = []

for i in range(50):
 x.append(i*0.05*math.pi)
 s.append(math.sin(x[i]))
 c.append(math.cos(x[i]))

plt.title(“sin/cos functions”)
plt.xlabel(“rad”)
plt.ylabel(“value”)
plt.grid(True)

plt.plot(x, s, label = “sin”)
plt.plot(x, c, label = “cos”)
plt.legend()

plt.show()
------------------------------------------------------------
xを0.05刻みとしてsin()関数とcos()関数を計算し、それをplot()関数で描画している。その際、それぞれに“sin”と“cos”のラベルを付けている。ラベルを付けた後にlegend()関数を呼び出すと、グラフ上に凡例が表示される。また、このように複数のグラフを扱うと、同じ座標上に異なる色で描画される。本講義では、グラフの要素の編集や追加も演習することで、見栄えが良いデータの可視化のスキルも身につける。

キーワード ① matplotlib.pyplotモジュール ② hist() ③ scatter() ④ plot() ⑤ mathモジュール
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルを熟読し、参考書籍やWebサイトを利用して、Pythonを用いたグラフ描画を行うためのMatplotlibモジュールについて確認しておくこと。
【本コマの復習】Matplotlibを用いたヒストグラムや散布図の描画、数学関連のmathモジュールを併用した数学関数のグラフ描画についての配布資料を再読し、提示された課題に取り組み、完成させておくこと。本コマシラバスの各コマ主題細目についての細目レベルを再確認しておくこと。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

15 まとめ 科目の中での位置付け 本科目は、Pythonを用いてデータサイエンスに必要なプログラミングに関する基礎的な知識と技術を、講義と演習を通じて修得することを目的とする。まず、第1回目では、ガイダンスとして授業の進め方を確認する。また、Pythonの特徴を学んだ上で、PCにプログラム開発環境を構築し、簡単なコードの記述と実行を行う。第1回目を含め第10回目までは基礎編で、他のプログラミング言語においても用意されている変数、条件文、繰り返し文、データ構造、関数、クラスについてPythonにおける構文や記述ルールを学び、基本的なプログラムを記述、実行する。第11回目から第14回目は応用編で、ライブラリとして用意されている関数を利用して、ファイル処理や基本的な画像処理、統計処理、データの可視化を行う。このようなコマの流れで環境プログラミングの基礎についての学びを進め、今回の第15回目では、全ての講義内容をまとめ、復習し、用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認する。
①〜③高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018.日比野 新,“文系でも転職・副業で稼げるAIプログラミングが最速で学べる!”,かんき出版,2020.教員が配布する資料.
コマ主題細目 ① 基礎編前半のまとめ ② 基礎編後半のまとめ ③ 応用編のまとめ
細目レベル ① 第1回目から第4回目の基礎編前半をまとめる。第1回目では、Pythonの特徴を理解し、Anacondaを用いてPythonをインストールして、Pythonのプログラム開発環境を構築する方法を学んだ。また、その開発環境でプログラムを作成し、実行する方法を把握した。第2回目では、変数とその仕組みや、定義の方法、値の代入方法を学び、演算子の処理を網羅し、変数と演算子を用いた式の記述方法を理解した。第3回目では、条件文の処理の流れや条件判断に用いる演算子を学び、if文を用いた条件文の記述を修得した。第4回目では、繰り返し文の処理の流れを学び、for文およびwhile文を用いた繰り返し文の記述を修得した。また、break文およびcontinue文による繰り返し処理の流れを変更する方法を理解した。
② 第5回目から第10回目の基礎編後半をまとめる。第5回目と第6回目では、データを整理して扱う仕組みであるコレクションに属するリスト、タプル、ディクショナリ、セットについて、それぞれの構造と作成方法や操作方法を学び、それぞれを比較しながら実装することで違いを理解した。第7回目と第8回目は関数についてであり、第7回目では、関数の仕組みを学んだ上で、その作成(定義)方法と利用(呼び出し)方法を修得した。また、呼び出し元と関数の間で値をやりとりするための引数と戻り値を理解し、それらを扱うプログラムを作成した。第8回目では引き続き、関数の作成および利用を通じて、ローカル変数とグローバル変数の違いと、それらの有効範囲や値の記憶寿命を理解した。さらには、関数の高度な機能も学んだ。第9回目では、クラスの概念を把握し、クラスの作成(定義)方法と利用方法を修得した。また、クラスや関数をモジュール化し、他のプログラムで利用する方法を実践した。第10回目では、テキストの検索や操作を自在に行えるようになるために、第2回目で扱った文字列について高度な処理を学び、実行した。
③ 第11回目から第14回目の応用編をまとめる。第11回目では、大量のデータを扱う場合には、ファイルのデータを読み、ファイルにデータを書くファイル処理を行う必要があるため、テキストファイルやCSVファイル、JSONファイルを読み書きするファイル処理を理解した。また、それに併用される例外処理(エラー処理)とシステム処理についても学んだ。第12回目では、OpenCVライブラリを用いた画像の読み込み、表示、描画、そして基本的な処理を学び、実践した。第13回目では、統計処理として、statisticsモジュールを用いた代表値や相関係数の算出、回帰直線の推定を行った。また、高度なデータ処理に適したデータ構造を扱うNumPyモジュールとPandasモジュールの利用方法を理解した。第14回目では、データを可視化するスキルを身につけるために、Matplotlibを用いたヒストグラムや散布図の描画、数学関連のmathモジュールを併用した数学関数のグラフ描画を学び、実践した。
キーワード ① 条件文 ② 繰り返し文 ③ データ構造 ④ 関数とクラス ⑤ データ処理と可視化
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業時間内に、LMS上において当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【本コマの予習】本コマシラバスの各コマ主題細目についての細目レベルおよび履修判定指標を熟読し、第14回目までの配布資料を見直しておくこと。
【本コマの復習】①第14回目までの配布資料およびコマシラバスの全てのコマ主題細目についての細目レベルを再読すること。②第14回目までに提示された課題を完成させること。③用意されたデータもしくは自身で取得したデータに対して課題を設定した上で、プログラムの記述と実行を行い、一連の過程を通じて、環境プログラミングの基礎知識とスキルの修得を確認すること。④履修判定指標を再確認すること。演習において共有された構文エラー等とその対処方法や特色のある実行結果を、自身が作成したプログラム内で再現し、確認しておくこと。また、パラメータを変更するなどコードをアレンジし、実行結果を予測した上で実際の実行結果を確認することで、プログラムの振る舞いの理解を深めること。

履修判定指標
履修指標履修指標の水準キーワード配点関連回
変数と演算子を用いた式の記述の修得 Pythonでの変数と演算子を用いた式の記述を理解、修得することができているかどうか、実行結果を正しく予測することができるかを次の項目に基づいて確認する。1.変数の役割、2.変数の仕組み、3.変数名の規則、4.変数への値の代入、5.変数の値の出力、6.変数の値の変更、7.ローカル変数とグローバル変数の違い、8.変数の有効範囲、9.変数の記憶寿命、10.演算子の役割、11.演算子の種類、12.演算子の優先順位、13.変数と演算子を用いた式の記述方法、14.プログラム実行時におけるキーボードから変数へのデータ入力の方法 変数、演算子、ローカル変数、グローバル変数、input()、int() 10 1, 2, 8
条件文の記述の修得 Pythonを用いた条件文の記述を理解、修得することができているか、実行結果を正しく予測することができるかどうかを次の項目に基づいて確認する。1.条件文の役割、2.条件文の処理の流れ、3.if文の基本構文、4.elif文の処理、5.else文の処理、6.ブール値(TrueとFalse)の意味、7.ブロックの範囲、8.比較演算子の役割、9.比較演算子の種類、10.論理演算子の役割、11.論理演算子の種類 条件文、if、elif、else、True、False、比較演算子、論理演算子、and、or 15 3
繰り返し文の記述の修得 Pythonを用いた繰り返し文の記述を理解、修得することができているか、実行結果を正しく予測することができるかどうかを次の項目に基づいて確認する。1.繰り返し文の役割、2.繰り返し文の処理の流れ、3.for文の基本構文、4.range()を用いた繰り返し反復処理、5.while文の基本構文、for文とwhile文における繰り返し処理の違い、6.繰り返し文の中に繰り返し文や条件文を埋め込む入れ子(ネスト)構造とその処理の流れ、7.break文による処理の流れを強制的に終了する方法、8.continue文による繰り返し処理を飛ばす方法 繰り返し文、for、while、range()、入れ子(ネスト)、break、continue 15 4
データを整理して扱うコレクションの構造の理解と操作の修得 データを整理して扱うコレクションとしてリスト、タプル、ディクショナリ、セットの構造を理解し、操作を修得することができているか、それぞれの違いを正しく把握できているかどうかを次の項目に基づいて確認する。1.コレクションの概念、2.コレクションの形態、3.リストの構造、4.リストの作成、5.リストの要素の値の取得、変更、6.リストの要素の追加、削除、7.リストの連結、スライス、並び替え、集計、8.タプルの構造、9.タプルの作成、10.タプルの要素の値の取得、11.ディクショナリの構造、12.ディクショナリの作成、13.ディクショナリの要素の値の取得、14.ディクショナリの要素の変更、追加、削除、15.セットの構造、16.セットの作成、17.セットの要素の追加と削除、18.セット同士の集合演算 コレクション、リスト、タプル、ディクショナリ、セット、要素、シーケンス、インデックス、キー、スライス 15 5, 6
関数の作成と利用の修得 Pythonを用いた関数の仕組みと記述を理解し、作成と利用を修得することができているかどうか、実行結果を正しく予測することができるかどうかを次の項目に基づいて確認する。1.関数の概念と仕組み、2.関数を作成(定義)するための基本構文、3.関数の利用(呼び出し)方法、4.関数の引数、5.関数からの戻り値を返すためのreturn文の記述、6.モジュールのインポートと関数の利用、7.関数の処理の変数への代入 関数、呼び出し、仮引数、実引数、戻り値、return、モジュール 15 7, 8, 9
クラスの作成と利用の修得 Pythonを用いたクラスの仕組みと記述を理解し、作成と利用を修得することができているかどうか、実行結果を正しく予測することができるかどうかを次の項目に基づいて確認する。1.クラスの概念と仕組み、2.クラスを作成(定義)するための基本構文、3.クラスの変数(データ属性)の作成と利用、4.クラスの関数(メソッド)の作成と利用、5.クラスを利用するためのインスタンスの作成、6.インスタンスを作成する際の初期化処理 クラス、データ属性、メソッド、インスタンス、コンストラクタ 15 9
高度な処理の修得 Pythonを用いた文字列処理、ファイル処理、画像処理、統計処理、グラフ描画を理解、修得することができているか、実行結果を正しく予測することができるかどうかを次の項目に基づいて確認する。1.文字列中の各文字の取得、2.文字列のスライス、3.文字列の分割と結合、4.文字列の検索と置換、5.テキストファイル、CSVファイル、JSONファイルからのデータの読み込み、6.ファイルへのデータの書き込み、7.OpenCVを用いた画像の読み込みと表示、8.OpenCVを用いた図形の描画、9.OpenCVを用いた画像処理、10.Mathモジュールを用いた数学関数の利用 文字列、ファイル処理、画像処理、統計処理、グラフ、数学関数 15 10, 11, 12, 13, 14, 15
評価方法 期末試験(100%)により行う。
評価基準 評語
    学習目標をほぼ完全に達成している・・・・・・・・・・・・・ S (100~90点)
    学習目標を相応に達成している・・・・・・・・・・・・・・・ A (89~80点)
    学習目標を相応に達成しているが不十分な点がある・・・・・・ B (79~70点)
    学習目標の最低限は満たしている・・・・・・・・・・・・・・ C (69~60点)
    学習目標の最低限を満たしていない・・・・・・・・・・・・・ D (60点未満)
教科書 特に既成の教科書を使わない。資料を配布する。
参考文献 1.高橋 麻奈,“やさしいPython”,SBクリエイティブ,2018,2.日比野 新,“文系でも転職・副業で稼げるAIプログラミングが最速で学べる!”,かんき出版,2020
実験・実習・教材費 特になし。