%#DVIPDF dvipdfmx -f index.txt
\documentclass[11pt]{jbook}
\addtolength{\topmargin}{-2cm}
\addtolength{\textheight}{4cm}
\addtolength{\textwidth}{2cm}
\addtolength{\oddsidemargin}{-1cm}
\addtolength{\evensidemargin}{-1cm}
%\usepackage{listings}
%\usepackage{graphicx}
\usepackage[dvipdfmx]{graphicx}
\usepackage{listings, jlisting}
%\usepackage[sectionbib]{chapterbib}
\usepackage{ascmac}
\usepackage{longtable}
\usepackage{geometry}
\usepackage{subfigure}
\usepackage{tabularx}
%\usepackage{boites}
%\usepackage{boites,boites_exemples}
\renewcommand{\bibname}{参考文献}
\geometry{textwidth=160mm, textheight=225mm}
\makeatletter
\def\maketitle{%
  \null
  \thispagestyle{empty}%
  \vfill
  \begin{center}\leavevmode
    \normalfont
    {\LARGE \@title\par}%
    \vskip 1cm
    {\Large \@author\par}%
    \vskip 1cm
    {\Large \@date\par}%
  \end{center}%
  \vfill
  \null
  \@thanks%\vfil\null
  \cleardoublepage
  }
\makeatother
 
\title{プログラミング教室の運営と手引の作成}
\author{廣瀬研究室 4年\\C1160497 亀谷千香子\\}
\date{}
 
  

\usepackage{url}	% required for `\url' (yatex added)
 
\usepackage{eclbkbox}	% required for `\breakbox' (yatex added)
\begin{document}
\maketitle
 
%\tableofcontents
 
\begin{center}
 {\bfseries 概要}
\end{center}
2020年度からの小学生プログラミングの必修化に向けて文部科学省では小学校プログラミング教育の手引を公開している。普段の生活の中で身近な家電、自動車にはコンピュータが内蔵されており、そのコンピュータを動かしているのはプログラムである。そのため、仕組みを理解し情報を適切に活用、選択し問題を解決していくことが重要と考えられているためプログラミング教育が導入される。
小学生のプログラミング教育で身につけたい力は、「知識及び技能」、「思考力、判断力、表現力等」、「学びに向かう力、人間性等」である。また、小学校だけのプログラミング教育だけではなく、外部のプログラミング教室も年々増加している。しかし、プログラミング教室を企画・運営をするにはどの人を対象とするのか、道具は何を準備するのか、教える体制、準備期間など決め方が分からない。また、そのような情報について詳しくまとめてあるものがWeb上で公開されていない。そのため、プログラミング教室を運営するための手引が必要であると考えた。


本研究では、プログラミング教室運営のための手引を作成することを目的としている。
手引は、東北公益文科大学の私立大学ブランディング事業の一環として小学生向けプログラミング教室「Rubyてらこった」の取り組みから作成する。Rubyてらこったでは、大学生がプログラミング教室を企画・運営し、小学生にプログラミングを教えた。プログラミング教室に参加した小学生にアンケート調査、授業の様子、作成したプログラムからプログラミング教育を通して、「知識及び技能」、「思考力、判断力、表現力等」、「学びに向かう力、人間性等」、「工夫する力」、「伝える力」が身に付けることができたという結果になった。そのことから、Rubyてらこったの活動を踏まえて手引を作成した。(764文字)

\clearpage
\tableofcontents
\clearpage
\chapter{はじめに}

2020年度に小学生のプログラミング教育が必修化になる。小学生プログラミングの必修化に向けて文部科学省では小学校プログラミング教育の手引など公開している。普段の生活の中で身近な家電、自動車にはコンピュータが内蔵されており、コンピュータを動かしているのはプログラムである。そのため、仕組みを理解し情報を適切に活用、選択し問題を解決していくことが重要と考えられているためプログラミング教育を導入される。プログラミング教育を通して身につけたい力として「知識及び技能」、「思考力、判断力、表現力等」、「学びに向かう力、人間性等」が述べられている。
また、小学校内だけのプログラミング教育だけではなく、外部のプログラミング教室の開催も年々増加している。そのことから、小学生のプログラミング教育の必修化、プログラミング教室の開催状況から述べていく。

\section{小学生プログラミング教育の必修化}\label{hissyu}
普段の生活の中で身近な家電、自動車にはコンピュータが内蔵されており、コンピュータを動かしているのはプログラムである。そのため、プログラム仕組みを理解し情報を適切に活用、選択し問題を解決していくことが重要と考えられているため、2020年度から小学生プログラミング教育が必修化になる。プログラミング教育を通して身につけたい力は、「知識及び技能」、「思考力、判断力、表現力等」、「学びに向かう力、人間性等」である\cite{monbu}。


\begin{description}
 \item[知識及び技能]\mbox{}\\ 
生活でコンピュータが活用されていくことや、問題の解決には必要な手順があること
 \item[思考力、判断力、表現力等]\mbox{}\\
発達の段階に即してプログラミング的思考力を育成すること
 \item[学びに向かう力、人間性等]\mbox{}\\
発達段階に即して、コンピュータの働き、よりよい人生や社会づくりに生かそうとする態度を涵養すること
 \end{description}

\section{小学生の発達段階}\label{dankai}
%小学校の学習指導要領に書いてある主な内容は、表\ref{kamoku}である。小学生にとってプログラミング教育は、発達段階的に難しく感じるのではないかと考える。小学生の発達段階は\ref{sinri}の通りである。
小学校の学習指導要領に書いてあるプログラミングで学ぶ内容は、3 〜6 年生の音楽の授業で様々なリズム・パターンを組み合わせて音楽をつくることをプログラミングを通して学習する場面などである(表\ref{kamoku})。


ピアジェが仮説化する各発達段階での子どもの思考特徴(表\ref{sinri})では7〜12歳(小学校生)は、具体的操作段階である。その段階では、具体物を扱う限りにおいては論理的操作が可能だか、科学的な問題や論理的
変換のようにあらゆる可能な組み合わせを考えねばならぬ問題には困難を示すとある。しかし、12歳以上になる と形式的操作段階となり、経験的事実に基づくだけではなく、仮説による論理的操作や、命題間の論理的関係の理解が可能である。そのため、具体的操作段階である小学生は、プログラミングが難しく感じ、プログラミング教育で身につけたい力が身につかないのではないかと考える。
\\




\begin{table}[h]
  \begin{center}
 
    \caption{科目とプログラミング内容\cite{monbu} より作成}

    \begin{tabular}{|l|l|l|} \hline
         学年 &科目&内容\\ \hline \hline
3〜6年生&音楽&    様々なリズム・パターンを組み合わせて音楽をつくることをプログラミングを\\
         &   &通して学習する場面\\\hline
4年生   &社会&都道府県の特徴を組み合わせて４７都道府県を見付けるプログラムの活用を通して、\\
        &    &その名称と位置を学習する場面\\\hline
 5年生 &算数&プログラミングを通して、正多角形の意味を基に正多角形をかく場面\\ \hline
      6年生&理科 &身の回りには電気の性質や働きを利用した道具があること等をプログラミングを\\
          &     &通して学習する場面\\\hline
      6年生&家庭科&自動炊飯器に組み込まれているプログラムを考える活動を通して、炊飯について\\
&&学習する場面\\\hline
    \end{tabular}
  
  \label{kamoku}
  \end{center}
\end{table}





\begin{table}[h]
  \begin{center}
%  \small
    \caption{ピアジェが仮説化する各発達段階での子どもの思考特徴\cite{sinri} より引用}

    \begin{tabular}{|l|l|l|} \hline
         発達段階 &年齢の範囲&達成可能な典型と限界\\ \hline \hline
      具体的操作段階 &7〜12歳&具体物を扱う限りにおいては論理的操作が可能になる。ものや事象の静的\\
                    &       &な状態だけでなく変換の状態をも表象可能、外見的な見えに左右されず保\\
                    &       &存問題や系列化やクラス化の問題解決が可能、だが科学的な問題や論理的\\
                    &       &変換のようにあらゆる可能な組み合わせを考えねばならぬ問題には困難を\\
                    &       &示す。\\ \hline
   形式的操作段階 & 12歳〜   & 経験的事実に基づくだけではなく、仮説による論理的操作や、命題間の論\\
                 &          &理的関係の理解が可能である。より抽象的で複雑な世界についての理解が\\
                 &          &進み、たとえば、エネルギーの保存や化学的合成に関するような抽象的概\\
                 &          &念やエネルギーの保存や化学的合成に関するような抽象的概念や知識が獲\\
                 &          &得される。\\ \hline
    \end{tabular}
  
  \label{sinri}
  \end{center}
\end{table}

\section{プログラミング教室の開催状況}\label{kaisaijyoukyou}
小学校以外にもプログラミングを学ぶことのできる教室がある。外部のプログラミング教室は1999年から2014年以降までを比べてみると、年々増加していることが分かる(図\ref{hikaku})。2013年以降からはプログラミング教室を開催している団体が急増している。


\begin{figure}[h]
  \begin{center}

