区分 環境データサイエンス科目 環境情報科目 環境情報基本科目
ディプロマ・ポリシーとの関係
専門性 理解力 実践力
カリキュラム・ポリシーとの関係
専門知識 教養知識 思考力
実行力
カリキュラム全体の中でのこの科目の位置づけ
環境・情報・社会が直面する課題に対して、専門的な理解を深めると共に、学際的な柔軟性を有し、実践的な能力を有する。
科目の目的
プログラミングを学ぶことは、ロジカルな思考(論理的思考)を養う上で非常に効果があると言われており、実社会においても、目的を達成するための仕組みや手順、判断などのあらゆる場面において、論理的思考を学んだ経験が役に立つ。また、環境データサイエンス学科では、様々な分野のデータを多面的に解析するため、入手したデータを適切に集計・加工・蓄積するなどのデータ処理が必須であり、データ処理のためのプログラミング技術を学ぶことは、今後のより高度なデータ解析に向けた、基礎知識・技術の修得となりうる。そこで、本講義では、今後のより高度なデータ解析を見据え、初学者でも理解しやすく、統計的なデータ解析を得意とするプログラミング言語「R」による基本的なプログラミング作法を体験し、データ処理に関する基礎知識・技術を修得することを目的とする。
到達目標
Rプログラミングの基本的な操作(プロジェクトの読み込み、プログラムの記述、実行)ができること。変数とベクトル、関数の作成に関する意味を理解し、コンピュータ上で実装できること。データ処理に関する関数の作成、条件分岐、繰り返し文の意味を理解し、統合開発環境であるRStudio上でプログラミング実行できること。また、プログラム実行結果の確認、結果の理解が問題なく行えること。
科目の概要
本授業は、環境データサイエンス学科における重要な初年次教育の一つであり、3年次以降の演習に必ず必要となる知識と技術を身につけるこをと目的としているため、学科に所属する1年生は必ず受講すること。本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め、理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回〜第14回は、講義+演習により進め、R言語によるプログラミングの基礎技術を身につける。第15回は、自身で簡単なプログラミングを行い、プログラミング+実行+実行結果の確認を行うまでの一連の工程を体験することでプログラミングの流れを身につける。
科目のキーワード
①R言語 ②プログラミング ③論理的思考 ④データ処理  ⑤データ分析  ⑥調査  ⑦グラフ化  ⑧可視化  ⑨ゲーム作成  ⑩アルゴリズム 
授業の展開方法
授業は、毎回、講義+演習の形式で行う。講義では、ソースコード(プログラム)の意味や記述方法、動作、実行結果などを解説し、それらに関するプログラミング演習(コーディング:記述)を行う。なお、演習は、各自所有のノートPCで行うため、毎回の授業においては必ずノートPCを持参すること(前日までに充電しておくことも忘れない)。試験においては、これまで学んだ内容を踏まえ、プログラミングに関する基礎知識や技術、ソースコードの記述方法、実行結果、などについて問う。詳細については、第1回目のガイダンスにて説明するため、履修予定者は必ず出席すること。
オフィス・アワー
【月曜日】1・昼休み・4・5時限目、【火曜日】1・2・昼休み・4・5時限目
科目コード ENS520
学年・期 1年・後期
科目名 Rプログラミング入門
単位数 2
授業形態 講義
必修・選択 選択
学習時間 【授業】90分×15 【予習】90分以上×15 【復習】90分以上×15
前提とする科目 なし
展開科目 環境プログラミング基礎
関連資格 なし
担当教員名 薄井智貴
主題コマシラバス項目内容教材・教具
1 プログラミングとは 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第1回は、プログラミングとは何かについて学ぶ。
【コマ主題細目①】
・増井敏克『図解まるわかりプログラミングのしくみ』、翔泳社、pp.13-38

【コマ主題細目②】
・増井敏克『基礎からのプログラミングリテラシー』、技術評論社、pp.44-90

【コマ主題細目③】
・増井敏克『図解まるわかりプログラミングのしくみ』、翔泳社、pp.40-100
コマ主題細目 ① プログラミングとは ② コーディングとプログラム ③ コンパイラとは
細目レベル ① 「プログラミング」とは、プログラミング言語を用いて「プログラム」という命令文を作成することにより、コンピュータや機械に指示を行い、動作させることである。何となくそのようなイメージとしては持っているものの、習得が難しいというイメージを持っていることと思う。その「難しい」イメージの一つの原因として、「多種多様なプログラミング言語の存在」が挙げられる。「プログラム」という、一見簡単そうで、実は理解不能な命令言語に、見ただけで蕁麻疹がでる人も少なくないだろう。特に、通常の情報学系の大学で学ぶプログラミング言語である、C 言語やJava言語、最近ではPython言語などは、コードと呼ばれる複雑な命令語や関数が多数登場し、数式が苦手な人は特にヤル気を無くしてしまうのではないか。本授業では、このような高等言語ではなく、比較的命令語も少なく、統計分析や可視化に特化したプログラミング言語である「R」を用いる。Rは、様々なパソコン環境で、無料で利用できるソフトウェアで、簡単な計算からデータ解析、様々なツールを搭載しており、初心者でも馴染みやすいプログラミング言語の一つである。
② ソフトウェアを開発する際、人間が設計書を書くだけではコンピュータは動いてはくれない。コンピュータにやってもらいたいことを、コンピュータが理解できる言葉で記述しなければならない。コンピュータは「電子計算機」であるため、基本的には「0」と「1」から構成される2進数の計算しかできない。この2進数で書かれた命令の集まりが「機械語」と呼ばれるもので、コンピュータにやってもらいたいことを、この機械語で書くことにより、コンピュータが動く。ただし、人間が機械語を理解するのは不可能であるため、人間が理解しやすく、記述しやすい「プログラミング言語」を使って「ソースコード」を作成し、それをコンピュータが理解できるように変換することで、コンピュータが動くことを、本コマでは理解する。
③ ソースコードをプログラムに変換するとき、コンパイラとインタプリタの2種類の方法がある。コンパイラは、事前にソースコードからプログラムに一括変換しておき、実行するときにプログラムを処理する方法で、文書を翻訳するように事前に変換しておくことで、実行時に高速処理ができるようになる。一方、インタプリタは、実行しながらソースコードを変換する方法で、通訳のように話しているそばから訳した言葉を伝えていくイメージである。実行処理には時間がかかる一方で、想定した通りに動かなかった場合にも、少し修正してまた実行する、という作業の繰り返しが容易に実行できる点がメリットである。本コマでは、これらのコンパイラの仕組みやこれらを踏まえたプログラミング言語の選び方などについて押さえておく。
キーワード ① プログラミング ② 言語 ③ コーディング ④ ソースコード ⑤ コンパイラ
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、プログラミングとは何か、プログラミングの仕組みについては、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(プログラミングのしくみやリテラシーなど)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

