-
Notifications
You must be signed in to change notification settings - Fork 0
/
prep.tex
54 lines (44 loc) · 2.65 KB
/
prep.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
\section{開発方針}
\label{sec:prep}
Jointryを開発するにあたり,プログラミング初心者が考える苦痛や不安を取り
除く方法を考えた.プログラミングを阻害する要因には,大きく「Mechanical
Barriers」(仕組みの障害)と「Sociological Barriers」(社会的な障害)
の2つがあると考えられている\cite{Kelleher:2005:LBP:1089733.1089734}.そ
れぞれの項目を検討し,Jointryの設計原則および機能の参考とした.
\subsection{仕組みの障害}
初心者向けプログラミング言語には,プログラミング環境の仕組みの難しさに
とらわれることなく,プログラミングの本質(ロジックや構造など)に集中で
きるような工夫が必要である.Scratchでは,文字列の代わりにブロックという
ビジュアル要素を使い,これを解決している.あるいは,プログラムの構文を
話し言葉(日本語)のようにするという取り組みもある\cite{西田}.非プログ
ラマでもプログラミングができるように,特定のドメインに特化した言語
(DSL:ドメイン特化言語)というものも存在する\cite{dsl}.いずれもプログ
ラミング言語の構文や操作を簡略化することで,仕組みの障害を排除しようと
している.
ただし,最終的な目的が「プログラミングの学習」なのであれば,その後にテ
キストベースのプログラミング言語へと移行ができるような仕組みも合わせて
考える必要がある.たとえば,ビジュアルプログラムからJavaのコードを出力
する方法が有効だろう\cite{松澤芳昭2014}.
以上を考慮して,JointryではScratchなどのブロックプログラミングの要素を
踏襲し,さらにブロックから文字列のコードを出力できる機能を取り入れるこ
とにした.
\subsection{社会的な障害}
社会的な障害については,学習者のモチベーション維持が大きな課題となって
いる.そのための工夫としては,ゲーム性を取り入れたもの\cite{algo},実体
を伴ったもの\cite{鈴木栄幸:1993-03-01},その実体をロボットにしたもの
\cite{McWhorter:2009:LMM:1539024.1509019}などがある.
ゲーム性を取り入れたものに関しては,Scratchのもうひとつの設計原則である
「more meaningful」(自分好みのプログラムを作れる)を満たしていないので,
今回は採用を見送ることにした.
実体を伴ったものに関しては,「プログラムが表示されるCRTは複数人で共有す
ることに適さない表示装置」\cite{鈴木栄幸:1993-03-01}であるとして,共
同作業と試行錯誤の重要性が提唱されている.先の小学生を対象にした研究に
おいても「友達や先生から教えてもらってだんだんとわかってきてスクラッチ
を楽しむことができました」\cite{森秀樹2011}との感想が述べられているよ
うに,複数人で協力しながらプログラミングを学習することで,学習者のモチ
ベーションの維持につながることが確認できる.
Jointryでは,この「共同作業」にScratchの「ソーシャル」の設計原則を採用
すれば,プログラミング初心者の不安を取り除くことができるのではないかと
考えた.これはいわば,ペアプログラミング\cite{Laurie_Robert}の機能であ
る.ビジュアルプログラミングにペアプログラミングの機能を統合したものを
調査したが見つからなかったため,これをJointryの中心的な機能と位置づけた.