\documentclass[a4j]{jarticle} % -*- coding: utf-8 -*- \addtolength{\topmargin}{-1cm} \addtolength{\textheight}{2cm} \addtolength{\textwidth}{2cm} \addtolength{\oddsidemargin}{-1cm} \addtolength{\evensidemargin}{-1cm} \usepackage[dvipdfmx]{graphicx} \usepackage{url} \usepackage{ascmac} \pagestyle{empty} %% タイトル %% \title{Unityを用いた学習アプリケーションの提案} %% 著者 %% \author{広瀬研究室4年 \\C1211088 佐藤逸樹} %% 日付 %% \date{令和6年11月20日} \begin{document} \twocolumn[ \maketitle \begin{center} {\bfseries 概要} \end{center} 日本では2020年には小学校,2021年には中学校,2022年には高校でのプログラミング学習の必修化が始まっている。小学校,中学校の場合,実際に行われるプログラミング学習とはプログラミング言語を学ぶものではない。実際に言語を学ぶのは高校に上がってからである。しかし,後に学ぶであろう言語に触れておくことは予習という点から見てやっておいた後が良いのではないかと考えた。そのため,小学生,中校生の学習方法に近い言語学習アプリの作成を提案する。 \vspace*{2em} ] \thispagestyle{empty} \section{背景} 2017年及び2018年に行われた文部科学省による学習指導要領改訂\cite{tebiki}によって,コンピュータを理解し上手に活用していくことは,これからの社会を生きていく子どもたちにとって,将来どのような職業に就くとしても,極めて重要なこととなっているという考えから,2020年には小学校,2021年には中学校,2022年には高校でのプログラミング教育の必修化が行われている\cite{suke}。平成28年に行われた文部科学省の有識者会議によると,小学校,中学校のプログラミング教育は実際に文字を書くようなテキスト型プログラミング言語を学ぶのではなく,自分の意図した一連の活動を実現させるためにどのような動きや記号が必要で,それらをどのように組み合わせたり改善していけばよいかを論理的に考えていく力であるプログラミング的思考を育むことが目的であると定義した\cite{kaigi}。テキスト型言語は高校に進学してから学習する\cite{koukou}。文部科学省はプログラミング的思考を育む方法のうちコンピュータを用いる方法でブロックを積み上げるようにしてプログラミングを行うビジュアル型プログラミング言語を用いて自分が考えている動きを実現させる方法を想定している。実際に岐阜県の小学校では第3学年からビジュアル型教材を扱っているという実施例がある\cite{gihu}。ビジュアル型言語は初学者にとって使いやすいプログラミング言語と考えられており,入門段階で成功を収めている。 %この間に文章を入れる(予習の重要性、しかし〜と始めるようなテキスト型を急に学習する難しさなど) \\ しかし,ビジュアル型プログラミング言語が入門段階で成功を収めていると言っても,高校に進学後いきなりテキスト型プログラミング言語を学ぶことは,学習内容を理解することがで難しい人も出てくるのではないかと考える。%例えば公益大の...。:公益大の基礎プロで履修者に対して落とす人はどれくらいいるかなどを書いてテキスト型プログラミングを初めて学ぶ難しさの根拠を書く。 プログラミングに限らず学校で学ぶことは一度で覚えられるものばかりではないため,学校での学びで授業に遅れず理解を深めるためには予習を行うことが重要であると考える。%予習が重要であるという例。予習:反転授業 \\ そこで,このビジュアル型言語を利用して後に学習するテキスト型言語を学ぶことは,今後プログラミング言語を学習する際の予習となり,授業理解が捗るのではないかと考えた。 \section{目的} 本研究ではビジュアル型言語の形でテキスト型言語を学習できるアプリケーションを開発し,プログラミング学習を受けている小中学生が,高校に進学した後にプログラミング言語を予習する際の手軽な学習手段としてもらうことを目的とする。 \section{先行事例} \subsection{先行サービスの例} ビジュアル型言語はすでにいくつも世の中に出回っている。ここでは先行サービスを3つ紹介していく。 \subsubsection{Scratch} Scratch\footnote{\url{https://scratch.mit.edu/}}は世界最大の子供向けコーディングコミュニティーでシンプルなビジュアルインターフェースを持ったコーディング言語であり、特に8歳から16歳向けにデザインされているがすべての年代の人々使われている。自宅、学校、博物館、図書館など幅広い場面で利用されている。 %スクラッチの画面を入れる \subsubsection{Viscuit} Viscuit\footnote{\url{https://www.viscuit.com/}}はメガネという単純な仕組みたった一つだけで簡単なプログラムから組み合わせ次第で複雑なプログラムまで作ることができるプログラミング言語である。Viscuitではアニメーション・ゲーム・絵本などを簡単に作ることができる。 %ビスケットの画面を入れる \subsubsection{TILES} TILES\footnote{\url{https://vpltiles.com/}}はシンプルなプログラミング言語であり使用する命令は6つのみであるため多くの命令を覚える必要がない。またプログラミングの基本を学ぶための学習テキストがついているため、学習を勧めていくのが容易である。この学習テキストの応用編では人工知能の基礎を学ぶこともできる。 \subsection{先行研究の例} ここではビジュアル型言語とテキスト型言語の両方を使用した先行研究を紹介していく。 \subsubsection{BlockEditorを用いて課題での利用率を調べた研究} 松澤ら\cite{bizyuron}は,ビジュアル型言語は入門段階で成功を収めているが,将来テキスト型言語を必要とする学習者がテキスト型言語への発展が見えにくいシステムを利用することは,入門学習への動機付けをそぐ理由となり,ビジュアル型言語で学習した内容がその後の発展につながらないとしたら本末転倒であるとして,ビジュアル型言語とテキスト型言語を相互変換できるBlockEditorというシステムを用いて,ビジュアル型言語でプログラミングの基礎知識を学習し理解したあとテキスト型言語による実装へとシームレスな移行を目的としている。結果として,最終的に全体の80%の人のBlockEditor使用率が低下している。またBlockEditorを使うことによるJava習得への影響についての質問でBlockEditorを使うことでJava構文の理解が深まると思うというものの支持率が半数程度得られた。このことからBlockEditorがJava言語習得の足場かけとして機能しているという結論がなされている。 \subsubsection{ビジュアル型とテキスト型の学習順序による教育的効果を調べた研究} 岡本ら\cite{okamoto}は,ビジュアル型言語としてBlocky Gamesを,テキスト型言語としてPythonを利用し,その学習順序がプログラミングへの知識・技能・情意面の変化として教育効果にどのような影響を与えるのか考察することを目的としている。結果として,どちらのグループも事前・事後アンケートの結果から情意面の意識に有意な変化はなかったが,事前・事後テストでは先にビジュアル型言語を学習したグループの方がもう一方に比べ「全くわからない」という回答が少なくなっていたことから,先にビジュアル型プログラミング言語を学習することの優位性が示された。 \subsection{先行事例の課題点} スクラッチやタイルズはもともとが子供向けに作られているためプログラミングを全く行ったことがない人であってもプログラムを組むことができるが,ビジュアル型言語であるためテキスト型言語を習得することができない。ビスケットはプログラムを書く際にメガネという独自のルールに則って作業をするため,テキスト型言語を使用する際の形と大きく異なることになる。松澤,酒井らは彼らの研究の限界として,BlockEditorの利用率の分析にとどまっており,BlockEditorが理解度の向上に寄与した直接的なデータが得られなかったことを上げている。岡本恭,安藤らの研究の今後の課題として,彼らが実験で行った画像処理に対する学習以外の学習内容に変えても効果が得られるかどうかというものを挙げている。 また,これらの事例・研究の使用端末は計算機であることからスマートフォンなどでは学習できない可能性がある。そのため,利用者が手軽にシステムを利用するためには,より軽量なシステムを作成する必要がある。 %\begin{figure}[htb] % \centering % \includegraphics[width=7cm]{aprigaiyou(1).pdf} % \caption{クイズの出題例} % \label{figure:quiz} %\end{figure} %\begin{figure}[htb] % \centering % \includegraphics[width=5cm]{sistem-1.pdf} % \caption{システムの流れ} % \label{figure:image} %\end{figure} \section{システムの概要} %\subsection{システムの前提} %\begin{description} % \item[前提1]システムの利用者はテキスト型プログラミング言語を学習したことのない学生とする。 % \item[前提2]システムはWeb上に投稿し,アクセスした人は誰でも利用できるようにする。 % \item[前提3]アクセス及びシステムを用いた学習のタイミングはテキスト型プログラミング言語を学習するまでの間で任意とする。 % \item[前提4]システムの利用は,テキスト型プログラミング言語学習のための予習とするために行う。 %\end{description} \subsection{システムの全体の流れ} \begin{enumerate} \item 利用者はシステムのあるWebサイトにアクセスし、はじめに問題に即した説明文を読む。 \item 問題を表示し,問題が正解になるようにブロクの配置を入れ替える。 \item 解答が正しくブロックが配置されたら正解または不正解を表示する。 システムの概念図は図\ref{figure:unitysistem},システムの流れは図\ref{figure:gainen}の通りである。 \end{enumerate} \begin{figure}[htb] \centering \includegraphics[width=7cm]{unitysistem.pdf} \caption{システムの概念図} \label{figure:unitysistem} \end{figure} \begin{figure}[htb] \centering \includegraphics[width=7cm]{sistem.pdf} \caption{システムの流れ} \label{figure:gainen} \end{figure} \subsection{学習内容について} %研究で使用する技術は,一般的に説明が必要なものは詳細に分かりやすく書き,ある程度認知されていて,詳細な説明が不要な技術はバージョン記載だけにとどめておく(HTMLなど プログラミング言語学習で学習する単元の一覧は図\ref{figure:unit}のとおりである。 本研究で作成したシステムを利用者がWeb上で利用する際に学習するプログラミング言語は東北公益文科大学の基礎プログラミングの授業でも扱われているRubyとし,内容は上記の単元の中でもプログラミングをする際によく使われる制御構造,メソッドの一部の範囲とする。 %\begin{table}[hbtp] % \caption{プログラミング学習における単元の一覧} % \label{tab:unit} % \centering % \begin{tabular}{|c|p{5cm}|} % \hline % 単元 & 主な学習内容 \\ % \hline \hline % 変数 & 値と変数の種類,演算子,代入演算子,論理演算子 など \\ % 制御構造 & if,while など \\ % メソッド & print,printf,gets,chomp,to\_i など \\ % 配列 & 配列について,配列の作り方,配列の値を取り出す方法 など \\ % 正規表現 & 正規表現とは,正規表現の使い方 など \\ % ハッシュ & ハッシュとは,ハッシュの利用方法 など \\ % など \\ % \hline % \end{tabular} %\end{table} \begin{figure}[htb] \centering \includegraphics[width=7cm]{unit.pdf} \caption{プログラミング学習における単元の一覧} \label{figure:unit} \end{figure} %表だからキャプションを表の上にする \section{システムの開発} \subsection{開発環境} \begin{itemize} \item Unity version 2021.3.25f1 Unityとは主に2D、3Dゲームの制作に用いられるゲーム制作エンジンで簡単なゲームから複雑なゲームまで様々なゲーム開発に用いられている。 \item C# C#とはマイクロソフトが開発したプログラミング言語であり,GUIアプリ開発や、Webtアプリ開発,ゲーム開発などに使われる。今回はUnityにプログラムを入力する際に使用。 \end{itemize} \subsection{システムの機能} %\subsubsection{単元選択機能} %単元選択機能は,システムの利用者がシステムを利用するときに自身が学習したい単元を選択するための機能である。単元が選択されたら問題説明画面\footnote{選択した単元やその問題で扱われるメソッドに対する説明を行う画面。その画面のときに画面を押すと問題回答画面に移動する。}に移動した後,パズルクイズ形式学習機能が実装された問題回答画面へ移動する。選択できるようにする単元の内容は4.2節で示したとおりである。 %作成途中のunityの画像を貼る、どうして画像のような構図にしたのかかく %\begin{figure}[htb] % \centering % \includegraphics[width=7cm]{selectunit.png} % \caption{単元選択画面の図(仮)} % \label{figure:selectunit} %\end{figure} \subsubsection{プログラミング言語説明機能} 学習する言語について説明する機能である \subsubsection{パズルクイズ形式学習機能} パズルクイズ形式学習機能は、システムの利用者がシステムを開始したら問題が出題され,それに対して利用者はパズル形式で回答するための機能である。 %\begin{figure}[htb] % \centering % \includegraphics[width=7cm]{unity.png} % \caption{問題回答画面の図(仮)} % \label{figure:unity} %\end{figure} \subsection{システムの提供方法} UnityではシステムをUnityroomというwebサイトに投稿することができるためweb上に上げたシステムを使用者に使ってもらうという形で提供する。 \section{予備実験} \subsection{実験方法} 本研究のシステム評価の方法として酒田光陵高校の情報科の生徒20名を対象者として,システムを利用してもらった後、アンケートに回答してもらいその結果によって評価を行う。(図\ref{figure:test}) \begin{figure}[htb] \centering \includegraphics[width=6cm]{test.pdf} \caption{実験の流れ} \label{figure:test} \end{figure} \subsection{実験結果} 結果,1週間中70%の人が家でプログラミングの学習をほとんど行わず,75%の人が小学校・中学校でビジュアル型言語の利用経験があり,全員がテキスト型言語の利用経験があるということだった。この結果より実験の被験者として相応しいと判断した。また,他のアンケート内容の結果よりシステムの有用性が示された。システムに対する意見として「問題が難しかった」「問題の回答中にもメソッドや制御構造の説明が見たかった」「問題回答中にヒントが欲しかった」などの意見があった。 \begin{description} \item[質問3] 文字や記号のみでプログラミングを学習するのに比べ,今回のようなプログラミング学習方法は簡単でしたか。 \item[質問4] 今回行ってもらったプログラムの学習方法はわかりやすかったですか。 \item[質問5] 今回行ってもらった方法によるプログラミングの学習はプログラミング能力向上や学校の授業の予習に役立ちますか。 \begin{itemize} \item 役立たない・・・0% \item 役立つ・・・100% \end{itemize} \end{description} \begin{figure}[htb] \centering \includegraphics[width=6cm]{ank_hiritu3-4.pdf} \caption{質問3および4の回答結果} \label{figure:ank3-4} \end{figure} %\begin{table}[hbtp] % \caption{アンケートの内容} % \label{tab:result} % \centering % \begin{tabular}{|p{4cm}|p{4cm}|} % \hline % 質問 & できない←---→できそう \\ % \hline \hline % 実際にコードを書くときに自分でかけそうか & 1-2-3-4 \\ % \hline % これからもプログラミングを続けられそうか & 1-2-3-4 \\ % \hline % 自由記述 & \\ % \hline % \end{tabular} %\end{table} %\begin{figure}[htb] % \centering % \includegraphics[width=7cm]{wsheet.pdf} % \caption{アンケートの内容} % \label{figure:result} %\end{figure} \section{今後の展望} 本研究で使用するシステムの大部分は完成した。今後は,アンケートで得られた意見を参考にシステムを改良していき,20歳から22歳までの大学生を対象に実験を行う予定である。その実験から改良した内容が適切であったかを判断し,システムがプログラミング言語を予習する際の手軽な学習手段になったかを判断する。 \begin{thebibliography}{99} \bibitem{tebiki}文部科学省. ``小学校プログラミング教育の手引(第三版)''. 2020-02. \url{https://www.sejuku.net/blog/wp-content/uploads/2021/07/20200218-mxt_jogai02-100003171_002.pdf}, (参照2023-08-15). \bibitem{suke}文部科学省. ``学習指導要領改訂に関するスケジュール''. \url{https://www.mext.go.jp/content/20220907-mxt_kyoiku02_100002604_001.pdf}, (参照2023-08-15). \bibitem{kaigi}文部科学省. ``小学校段階におけるプログラミング教育の在り方について(議論の取りまとめ)''. 2016-06-16. \url{https://www.mext.go.jp/b_menu/shingi/chousa/shotou/122/attach/1372525.htm}, (参照2023-11-20). \bibitem{koukou}文部科学省. ``高等学校 学習指導要領(平成30年公示)''. 2018-03. \url{https://www.mext.go.jp/content/20230120-mxt_kyoiku02-100002604_03.pdf}, (参照2023-08-15). \bibitem{gihu}岐阜県教育委員会 学校支援課. ``小学校プログラミング教育 実践事例集''. 2020-02. \url{https://www.pref.gifu.lg.jp/uploaded/attachment/238416.pdf}, (参照2023-08-15). \bibitem{bizyuron}松澤芳昭,酒井三四郎. ``ビジュアル型言語とテキスト記述型言語の併用によるプログラミング入門教育の試みと成果''. 研究報告コンピュータと教育. vol.2013-CE-119, no.2. \bibitem{okamoto}岡本恭介,安藤明伸. ``ビジュアル型とテキスト型プログラミングにおける学習順序が教育的効果に与える影響''. 2020. \url{https://www.jstage.jst.go.jp/article/jjet/44/Suppl./44_S44052/_pdf/-char/ja}, (参照2023-09-25). \end{thebibliography} \end{document}