\includegraphics[width=15cm]{kaisai.pdf}
\caption{プログラミング教室始時期\cite{soumu} 図5-3より引用}
\label{hikaku}
 \end{center}
\end{figure}


\section{プログラミング教室の事例}
\ref{kaisaijyoukyou}節で述べたように年々プログラミング教室は増加している。プログラミング教室の対象は、子どもから大人まであり、学べる言語は、Scratch 、 JavaScriptなどがある。その中でも小学生を対象にしたプログラミング教室の事例について述べる。
\begin{description}
 \item[松本大学キッズプログラミング教室]\cite{matumoto}\mbox{}\\
まつもと広域ものづくりフェアで開催した。講習対象を小学校高学年以上である。Scratchを使用。


 \item[宇城市プログラミング教室]\cite{sojyo}\mbox{}\\
KidsVenture 、さくらインターネット株式会社、宇城市と崇城大学が連携し教室を開催した。対象は小学4〜6年生である。内容は、電子工作で自作したコンピュータ上にテキスト型言語によるプログラミングである。

\item[JavaScript による1日プログラミング教室]\cite{kaihatu}\mbox{}\\
まつもと広域ものづくりフェアで開催した。対象は中高生である。ゲームを簡単に作成できるようにenchant.jsを使用。enchant.jsとはHTML5と JavaScript を利用することにし、ゲームを簡単に作れるライブラリである。

\item[地方大学における学生主体の子ども向けプログラミング教室]\cite{akita}\mbox{}\\
秋田県立大学本荘キャンパスで開催した。対象は小学生である。低学年、中学年、高学年の3つのクラスに分けて実施。プログラミンを使用。プログラミンは\ref{gengo}で詳しく説明する。


\item[小学生向けプログラミング体験講座]\cite{niigata}\mbox{}\\
新潟国際情報大学中央キャンパスにおいて開催した。対象はプログラミングを体験したことがない小学校4年生から6年生である。Scratchを使用。


\end{description}

\section{プログラミング言語}\label{gengo}
プログラミング教室で使われているプログラミング言語で高い比率を占めるのがScratchについでJavaScript、Javaである(図\ref{wariai})。

\begin{figure}[h]
  \begin{center}

\includegraphics[width=12cm]{aaa.png}
\caption{教室・講座で利用されているプログラミング言語\cite{soumu} 図5-11より引用}
 \label{wariai}
 \end{center}
 
\end{figure}
主なプログラミング言語について説明する。
\\


\begin{breakbox}

\begin{enumerate}

 \item LOGO


Seymour A. Papert が児童の思考能力向上を目的として 1960 年代に開発されたもので、命令文によって画面上の「タートル」を動かし、タートルの軌跡で線画を描くようになっている。
 \item ドリトル


