%#!platex -kanji=%k %#DVIPDF dvipdfmx -f ipa.map \AtBeginDvi{\special{pdf:mapfile ptex-ipa.map}} \documentclass{jsbook} %\pagestyle{empty} \usepackage[dvipdfmx]{graphicx} %\usepackage{listings, jlisting} %\usepackage[sectionbib]{chapterbib} %\usepackage{ascmac} \usepackage{geometry} \usepackage{url} % 文中にURLを書くときは \url{} で括る \geometry{textwidth=160mm, textheight=225mm} \renewcommand{\bibname}{参考文献} \title{unityによる学習アプリの提案} \author{広瀬研究室3年 \\C1211088 佐藤逸樹} \date {令和5年度1月○日} \begin{document} \maketitle \begin{center} {\bfseries 概要} \end{center} 日本では2020年からは小学校,2021年からは中学校,2022年からは高校でのプログラミング教育の必修化が始まっている。小学校,中学校の場合,実際に行われるプログラミング教育とは文字を入力していくようなプログラミング言語を学ぶものではなく,ビジュアル型プログラミング言語などを用いてプログラミング的思考を育むものである。実際にテキスト型プログラミング言語を学ぶのは高校に進学してからである。しかし,後に学ぶ言語に触れておくことは予習となり、高校に進学してかの授業理解に役立つのではないだろうかと考えた。そこで,小学生,中学生が高校に進学したときに予習となるような学習アプリケーションの作成を提案する。本研究で作成するアプリケーションは,Unityを用いて作成し,パズル形式で学習できるようにすることで,小学校,中学校で扱うビジュアル型プログラミング言語を学ぶ際の形に近い状態で,テキスト型プログラム言語を学べるようにする。 \tableofcontents \chapter{はじめに} \section{背景} 2017年及び2018年に行われた文部科学省による学習指導要領改訂\cite{tebiki}によって,コンピュータを理解し上手に活用していくことは,これからの社会を生きていく子どもたちにとって,将来どのような職業に就くとしても,極めて重要なこととなっているという考えから,2020年には小学校,2021年には中学校,2022年には高校でのプログラミング教育の必修化が行われている\cite{suke}。平成28年に行われた文部科学省の有識者会議によると,小学校,中学校のプログラミング教育は実際に文字を書くようなテキスト型プログラミング言語を学ぶのではなく,自分の意図した一連の活動を実現させるためにどのような動きや記号が必要で,それらをどのように組み合わせたり改善していけばよいかを論理的に考えていく力であるプログラミング的思考を育むことが目的であると定義した\cite{kaigi}。テキスト型プログラミング言語は高校に進学してから学習する\cite{koukou}。文部科学省はプログラミング的思考を育む方法のうちコンピュータを用いる方法でブロックを積み上げるようにしてプログラミングを行うビジュアル型プログラミング言語を用いて自分が考えている動きを実現させる方法を想定している。実際に岐阜県の小学校では第3学年からビジュアル型教材を扱っているという実施例がある\cite{gihu}。ビジュアル型プログラミング言語は初学者にとって使いやすいプログラミング言語と考えられており,入門段階で成功を収めている。 %この間に文章を入れる(予習の重要性、しかし〜と始めるようなテキスト型を急に学習する難しさなど) \\ しかし,ビジュアル型プログラミング言語が入門段階で成功を収めていると言っても,高校に進学後いきなりテキスト型プログラミング言語を学ぶことは,学習内容を理解することがで難しい人も出てくるのではないかと考える。%例えば公益大の...。:公益大の基礎プロで履修者に対して落とす人はどれくらいいるかなどを書いてテキスト型プログラミングを初めて学ぶ難しさの根拠を書く。 プログラミングに限らず学校で学ぶことは一度で覚えられるものばかりではないため,学校での学びで授業に遅れず理解を深めるためには予習を行うことが重要であると考える。%予習が重要であるという例。予習:反転授業 \\ そこで,このビジュアル型プログラミング言語を利用して後に学習するテキスト型プログラミング言語を学ぶことは,今後プログラミング言語を学習する際の予習となり,授業理解が捗るのではないかと考えた。 \section{目的} 本研究ではビジュアル型プログラミング言語の形でテキスト型プログラミング言語を学習できるアプリケーションを開発し,プログラミング学習を受けている小中学生が,高校に進学した後にプログラミング言語を学習する際の予習としてもらうことを目的とする。 \chapter{先行事例} \section{先行サービスの例} ビジュアル型プログラミング言語はすでにいくつも世の中に出回っている。ここでは先行サービスを3つ紹介していく。 \subsection{Scratch} Scratch\footnote{\url{https://scratch.mit.edu/}}は世界最大の子供向けコーディングコミュニティーでシンプルなビジュアルインターフェースを持ったコーディング言語であり,特に8歳から16歳向けにデザインされているがすべての年代の人々使われている。自宅,学校,博物館,図書館など幅広い場面で利用されている。 %スクラッチの画面を入れる \subsection{Viscuit} Viscuit\footnote{\url{https://www.viscuit.com/}}はメガネという単純な仕組みたった一つだけで簡単なプログラムから組み合わせ次第で複雑なプログラムまで作ることができるプログラミング言語である。Viscuitではアニメーション・ゲーム・絵本などを簡単に作ることができる。 %ビスケットの画面を入れる \subsection{TILES} TILES\footnote{\url{https://vpltiles.com/}}はシンプルなプログラミング言語であり使用する命令は6つのみであるため多くの命令を覚える必要がない。またプログラミングの基本を学ぶための学習テキストがついているため,学習を勧めていくのが容易である。この学習テキストの応用編では人工知能の基礎を学ぶこともできる。 %タイル図の画面を入れる \section{先行研究の例} ここではビジュアル型プログラミング言語とテキスト型プログラミング言語の両方を使用した先行研究を紹介していく。 \subsection{松澤芳昭・酒井三四郎による研究} 松澤と酒井の研究\cite{bizyuron}は,ビジュアル型プログラミング言語は入門段階で成功を収めているが,将来テキスト型プログラミング言語を必要とする学習者がテキスト型言語への発展が見えにくいシステムを利用することは,入門学習への動機付けをそぐ理由となり,ビジュアル型プログラミング言語で学習した内容がその後の発展につながらないとしたら本末転倒であるとして,ビジュアル型プログラミング言語とテキスト型プログラミング言語を相互変換できるBlockEditorというシステムを用いて,ビジュアル型言語でプログラミングの基礎知識を学習し理解したあとテキスト型言語による実装へとシームレスな移行を目的としている。結果として,最終的に全体の80%の人のBlockEditor使用率が低下している。またBlockEditorを使うことによるJava習得への影響についての質問でBlockEditorを使うことでJava構文の理解が深まると思うというものの支持率が半数程度得られた。このことからBlockEditorがJava言語習得の足場かけとして機能しているという結論がなされている。 \subsection{岡本恭介・安藤明伸による研究} 岡本と安藤の研究\cite{okamoto}は,ビジュアル型プログラミング言語としてBlocky Gamesを,テキスト型プログラミング言語としてPythonを利用し,その学習順序がプログラミングへの知識・技能・情意面の変化として教育効果にどのような影響を与えるのか考察することを目的としている。結果として,どちらのグループも事前・事後アンケートの結果から情意面の意識に有意な変化はなかったが,事前・事後テストでは先にビジュアル型プログラミング言語を学習したグループの方がもう一方に比べ「全くわからない」という回答が少なくなっていたことから,先にビジュアル型プログラミング言語を学習することの優位性が示された。 \subsection{先行事例の課題点} スクラッチやタイルズはもともとが子供向けに作られているためプログラミングを全く行ったことがない人であってもプログラムを組むことができるが,ビジュアル型言語であるためテキスト型言語を習得することができない。 ビスケットはプログラムを書く際にメガネという独自のルールに則って作業をするため,テキスト型言語を使用する際の形と大きく異なることになる。 松澤,酒井らは彼らの研究の限界として,BlockEditorの利用率の分析にとどまっており,BlockEditorが理解度の向上に寄与した直接的なデータが得られなかったことを上げている。 岡本恭,安藤らの研究の今後の課題として,彼らが実験で行った画像処理に対する学習以外の学習内容に変えても効果が得られるかどうかというものを挙げている。 \subsection{先行研究からの考察} 先行研究では,先にもしくはテキスト型言語と併用してビジュアル型言語を学習することによる優位性やテキスト型言語習得への足がけとなることが示された。しかし,理解度の向上や他の学習内容に対して効果があるのかは直接的に示されていない。本研究では,ビジュアル型言語を用いて直接テキスト型言語を学ぶため理解度の向上及び他の学習内容に対して効果があるのかどうかを示すことができると考えられる。これはこれからプログラミング教材を作成する人にとって意義のあることである。本研究で開発するシステムは先行研究に残された課題を解決できるよう提案を行った。 \chapter{システムの提案} \section{システムの前提} \begin{description} \item[前提1]システムの利用者はテキスト型プログラミング言語を学習したことのない学生とする。 \item[前提2]システムはWeb上に投稿し,アクセスした人は誰でも利用できるようにする。 \item[前提3]アクセス及びシステムを用いた学習のタイミングはテキスト型プログラミング言語を学習するまでの間で任意とする。 \item[前提4]システムの利用は,テキスト型プログラミング言語学習のための予習とするために行う。 \end{description} \section{システムの開発環境} \begin{itemize} \item Unity Unityとは主に2D,3Dゲームの制作に用いられるゲーム制作エンジンで簡単なゲームから複雑なゲームまで様々なゲーム開発に用いられている \item C# C#とはマイクロソフトが開発したプログラミング言語でオブジェクト指向型の言語であり,GUIアプリ開発や,Webtアプリ開発,ゲーム開発などに使われる。今回はUnityにプログラムを入力する際に使用。 \end{itemize} \section{システムの概要} アプリの使用者に対し \begin{enumerate} \item はじめに問題に即した説明文を表示する。 \item 問題文を表示し、解答に使うブロックとブロックを当てはめるための解答欄を表示する。 \item 解答欄に正しくブロックが配置されたら正解を表示する。 \item 1から3のを別の問題で繰り返す。 システムの概念図は図.\ref{figure:gainen}の通りである。 \\システムの流れは図.\ref{figure:image}の通りである。 \\クイズの出題例は図.\ref{figure:gaiyou}の通りである。 \end{enumerate} \begin{figure}[htb] \centering \includegraphics[width=7cm]{sisgainen.pdf} \caption{システムの流れ} \label{figure:gainen} \end{figure} \begin{figure}[htb] \centering \includegraphics[width=5cm]{sistem-1.pdf} \caption{システムの流れ} \label{figure:image} \end{figure} \begin{figure}[htb] \centering \includegraphics[width=7cm]{aprigaiyou(1).pdf} \caption{クイズの出題例} \label{figure:gaiyou} \end{figure} %ここに写真を入れる \section{学習内容} %研究で使用する技術は,一般的に説明が必要なものは詳細に分かりやすく書き,ある程度認知されていて,詳細な説明が不要な技術はバージョン記載だけにとどめておく(HTMLなど)。 システム利用者がWeb上で学習する内容はRubyとし内容はprint,変数,if文の範囲とする。 %なぜRubyを学ばせて、なぜその3つの範囲を学習させるのか。 \section{システムの提供方法} UnityではシステムをWebサイトに投稿することができるためWeb上に投稿したシステムを使用者に使ってもらうという形で提供する。 \chapter{現在の状況} %結論は簡潔に書く。 今回は画面に映し出したブロックを解答欄に当てはめるというところまでしか進めることができなかった。加えてブロックにテキストを当てはめると解答欄にブロックを動かしたときにうまくはまらないという問題が起きている(図.\ref{figure:sisgamen})。また,システムを提供したあとどのようにしてプログラミングの基礎的な力がついたのかを確かめるのかということも決まっていない。 今後はシステムを完成させること,どのように検証していくことで利用者のプログラミングに対する基礎的な力がついたと判断するかを決めるという事に重点を置いて進めていく必要がある。 \begin{figure}[htb] \centering \includegraphics[width=7cm]{sisgamen.png} \caption{製作途中の画面} \label{figure:sisgamen} \end{figure} \begin{thebibliography}{} \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}