2 Rのインストールと実行 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第2回は、RソフトウェアとRStudioのインストールについて学ぶ。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P2-10

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P2-10

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P11-25
コマ主題細目 ① R言語とは ② RとRStudioのインストール方法 ③ Rの基礎
細目レベル ① Rは、ニュージーランドのオークランド大学の講師Ross Ihaka氏とRobert Gentleman氏が開発した統計解析と可視化のためのソフトウェアである。Rはフリーソフトウェアで、誰でも無料で使用することができ、オープンソースでもあるため、世界中の人が開発に関わることができる。しかも、様々なパソコン環境で動作可能であり、簡単な計算からグラフ化、データ解析まで、機能として備わっており、非常に多くの人が利用している。特に、数値計算やデータ分析、プログラミング、シミュレーションなど、コンピュータを動作させることを非常に得意としている。しかも、C言語やJava言語で作成する数行のプログラムと同等の動作をするプログラムであれば、わずか1行で書けるものもある。
② まず、授業で学習を進めるため、RソフトウェアとRStudioソフトウェアをインストールする。Rソフトウェアのダウンロードは、様々な大学や研究所がダウンロードサイトを提供しており、無料でダウンロードできる。ここでは、統計数理研究所のサイト(https://jasp.ism.ac.jp/ism/timsac/)にアクセスし、Windows用の最新版のRをダウンロードする方法を学ぶ。ダウンロードは、サイト内にある「Download R X.X.X for Windows」をクリックすることで可能となる。ダウンロードが完了したら、表示されたウィンドウの指示に従い、順次クリックしていき、インストールを完了させる。本コマでは、正常にインストールおよび動作が完了するところまでを押さえる。
③ 実行環境が整ったら、簡単なプログラミングを行ってみる。ここでは、インストールしたRStudioソフトウェアを実行し、実際にソースコード(プログラム)を書いてみる。まずは、簡単な数値計算である1+2の計算を実行してみる。と同時にRStudioソフトウェアの基本的な機能や使い方を確認する。特に、演算子の使い方と結果の解釈についてはここでしっかり押さえる。次に簡単なルート計算などの数学関数を確認し、どのようなものがあるのか把握する。また、History機能により過去に実行したプログラムの履歴が表示され、マウスクリックにより再実行が可能になる点について、押さえておく。さらに、Help機能を使うことで、関数の使い方の詳細や利用例が確認できることを本コマでは学ぶ。
キーワード ① R言語 ② RStudio ③ インストール ④ 四則演算 ⑤ ソースコード
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、R言語とは何か、Rインストールの基本要件や方法については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(R言語の歴史やRプログラミングの基礎など)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

3 変数とベクトル 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第3回は、Rプログラミングの基本となる変数とベクトルについて学ぶ。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P28-36

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P28-36

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P28-36
コマ主題細目 ① 変数と代入 ② 変数名の命名規則 ③ ベクトルと操作
細目レベル ① 前回インストールした統合開発環境RStudioソフトウェアを起動し基本操作を確認する。まず、簡単な四則演算を実行してみる。演算子の使い方など、もし忘れていれば思い出しつつ、いくつか練習問題を解いてみる。次に、計算結果を「変数」という箱に保存することを覚える。この「変数という箱に保存する」行為を「代入」と呼ぶことを学ぶ。例えば、xという変数(箱)に「ルート3」の計算結果を代入する場合は、 > x <- sqrt(3) と記述する。この時、計算結果(1.732051)は変数に代入されるが、画面には表示されないことを確認する。この「変数」のデータを画面上に表示するには、「> x」と、変数名をそのまま入力し、「Run」ボタンをクリックする。
② 変数名は何でもOKというわけではなく、以下の命名規則がある。(1)大文字と小文字を区別する。(2)変数名にはローマ字や数字を使うことができるが、変数名の先頭を数字にすることはできない。(3)Rの処理系によって、先に先約されている予約言語は、変数名として使うことはできない。なお、予約言語は、break、else、for、if、FALSE、TURE、in、while、などがあり、これらの言葉を利用するとエラーが表示されることになる。また、1つの変数に値を代入し直すと、古い値は破棄され、新しい値で上書きされる。さらに、代入式を丸括弧( )で括ると、代入と表示を同時に行うことができる点をここでは押さえておく。
③ 数多くのデータを変数に代入する場合、先ほどのように、個別の変数に代入することは非常に効率が悪い。R言語では、「複数の値をひとまとめ」に処理することが得意で、「ベクトル」を用いることで実現可能である。高校時代に学んだ人も多いかとは思うが、「ベクトル」というと何やら難しいイメージがあるが、R言語における「ベクトル」とは、単に「複数の値をひとまとめにしたもの」に過ぎない点を理解する。この「ベクトル」は関数c()を用いて作成できる。例えば、 >x <- c(50,55,60,65,70) のように記述すると、変数xに、50、55、60、65、70 の5つのデータが代入される。そこで、試しに >x と入力した結果を見てみるところまで押さえる。
キーワード ① 四則演算 ② ルート ③ 変数 ④ ベクトル ⑤ 命名規則
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、変数・ベクトルとは何か、ベクトル関数による四則演算については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(ベクトル関数での演算方法や結果など)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

4 様々なベクトル 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第4回は、第3回で学んだベクトル型以外の様々なベクトル型について学ぶ。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P38-45

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P38-45

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P38-45
コマ主題細目 ① いろいろなベクトル型について ② ベクトル型のチェックと変換 ③ 文字列操作
細目レベル ① 前回は数値のみを対象として計算を行ってきたが、データの種類としては、次のようなものがある。①実数値型ベクトル(例:1.8)、②複素数型ベクトル(例:1+2i)、③文字型ベクトル(例:"ABC")、④因子型ベクトル(例:"M":男性、”F:女性”)、⑤論理値型ベクトル(例:TRUE、FALSE)、⑥日付値型ベクトル(例:2022/02/02)、さらに特殊な値について、NULL(空:何もない)やNA(Not Available)、NaN(Not a Number:非数)、Inf(無限大)などである。本コマでは,これらの型について、実際にコンピュータ上で動作を確認しながら、使い方を学ぶところまで押さえる。
② 前コマにおいて、様々なベクトル型について実習を進めながら解説したが、本当に正しい型のデータが入力されているか、またデータ型の変更が必要かどうか、プログラム中に確認が必要となる場合も多い。本コマではベクトル型のチェックを行ったり、ある型から別の型に変換を行う場合に使う関数を学ぶ。プログラム中で、よく利用する変数チェック関数は、整数値かどうか判定するis.integer()関数と、文字列かどうか判定するis.character()関数でこれらについて使い方を理解する必要がある。その他にも、ベクトル型に応じた変数チェック関数(例えば,実数値を判定するis.numeric()関数や、因子を判定するis.factor()関数など)が存在する点についてここでは押さえておく。
③ 前コマにおいて、データ型のチェック関数について学んだが、特に文字列操作に関しては、様々な処理の方法があることをここでは学ぶ。文字列処理にはいくつか関数がある。文字ベクトル内のデータを置き換えるchartr関数、文字ベクトルの各要素について指定する文字列が含まれているかどうかを判定するgrep関数、文字ベクトルの文字数を数えるnchar関数、文字ベクトル同士を結合するpaste関数、文字ベクトルの指定の範囲の文字を抽出するsubstring関数、文字ベクトルをカンマごとに区切った後、ベクトルに変換するunlist関数などは、非常によく利用する関数であるため、使い方含めしっかりと本コマで押さえておく。
キーワード ① ベクトル型 ② NULL ③ NaN ④ 文字ベクトル ⑤ 文字列処理
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、データ型の種類や、ベクトル型の変換処理については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(特に文字列操作に関する関数の使い方など)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

5 関数の作成 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第5回は、function関数を使って関数を自作する方法を学ぶ。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P48

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P49-50

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P50-59
コマ主題細目 ① 自作関数のひな形 ② 引数がない関数の動作 ③ 引数が複数個ある関数の動作
細目レベル ① 関数については、第2回の講義でいくつか紹介し、実行してその動作を確認した。R言語では、紹介したsqrt()関数やmean()関数のような関数を自分で定義することができる。自分で関数を定義するためのひな形は以下通りである。なお、「#」以降はコメント文と呼び、入力しても実行時は無視されることを理解しておく。
関数名 <- function(引数){
#計算処理1行目
#計算処理2行目
・・・
return(返り値)
}
この中の「引数」は、関数を実行する際に前もって指定する値で、「入力値」とも言う。また、「返り値」は、関数を実行した結果の値である。ただし、引数に関しては、引数がない場合、1つの場合、2つ以上の場合があり、動作が若干異なってくる。本コマでは、引数の数の違いによって、どのように記述方法や動作が異なるのか、確認する。

② 引数がない場合を見てみよう。引数が無い関数の代表的な例として、date()関数があげられる。関数date()は、「現在の日時を表示する」関数であり、Excelでも馴染み深いものである。このdate()関数は、引数(入力値)が、“無くても動作する”もので、「処理→処理2→・・・→処理n→結果(返り値)」のような動作をすることを理解する。同様に、「引数がなくても動作する」関数を自分で定義してみる。先ほどの記載フォーマットを参考に、実際にソースコードを入力してみる。なお、「ソースコード」とは、プログラムの事である。
myfunc00 <- function(){
x <- 1
return(x)
}
この自作関数は、「myfunc00()」と入力し実行すると,「1」を出力するものであることを理解する。

③ 引数が複数個ある関数の例として、sqrt()関数(引数が一つ)や、log()関数(引数が二つ)がある。まず、関数sqrt()は、「入力された値の平方根を表示する」関数であり、「引数(入力値)が1つで、結果として1つの値を返す」のが特徴である。また、関数log()は、「入力された値の対数を表示する」関数であるが、「引数(入力値)が2つで、結果として1つの値を返す」関数である。本コマでは、この違いについて実行結果も踏まえ理解する。その他、返り値(計算結果)が2つ以上あるような関数を定義することもできる。この場合の関数の書き方は、前コマと同様ではあるが、関数return()に指定するものをベクトルとする点が異なる。本コマでは、これら関数の実行結果の違いを押さえる必要がある。
キーワード ① 関数 ② function ③ 引数 ④ ソースコード ⑤ 返り値
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、引数や返り値を持つ自作関数の書き方については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(引数や返り値の数の違いによる動作の違いなど)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

6 条件分岐のためのif文 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第6回は、条件分岐処理について、実習を通して学ぶ。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P62

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P63-68

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P62-81
コマ主題細目 ① 論理型ベクトルの復習と演算子 ② 条件分岐if文の使い方 ③ 複数の条件分岐について
細目レベル ① 第5回目の授業で学んだ「論理値型ベクトル」にて、値同士の大小比較を行った結果は、TRUE(真)またはFALSE(偽)を要素とする論理型ベクトルとなることを学んだ。R言語では、大小比較を行うための「比較演算子」がいくつか用意されていることを知っておく必要がある。例えば、「等しい」場合は「==」、「等しくない」場合は「!=」、「≦」の場合は「≦」、「≧」の場合は「≧」、「<」の場合は「<」のように記載する。その他、複数の比較結果を同時に考慮するための「論理演算子」もいくつか用意されている。「NOT(でない)」の場合は「!」、「AND(かつ)」の場合は「&&」、「OR(または)」の場合は「||」という記号を用いる。本コマでは、プログラミングを行う上で頻繁に登場するこれらの演算子について、使い方含め理解しておく。
② 自分で関数を定義する場合、ある条件で計算方法を変えたい場合がある。このような処理を「条件分岐」と呼ぶ。本コマでは、「条件分岐のif文」と「if文+else文」について、「条件分岐」を行う方法を学ぶ。if文のひな形は以下の通りである。
if ( 条件式 ) {
#条件式がTRUEのときに実行される処理
}
上記のif文は、ある条件に合致(TRUE)した場合のみ、{ }(中括弧)内の処理を行うものである。
 また、if文とelse文は、ある条件に合致(TRUE)した場合は“ある処理”を実行し、合致しない(FALSE)場合は“別の処理”を行うときに使用することを理解する。
 なお、if文の条件に合致(TRUE)した場合の処理が1行しかない場合や、else文の後の処理が1行しかない場合は、{ }(中括弧)を省略して書くこともできることを押さえておく。

③ if文やelse文に加えて「else if文」がある。ifとelseとelse ifの3つを使用すると、複数の条件分岐に対応することができることを、本コマで学ぶ。ここで、「if文とelse文を組み合わせる」場合と「if文を並べる」場合の動作と結果の違いについて確認する。まずは、if文とelse文の使用例として独自に関数を作成し実行してみる。次に、「else if」文を「if」文に変更して、同様に実行してみる。これにより、結果が若干異なることを理解し、用途によってこれらを使い分ける必要があることをここでは理解する。同様に、「if文とelse文を組み合わせる」のではなく、「if文を並べる」ことでも同様の処理は可能だが、引数によって結果に違いがあることには注意が必要であること、押さえておく。
キーワード ① if 文 ② else 文 ③ else if 文 ④ 条件分岐 ⑤ 関数
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、条件分岐if関数については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(if文、else if文など)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

7 繰り返しのためのfor文 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第7回は、繰り返し行う反復処理について、for文の使い方を学ぶ。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P84

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P84-105

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P84-105
コマ主題細目 ① for文の定義 ② for文+if文 ③ for文ではなくwhile文
細目レベル ① 自分で関数を定義する場合、似たような処理を繰り返し行いたくなる場合がある。このような処理を「反復処理」という。本コマでは、for文を用いた「反復処理」を行う方法を学ぶ。for文は、以下のようなひな形を使う。
for(ループ変数 in リスト){
#繰り返す処理1
#繰り返す処理2
}
「ループ変数」は通常、「i」「j」「k」などの文字が使用され、「リスト」は通常「1:3」などの数値ベクトルが使用される。例えば、for ( i in 1:3 )と書いた場合は、「1〜3回繰り返す」ことになる。これらの動作については、例題を実行して確認する。本コマにおいては、まず、実行イメージを授業コマ用オリジナル配付資料にて共有した後、実際に独自関数を作成し、動作を確認するところまで押さえる。

② for文の中で、if文やelse文を用いた条件分岐を行うこともできる。例えば、処理を1〜10回繰り返し、もし、処理回数が偶数回の場合のみ「変数xに1を足す」という場合は、以下のようにソースコードを書くことができる。
for(i in 1:10){
if (i && 2 == 0) x <- x+1  #2で割り切れる場合のみx+1をする
}
このように、繰り返しのためのfor文と、条件分岐のためのif文を組み合わせることで、様々な処理を行うことができることを、本コマでは押さえる。本コマでは、これらの活用事例の一つとして練習問題に取り組み、実際にソースコードを書いて実行することで、学びの定着化を図る。

③ 「反復処理」を行う際、for文以外にwhile文を使う方法もある。while文は、ある条件が成り立っている間(TRUEの間)は、ずっと処理を繰り返すものである。for文のように、ループ変数のリストの個数だけ処理を行うと繰り返しが終了するものとは異なり、「条件式がTRUEしかとりえない」場合はプログラムが永遠に実行され続けてしまう(無限ループに陥る)ので注意が必要である。While文は、以下のようなひな形を使う。
while( 条件式 ){
#条件式がTRUEのときに繰り返す処理1
#条件式がTRUEのときに繰り返す処理2
}
本コマでは、これらの実行結果と確認するため、「変数xに1を足す」処理を3回繰り返す関数を定義し、for文との動作の違いを確認する。

キーワード ① 繰り返し ② for ③ リスト ④ while ⑤ 無限ループ
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、for文やwhile文の使い方については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(for文の実行結果、while文との差異など)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

8 複雑な繰り返し 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第8回は、行列の使い方やfor文のネストについて学ぶ。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P108-123

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P108-123
・馬場真哉:『R言語ではじめるプログラミングとデータ分析』、ソシム、P274-P288

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P108-123
コマ主題細目 ① 行列について ② 複数の繰り返し文 ③ 複数の繰り返し文+条件分岐
細目レベル ① これまでの授業で、「複数の値をひとまとめ」にする概念として「ベクトル」を学んだ。ベクトルは1次元配列(横に長い箱のイメージ)であるが、本コマでは、横にも縦にも箱を用意するイメージである「行列」を学ぶ。ベクトルと行列は、高校時代に学んだ人も多いと思うが、難しいイメージをもつ人がほとんどだと思う。ただ、R言語で利用する「行列」は難しいものではなく、ただ単に「縦横に長い箱」を用意し、その箱にデータを入れて活用するイメージ用いることができる。「行列」は以下の手順で作成する。まず、(1)行列の要素をベクトルで用意する。(2)関数matrix( ベクトル, 行数 , 列数 ) でベクトルから行列に変換する。これだけで行列を作成できることを、ここでは押さえておく。
② これまでの学習で、for文やwhile文を使った「反復処理」を行う方法を学んだ。本コマでは、「複数の繰り返し文」を行う方法として、例えば、for文の中でfor文を使うというネスト構造のプログラミングを学ぶ。ここでは、「複数の繰り返し文」を行う例として、関数matrixを利用した2重ループを実現するコードの書き方をここでは押さえておく。また、本コマでは、for文の応用として、添え字を変更しながら、ベクトルに対して計算を行う方法を学ぶ。さらに、for文は重要な構文ではあるが、実はR言語では、for文を使わない方法での繰り返し処理も可能であるため、for文の利用頻度はやや低いことについても、ここでは押さえておく。
③ 「複数の繰り返し文」の中で「条件分岐」を行うこともできることをここでは学ぶ。例えば、2つのfor文の中でif文を適用することを試してみる。また、「複数の繰り返し文」の中で「条件分岐」を行うもう一つの例として、引数としてベクトルを指定すると点数の順位を返す関数であるranking()関数を学ぶ。これは、例えばAさん〜Gさんの7人の点数をベクトルxに格納し、このベクトルをranking関数の引数に設定すると、これを関数内部で点数が高い順に「1番、2番、…」と順位付けし、出力する関数である。本コマでは、このranking関数の動作について、実際にコードを実行しながら理解するところまで押さえる。
キーワード ① 行列 ② matrix関数 ③ 複数繰り返し文 ④ ネスト構造 ⑤ ranking関数
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、複雑なfor文やwhile文については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(行列について、matrix関数について、for文のネストなど)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

9 グラフ作成の基本 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第9回は、plot関数を用いたグラフ作図について学ぶ。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P126-127

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P127-131

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P132-137
コマ主題細目 ① グラフの作成手順 ② グラフの作成手順 ③ グラフを作成するために気をつけておくこと
細目レベル ① ここまでの授業で、Rプログラミングの基本は身につけたと思う。ここからはやや高度な内容になるが、どれも理解しておくべき内容となっている。予習復習も欠かさず、内容を押さえて欲しい。本コマでは、R言語によるグラフの作成について学ぶ。グラフ自体はExcelでも十分なグラフは作成できるが、プログラミング処理を行いながらグラフに書き出す、類似処理を関数として登録しておき、何度か利用する(関数を呼び出す)処理をする場合などは、ExcelよりもRの方が便利なところもある。本コマでは、高水準作図関数を用いて、1枚の完成された図を描く。例えば、plot()関数を使って散布図を描いたり、hist()関数を使ってヒストグラムを描いたりするところまで押さえる。
② 本コマでは、R言語で一番よく使われる高水準作図関数のplot()関数を理解する。plot関数は、plot( 横軸のデータ , 縦軸のデータ , xlim=横軸の範囲 , ylim=縦軸の範囲 , xlab=横軸のラベル , ylab=縦軸のラベル , pch=マーカーの種類 , type=プロットの種類 , col=色 , lty=線の形式 ) というひな形となっており、引数が非常に多い反面、いろいろなデータを簡単にグラフ化できる点を確認しておく。本コマでは、このplot関数を用いて、散布図や折れ線グラフの作成、実線や破線、色の変更、ポイントの種類の変更など、作図を行うことで理解するところまで押さえる。
③ さらに、関数par()を用いて、1つの画面に4つのグラフ作成する方法を学ぶ。ここでは、4つの散布図を作成する実習を行う。関数は、par( mfrow = c( 3 , 2 ) , oma=c( 0 , 0 , 0 , 0 ) )のように記述し、mfrowパラメータにより画面を分割し1枚の画面に複数個(ここでは、縦3つ、横2つ)のグラフを描くよう設定する。また、omaパラメータによってグラフの外側(底辺、左側、上側、右側)の余白の大きさを設定することも可能である。このように作成したグラフは、RStudioの右下画面の[Plots]→[Export]から、画像ファイルやPDF、クリップボードなどに出力することが可能となる点を押さえておく。
キーワード ① グラフ ② 作図関数 ③ plot関数 ④ par関数 ⑤ 散布図
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、plot関数によるグラフ作成については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(plot関数の使い方や画像ファイル作成など)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

10 アルゴリズムを理解する 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第10回は、アルゴリズムとは何か、バブルソートを例にその動作について学ぶ。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P140

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P140-170
・George T. Heineman『アルゴリズムクイックリファレンス』、O'REILLY、P3-11

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P140-149
・George T. Heineman『アルゴリズムクイックリファレンス』、O'REILLY、P63-114、P115-149
コマ主題細目 ① アルゴリズムの重要性 ② アルゴリズムの選び方 ③ 様々な整列アルゴリズム
細目レベル ① アルゴリズムとは何か、簡単に言えば「問題を解決するための手順や計算方法」を指す言葉であり、答えを求めるときの手順を具体的かつ明確に示したものだと言える。近年NHK eテレで放送されている「アルゴリズム体操」も同意である。つまり、アルゴリズムとは、その手順に沿っていれば誰でも同じ答えが得られるものである。プログラミングにおいて、ある環境の下で、どのアルゴリズムを使うべきか知っていることは、作成したプログラムに大きな違いをもたらすであろう。特に、プログラムを共同開発するような場合は、共通認識のアルゴリズムを使うことで、安定した動作・保守が行えることを、本コマでは押さえておく。
② アルゴリズムは世の中に無数に存在し、データの種類や量、精度、粒度、解くべき課題、目的によって選ぶべきアルゴリズムは異なってくる。では、どのような問題解決において、どのようなアルゴリズムが適切なのであろうか。問題を解くアルゴリズムを選択する際、一般的には、プログラム上で、あるデータ集合に対して、どのアルゴリズムが一番高速か予測することが重要である。どんなに良いアルゴリズムであっても、計算速度が遅い場合は実用的ではない。アルゴリズムの期待計算時間を考慮して最適なものを選択することになるが、ここで本質的に数学の知識が必要となる。ただ、昨今の情報社会において、ほとんどの問題・課題の場合、解決のためのアルゴリズムは明確化されており、基本的なアルゴリズムを学ぶことで知識を習得できることを本コマでは理解する。
③ 本コマでは、プログラミングにおいて最も直感的に利用できる整列アルゴリズム「バブルソート」について解説し、実際にコーディングしつつ、その動作を確認することで理解する。この「バブルソート」は、ある数列を昇順または降順に並べ替えるアルゴリズムであり、動作が分かりやすい反面、計算コスト(時間)が高く、高速処理をするには向いていない。整列アルゴリズムは、その他にも数多く存在するが、本コマでは、その他の「クイックソート」や「マージソート」、「ヒープソート」などとの動作の違い、計算コストの違いを把握し、アルゴリズムの違いによる結果や処理速度の違いを理解する。また、その他、探索アルゴリズムやグラフアルゴリズムなどについても、どのようなものなのか理解するところまで押さえる。
キーワード ① アルゴリズム ② 計算手順 ③ バブルソート ④ マージソート ⑤ クイックソート
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、アルゴリズムやバブルソートについては、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(アルゴリズムとは、整列アルゴリズムの種類、いろいろなアルゴリズムについてなど)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

11 ゲームを作ってみよう(これまでの復習) 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第11回は、これまでの学びを活かしてゲームプログラミングを実習にて行う。
【コマ主題細目①】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P179-180

【コマ主題細目②】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P180-183

【コマ主題細目③】
・舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、P183-186
コマ主題細目 ① R言語によるゲームプログラミング ② トランプゲーム「ブラックジャック」を作る ③ 懐かしい「○×ゲーム」を作る
細目レベル ① 第11回目の講義は、R言語によるゲームプログラミングである。これまで学んだ基本機能・関数を利用して、簡単なゲームを作成する。ゲームプログラミングというと、非常に難しいイメージはあるが、これまで学んだ関数の作成方法、ベクトル型の理解、繰り返し文を用いた反復処理、if文を用いた条件分岐、文字列処理などを活用すれば、簡単なゲームプログラミングが可能となる。ゲームプログラミングとはいえ、特別な処理を記載する必要もなく、独自関数をいくつか作成し、それらを呼び出すメインの関数を作成することで実現できることを理解する。これらのプログラミング技法は、今後のデータ処理にも援用できるもので、本コマではゲーム実行関数の作成方法や考え方など、しっかり押さえる。
② まずは、ブラックジャックを行う関数を作成する。ブラックジャックは2人で対戦するトランプゲームの一種で、カードの合計点数が21点を超えないようにして、相手よりも高い点数を獲得することがゲームの目的である。最初にカードが2枚配られ、そこからゲームがスタートする。その後、必要に応じて、1枚ずつ何枚でも追加できる。ただし、21点を超えた地点で負けが決まるため、枚数の追加はそれほど多くはならない。点数は、トランプの2〜10はそのままの点数、Jack(11)、Qeen(12)、King(13)はすべて10点とする。また、Ace(1)は特別で、現在の点数の合計が21点を超えない場合は11点、超える場合は1点として扱う。また,手持ちのトランプが2枚で「A(1)とJ(11)」の場合は、『ブラックジャック』として、無条件勝ちとし、合計点が22点以上の場合(バースト)は無条件で負けとなる。このルールに基づくプログラミングを行い、正しく入力・実行できるところまで、本コマでは押さえる。
③ 次に○×(まるぺけ)ゲームを実施する関数を構築する。ルールはよく知っていると思うが、3×3の9マスの中で、○か×を3つ並べたら勝ち、というものである。本コマでは、「何もないマス:0」、「自分のマーク:1」、「相手のマーク:2」としてゲームを行う。この○×ゲームは、第8回目の授業で学んだ「行列」を用いてプログラミングを行う。○×ゲームの3×3のマスを「3×3の行列」に見たて、それぞれの要素に数字を入れることでゲームを実現している。これらのゲームプログラミングは、単に遊ぶためではなく、変数の設定や作成する関数の引数や返り値の設定、判定アルゴリズムの検討、処理内容のパッケージ化など、広く学習に有効であることを理解する。
キーワード ① ゲームプログラミング ② 関数作成 ③ 行列 ④ matrix関数 ⑤ アルゴリズム
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、ゲームプログラミング、行列の活用については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(関数の作成方法、行列関数の利用など)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

12 データフレームを利用した表の作成と読み込み 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第12回は、データフレームを活用したファイルデータの読み込み・書き出しについて学ぶ。
【コマ主題細目①】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P34-46

【コマ主題細目②】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P48-P53

【コマ主題細目③】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P53-P57
・松村優哉ら:『RユーザのためのRStudio[実践]入門』、技術評論社、P30-42

【コマ主題細目④】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P58-P68
コマ主題細目 ① データフレームを使って表を作成する ② ファイルのパスとインポート ③ Excelファイルの読み込み ④ tibble形式の表を活用する
細目レベル ① 第3〜4回にベクトルデータについて学んだ。本コマでは、このベクトルのかたまりである表形式のデータについて解説し、データフレームを用いて表を作成する方法を学ぶ。まず、各列をベクトルで作成する。作成したベクトルは、data.frame関数を用いて、表形式に格納する方法を学ぶ。次に、格納したデータの内容をRStudioの機能を利用して確認してみる。確認するには、コンソール画面に「View(“表の名前”)」と入力することで画面上に表示できる。次に、表に格納したデータを、格納したデータを取り出す方法を学ぶ。表形式の変数からベクトルを抜き出す方法は、「表の名前$列名」という書き方をする。さらに、表内の列データを置き換えたい場合は、「表の名前[["列名"]] <- 新しい値」とすることで、データを更新することができるところまで押さえる。
② データを分析するには、まず、その膨大なデータをソフトウェア上に読み込む必要がある。このとき読み込むファイルを指定して、実際にRの中に読み込む過程を「インポート」と呼んでいる。インポートする際に、読み込むファイルのある場所を「パス」と呼ばれる適切な文字で指定する必要がある。パスについて十分に理解できていない場合、読み込みたいファイルをうまく指定できず、データをインポートすることができない。また、パス(Path)は道筋という意味の英単語で、ファイルの置き場所を表している。本コマでは、ファイルが置いてある「ディレクトリ」や「絶対パス」「相対パス」などをまず理解し、Windowsを例として、パスの概念とファイル構造についても理解するところまで押さえる。
③ データは様々なファイル形式によって存在するが、一般的によく利用されているファイル形式は、Excel形式とCSV形式(カンマ区切り)である。Excel形式のデータであれば、元データを修正することが容易であり、Excel上でデータを加工・整形した後でRに読み込むと集計作業の手間が省ける場合がある。本コマでは、readxlパッケージに含まれる「read_excel関数」を利用して、ExcelファイルのRに読み込む方法を学ぶ。使い方の詳細については、「?read_excel}コマンドを入力し、ヘルプファイルを確認してみよう。read_excel関数には、様々な引数があり、適切にpathやsheetの設定を行うことで、うまく読み込むことができるところまで、押さえよう。
④ 第8回において行列を用いた複数行データの扱い方を学んだ。しかし、実際にビッグデータを分析しようとした場合、行列や配列で扱えないような大規模なデータを使う必要がある。①において「データフレーム」という概念を学び、Rの標準機能であるデータフレーム関数(data.frame)を使って表の作成を行ったが、本コマでは、ビッグデータや統計分析を扱いやすいtibble形式の表について学ぶ。tibble形式の表は、data.frameよりも速度の面で非常に優れており、また、データ分析においても改善されており、今後はこちらを利用することを学ぶ。また、本コマでは、tibbleのread_csv関数を利用して、CSV形式(カンマ区切り)のデータの読み込みも行う。
キーワード ① パス ② ディレクトリ ③ インポート ④ データフレーム ⑤ tibble
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、R言語におけるデータフレームについては、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(データフレームやファイルデータの読み込みなど)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