筑波大学久野、大阪電気通信大学兼宗が開発したものであり、LOGO 同様にタートルを動かし、図形などを描く機能がある。\url{https://dolittle.eplang.jp/download}
\item Viscuit


原田康徳氏よって開発された手書きイラストを用いたアニメーション作成機能に特化したプログラミング言語であり、タブレットで利用可能である。\url{https://www.viscuit.com/}

\item Scratch


MITメディアラボが開発したプログラミング言語学習環境であり、ブロックの組み合わせによってプログラミングするオブジェクト指向言語である。\url{https://scratch.mit.edu/}

\item Blockly


Google が作成したビジュアルプログラミング開発ライブラリであり、ブラウザ上で動作するオープンソースのブロック型言語である。タブレットで利用可能である。\url{https://developers.google.com/blockly/}
\item Smalruby


高尾宏治(ネットワーク応用通信研究所)によって開発されたRubyをもとにしたビジュアル言語である。\url{https://smalruby.jp/blog/2017/01/14/smalruby-editor-0-4-1-has-been-released.html}
\item プログラミン


文部科学省が Scratch を参考に開発したものでブラウザで動作するプログラミング学習用サービスである。 \url{http://www.mext.go.jp/programin/}
\item JavaScript


Netscape Communications社によって開発されプログラミング教室・講座では Web アプリケーションの作成に用いられることが多い言語である。\url{http://www.ecmascript.org/}
\item Java


Sun Microsystemsによって開発され、プログラミング教室・講座では Android アプリ作成に用
いられるケースが多い言語である。\url{https://www.oracle.com/technetwork/java/javase/overview/index.html}
 \item Python


Guido van Rossumによって開発され、
全米の大学では初心者にプログラミングを教育する教材
として最もカリキュラムに取り入れられている言語である。
\url{https://www.python.org/}
\item C 


ブライアン・カーニハンとデニス・リッチーによって開発され、
現在もっとも普及しているプログラミング言語である。
国際標準化機構(ISO)や日本工業規格(JIS)にも標準とし
て採用されている。

\item HTML


CERN（欧州合同素粒子原子核研究機構）の研究者であったティム・バーナーズ・リーによって開発・公開され
OS X や iOS 向けのアプリケーションの開発に利用でき
る言語である。現在は改定版である HTML5 が多く利用されており、
HTML5 では高度な Web アプリも作成可能である。
 \url{https://www.w3.org/html/}
\end{enumerate}
\end{breakbox}



\section{本研究の目的}
本学ではRubyを用いたプログラミング教室を行った。詳しくは\ref{terakotta}節で述べる。実際に大学生がプログラミング教室を企画・運営をする時に、どのような準備、指導する内容、指導体制など決める基準が明確に分からなかった。また、プログラミング教室の企画の立て方、運営の方法、準備する道具、準備期間について詳しくまとめてあるものがWeb上で公開されているものがない。そのためプログラミング教室を行うための手引が必要となるのではないかと考えた。本研究では、小学生向けのプログラミング教室を企画・運営し、はじめてプログラミング教室を運営する人を対象にしたRuby等を用いた小学生向けのプログラミング教室の手引を作成することを目的とする。

\chapter{プログラミング教室}
東北公益文科大学(以下本学)では平成30年度から私立大学ブランディング事業の一環として、小学5、6年生向けのRubyを用いたプログラミング教室を行っている。プログラミング教室の内容については以下の通りである。

\section{Rubyてらこったのとは}
Rubyてらこったとは小学5、6年生を対象にしたプログラミング教室である。庄内地方を中心とした地域の若者達に情報技術を教え、情報社会を生き抜くために必要な力を身につけていくことを目的としている。本学の私立大学ブランディング事業の一環として行った。本学のブランディング事業については次の\ref{jigyou}節で述べる。
\section{私立大学ブランディング事業}\label{jigyou}
昨年度から私立大学ブランディング事業でRubyてらこったを開催した。私立大学ブランディング事業とは大学の特色ある研究を基軸として全学的な独自色を大きく打ち出す取組を行う私立大学の機能強化を促進することである\cite{siritu}。本学では、5つの軸がある\cite{koeki}。

\begin{enumerate}
\item 地域資源の掘り起こし研究
\item 庄内地域の文化の保存・集積（アーカイブ化）
\item 庄内地域の無形文化財をIT技術により伝承する研究
\item 地域文化をIT技術により他の地域の人にもわかりやすく伝え、庄内地域の魅力を発信するための手法の研究
\item 地域資源を産業振興やIT技術により活用できる人材の育成
\end{enumerate}
その中の「5.地域資源を産業振興やIT技術により活用できる人材の育成」としてプログラミング言語のRubyを用いたプログラミング教室の企画・運営を行ってきている。詳しくは次節で説明する。
\section{Rubyてらこったの概要}\label{terakotta}
Rubyてらこったの対象は小学5、6年生である。その理由としては、キーボード入力、操作の関係からアルファベットを習い終わっている方が良いと考えたためである。小学生のうちからプログラミング言語Rubyを用いた本格的なプログラミングを学ぶ機会を提供したいと考えているためである。

%なんのために行うのか
\subsection{言語の設定}
様々なプログラミング言語がある。\ref{gengo}で述べたように、プログラミング教室でScratchを使用する場合が多い。しかし、Scratchのようなグラフィック型ではなく、小学生のうちからテキスト型の本格的なプログラミングを学ぶ機会を提供したいとの判断からRubyを教えることにした。また、本学では2年次に1年間必修科目の基礎プログラミングでRubyを学ぶため教えやすいと考えたからである。2年次に学ぶ内容は以下の通りである\cite{naiyou}。

\begin{breakbox}
 \begin{enumerate}
\item 計算システムの基本操作と概念 

なぜプログラミングが必要であるのかを知り、基本的なコマンド(コンピュータに特定の機能の実行を指示する命令)操作、Unix(OSの一つ)について、ファイル、ディレクトリの概念などを学ぶ

\item プログラミングの基礎
 
インタプリタ、プログラミングについて学ぶ

\item 変数と値 

変数の概念と値処理の方法を学ぶ

\item 演算子

プログラム上での四則演算を方法を学ぶ

\item 制御構造


条件分岐や場合分けの方法を学ぶ
\item 出力処理を行うメソッド

画面出力の基本的な内容を学ぶ

\item 配列
 
番号をつけて一度に多くのデータを処理する方法を学ぶ
\item パターンマッチング (正規表現) 

データに含まれる文字列のパターンを指定し、そこから必要な部分を取り出す方法を学ぶ
\item ファイルの入出力

直接ファイルに入出力をする方法を学ぶ
\item 計算機の内部構造
  
デジタルで数字や文字などを表現する方法について学ぶ
\item ハッシュ
 
順番、個数にとらわれず任意の属性と値を結びつけ管理する方法をぶ学ぶ
\item 再帰

大きな問題を類似した小さな問題に分割して考える方法を学ぶ
\item CGI

自分が作成したシステムを効果的な形で視覚化させる方法を学ぶ
\end{enumerate}
\end{breakbox}

\subsection{プログラミング教育で小学生に身につけたい力}\label{tikara}
 文部科学省が小学生にプログラミング教育を通して身につけたい力として「知識及び技能」、「思考力、判断力、表現力等」、「学びに向かう力、人間性等」が述べられている(表\ref{mini})。その3つの力に追加してRubyてらこったで身につけてほしい力についても述べる。この項目に加えRubyてらこったでプログラミングを学んだ小学生に身につけたい力は以下の通りである。
\begin{table}[h] 
    \caption{身につけたい力\cite{monbu} より作成}

\begin{screen}
\begin{description}
 \item[知識及び技能]\mbox{}\\ 
生活でコンピュータが活用されていくことや、問題の解決には必要な手順があること
 \item[思考力、判断力、表現力等]\mbox{}\\
発達の段階に即してプログラミング的思考力を育成すること
 \item[学びに向かう力、人間性等]\mbox{}\\
発達段階に即して、コンピュータの働き、よりよい人生や社会づくりに生かそうとする態度を涵養すること


\end{description}
\end{screen}
  
  \label{mini}
\end{table}

\begin{description}
 \item[工夫する力]\mbox{}\\
授業で使うサンプルのプログラムを自分で考えて、工夫をして、他の人とは違うプログラムを作ることができるようになることである。
 \item[伝える力]\mbox{}\\ 
伝える力には、2つの意味がある。1つ目は、自分の作成したプログラムの発表を通して工夫した点、頑張った点など伝えられるようになることである。

2つ目は、周りの人が作成したプログラムの発表を聞いて感想などを伝えられるようになることである。


\end{description}


\section{指導内容}\label{naiyo}
小学生が全5回の限られた回数の中で理解できる程度にした。また、プログラムを作成、実行する時に複雑にならないようにした。
教える順番が基本的な操作から徐々に難しい内容になるよう設定している。また、5回目で自由に作成し、発表できるようなプログラムを作成できるように組み立てた(表\ref{jyunban})。

\begin{table}[h]
  \begin{center}

    \caption{授業内容}

    \begin{tabular}{|l|l|l|} \hline
         回数 &内容&作成プログラム  \\ \hline \hline
      1回目 & 基本操作& 画面出力  自己紹介プログラム \\
      2回目 & ループ  &繰り返し処理のプログラム \\
      3回目 & 配列  &データ処理のプログラム  \\
      4回目 & 条件分岐 &条件のあるプログラム  \\
      5回目 & まとめ &習ったことを応用してプログラムを作成  \\ \hline
    \end{tabular}
  
  \label{jyunban}
  \end{center}
\end{table}
\begin{description}
 \item[出力メソッド (print, printf, puts)]\mbox{}\\ 
アスキーアートのように入力したものをそのまま出力させるために必要である。printとputsも同じように画面出力のためのものであるが、 putsは末尾に改行した形で出力される。printfは書式付のprint文であるため数字などを出力させるのに便利である。

\item[文章処理メソッド(gets, chomp)]\mbox{}\\
キーボードに打ち込んだ値を文字列として取得するゲームプログラムを作るときに必要である。

\item[制御構造(while, if, elsif, else)]\mbox{}\\
レジスタープログラムなどの入力したものを繰り返しの処理を行うときに必要である。
また、クイズの結果の判定や条件で繰り返しを行うために使うため必要である。
制御構造とはプログラムで実行される流れを定めたものである。
繰り返しの処理を行うためにwhile、条件分岐にはif, elsif, elseを使用した。使い方の例は以下の通りである。

 \begin{lstlisting}[basicstyle=\ttfamily\footnotesize, frame=single]
  if a
    hogehoge1
  elsif b
    hogehoge2
  else
    hogehoge3
  end
  \end{lstlisting}
	   条件がaであればifのhogehoge1の部分が実行される。条件がaではなく2つ目のbであればhogehoge2の部分が実行される。条件がaでもbでもない時はelseのhogehoge3の部分を実行する。

 \item[配列及び乱数(srand, rand)]\mbox{}\\
2つを組み合わせてクイズ問題を用意して乱数で選ばせたり、ジャンケンの手の内をランダムに出したりするために使うので必要である。
 \item[sleep関数(sleep)]\mbox{}\\
プログラムを時間指定して一時停止することができるため小学生が楽しむことができるので必要である。


\end{description}






\subsection{指導体制}%手引を参照
授業の担当者1人、タイムキーパーが1人、授業アシスタントは参加する小学生の人数と同じようになるような体制にした。1対1で教える体制にしたのは、授業に追いつけない部分をサポートできるようにするためである。授業が進む速度に対して、小学生が理解する速度に差が発生することがあった。その際には、随時授業の合間に時間をとり、小学生が理解する速度に合わせて授業を展開していく形を心がけた。

\subsection{授業について}
%小学生でも内容が分かり、楽しく学ぶことができるようにということを意識した。
小学生でも内容が分かりやすく、楽しく学ぶことができるように意識した。1回の授業時間を2時間に設定した。50分ほど授業をしたら約15分ほどの長めの休憩を取り、小学生が集中しやすいようにした。授業の流れは以下の通りである。

\begin{breakbox}
 
\begin{enumerate}
 \item 前回の授業の復習

前回の授業で学んだ内容のポイントを復習する。
 \item タイピング練習 

タイピング練習では、授業で使う英単語を3回ずつ練習する時間をとる。
\item 内容の説明

内容の説明では、授業で新しく学ぶことを説明する。重要なポイントは、メモをとる時間を作る。
 \item サンプルプログラム

サンプルプログラムは、新しく学ぶ内容を使う。最初にどのようなプログラムなのか実行させる時間にする。
 \item サンプルプログラムの説明

4のサンプルプログラムがどうしてそのような動きをするのか説明する時間をつくる。
 \item 休憩

長めの休憩をとる。
 \item プログラム作成

プログラムの作成では、学んだ内容を使い自分で考えて作成してもらう。作成の時は、ホワイトボードにマグネットシートを貼ったり、ペンで書いたりしてからパソコンに入力する。イメージ通りにプログラムが作れない時は、アシスタントがサポート、説明をする。サポート、説明で重要なのは、どうしたらプログラムがうまく動くのか考えてもらい理解してもらう。

 \item 作成したプログラム発表

作成したプログラムは、発表する時間をつくる。発表方法はみんなの前で作成したプログラムを実行し発表する方法と他の人が作成したプログラムを実行してみる方法の2つである。
小学生が作成したプログラムについては\ref{sonota}で詳しく述べる。
\end{enumerate}
\end{breakbox}
 
\section{使用した道具}
授業で使う道具は以下のようなものを用意した。小学生に分かりやすく教えるために教科書、マグネットシートなどを作成した(表\ref{dougu})。
\begin{table}[h]
\small
  \begin{center}

    \caption{必要な道具一覧}

    \begin{tabular}{|l|l|} \hline
      アイテム &用途  \\ \hline \hline
      PC & 小学生の操作用、授業用、スライド用のために使用 \\
      USBメモリ & 作成したプログラムを記録するために使用また、教室閉講後にも利用できるよう\\
                &無料で配布可能なシステムをインストールしておく   \\
      教科書 & 授業の内容を確認するために使用 \\
      ノート & 必要なことを書くために使用 \\
      ホワイトボード & プログラムをPCに入力する前に作成したいプログラムを\\
                  & 書くために使用 \\
     マグネットシート & プログラムを作成するときに何を組み合わせると良いのか分かりやすくする\\
               & ために使用 \\
      アルファベット対応表 & 文字を入力するときに分かりやすくするために使用 \\ \hline
    \end{tabular}
  
   \label{dougu}
  \end{center}
\end{table}

\subsection{PC}
PCは小学生用、授業用、スライド用の3種類使用した。小学生用と授業用のOSはNetBSDである。
NetBSDとはオープンソースのオペレーティングシステムであり、本学の計算機と同じOSだと学生が教えやすいからである。また、授業以外でも使ってほしいため無料で配布できるオープンソースが良いと考えたからである。
\\
\begin{itemize}
\item 小学生用PC

授業中のプログラムを作成、Webページからプログラムをダウンロードするために使用
した(図\ref{gamen})。
\begin{figure}[h]
  \begin{center}
\includegraphics[width=10cm]{terakotta-screen.png}
\caption{PC画面}
\label{gamen}
\end{center}
\end{figure}

\item 講師用PC

小学生に分かりやすくするため小学生の使用している計算機と同じものを使用した。

\item スライド用PC

スライド用を用意することで画面の切り替えすることができるためスムーズに内容の説明ができる
使用した教室に2つ独立したプロジェクタがあったので授業用、スライド用両方を映して授業を行った。教室に2つプロジェクターが無かった場合はテレビに映して授業をした。
\end{itemize}
\newpage
\begin{figure}[h]
  \begin{center}
\includegraphics[width=10cm]{kyouditumitorizu.pdf}
\caption{教室見取り図}
\label{kyousitu}
 \end{center}
\end{figure}
\subsection{USBメモリ}
今回は16GB以上の容量を持つ高速なUSBフラッシュメモリにOSと教材に使用するソフトウェア一式をインストールし、USBメモリから起動して授業用環境として使用できるようにした(\pageref{syasin}ページ図(a))。


\subsection{教科書}
授業内容に合わせて、学生らで作成した(\pageref{syasin}ページ図(b))。オリジナルのイラストや分かりやすい図などを取り入れ、興味が湧くような内容にすることを心がけた。また、語句の説明なども小学生でも分かるようにした。内容は以下のようなものである。

\begin{description}
 \item[プログラミングとは]\mbox{}\\ 
プログラミングとは何か、Rubyとは何かを説明する。

 \item[ファイル、ディレクトリ]\mbox{}\\
ファイルとディレクトリの説明をする。

 \item[print, puts, getsについて]\mbox{}\\ 
画面出力の方法、キーボードから入力させる方法をまとめた。
 \item[whileについて]\mbox{}\\ 
ループについて学ぶ。
 \item[配列、乱数]\mbox{}\\ 
配列を使ってランダムに取り出す方法をまとめた。
\begin{figure}[h]
  \begin{center}

\includegraphics[width=12cm]{haitertu.pdf}
\caption{配列のイメージ図}
 \end{center}

\end{figure}
 \item[if, elsif, elseについて]\mbox{}\\ 
条件分岐をさせる方法、if, elsif, elseの違いについてまとめた。

 \item[プログラムを工夫するためのメソッドについて]\mbox{}\\ 
プログラムを出力させるときに文字が変化したり、時間をおいて表示させたりするものをまとめた。
 \item[コマンド集]\mbox{}\\ 
プログラムの作成時などに覚えておくと便利なコマンドをまとめて書いておき、分からない時にすぐに確認できるようにした。

\end{description}

\subsection{ノート}
初回の授業で配布し、小学生が学んだことや気づいたこと、ポイントなどをこまめに書き込めるように用意した(\pageref{syasin}ページ図(c))。授業内では、ノートに書く場面があれば講師が指示を促し小学生がノートを書く時間を設けた。


\subsection{ホワイトボード}
ホワイトボードにプログラムを書いてから PCにプログラムを打ち込んだ方が間違えることが少なくなり、分かりやすいと
考えたため用意した(\pageref{syasin}ページ図(d))。また、小学生がホワイトボードに書きながらプログラムを組んで行くことで理解を深める目的で使用した。

\subsection{マグネットシート(小学生用)}
授業の勉強する新しいことや大切な
ものをマグネットシートにした(\pageref{syasin}ページ図(e))。これを貼るだけで
各メソッドを記述できるようにし、記憶しやすくするために作った。
これらを授業内でホワイトボードに貼りながら
作業を進めていった。例を挙げると、
「 while 」と
「 end 」などのセットで扱うものに関しては、セッ
トで先にマグネットをホワイトボードに貼り付
けてからプログラムを組み立てるなどの工夫を
した。あらかじめ用意されているものを使用し
たため、間違いの減少や作業時間の削減にも繋
がった。


\subsection{マグネットシート(黒板用)}
小学生にメソッドの部分を分かりやすくするために、黒板に貼るマグネットシートを用意した(\pageref{syasin}ページ図(f))。


\subsection{アルファベット対応表}
小学5、6年生はアルファベットを習い終えているが大文字小文字を理解するために作成し配布した(\pageref{syasin}ページ図(g))。キーボードでは大文字表記になっているため「 l( エル ) 」と「 i( アイ ) 」や「 h( エイチ ) 」と「 n( エヌ ) 」と「 r( アール ) 」などが間違いやすかった。

\label{syasin}
\begin{figure}[h]
  \begin{center}
\subfigure[USBメモリ]{
\includegraphics[width=0.23\columnwidth]{usb.jpg}
}\label{usb}
\subfigure[教科書]{
\includegraphics[width=0.23\columnwidth]{kyoukasyo.jpg}
}
\label{kyoukasyo}
\subfigure[ノート]{
\includegraphics[width=0.23\columnwidth]{note.jpg}
}
\label{note}
\subfigure[ホワイトボード]{
\includegraphics[width=0.23\columnwidth]{whitewboard.jpg}
}
\label{board}
\subfigure[マグネットシート]{
\includegraphics[width=0.23\columnwidth]{magnet.jpg}
}
\label{magnet}
\subfigure[マグネットシート(黒板用)]{
\includegraphics[width=0.23\columnwidth]{kokuban.jpg}
}
\label{kokuban}

\subfigure[アルファベット対応表]{
\includegraphics[width=0.23\columnwidth]{taiou.pdf}
}
\label{taiou}
 \end{center}
\end{figure}


\chapter{プログラミングで身につく力についての仮説}\label{kasetu}
本章では参加した小学生がプログラミングの授業を通してどのような変化があるか仮説を立てる。仮説を判断するため基準を述べる。
\section{プログラミング教室実施の仮説}\label{kasetu}
参加する小学生はある程度プログラミングに興味があり、難しいという印象よりも楽しそうという印象があると考える。また、授業を通してプログラムが難しいというイメージが減少するのではないかと考えた。さらに、授業を通して波及効果として学習が好きな方に変化し、別のことにも挑戦してみようという意欲的になると仮説を立てる。
\section{身につく力の判断基準}\label{kijyun}
%\ref{tikara}で述べた力が小学生に身についたか判断する基準は以下の通りである。

実際に\ref{kasetu}節の仮説を立てたものを検証をする方法としてアンケートを3種作成した。アンケートの種類と結果については以下の通りである。また、アンケートで判断できないものは、授業の様子や小学生が作成したプログラムより判断する。
%行った結果【アンケート】関係をまとめる



\section{身につけたい力の判断基準}

\ref{tikara}節で述べた力をRubyてらこったでの具体的に判断する基準を述べる。
\begin{itemize}
\item 知識及び技能

プログラムを作成できる。

様々なメソッドを覚え、使うことができる。

\item 思考力、判断力、表現力等

自分が作成したいプログラムに対してどのメソッドを使うとできるか考えることができる。

\item 
学びに向かう力、人間性等

サンプルプログラムをどのよう工夫できるか自分で教科書を見てたり、大学生に聞きたりして取り組むことができる。


\item 工夫する力

サンプルプログラムを自分が作りたいものに作り変えることができ
る。
\item 伝える力

作成したものに対して発表ができる。

他の人の発表を聞いた後に感想を伝えることができる。

\end{itemize}
\subsection{アンケートの種類}
アンケートは1回目の授業の開始前、毎回の授業後、最後の授業後に行った。
\\
\\
授業開始前アンケート

\begin{itemize}
 \item 普段の機械操作について
\item プログラミング教室参加理由
\item プログラミングの経験
\item プログラミングのイメージ
\item 作成したいプログラム
\item 学習について
\end{itemize}

毎回の授業後アンケート
\begin{itemize}
\item 授業で楽しかったこと(何でも可)
\item 授業中難しかったこと(何でも可)
\end{itemize}
最後の授業後アンケート
\begin{itemize}
\item 授業について
\item プログラミングについて
\item 論理的思考力について
\item 学習について
\end{itemize}


\subsection{作成したプログラムより判断}
知識などは、小学生が授業をした後にサンプルプログラムを改造、5回目の授業では学んだ内容をまとめたオリジナルプログラムを作成する。そのプログラムより、知識が身についたか判断する。
\chapter{プログラミング教室の実施結果}\label{kekka}
2019年度のRubyてらこったは、6月開始の教室には6名、7月開始の教室には6名、合計で12名参加した。12名のアンケートの結果と作成したのプログラムは以下の通りである。

\section{授業前}
普段の機械操作とプログラミングのイメージ、経験、学校の学習についてのアンケートを実施した。
\subsection{機械操作について}\label{sousa}
普段どんな機器を使っているのか調査した結果は以下の通りである(表\ref{kankyou})。
選択肢の後につく()は点数化したものである。機械操作の部分については、使用頻度の高いものから高い点数をつけた。


\begin{table}[h]
 \begin{center}
 \caption{機械操作について}
\begin{tabular}{|c|c|c|c|}
%\begin{tabularx}{50mm}{Y|Y|Y|Y}
\hline
\multicolumn{4}{|l|}{パソコンは使いますか}\\ \hline
  週3回以上(3)     &   週2回以上(2) &  週1回以下(1) &  使わない(0) \\ \hline
  0 &2 & 6 & 4 \\ \hline


\multicolumn{4}{|l|}{スマートフォンは使いますか}\\ \hline
  週3回以上  (3)   &   週2回以上(2) &  週1回以下(1) &    使わない(0)\\ \hline
  9 &0 & 1 & 2 \\ \hline


\multicolumn{4}{|l|}{テレビゲームはしますか(iPad, Switchも含めて)}\\ \hline
  週3回以上 (3)    &   週2回以上(2) &    週1回以下(1) &   しない(0) \\ \hline
  7 &2 & 1 & 2 \\ \hline


\multicolumn{4}{|l|}{パソコンゲームはしますか}\\ \hline
  週3回以上 (3)  &   週2回以上(2) &     週1回以下(1) &   しない(0) \\ \hline
  1 &1 & 1 & 9 \\ \hline


\multicolumn{4}{|l|}{携帯ゲームはしますか}\\ \hline
  週3回以上(3)      &   週2回以上(2) &  週1回以下(1) &    しない(0) \\ \hline
  0 &5 & 2 & 5 \\ \hline
%end{tabularx}
\end{tabular}
\label{kankyou}
    \end{center}
\end{table}


機械操作については、パソコンよりもスマートフォンを使用している参加者が多かった。また、ゲームをするときも、パソコンよりもテレビゲーム(iPad, Switchも含め)のほうが使用頻度が多いという結果がでた。
\subsection{プログラミングについて}\label{imeji}
プログラミング教室に参加した理由とプログラミングのイメージについて調査した。結果は以下の通りである(表\ref{bp})。選択肢の後につく()は点数化したものである。

\begin{table}[h] 
  \begin{center}
\caption{プログラミング教室に参加した理由とプログラミングのイメージについて}

\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|l|}{なぜプログラミング教室に参加しましたか}\\ \hline
 親のすすめ  &  友達が一緒だから & プログラミングに興味があるから &その他\\ \hline
  4 &0 & 7 & 1 \\ \hline


\multicolumn{4}{|l|}{プログラミングをしたことがありますか}\\ \hline
\multicolumn{2}{|l|}{したことがある} & \multicolumn{2}{|l|}{したことがない} \\ \hline
  \multicolumn{2}{|c|}{5} & \multicolumn{2}{|c|}{7} \\ \hline



\multicolumn{4}{|l|}{プログラミングは楽しそう}\\ \hline
  とても楽しそう(4) &   楽しそう(3) &  楽しそうではない(2) &  全く楽しそうではない(1) \\ \hline
  6 &6 & 0 & 0 \\ \hline


\multicolumn{4}{|l|}{プログラミングは難しそう}\\ \hline
  とても難しそう(4) &  難しそう(3) & 難しそうではない(2) &  全く難しそうではない(1) \\ \hline
  2 &7 & 3 & 0 \\ \hline

\multicolumn{4}{|l|}{作ってみたいプログラムはありますか(自由記述)}\\ \hline
  \multicolumn{4}{|l|}{ゲームプログラム(3名回答)、計算させるプログラム、学習のプログラム、字を書くプログラム}\\ 
 \multicolumn{4}{|l|}{占いプログラム}\\ \hline

  \end{tabular}
\label{bp}
    \end{center}
\end{table}

プログラミング教室の参加理由は、親の勧めや友達と一緒だからという理由よりもプログラミングに興味があるからという理由が一番多かった。プログラミング経験については、半数以上が経験がないという結果になった。
プログラミングのイメージでは、楽しそうというイメージもあるが、難しそうというイメージがあることが分かる。作成してみたいプログラムについては、ゲームプログラムを作成してみたいというのが多かった。
\subsection{学習について}\label{gakusyu}

小学校での学習について調査した。結果は以下の通りである(表\ref{bsyougaku})。選択肢の後につく()は点数化したものである。
\begin{table}[h] 

  \begin{center}
\caption{小学校での学習について}
\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|l|}{ 学校の勉強が好き}\\ \hline
  とても好き(4) &      好き(3) &    好きではない(2) &  全く好きではない(1) \\ \hline
  4&6 & 2 & 0 \\ \hline
\multicolumn{4}{|l|}{学校の勉強が難しい}\\ \hline
  とても難しい(4) &  難しい(3)  & 難しくはない(2) &  全く難しくない(1) \\ \hline
  0&2 & 6 & 4 \\ \hline
\end{tabular}
  \label{bsyougaku}
    \end{center}
\end{table}


学習については、学校の勉強が好きであると回答した参加者が半数以上いた。また、学校の勉強が難しいと感じている人が少なかった。
\\
\\
\\
\section{毎回の授業}\label{maikai}
授業の振り返りとして授業中に楽しかったこと、難しかったことを書いてもらった。
\subsection{楽しかったこと}\label{tanosimi}
1回目の授業から5回目の授業で楽しかったことは以下の通りである(表\ref{furikaeri1})。
\begin{table}[h]

 \begin{center}
\caption{授業で楽しかったこと}
    \begin{tabular}{|l|l|} \hline
      回数 & 内容  \\ \hline \hline
      1回目 &  文字を打つこと(4名回答)、プログラム作成(3名回答)、作成したプログラム発表(3名回答)\\
          &コマンド入力(2名回答)、大学生と話したこと、学校で学習できないことを学べた\\ \hline
      2回目 & プログラムの改造(6名回答)、作成したプログラムの実行(2名回答)、文字を打つこと(2名回答)\\
           &他の人の作成したプログラムを実行すること、大学生と話したこと \\ \hline
      3回目 & プログラムを改造したこと(5名回答)、他の人が作成したプログラムを実行すること(4名回答)\\ \hline
      4回目 & プログラムの改造(9名回答)、プログラムを実行すること(2名回答)、大学生と話したこと \\ \hline
      5回目 & プログラムを作成したこと(10名回答)、プログラムを実行したこと、大学生と勉強したこと \\ \hline
    \end{tabular}
    \label{furikaeri1}
    \end{center}
\end{table}


授業で楽しかったことは、プログラミングを改造したことや文字を入力するという作業だけではなく、発表したり、他の人のプログラムを実行したことなどであった。

\subsection{難しかったこと}\label{muzukasisa}
1回目の授業から5回目の授業で難しかったことは以下の通りである(表\ref{fueikaeri2})。
\begin{table}[h]

  \begin{center}
\caption{授業で難しかったこと}
    \begin{tabular}{|l|l|} \hline
      回数 & 内容  \\ \hline \hline
      1回目 & 文字を打つこと(6名回答)、print と putsの違い(3名回答)、発表すること\\ \hline
      2回目 & プログラムの改造(4名回答)、文字を打つこと(3名回答)、whileの考え方(2名回答)\\
           &brakについて \\ \hline
      3回目 & プログラムを改造したこと(3名回答)、文字を打つこと(2名回答)、配列、乱数 \\ \hline
      4回目 & プログラムの改造(5名回答)、文字を打つこと、条件分岐 \\ \hline
      5回目 & プログラム作成(4名回答)、文字を打つこと(3名回答)、変数(2名回答)、覚えることが多い\\
          &発表したこと \\ \hline
    \end{tabular}
  \label{fueikaeri2}
    \end{center}
\end{table}
\\
難しかったことは、プログラムの改造、文字を打つこと、プログラムを作成するためのメソッドについての意見が多かった。文字を打つことでは、\ref{sousa}の結果からでた、PCを使用する機会が少ないため、キーボード操作が難しく感じたのではないかと考える。

\section{最後の授業後}\label{suuti}
5回目の授業後に1回目から5回目までの授業について、プログラミングを実際にしてみてどうだったか、学校の学習について、今後挑戦したいことについてアンケートを行った。
\subsection{授業について}\label{jyugyoukansou}
プログラミングの授業を実際に受講してみてどうだったか調査した。結果は以下の通りである(表\ref{ajyugyou})。選択肢の後につく()は点数化したものである。
\begin{table}[h] 
  \begin{center}
\caption{授業について}
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline

\multicolumn{12}{|l|}{ 授業時間はどうでしたか}\\ \hline
\multicolumn{4}{|l|}{長い(1) ~~~~~~~~~~~~~~~~~~~~~~~~~~} &  \multicolumn{4}{|l|}{ちょうどよい(2) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~}&\multicolumn{4}{|l|}{短い(3)}\\ \hline
   \multicolumn{4}{|c|}{1}&\multicolumn{4}{|c|}{11}&\multicolumn{4}{|c|}{0}\\ \hline
\multicolumn{12}{|l|}{内容は分かりやすかった}\\ \hline
\multicolumn{3}{|l|}{とても分かりやすい(4) ~~~~}&\multicolumn{3}{|l|}{分かりやすい(3) ~~~~~~~~}&\multicolumn{3}{|l|}{分かりにくい(2) ~~~~~}&\multicolumn{3}{|l|}{とても分かりにくい(1) }\\ \hline
\multicolumn{3}{|c|}{7}&\multicolumn{3}{|c|}{5}&\multicolumn{3}{|c|}{0}&\multicolumn{3}{|c|}{0}\\ \hline
\multicolumn{12}{|l|}{大学生は優しかったですか}\\ \hline
\multicolumn{3}{|l|}{とても優しい(4) }&\multicolumn{3}{|l|}{優しい(3) }&\multicolumn{3}{|l|}{優しくない(2) }&\multicolumn{3}{|l|}{全く優しくない(1) }\\ \hline
\multicolumn{3}{|c|}{12}&\multicolumn{3}{|c|}{0}&\multicolumn{3}{|c|}{0}&\multicolumn{3}{|c|}{0}\\ \hline
\multicolumn{12}{|l|}{授業に参加してみて楽しかったことを書いてください(自由記述)}\\ \hline
\multicolumn{12}{|l|}{プログラムを作成・改造すること(8名回答)、プログラムを実行できたこと、文字をうつこと}\\ 
\multicolumn{12}{|l|}{発表を聞くこと、大学生と話すこと、全て}\\ \hline
\multicolumn{12}{|l|}{授業に参加してみて難しかったことを書いてください(自由記述)}\\ \hline
\multicolumn{12}{|l|}{覚えることが多いこと(3名回答)、文字を打つこと(3名回答)、プログラムを作成・改造すること}\\ 
\multicolumn{12}{|l|}{(2名回答)、変数(2名回答)、配列、print}\\ \hline

\end{tabular}
  \label{ajyugyou}
    \end{center}
\end{table}
\\
授業については、授業時間はちょうどよく、内容は分かりやすかったという結果がでた。参加してみて楽しかったことは、プログラミングを作成・改造すること、プログラムの実行だけではなく、大学生と話したことなどがあった。難しく感じたこととして、覚えることが多い、文字打つことという回答があった。

\subsection{プログラミングについて}\label{jissai}
プログラミングをしてみてどうだったのか調査してみた。結果は(表\ref{apr})の通りである。選択肢の後につく()は点数化したものである。

\begin{table}[h] 
  \begin{center}
\caption{プログラミングについて}
\begin{tabular}{|c|c|c|c|}

\hline
\multicolumn{4}{|l|}{プログラミングは楽しかった}\\ \hline
  とても楽しかった(4)& 楽しかった(3) &  楽しくなかった(2) &  全く楽しくなかった(1) \\ \hline
  8 &4 & 0 & 0 \\ \hline
\multicolumn{4}{|l|}{プログラミングは難しかった}\\ \hline
  とても難しかった(4) &  難しかった(3) &  難しくなかった(2) &  全く難しくなかった(1) \\ \hline
  1 &7 & 2 & 2 \\ \hline
\multicolumn{4}{|l|}{またプログラミングをしたい}\\ \hline
  とてもしたいと思う(4) & したいと思う(3) & したくないと思う(2) & 全然したくないと思う(1) \\ \hline
  5 &7 & 0 & 0 \\ \hline
\multicolumn{4}{|l|}{筋道をたてて考える力が身についたと思う}\\ \hline
  とても思う(4) &  思う(3) &  思わない(2) & 全く思わない(1) \\ \hline
  3 &9 & 0 & 0 \\ \hline


\end{tabular}
  \label{apr}
    \end{center}
\end{table}
 
プログラミングを実際にしてみて、楽しかったという回答もあったが、難しく感じていた参加者がいた。しかし、またプログラミングをしたいと思っていることが分かった。また、プログラミングを通して論理的思考力が身についたと参加者が実感できたと回答していた。

\subsection{学習について}\label{agakusyu}

小学校での学習について調査した。結果は以下の通りである(表\ref{agaku})。選択肢の後につく()は点数化したものである。学習については、授業開始前の結果\ref{gakusyu}節と比較してあまり変化が現れなかった。\\
\begin{table}[h] 

  \begin{center}
\caption{小学校での学習について}
\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|l|}{ 学校の勉強が好き}\\ \hline
  とても好き(4) &      好き(3) &    好きではない(2) &  全く好きではない(1) \\ \hline
  5&4 & 3 & 0 \\ \hline
\multicolumn{4}{|l|}{学校の勉強が難しい}\\ \hline
  とても難しい(4) &  難しい(3)  & 難しくはない(2) &  全く難しくない(1) \\ \hline
  0&3 & 4 & 5 \\ \hline
\end{tabular}
  
  \label{agaku}
    \end{center}
\end{table}
 \\
\\
\\
\\

\subsection{その他}\label{sonota}
自由に今後挑戦したいことを書いてもらった。内容は、以下の通りである(表\ref{tyousen})。選択肢の()は点数化したものである。
\begin{table}[h] 
  \begin{center}
\caption{挑戦したいこと}
\begin{tabular}{|l|l|l|l|l|l|l|l|l|l|l|l|}
\hline
\multicolumn{12}{|l|}{挑戦してみたいことを書いてください(何でも可)}\\ \hline
\multicolumn{12}{|l|}{もっと難しいプログラムを作る(3名回答)、家でもプログラミングをする(2名回答)、自分でゲームを}\\ 
 \multicolumn{12}{|l|}{作りたい(2名回答)、みんなにプログラミングを教える、50mクロールで泳ぐ、看護師になっていろんな}\\ 
 \multicolumn{12}{|l|}{人を救いたい}\\ \hline
\end{tabular}
   \label{tyousen}
    \end{center}
\end{table}

挑戦してみたいこととして、もっと難しいプログラムを作る 、家でもプログラミングをする、自分でゲームを作りたいなどプログラミングに関することや、50m クロールで泳ぐ、看護師になっていろんな人を救いたいなどプログラミング以外のことにも挑戦したいこと回答した参加者がいた。


\section{アンケートの分析}
プログラミングをしてみる前としてみた後では、波及効果が現れるのか、数値に変化があるのかを比較するために調べる方法としてt検定を用いた。
\subsection{アンケートの分析方法}
同じ人を2回測定するので対応のあるt検定を用いた。アンケートの結果を数値化し分析を行った\cite{kentei}。アンケート結果を数値に直した値ついては、\ref{suuti}節のアンケート結果にある通りである。Rのリストは、付録に添付する。
\subsection{アンケートの分析結果}
t検定で比較する質問項目は、プログラミングについて楽しそう、難しそうが実際にプログラミングを体験してみて楽しかった難しかったの経験、
学習(勉強が好き、勉強が難しい)についてである。結果は以下の通りである。
\begin{itemize}

\item 楽しそうと楽しかったを比較

水準1は授業前の「プログラミングは楽しそう」というイメージ(とても楽しそう (4)、
楽しそう (3)、楽しそうではない (2)全く楽しそうではない (1))の数値である。
水準2は授業後の「プログラミングは楽しかった」という(とても楽しかった (4)、楽しかった (3)、楽しくなかった (2) 全く楽しくなかった (1))数値である。

\begin{lstlisting}[basicstyle=\ttfamily\footnotesize, frame=single]
 == Mean & S.D. ( SD=sqrt(Vtotal/N) ) ==

------------------------------------------------
          N      Mean      S.D.
------------------------------------------------
水準1    12      3.75      0.43
水準2    12       3.5       0.5
------------------------------------------------
 差      12      0.25      0.72
------------------------------------------------
 t(11)= 1.1516 ,    ns (.10<p)
------------------------------------------------

\end{lstlisting}
\ \ 事前のアンケートの「プログラミングは楽しそう」であるの結果と5回目の授業の「プログラミングは楽しかった」の結果の平均を比較したところ有意ではなかった。つまり、イメージと実際の差はなかった。
\item 難しそうと難しかったを比較


水準1は、授業前の「プログラミングは難しそう」というイメージ(とても難しそう (4)、
難しそう (3)、難しそうではない (2)、全く難しそうではない (1))数値である。
水準2は、授業後の「プログラミングは難しかった」(とても難しかった (4)
、難しかった (3)、難しくなかった (2)、 全く難しくなかった (1))数値である。
\begin{lstlisting}[basicstyle=\ttfamily\footnotesize, frame=single]
 == Mean & S.D. ( SD=sqrt(Vtotal/N) ) ==

------------------------------------------------
          N      Mean      S.D.
------------------------------------------------
水準1    12      2.58      0.76
水準2    12         3      0.58
------------------------------------------------
 差      12     -0.42      0.95
------------------------------------------------
 t(11)= 1.4663 ,    ns (.10<p)
------------------------------------------------


\end{lstlisting}
\ \ 事前のアンケートの「プログラミングは難しそう」の結果と5回目の授業の「プログラミングは難しかった」の結果の平均を比較したところ有意ではなかった。つまり、イメージと実際の差はなかった。
\item 勉強が好き


水準1は、授業前の「学校の勉強が好き」の値(とても好き (4)、好き (3)、好きではない (2)、全く好きではない (1))である。
水準2は、授業後の学校の「勉強が好き」の値(とても好き (4)、好き (3)、好きではない (2)、全く好きではない (1))である。
\begin{lstlisting}[basicstyle=\ttfamily\footnotesize, frame=single]

== Mean & S.D. ( SD=sqrt(Vtotal/N) ) ==

------------------------------------------------
          N      Mean      S.D.
------------------------------------------------
水準1    12      3.42      0.76
水準2    12         3      0.58
------------------------------------------------
 差      12      0.42      1.26
------------------------------------------------
 t(11)= 1.1055 ,    ns (.10<p)
------------------------------------------------


\end{lstlisting}
\ \ 事前のアンケートの「プログラミングは楽しそうである」の結果と5回目の授業の「プログラミングは楽しかった」の結果の平均を比較したところ有意ではなかった。つまり、イメージと実際の差はなかった。
\item 勉強が難しい


水準1は、授業前の学校の勉強が難しいの値(とても難しい (4) 、難しい (3)、難しくはない (2)全く難しくない (1))である。
水準2は、授業後の学校の勉強が難しいの値(とても難しい (4) 、難しい (3)、難しくはない (2)全く難しくない (1))である。
\end{itemize}
\begin{lstlisting}[basicstyle=\ttfamily\footnotesize, frame=single]

 == Mean & S.D. ( SD=sqrt(Vtotal/N) ) ==

------------------------------------------------
          N      Mean      S.D.
------------------------------------------------
水準1    12       1.5       0.5
水準2    12      2.17       0.8
------------------------------------------------
 差      12     -0.67      1.03
------------------------------------------------
 t(11)= 2.1574 ,    +  (.05<p<.10)
------------------------------------------------

\end{lstlisting}
\ \ 事前のアンケートの「学校の勉強が難しい」の結果と5回目の授業の「学校の勉強が難しい」の結果の平均を比較したところ差があり有意傾向である。この数値の差は、5回目の授業のアンケートの数値の方が学校の授業が難しく感じたということである。
\\
考察については次の第\ref{kousatu}章で述べる。


\section{小学生が作成したプログラム}

参加した小学生が5回目のオリジナルプログラムで作成たものは、ゲームプログラム、クイズプログラム、タイピングプログラムなどである。

このプログラムはクイズプログラムで学校の授業で習ったことをクイズにし、回答時間を出力したものである。ポイントは、条件分岐である。それぞれの問題に4つの選択肢があり、回答をキーボード入力から受け取り、選択したものによって出力するものを変えている。ただ、出力させるのではなく、sleepを使い工夫をしている。

\begin{lstlisting}[basicstyle=\ttfamily\footnotesize, frame=single]
# coding: utf-8
#!/uer/bin/env ruby
# coding: utf-8

puts("(9*7)/(2+1)の答えはいくつでしょう")

puts("1:32")
puts("2:24")
puts("3:21")
puts("4:31")
print("答えを入力:")
 answer = gets.to_i

sleep(1)
puts("結果は……")
sleep(1)


if answer == 1 then
  puts("ザンネン！ハズレ!もう1度やってみよう!")
elsif answer == 2 then
  puts("ハズレだよ!おしい!")
elsif answer == 3 then
  puts("正解だよ!すごいね!!")
elsif answer == 4 then
  puts("残念!はずれだよ!")
else
  puts("その番号はないよ！！")
end

puts("")
puts("4と9の最小公倍数はいくつでしょう")

puts("1:24")
puts("2:27")
puts("3:32")
puts("4:36")
print("答えを入力:")
 answer = gets.to_i

sleep(1)
puts("結果は……")
sleep(1)


if answer == 1 then
  puts("ザンネン！ハズレ!もう1度やってみよう!")
elsif answer == 2 then
  puts("ハズレだよ!おしい!")
elsif answer == 3 then
  puts("残念!次がんばろう!")
elsif answer == 4 then
  puts("正解だよ!すばらしい!!!")
else
  puts("その番号はないよ！！")
end

puts("")
puts("日本列島の春の季節のだいたいの雲の動きは")

puts("1:南から北")
puts("2:西から東")
puts("3:東から西")
puts("4:北から南")
print("答えを入力:")
 answer = gets.to_i

sleep(1)
puts("結果は……")
sleep(1)


if answer == 1 then
  puts("ザンネン！ハズレ!もう1度やってみよう!")
elsif answer == 2 then
  puts("正解!絶好調!!!!")
elsif answer == 3 then
  puts("残念!次がんばろう!")
elsif answer == 4 then
  puts("ザンネン!ちがうよ!")
else
  puts("その番号はないよ！！")
end

puts("")
puts("日本列島は何個の島が集まって出来ているでしょうか")

puts("1:4こ")
puts("2:6こ")
puts("3:7こ")
puts("4:5こ")
print("答えを入力:")
 answer = gets.to_i

sleep(1)
puts("結果は……")
sleep(1)


if answer == 1 then
  puts("正解だよ!完璧!!!")
elsif answer == 2 then
  puts("ザンネン!ちがうよ!")
elsif answer == 3 then
  puts("もう1度確認しよう!!")
elsif answer == 4 then
  puts("おしい!!!!もう1度やってみよう!")
else
  puts("その番号はないよ！！")
end
\end{lstlisting}


このプログラムはlatterという配列の中に入っている``グラードン'',``カイオーガ'',``レシラム'',``キュレム''の4つをどのくらいの時間で入力できるかというプログラムである。
ポイントは、繰り返し処理で条件があったときに、配列の中にある問題を順番に入力させるものが変わるようになっている。最後にかかった時間を出力できることである。
\begin{lstlisting}[basicstyle=\ttfamily\footnotesize, frame=single]
#!/usr/koeki/bin/ruby
# -*- coding:utf-8 -*-

letter = ["グラードン","カイオーガ","レシラム","キュレム"]

print("どれだけ早くポケモンを打てるかな\n")
printf("%s\n", letter)

start = Time.now.to_i

i = 0
while i < letter.length 
  printf("\v%s:", letter[i])
  input = gets.chomp
  if input == letter[i]
    stop = Time.now.to_i
    STDERR.print("\t正解\n") 
    i += 1
  end
end

printf("かかった時間 %d 杪!\n", stop - start)

 \end{lstlisting}


\chapter{プログラミング教育の考察}\label{kousatu}
本章では、第\ref{kekka}章のアンケート結果から考察を述べる。

\section{プログラミングについて}
プログラミングのイメージは楽しそうというイメージがある。しかし、難しそうというイメージもあった。授業をしてまたプログラミングをしてみたいという回答が多かった。実際にプログラミングを学んでみて難しかったという回答があった。内容が難しく感じたのは、\ref{dankai}で述べたように発達段階の要因があるのではないかと考える。また、内容が難しく感じたという理由だけではなく、キーボード操作も難しく感じた要因ではないかと考える。

\section{小学生に身につけてほしい力}
Rubyてらこったで参加した小学生に身につけてほしい力についてアンケート結果、授業の様子、作成したプログラムから考察を述べる。
\begin{description}
 \item[知識及び技能]\mbox{}\\ 
5回目の授業で自由に作成したプログラムを見ると授業で学んだことを理解し、工夫してプログラムを作成していた。そのことから、知識及び技能が身についたと考える。
\item[思考力、判断力、表現力等]\mbox{}\\ 
毎回の授業でプログラムを作成するときに、分からないことがあると教科書を見て考えたり、大学生に質問をしたりしていた。また、もっとプログラムを良くするにはどのメソッドを使えばいいのか判断していた。そのことから、思考力、判断力、表現力等の力が身についたと考える。
\item[学びに向かう力、人間性等]\mbox{}\\ 
プログラムを集中して作成したり、授業中に分からない所があった時に周りの大学生に質問をしたりして解決をしていた。また、難しい内容の部分でも積極的に学ぼうとする姿勢があったので
学びに向かう力、人間性等が身についたと考える。
\item[工夫する力]\mbox{}\\
毎回の授業でサンプルのプログラムを自分で考えて作成していた。5回目の授業のオリジナルのプログラムを作成する時に前に作成したものを改良して作成ができていたので身についたと考える。
\item[伝える力]\mbox{}\\ 
自分が作成したプログラムの工夫した点や頑張ったところなど発表することができていた。また、他の人が作成したプログラムに対しての
感想やどうやったらこの動きになるのかなど質問をお互いにしていたので力が身についたと考える。
\end{description}


\section{論理的思考について}
論理的思考についての結果\ref{jissai}節では身についたと思う実感している小学生が多いという結果になった。5回目の授業で今まで学んだものを使い作成するときにもどのようにしたら動くのかを考えて作成している小学生が多かった。しかし、\ref{jissai}節で述べたようにプログラミングが難しいという結果も出た。
\section{波及効果について}

仮説では変化があるのではないかと考えたが実際には変化がなかった。変化がなかった原因としては以下3つの原因があると考える。1つ目は、回数が少ないことである。プログラミング教室開催が全5回と回数が少ないため変化が現れなかったと考える。2つ目は、対象人数が少ないことである。今回の対象人数は12人であった。勉強が好きの項目で数値が変化しなかったのは7人、数値があがった人は2人、数値が下がった人は3人であった。勉強が嫌いの項目では、変化しなかったのは10人、数値が上がったのは1人、数値が下がったのは1人であった。変化しない参加者が多く数値に変化が現れなかった。3つ目は、質問方法に問題があったことである。学習の部分だけでは、波及効果が見られなかった。しかし、自由記述では、\ref{sonota}で述べたように、もっと難しいプログラムを作る、自分でゲームを作りたい、みんなにプログラミングを教える、50m クロールで泳ぎたいなどの回答があった。そのような回答から波及効果があったのではないかと考える。そのため、学習の項目だけに変化がなかっただけで質問方法に問題があったのではないかと考える。


\section{t検定の結果}\label{tkekka}
有意傾向の結果がでたのは、勉強が難しいという項目であった。
小学校の学習内容よりも今回のプログラミング教室の内容が難しく感じたためこのような結果がでたと考える。また、プログラミング教室の開催期間が夏休み中であり、学校で授業をしていない期間であるため、実感をもって答えられなかった可能性がある。

\chapter{手引作成について}
\ref{kaisaijyoukyou}節で述べたようにプログラミング教室は、年々増加している。しかし、しかし、プログラミング教室を企画・運営をするにはどの人を対象とするのか、道具は何を準備するのか、教える体制、準備期間などを決めなければならない。しかし、そのような情報について詳しくまとめてあるものがWeb上で公開されていない。そのため、プログラミング教室を運営するための手引が必要であると考えた。
Rubyてらこったの授業でのアンケートの結果、アンケート分析、授業の様子、作成したプログラムからプログラミング教育を通して、「知識及び技能」、「思考力、判断力、表現力等」、「学びに向かう力、人間性等」、「工夫する力」、「伝える力」が身に付けることができたという結果になった。そのことから、Rubyてらこったの活動を基準としたプログラミング教室の手引を作成した。手引は、企画の立て方、運営方法、準備期間などをまとめた。概要と構成は以下の通りである。
\section{手引の作成の背景}
Webサイトにてプログラミング教室を開催するための方法が公開されている\cite{web1}\cite{web2}\cite{web3}。公開されて
いる情報はプログラミング教育の目的、使用教材、所要時間などである。しかし、その情報では足りない部分があると考えた。例えば、小学生にプログラミングを教える体制、教える方法など具体的な内容などである。そのため、実際にプログラミング教室を開催する企画を立ててから授業を行うための手引が必要であると考えた。

\section{手引の概要}
本研究で作成する手引は、実際にRubyなどを用いたプログラミング教室を企画し、運営していくのに利用してもらうことを目的としている。そのために、企画するうえでの計画の立て方、プログラミング教室を通して身につけてほしい力、小学生に教える範囲の決め方などを述べている。運営では、教えるために必要な役割、授業の準備、教えるための方法を述べている。
\section{手引の構成}
はじめてプログラミング教室を企画、運営する人にも分かりやすい手引を作成した。
\begin{description}

\item[1章はじめに] \mbox{}\\ 
プログラミング教育必修化の背景、プログラミング教室、プログラミング教室の課題についてまとめてある。
\item[2章プログラミング教室実施のための必要項目] \mbox{}\\ 
教える側が必要なこと、プログラミング教室の目的と小学生に身につけてほしい力、授業・日程についてまとめてある。
\item[3章運営] \mbox{}\\ 
運営方法、必要な道具、授業準備、各授業のサンプルプログラム、模擬授業、他の機関との調整についてまとめた。
\item[4章授業をするための方法] \mbox{}\\ 
当日の準備・確認事項、授業の流れ、プログラム発表について、授業後のミーティングについてまとめた。
\item[5章授業を受講した小学生の感想] \mbox{}\\ 
授業で楽しいと感じた部分、授業で難しいと感じた部分、小学生が作成したプログラムについてまとめた。
\item[6章教えるための要点] \mbox{}\\
教える上で注意すること 、その他(授業の内容が予定より進まなかった場合、参加者が来れなくなった場合、利用している PC の調子が悪くなった時)についてまとめた。
\item[7章実際に行うための一例] \mbox{}\\ 
Ruby てらこったの活動を踏まえて企画、運営を円滑に行うための提案についてまとめた。
\item[8章課題の考察] \mbox{}\\ 
プログラム教室を運営するための課題(プログラミングツールに関する課題、プログラミング環境に関する課題、プログラミング教育を行う教員の課題)の考察についてまとめた。
\item[付録] \mbox{}\\ 
授業で使用した、コマンド集、アルファベット対応表を添付している。
\end{description}
\chapter{結論}


\section{結論}
小学生のプログラミングに対するイメージは、楽しそうとイメージだけではなく、難しそうとイメージがある。プログラミング教室でRubyを用いたプログラミングを教えたが、あらかじめ持っていたイメージと実際にプログラミングをした後の変化は無かった。しかし、アンケートの結果、アンケート分析、授業の様子、作成したプログラムからプログラミング教育を通して、「知識及び技能」、「思考力、判断力、表現力等」、「学びに向かう力、人間性等」、「工夫する力」、「伝える力」が身に付けることができたという結果になった。これらより、Rubyてらこったの活動を基準としたプログラミング教室の手引を作成した。
\section{今後の展望}
今後の展望については、以下の通りである。
\begin{description}


 \item[はじめてプログラミング教室を運営をする人に手引を利用してもらう]\mbox{}\\ 
実際に手引を利用してもらいプログラミング教室を運営してもらう。そこで情報が不足していたり、改善をしたほうがよい場合は手引を修正する。


\item[アンケートの改善]\mbox{}\\ 
今回はアンケートと作成したプログラムにより身についた力の判断をした。プログラムができてもそれぞれのメソッドについてしっかり理解しているのか分からない部分がある。そこでアンケートに加え、学習した用語を実際にテストのように書いてもらう方法で判断し検証をする。

\end{description}
\newpage
\section*{謝辞}
本研究は、平成30年度私立大学ブランディング事業「地域資源を産業振興やIT技術により活用できる人材の育成」の助成を受けた成果である。
酒田市教育委員会、鶴岡教育委員会、参加してくれた方などRubyてらこったの活動に協力をしていただいた方に感謝を申し上げる。

\begin{thebibliography}{99}


             \bibitem{monbu}  文部科学省. ``小学校プログラミング教育の手引(第二版)''. \url{http://www.mext.go.jp/component/a_menu/education/micro_detail/__icsFiles/afieldfile/2018/11/06/1403162_02_1.pdf}, (参照日2019-5-24).


 \bibitem{sinri} サトウタツヤ  渡邊芳之.「心理学・入門ー心理学はこんなに面白い」,株式会社有斐閣,2011,p268.　
　\bibitem{soumu}  総務学省. ``プログラミング人材育成の在り方に関する調査研究報告書''. \url{http://www.soumu.go.jp/main_content/000361430.pdf}, (参照日2019-8-1).　　
\bibitem{matumoto} 室谷心 .``小学生にプログラミングを教える''.松本大学研究紀要（2013)p269-281.

\bibitem{sojyo} 田口雄太 杉浦忠男 中島厚秀 .``プログラミング教室を通した相互成長―宇城市プログラミング教室―''.崇城大学紀要（2019)p115-122.

\bibitem{kaihatu} 室谷心 矢野口聡 浅見（林）大輔 .``楽しさで引っ張るプログラミング入門講座 : JavaScriptを使った1日プログラミング教室用教材の開発と試用''.松本大学研究紀要（2018)p75-82.

\bibitem{akita} 廣田千明 寺田裕樹 橋浦康一郎  渡邉貫治.``地方大学における学生主体の子ども向けプログラミング教室　ー秋田県におけるIT教育の推進ー''.秋田県立大学ウェブジャーナルA（地域貢献部門）（2017)p71-80.
  \bibitem{niigata} 河原和好 .``小学生を対象にしたプログラミング教育について''.新潟国際情報大学情報文化学部紀要（2017)p27-35.

 \bibitem{siritu}  文部科学省.``私立大学研究ブランディング事業''. \url{http://www.mext.go.jp/a_menu/koutou/shinkou/07021403/002/002/1379674.htm}, (参照日2019-9-18).
 \bibitem{koeki}  東北公益文科大学. \url{https://www.koeki-u.ac.jp/news_topics/branding-saitaku_2017.html}, (参照日2019-9-18).
 
  \bibitem{naiyou} 広瀬雄二.「Ruby プログラミング基礎講座」,技術評論社,2006,p312.
 
             \bibitem{terakotta}  大石桃菜 佐々木大器 山口円馨 .``東北公益文科大学における小学生向けプログラミング教室「Rubyてらこった」の取り組み''.文部科学省 私立大学研究ブランディング事業 日本遺産を誇る山形県庄内地方を基盤とした地域文化とＩＴ技術の融合による伝承環境研究の展開（平成29年度～平成33年度)p50-54.


 \bibitem{kentei}  田中敏 Nappa. ``js-STAR''.\url{http://www.kisnet.or.jp/nappa/software/star/}, (参照日2019-12-3).

\bibitem{web1} Progra!. ``小・中学生向けプログラミング教室を開業（開校）するための準備と手順のポイント''. \url{https://progra.org/blog/65/}, (参照日2019-11-14).
　

\bibitem{web2} NPO法人Rubyプログラミング少年団. ``~一日Rubyプログラミング体験教科書''. \url{https://github.com/smalruby/smalruby.jp/tree/master/source/files}, (参照日2019-11-14).　　　　       


\bibitem{web3} 総務省. ``一日Rubyプログラミング体験教科書''. \url{http://www.soumu.go.jp/programming/data/017/017_01_01.pdf}, (参照日2019-11-14).　



　　　　　             
　\end{thebibliography}
\chapter*{付録}








\end{document}



