Newer
Older
2019-kameya / ronbunsyu1.tex
%#DVIPDF dvipdfmx -f index.txt -p a5
% (replace-string "、" ",")
\documentclass[a5j,10pt]{jsarticle}
% \title{}
\title{プログラミング教室の運営と手引の作成}
\author{  亀谷千香子\thanks{c116049@h.koeki-u.ac.jp}\\
 	 広瀬雄二\thanks{yuuji@koeki-u.ac.jp}
}
\date {}
%\setlength{\topmargin}{-1cm}       
%\addtolength{\textheight}{4cm}
%\addtolength{\textwidth}{2cm}
%\addtolength{\oddsidemargin}{-1cm}
\addtolength{\topmargin}{-1cm}          % 紙上端1インチからのマージン           
\addtolength{\oddsidemargin}{0cm}
\addtolength{\evensidemargin}{0cm}
\addtolength{\textwidth}{1zw}
\setlength{\itemsep}{0.5ex}
\setlength{\textheight}{18cm}

% \addtolength{\evensidemargin}{-1cm}
\pagestyle{empty}
\usepackage{url}	% required for `\url' (yatex added)
\usepackage[dvipdfmx]{graphicx}
%\usepackage[sectionbib]{chapterbib}
\usepackage{ascmac}
% \usepackage{longtable}
% \usepackage{geometry}
\usepackage{tabularx}
\begin{document}
\maketitle
%\begin{center}
% \LARGE プログラミング教室の運営と手引の作成\\
%\end{center}
%\begin{flushright}
%廣瀬研究室 4年 C1160497
%\end{flushright}


%\maketitle
\begin{center}
 {\bfseries 概要}
\end{center}
2020年度に小学生のプログラミング教育が必修化される。文部科学省の小学校プ
ログラミング教育の手引では,プログラミング教育で身につけたい力として「知
識及び技能」,「思考力,判断力,表現力等」,「学びに向かう力,人間性等」
が挙げられている。東北公益文科大学では,2018年度2019年度に小学5,6年生を
対象とした本格的なRubyプログラミング教室を開催した。それを通じ小学生がプ
ログラミングミングに対してどのようなイメージ・興味があるのかについてアン
ケートを用い調査した。また,その実績をもとにRuby等を用いた小学生向けのプ
ログラミング教室を運営をするための事前の準備,教える方法などをまとめた手
引を作成した。

%\thispagestyle{empty}
\section{背景}
%2020年に小学生のプログラミング教育が必修化され,総合学習の一つとして様々
%な科目でプログラミングを題材とすることが見込まれている。
%また,小学校だけ
%のプログラミングだけではなく,外部のプログラミング教室の開催も年々増加し
%ている。

情報化社会への対応は教育課程にも影響を与える。2020年度に予定されている小
学校の課程におけるプログラミングの導入など,年少期教育における動向につい
て簡単に示す。

\subsection{小学生プログラミング教育必修化}\label{a}
普段の生活の中で身近な家電,自動車にはコンピュータが内蔵されている。その
コンピュータを動かしているのはプログラムであるため,プログラム仕組みを理
解し情報を適切に活用,選択し問題を解決していくことが重要と考えられている。
このため文部科学省は,2020年度からの小学校の教育にプログラミングを導入す
ることを打ち出した。これは,プログラミングそのものの技術力向上を目指した
ものではない。文科省ではプログラミング教育を通して身につけたい力として,
以下の3つの力を挙げている\cite{monbu}。
\begin{description}
 \item[知識及び技能]\mbox{}\\ 
生活でコンピュータが活用されていくことや,問題の解決には必要な手順があること
 \item[思考力,判断力,表現力等]\mbox{}\\
発達の段階に即してプログラミング的思考力を育成すること
 \item[学びに向かう力,人間性等]\mbox{}\\
発達段階に即して,コンピュータの働き,よりよい人生や社会づくりに生かそうとする態度を涵養すること
 \end{description}


% \subsection{プログラミング教室開催状況}
このような流れに乗る形で,小学校以外,民間のプログラミング教室等の開催状
況に変化が現れている。外部のプログラミング教室は1999年から2014年以降まで
を比べてみると,年々増加していることが分かる(図\ref{hikaku})。2013年以降
からはプログラミング教室を開催している団体が急増している。
\begin{figure}[tp]
  \begin{center}
\includegraphics[width=6cm]{kaisai.pdf}
\caption{プログラミング教室始時期\cite{soumu} 図5-3より引用}
\label{hikaku}
 \end{center}
\end{figure}

\subsection{小学生の発達段階}\label{dankai}
学習指導要領では,科目で学ぶ内容に合せプログラミングを行うとのことだが,
プログラミング教育は,小学生の発達段階において難易度が高いのではないだろ
うか。表~\ref{dan}に示したとおり,ピアジェが仮説化する各発達段階での子ど
もの思考特徴では7〜12歳(小学校生)は具体的操作段階である\cite{sinri}。そ
の段階では,具体物を扱う限りにおいては論理的操作が可能だが,科学的な問題
や論理的変換のようにあらゆる可能な組み合わせを考えねばならない問題には困
難を示すとある。しかし,12歳以上になると形式的操作段階となり,経験的事実
に基づくだけではなく,仮説による論理的操作や,命題間の論理的関係の理解が
可能である。
\begin{table}[tp]
  \begin{center}
\small
    \caption{ピアジェが仮説化する各発達段階での子どもの思考特徴\cite{sinri} より引用}
  \label{dan}

 
    \begin{tabular}{|l|l|p{0.5\columnwidth}|} \hline
         発達段階 &年齢の範囲&達成可能な典型と限界\\ \hline \hline
     具体的操作段階 &7〜12歳&具体物を扱う限りにおいては論理的操作が可能
	     になる。ものや事象の静的な状態だけでなく変換の状態をも表象
	     可能,外見的な見えに左右されず保存問題や系列化やクラス化の
	     問題解決が可能,だが科学的な問題や論理的変換のようにあらゆ
	     る可能な組み合わせを考えねばならぬ問題には困難を示す。
	     \\ \hline
     形式的操作段階 & 12歳〜   & 経験的事実に基づくだけではなく,仮説に
	     よる論理的操作や,命題間の論理的関係の理解が可能である。よ
	     り抽象的で複雑な世界についての理解が進み,たとえば,エネル
	     ギーの保存や化学的合成に関するような抽象的概念やエネルギー
	     の保存や化学的合成に関するような抽象的概念や知識が獲得され
	     る。\\ \hline
    \end{tabular}
  
  \end{center}
\end{table}
 
これに従うのであれば12歳前後,すなわち小学校6年生前後が形式的操作の発達
する時期であるため,抽象的なままでの本格的プログラミングの概念を理解する
のに適した時期であるのではないかと考えた。
 
\subsection{Rubyてらこった}
%Rubyてらこった,2018年度から大学のブランディング事業の一つでプログラミング言語のRubyを用いたプログラミング教室\cite{terakotta}。目的は,庄内地方を中心とした地域の若者達に情報技術を教え,情報社会を生き抜くために必要な力を身につけていくことである。Rubyてらこったの対象は小学5,6年生である。その理由としては,キーボードの操作の関係からアルファベットを習い終わっていること,また,小学生のうちから本格的なプログラミングを学ぶ機会を提供したいと考えているためである。



東北公益文科大学(以下 本学)では,2018年度から大学のブランディング事業の
一つでプログラミング言語のRubyを用いた小学校5,6年生向けプログラミング教
室「Rubyてらこった」を行っている\cite{terakotta}。目的は,庄内地方を中心
とした地域の若者達に情報技術を教え,情報社会を生き抜くために必要な力を身
につけていくことである。
\subsection{指導内容}
Rubyてらこったは全5回の授業として設計した(表\ref{studyitems})。5回目の授
業では,それまでに習った項目を利用し,ある程度本人が楽しめるものを作れる
ようになることを考慮し,ゲーム的な要素を持つ作品が作れる技能をまず想定し
た。そこから逆算し,Ruby言語に備わるいくつかの項目をピックアップした。表
\ref{methods}がRubyてらこったで取り扱うRubyのメソッドで,これらを適切に
使えるようになるための概念についても順序よく説明する形で教材を作成した。
\begin{table*}[tp]
  \begin{center}
  \small
    \caption{授業内容}  \label{studyitems}
    \begin{tabular}{|l|l|} \hline
      回数 & 内容  \\ \hline \hline
      1回目 & 基本操作 画面出力  自己紹介プログラム \\
      2回目 & ループ  繰り返し処理のプログラム \\
      3回目 & 配列  データ処理のプログラム  \\
      4回目 & 条件分岐  条件のあるプログラム  \\
      5回目 & まとめ 習ったことを応用してプログラムを作成  \\ \hline
    \end{tabular}
  \end{center}
\end{table*}
 
\begin{table*}[t]
\small
 \begin{center}
\caption{Rubyてらこったで取り扱うメソッド}
\label{methods}
\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|l|}{出力メソッド (print,printf,puts)}\\ \hline
  \multicolumn{4}{|l|}{アスキーアートのように入力したものをそのまま出力させ}\\  
  \multicolumn{4}{|l|}{るために必要と判断した}\\\hline
\multicolumn{4}{|l|}{文章処理メソッド(gets,chomp)}\\ \hline
  \multicolumn{4}{|l|}{キーボードに打ち込んだ値を文字列として取得するゲーム}\\  
  \multicolumn{4}{|l|}{プログラムを作るときに必要と判断した}\\\hline
\multicolumn{4}{|l|}{配列及び乱数(srand,rand)}\\ \hline
  \multicolumn{4}{|l|}{2つを組み合わせてクイズ問題を用意して乱数で選ばせ}\\  
  \multicolumn{4}{|l|}{たり,ジャンケンの手の内をランダムに出したりする}\\
\multicolumn{4}{|l|}{ために使うので必要と判断した}\\\hline
\multicolumn{4}{|l|}{sleep関数(sleep)}\\ \hline
  \multicolumn{4}{|l|}{プログラムを時間を指定して一時停止することができるの}\\
 \multicolumn{4}{|l|}{で小学生が楽しむことができるのではないかと判断した}\\ \hline
\multicolumn{4}{|l|}{制御構造(if,elsif,else)}\\ \hline
  \multicolumn{4}{|l|}{クイズの結果の判定や条件で繰り返しを行うため}\\  
  \multicolumn{4}{|l|}{必要であると判断した}\\\hline
  \end{tabular}
    \end{center}
\end{table*}


\subsection{小学生に身につけてほしい力}\label{skills}
\ref{a}で述べたように,小学生のプログラミング教育で身につけたい力は「知
識及び技能」,「思考力,判断力,表現力等」,「学びに向かう力,人間性等」
である。その3つの力に追加してRubyてらこったで身につけてほしい力として
「工夫する力」,「伝える力」を設定した。
\begin{description}
 \item[工夫する力]\mbox{}\\
授業で使うサンプルのプログラムを自分で考えて,工夫をして,他の人とは違うプログラムを作れるようになること
 \item[伝える力]\mbox{}\\ 
伝える力としては,2つの意味がある。1つ目は,自分の作成したプログラムの発表を通して工夫し点,頑張った点など伝えられるようになれること

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

\end{description}



\section{目的}\label{mokuteki}
本研究は,小学生がプログラミングに対してどのようなイメージ,興味があるの
か,プログラミングの授業を通して様々な力が身についたと小学生自身が実感す
ることができるのかを調査していくことを目的とする。また,初めてプログラミ
ング教室を運営する人を対象にした手引を作成する。


\section{プログラミングの意識調査}
小学生からプログラミングに関する意識について取得したアンケートについて示す。

\subsection{質問項目}
本研究ではRubyてらこったに参加した小学生に
\begin{itemize}
 \item 1回目の授業の事前
 \item 毎回の授業後
 \item 最終回終了後
\end{itemize}
の各タイミングでアンケートを実施した。
質問内容は習熟度合いに応じてその都度違うものを用意した(表\ref{tyousa})。

 \begin{table*}[tp]
  \begin{center}
  \small 
    \caption{アンケートの質問項目}
    \begin{tabular}{|l|l|} \hline
      種類 & 内容  \\ \hline \hline
      事前 & 機械操作,プログラミングについて,普段の学習 \\
      授業 &  授業で楽しかったこと,授業で難しかったこと\\
      事後 & 授業について,プログラミングについて,普段の学習  \\ \hline
    \end{tabular}
  \label{tyousa}
  \end{center}
\end{table*}


\subsection{アンケートの結果}
2019年6月,7月のRubyてらこったに参加した小学生のアンケートの結果は以下の
通りとなった。
\begin{itemize}
\item 事前アンケート結果


機械操作については,スマートフォンを普段使用している人が多かった。プログラミング教室参加理由は,プログラミングに興味があって参加した人が半数以上だった。
プログラミングのイメージは,楽しそうというイメージもあるが,難しそうというイメージをもっている参加者もいた。
\item 毎回の授業アンケート結果


毎回の授業で楽しかったことは,機械操作,作成したプログラム発表,プログラムを改造すること,大学生と話したことであった。難しかったことは,機械操作,条件分岐,ループの考え方などであった。
\item 事後アンケート結果


授業については,とても分かりやすい,プログラミングがとても楽しかったという回答が多かった。しかし,プログラミングが難しかったと感じた参加者もいた。
プログラミングを通して筋道をたてて考える力が身についたと実感している参加者が多かった。挑戦してみたいことでは,もっと難しいプログラムを作る,家でもプログラミングをするなどの回答があった。
\end{itemize}
\section{アンケートからの考察}

Rubyてらこったで参加した小学生に身につけてほしい力についてアンケート結果,
授業の様子,彼らが作成したプログラムから受け取り方や習熟できたかについて
考察する。

\subsection{プログラミングについて}
プログラミングのイメージは楽しそうというイメージがある。しかし,難しそうというイメージもあった。授業をしてまたプログラミングをしてみたいという回答が多かった。実際にプログラミングを学んでみて難しかったという回答があった。内容が難しく感じたのは,\ref{dankai}で述べたように発達段階の要因があるのではないかと考える。また,内容が難しく感じたという理由だけではなく,キーボード操作も難しく感じた要因ではないかと考える。
\subsection{論理的思考について}
アンケートから筋道を立てて考える力が身についたと実感している小学生が多いという結果になった。5回目の授業で今まで学んだものを使い作成するときにもどのようにしたら動くのかを考えて作成している小学生が多かった。
\subsection{身につけたい力について}
文科省がプログラミングを通じて獲得を期待している力,ならびに本学Rubyてら
こったを通じて付けて欲しいと考えている力(\ref{skills}節)について,
それぞれまとめたものを表\ref{kousatu}に示す。

\begin{table*}[h]
\small
  \begin{center}
\caption{身につけさせたい力について}
 
\begin{tabular}{|c|c|c|c|}
\hline
\multicolumn{4}{|l|}{知識及び技能}\\ \hline
 \multicolumn{4}{|l|}{5回目の授業で自由に作成したプログラムを見ると授業で学ん}\\
  \multicolumn{4}{|l|}{だことを理解し,工夫してプログラムを作成していた。}\\  \hline

\multicolumn{4}{|l|}{思考力,判断力,表現力等}\\ \hline
  \multicolumn{4}{|l|}{毎回の授業でプログラムを作成するときに,分からないことが}\\ 
  \multicolumn{4}{|l|}{あると教科書を見て考えたり,大学生に質問をしたりしていた。}\\
 \multicolumn{4}{|l|}{また,もっとプログラムを良くするにはどのメソッドを使えば}\\
\multicolumn{4}{|l|}{良いのか判断していた。そのことから,思考力,判断力,表現}\\
\multicolumn{4}{|l|}{力等の力が身についたと言える。}\\\hline 

\multicolumn{4}{|l|}{学びに向かう力,人間性等}\\ \hline
  \multicolumn{4}{|l|}{プログラムを集中して作成したり,授業中に分からない所が}\\
  \multicolumn{4}{|l|}{あった時に周りの大学生に質問をしたりして解決をしていた。}\\
  \multicolumn{4}{|l|}{また,難しい内容の部分でも積極的に学ぼうとする姿勢があっ}\\  
   \multicolumn{4}{|l|}{たことから,学びに向かう力・人間性等が身についたと言える。}\\  \hline 

\multicolumn{4}{|l|}{工夫する力}\\ \hline
  \multicolumn{4}{|l|}{毎回の授業でサンプルのプログラムを自分で考えて作成して}\\
  \multicolumn{4}{|l|}{いた。5回目の授業のオリジナルのプログラムを作成する時に}\\
  \multicolumn{4}{|l|}{前に作成したものを改良して作成ができていたので,身につい}\\  
  \multicolumn{4}{|l|}{たと言える。}\\\hline


\multicolumn{4}{|l|}{伝える力}\\ \hline
  \multicolumn{4}{|l|}{自分が作成したプログラムの工夫した点や頑張ったところなど}\\
  \multicolumn{4}{|l|}{発表することができていた。また,他の人が作成したプログ}\\
  \multicolumn{4}{|l|}{ラムに対しての感想やどうやったらこの動きになるのかなど}\\  
  \multicolumn{4}{|l|}{質問をお互いにしていたので,力が身についたと言える。}\\\hline
  \end{tabular}
\label{kousatu}
    \end{center}
\end{table*}


\subsection{受講前後のイメージ変化の検証}\label{tkekka}
Rubyてらこったの経験を通じて,プログラミングや勉強に対して好ましい印象の
変化は見られたのかについて検定を行なった。
アンケートの回答を数値化し,開催前後でそれらを比較する形で分析を行った。
同じ児童について追跡して2回測定するので対応のあるt検定を用いた。

プログラミング教室受講前と後の変化についての仮説は,プログラミングを実際
に行うとプログラミングはイメージよりも楽しく,難くはないという結果が出る
と考えた。また,プログラミングを通して学校の勉強が好きになり難しく感じな
くなるという仮説を立てた。比較項目と結果は以下の4つである(表\ref{t})。有
意傾向の結果が出たのは,勉強が難しいという項目だけであった。


\begin{table*}[tp]
\centering \caption{t検定の結果}

\begin{tabular}{|p{0.4\columnwidth}|p{0.55\columnwidth}|}
\hline
\small プログラミングは楽しそうとプログラミングは楽しかったを比較&(t(11)=1.1516, n.s)となり有意ではなかった。イメージと実際の差はなかった。\\\hline
\small プログラミングは難しそうとプログラミングは難しかったを比較&(t(11)=1.4663, n.s)となり有意ではなかった。イメージと実際の差はなかった。\\\hline
勉強が好き                                             &(t(11)=1.1055, n.s)となり有意ではなかった。\\\hline
勉強が難しい                                           &(t(11)=2.1574, p $<$ .10)となり有意傾向である。\\\hline

%\label{t}
  \end{tabular}
\label{t}
\end{table*}


今回のプログラミング教室は希望者を募ったものであり,プログラミング
に対する元々の期待感が高い小学生によるものである。このため,「イメージが
向上した」という結果が出にくい条件であるとも言える。裏を返せば,期待感を
裏切らない結果であったことになる。

また,今回「小学校の学習内容の難易度」のみ開催後の数値変化に有意差が見ら
れた。これにはいくつかの要素が考えられる。たとえば,今回のプログラミング
教室では可能なところでは学校の勉強と結び付けて説明した部分があり,その点
について難しさを想起させた可能性が考えられる。また,プログラミングを遊び
のように捉えて反復して理解している様子が見られたが,そうした理解と学校で
の学習を比較して,受講前と異なる回答をした可能性も考えられる。いずれにせ
よプログラミング教室の開催期間が夏休み中であり,学校で授業をしていない期
間であるため,実感をもって答えることができなかった可能性もあるため,この
点に関してはさらなる検討が必要であると考える。


 \section{手引書について}
表\ref{hikaku}とも関連するが,プログラミング教室開催の必要性は高まって
いくことが予想できる。こうした流れより,いくつかのWebサイトにてプログラ
ミング教室を開催するための方法が公開\cite{web1}\cite{web2}\cite{web3}お
り,プログラミング教育の目的,使用教材,所要時間などが示されている。し
かしながら,実際に開催するとなったときにはその情報では足りず,計画手法
や段取など,より現実的な部分が必要になってくると考えた。たとえば,小学
生にプログラミングを教える体制,時期の設定方法,教える方法,実際の時間
割作成など具体的な内容などである。

そこで,実際にプログラミング教室を開催する企画を立ててから授業を行うまで
の参考となるよう,2018年度,2019年度のRubyてらこったの活動を踏まえ手引書
を作成した。手引書は,はじめてプログラミング教室を企画,運営する人にも分
かりやすくなるよう,具体的な流れなどを含めて以下のような構成とした。
\begin{itemize}
 \item 活動する人の必要な知識や能力,プログラミング教室を行う目的,小学
       生に身につけてほしい力,日程の立て方について
 \item 企画したものを運営するための役割,業務内容,授業準備について
 \item 授業の流れ,当日の準備について
 \item 参加した小学生の感想
 \item 小学生に教える時の授業担当者,アシスタントそれぞれの注意点について
 \item 企画,運営をするために何にどのくらいの時間をかけて準備しているの
       か,円滑の活動を行うための方法
\end{itemize}

 \section{まとめ}
  参加した小学生は,プログラミング教育を通して,「知識及び技能」,「思考
  力,判断力,表現力等」,「学びに向かう力,人間性等」,「工夫する力」,
  「伝える力」が身に付けることができたと言える。

  プログラミング教室の受講前と後のイメージ向上に関する有意な差は得られな
  かったが,これは元々の期待感の高い層のみに限られた可能性が否めない。必
  修化され,全員を対象とした教室を開催する時には,イメージを悪化させない
  工夫がより一層重要と言える。

  また,Rubyてらこったのような本格的なプログラミング教室の開催により,形
  式的操作の発達が促進されることも期待できるため,同様の本格的プログラミ
  ング教室が多くの場所で開催されることを期待する。

% \appendix
\section*{謝辞}

本研究は,平成30年度私立大学研究ブランディング事業タイプA「日本遺産を誇
る山形県庄内地方を基盤とした地域文化とIT技術の融合による伝承環境研究の展
開」の助成を受けた成果である。

\section*{付録}
本研究の成果として作成したプログラミング教室の手引書は,公開GitBucketサー
バにおいて以下のURLで取得できる。初等プログラミング教育の一助となれば幸
いである。

\begin{tabular}[t]{lp{0.8\columnwidth}}
 URL: & \scriptsize\url{https://www.yatex.org/gitbucket/HiroseLabo./2019-kameya/raw/master/tebiki2.pdf}\\
  & \includegraphics[bb=0 0 206 206,clip,width=0.2\columnwidth]{tebiki-url.pdf}\\
\end{tabular}

% QR: \includegraphics[bb=0 0 206 206,clip,width=0.3\columnwidth]{tebiki-url.pdf}
     
\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{terakotta}  大石桃菜 佐々木大器 山口円馨 .``東北公益文科大学における小学生向けプログラミング教室「Rubyてらこった」の取り組み''.文部科学省 私立大学研究ブランディング事業 日本遺産を誇る山形県庄内地方を基盤とした地域文化とIT技術の融合による伝承環境研究の展開(平成29年度~平成33年度)p50-54.
 \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}
\end{document}