13 分析データを加工するために必要なこと 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第13回は、データを加工するために必要なTidyデータについて学ぶ。
【コマ主題細目①】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P70-79

【コマ主題細目②】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P82-P88

【コマ主題細目③】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P90-P94
コマ主題細目 ① 整然データと雑然データ ② tibbleパッケージの利用 ③ 様々なファイル形式のデータ読み込み
細目レベル ① データフレームはさまざまなデータを格納できるが、無秩序にデータを格納していると分析がしにくくなってしまう。そこで、データの構造とデータの意味が対応するように作られた「整然データ(Tidyデータ)」という考え方を用いる。整然データとは、『Tidy Data』by Hadley Wickham, 2014によると、
①1つの変数が列を形作る
②1つの観察が行を形作る
③1種類の観察単位が表を作る
という原則を満たすものである。これにより、データがどのような値を持つか、どのような変数なのかがデータからすぐに分かる。逆に、整然ではない形式で作成されたデータを「雑然データ(Messyデータ)」と呼び、本コマでは、これらのデータの違いまで押さえる。

② 第12回目において、標準関数は非常に時間がかかるため(system.time()関数で処理時間計測ができる)、あまり実用的ではないことを学んだ。本コマでは、tidyverseパッケージ用いたデータの読み込み、加工について学ぶ。Rでデータ解析を行う場合、「insutall.packages("tidyverse")」というコマンドでパッケージをインストールし、続けて「library(tidyverse)」と入力することで、データ解析に必要な様々な機能が利用可能になる。特に、データのインポートには「readr」、データ加工には「tidyr」「dplyr」「stringr」「forcats」、データ可視化には「ggplot2」のパッケージが利用頻度が高いことを理解しておく。
③ 本コマでは、Rにおける重要なパイプ関数について学ぶ。Rでは、パイプ関数と呼ばれる特殊な関数が「magrittr」というパッケージに含まれている。この関数を利用すると、スクリプトの実行順序が分かりやすくなる。このパイプ関数は、「%>%」という記号で示すが、関数と言いつつ、これまでのように「関数名()」という形で記載しないことを理解しておく。なお、パイプ関数は、ctrl(command)+shift+mキーを押すことで挿入することができる。本コマでは、パイプ関数の利用方法について、授業中に出す演習で、その実ソースコードを確かめながら動作を理解すること。その他、「正規表現」についても,少しだけ触れておく。
キーワード ① Tidyデータ ② Messyデータ ③ tidyverse ④ パイプ関数 ⑤ %>%
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、TidyデータやMessyデータ、tidyverseパッケージ、パイプ関数など、分からない部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(整然データやtidyverseパッケージ、パイプ関数など)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

14 ggplot2関数を用いた高度な可視化 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第14回は、ggplot2関数を用いた可視化について学ぶ。
【コマ主題細目①】
・藤井亮輔:『超入門!Rでできるビジュアル統計学』、金芳堂、P10-12

【コマ主題細目②】
・藤井亮輔:『超入門!Rでできるビジュアル統計学』、金芳堂、P142-P152

【コマ主題細目③】
・藤井亮輔:『超入門!Rでできるビジュアル統計学』、金芳堂、P142-P152
コマ主題細目 ① ggplot2関数の使い方 ② ggplot2関数による高度なグラフデータの可視化 ③ 地理空間データによるコロプレスマップの作成
細目レベル ① 散布図とは、2つの量的な変数をプロットして相関関係をみるグラフであり、より実践的なデータ解析に近いグラフである。本コマでは、散布図や面グラフなどを作成する方法を学ぶ。ここでは、ggplotと呼ばれる描画関数を用いる。ggplot関数を利用するためには、tidyverseパッケージをインストールする必要があり、これにより、様々な美しいグラフがかけるようになる。tidyverseパッケージは、第12回目の講義で学んだが、今回は、その中に含まれている「dplyr」パッケージを利用して統計処理を行う。dplyrパッケージをインストールすると、パイプとよばれる演算子(%>%)を使ってデータの受け渡しを行うことをここでは理解する。
② ggplot2パッケージを読み込み、様々なグラフの可視化について学ぶ。データをグラフ化は、第9回目でplot関数により実施したが、本回では、より高度で見栄えの良いグラフがさくせいできるggplot2パッケージを利用する。作成手順はplot関数と大きくは変わらない。本コマでは、ggplot2関数を用いて、縦棒グラフや散布図、折れ線グラフ、ヒストグラム、密度グラフなど様々な種類のグラフを表示している。
③ ggplot2パッケージを読み込み、地図を使った可視化を学ぶ。本コマでは、公開されている愛知県の地区町村別のシェイプファイルと国勢調査で発表されているデータを用いて、地図データを描く方法を学ぶ。まずは、愛知県の基盤地図情報のファイルを入手し、そのシェイプファイル内のgeometry情報を使用して、愛知県の基本的な地図を表示してみる。次に、例えば愛知県の市区町村別死亡率などのデータを用いて、白地図上にデータごとに色分けをして塗りつぶした「コロプレスマップ」を作成する。その他にも、ggpolt2関数を利用することで、様々な統計値などを地図上に可視化できることを学ぶ。特に、バブルマップは、卒業論文などでデータを可視化する際に活用できる可視化手法であり、いろいろな事例を確認しつつ利用方法を学ぶ。
キーワード ① プログラミング ② パッケージのインストール ③ データの加工 ④ データの集計 ⑤ 可視化
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、当該回の範囲である、ggplot関数による描画については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。
【復習】授業終了後は、本日の講義内容(ggplot関数、地理空間情報、コロプレスマップ、バブルマップなど)について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

15 プログラミング演習~データ処理の流れを体験する~ 科目の中での位置付け 本講義では、まず、第1回のガイダンスにおいて授業の進め方や期末試験についての解説を行う。また、プログラミングの知識がなぜ必要なのか、どのように役に立つのか、実社会での応用を含め理解する。第2回は、Rプログラミングの実行環境の整備と開発用アプリケーションであるRStudioをパソコンにインストールし、次回以降のプログラミング演習の準備を行う。第3回は、変数とベクトルについて理解する。第4回は、様々なベクトル型と文字列操作について学ぶ。第5回は、関数の自作について学ぶ。第6回は、条件分岐if文について使い方を学ぶ。第7回は、反復処理であるfor文やwhile文について、その動作とコードの書き方について、また第8回は、行列や複雑な繰り返し文について理解する。第9回は、Rでのグラフの作成方法を学び、第10回は、アルゴリズムとは何か、実習を通して学ぶ。第11回は、これまで学んだ知識を生かしてゲームプログラミングを行う。さらに、第12回は、データフレームという概念を理解しデータの入力方法を学び、第13回は、データを分析するために必要な知識を、第14回は、plot関数を発展させたggplot2関数を用いて、より高度な可視化を行う。第15回は、これまでの授業で学んだ知識と技術を活かし、データ分析の一連の工程を体験することでプログラミングの流れを身につけるとともに総復習を行う。このような科目内での位置づけの中で、第15回は、これまで学んできた内容を踏まえ、データの読み込みから簡単な統計分析までのプログラムを作成する。
【コマ主題細目①】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P48-P308

【コマ主題細目②】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P48-P308

【コマ主題細目③】
・西田典充:『Rでらくらくデータ分析入門』、技術評論社、P48-P308
コマ主題細目 ① プログラミングのための掟 ② ベクトル化コードによる高速化 ③ これまでの総復習
細目レベル ① これまで学んできた内容を踏まえ、データの読み込みから簡単な統計分析までのプログラムを作成する演習を行う。演習は、(1)ファイルデータの読み込み、(2)データの加工、(3)データの集計、(4)データの可視化、の一連の流れにより行う。まずは、tibbleパッケージを利用して、Excel形式やCSV形式のファイルを読み込む。読み込んだファイルのデータを分析しやすい形式に加工する。加工したデータを用いて簡単な基礎集計を行い、最後にグラフ化することを試みる。本コマでは、これまでの授業の学びの集大成として、自分でソースコードを入力し、一人で分析できるようになるところまで押さえる。
② サイズの大きなデータの分析を行う場合、プログラムの実行速度が速くなければ仕事が進まないことはイメージし易いかと思う。R言語で処理速度が高速なプログラムソースを書くためには、工夫が必要である。Rプログラムでは、「論理テスト」「添字操作」「要素単位の実行」の3つを活用することで高速なコードを書くことができる。ここで大事なことは、ソースコードをベクトル化することである。ベクトル化されたコードは、入力値としてベクトルを受け取り、ベクトル内の個々の値を同時に操作できることが特徴である。本コマでは、ベクトル化されていないソースコードと、ベクトル化されたソースコードを比較し、その違いを理解したうえで、実習にて動作を確認し、理解する。
③ 再現性のある分析やデータ加工を考えたとき、基本的には分析が終了した時点で、その結果を保存する。ただし、データの処理そのものに時間がかかってしまうときは、一部の処理が終わった状態の「中間データ」を保存する。特にRでは、非常に大きいデータを取り込んだり、大量のファイルを分析したりするとき、データをTidyデータに変換する際に長い処理時間がかかることがある。そこで、Tidyデータに変換した後のデータを保存することができれば、次回以降の分析の際、データの加工時間を省くことができる。本コマでは、Rで利用できるファイルの保存形式について、様々な方法を確認するとともに、実際の保存方法(コマンド等)の演習を行う。
キーワード ① ソースコード ② tibble ③ ベクトル化 ④ 中間データ ⑤ 保存
コマの展開方法 社会人講師 AL ICT PowerPoint・Keynote 教科書
コマ用オリジナル配布資料 コマ用プリント配布資料 その他 該当なし
小テスト 「小テスト」については、毎回の授業終了時、manaba上において5問以上の、当該コマの小テスト(難易度表示付き)を実施します。
復習・予習課題 【予習】本コマシラバスのコマ主題細目の細目レベルを熟読し、授業の内容を確認しておくこと。また、該当回の「教材・教具」欄を確認し、該当回に記述のある参考書籍の範囲を読み、内容理解した上で授業に参加することが望ましい。特に、これまで学んできた授業内容については、参考書籍の他、インターネットで調べるなど、分からなかった部分や疑問に思った点は事前にしっかり把握しておき、授業に備えることが重要である。また、tibbleパッケージとはどのようなものだったのか、予め過去の授業資料から予習しておくことを勧める。
【復習】授業終了後は、本日の内容に加え、これまで14回の内容について資料を見返すことが重要である。特に、予習段階において分からなかった部分については、授業後にもう一度確認するなどし、理解を定着させることが重要となる。また、授業内で実施した復習テストやmanabaの小テストの問題については必ず確認し、同類の問題に対して答えられるよう、設問の内容と答えを理解しておこう。

履修判定指標
履修指標履修指標の水準キーワード配点関連回
プログラミングの意義、Rの実行とRStudioの使い方 Rの実行環境の整備(インストールや起動、環境設定など)、プロジェクトの読み込み、実行ができること。また、基本的な計算の結果表示や、演算子(+、-、*、/)、計算結果の意味を理解していること。さらに、関数については、数学計算を行うものや、グラフを描く関数、文字列を操作する関数、など様々なものがあることを理解しておくこと。特に、数学関数に関しては、関数と関数の意味について理解しておくこと。 R言語、RStudio、統合開発環境、プロジェクト、Run、実行 5 第1〜2回
変数の設定とベクトルの定義 R言語の基本操作である、変数の設定と代入、ベクトルの設定方法について理解しておくこと。また、変数名の命名規則と、変数名として利用できない予約言語(break、else、for、if、FALSE、TURE、in、while)については、対象となるWordについて理解しておくこと。さらに、ベクトルデータについては、データの種類とデータ型の変更について、それぞれ関数の役割やチェック関数などについても理解しておくこと。 変数、ベクトル型、代入、実数値型、因子型、日付値型、NULL、NaN 10 第3〜4回
独自関数の作成 R言語で作成できる自作関数について、定義や引数の設定、予約言語、function()による自作関数の構造やフォーマットについて理解しておくこと。また、関数の「引数」や「返り値(return)」については違いと利用方法の違いについて理解しておくこと。特に引数が複数ある場合について、どのように設定するのか、また結果をどう受け取るのかについて理解しておくこと。 function、関数、ソースコード、引数、返り値、処理 10 第5回
条件分岐と反復処理の理解 論理型ベクトルによる大小の比較、そのための比較演算子、論理演算子を理解しておくこと。if文やif else文、複数条件分岐、if文のネスト構造について、使い方や意味を理解しておくこと。反復処理であるfor文や、for文とif文による反復処理の条件分岐、while文とfor文の違い、複数の繰り返し文の意味と使い方などを理解しておくこと。 論理型ベクトル、条件分岐、if、else if、論理演算子、比較演算子、for、while、TRUE、条件式、反復処理 20 第6〜8回
グラフの作成 グラフを描画する際に用いるggplot2パッケージや、plot関数、ggplot関数について理解していること。特に、描画するグラフの種類ごとに異なるコマンドやそのパラメータの意味は理解しておくこと。また、ggplot2パッケージを用いた、データの読み込みから可視化までの一連の流れを理解しておくこと。 グラフ、CSV、plot関数、par関数、hist関数、パラメータ、Export 20 第9回、第14回
アルゴリズムの理解 アルゴリズムとは何か理解していること。授業で学んだ「バブルソート」の手順とその言葉の由来(大きい値が泡のようにブクブクと浮かんでくるため)、それをRで実現するためのプログラムについて理解しておくこと。特に、バブルソートで重要となる配列の比較やtemporary変数、値の入れ替え、最終的なソート結果について理解しておくこと。 アルゴリズム、整列、バブルソート、マージソート、クイックソート、コーディング 10 第10回
データフレームとデータ入出力 データフレーム(data.frame、tibble)、整然データ(Tidy data)、雑然データ(Messy データ)について、それぞれどのようなものか説明できること。パスやディレクトリ、ワーキングディレクトリの設定方法や重要性を理解できていること。tidyverseパッケージ群に含まれて居るパッケージやパッケージの確認方法、パッケージの使い方を理解できていること。また、Excel形式のファイルやCSV形式のファイルからデータを読み込む方法と、読み込んだデータの処理の方法を理解しておくこと。 データフレーム、整然データ、雑然データ、読み込み、ファイル、read_csv、tidyverse、パッケージ 15 第11〜13回
ソースコードの掟 Rパッケージとはどういうものか、パッケージの使い方を理解していること。データの読み込みから統計解析、可視化まで、一連のデータ処理の手順を理解していること。中間データの作成目的や作成方法、プログラムの高速化の工夫について理解しておくこと。データの保存、書き出しについてのプログラムを理解しておくこと。パイプ関数について、どのようなものか、使い方ならびにプログラムの書き方を理解しておくこと。 パッケージ、統計関数、高速化、中間データ、パイプ関数、保存、書き出し、読み込み 10 第13回、第15回
評価方法 筆記試験(100%)により評価する。 *成績発表後、教務課にて試験に関する総評が閲覧できます。
評価基準 評語
    学習目標をほぼ完全に達成している・・・・・・・・・・・・・ S (100~90点)
    学習目標を相応に達成している・・・・・・・・・・・・・・・ A (89~80点)
    学習目標を相応に達成しているが不十分な点がある・・・・・・ B (79~70点)
    学習目標の最低限は満たしている・・・・・・・・・・・・・・ C (69~60点)
    学習目標の最低限を満たしていない・・・・・・・・・・・・・ D (60点未満)
教科書 なし
参考文献 (1)舟尾暢男:『Rで学ぶプログラミングの基礎の基礎』、カットシステム、2,800円+税 (2)西田典充:『Rでらくらくデータ分析入門』、技術評論社、2,980円+税 (3)藤井亮輔:『超入門!Rでできるビジュアル統計学』、金芳堂、3,600円+税 (4)松村優哉ら:『RユーザのためのRStudio[実践]入門』、技術評論社、2,600円+税 (5)増井敏克『図解まるわかりプログラミングのしくみ』、翔泳社、1,680円+税 (6)増井敏克『基礎からのプログラミングリテラシー』、技術評論社、1,880円+税 (7)George T. Heineman『アルゴリズムクイックリファレンス』、O'REILLY、3,200円+税
実験・実習・教材費 なし