#&%$'
" !
Lea rning S upport Tool for Obje ct-O ri ent ed P rogr amming in a P rogramming Langua ge fo r B egi nners
(
A s u mi M a r u ta a n d H id e k a zu S h io za w a ŖëØÞìÞǂXc^GHEQFIuUÞŭǛ ĶǃŠŝîŖëÞÎ Department of Software Science, College of Engineering, Tamagawa University,6-1-1 Tamagawagakuen, Machida, Tokyo 194-8610
Abstract
Computer programming is going to be introduced in elementary and secondary education, and the concept of modeling events is in the next high school curriculum. Although the object-oriented method is widely used for modeling software structure, programming beginners are often facing difficulties to learn its basic idea. So, we have developed a learning support tool for object-oriented programming. The software visualizes relations among objects in a program made in a blocks-based programming language for programming beginners.
Keywords: programming education, object-oriented programming, software visualization, learning support system 1. ƎĪ)ťŤ 2020 ð,Ã'Ǜ§Ŷ~ŶĠƍ(9ĄÓ² ƾ8<?'=1)Ǜ -~,.ĄÓĠƍ-Ęƾ) 'etMphuMĠƍ-áÄ5?'>ǜ çÞĹ(.Ǜģ",etMphuMĠƍÿ ²?>ǜ?.ǛetMphuMŤĂƋ2)B ƍ7)ťŤ)?'=ǜetMphuMŤ ĂƋ).ǛOubmwY,xƽ-¢ŘBƕ; ,ĖūǛƐ¤-ĆÍ"xƽ-Ō±BƗŗ( >)ǗBƻ'ÿƚ+ErPqVi: ĢŊǛƤ¾-ƃ6ÀA+*BƮŘŤ,Ƌ' )àƉ?'>ǜ}ŢŤ,Ǜ-;+ §ž-etMphuMĠƍ(.Ǜ_p[MEu_ _t[eĜ(etMpiBĊ(>dt[ LÑơƩ+*-aTmEr+etMphuMơ Ʃ©Ŝ?'>ǜ ǘŶÞĹ-ĄÓŭ9ǛÞƊĖæƚǔ-ĞƢ,; $'ØÖī?>ǜģ"+ĄÓ -´ - 1 %( >OubmwY)etMphuM (.ǛetMphM,;=OubmwYBŌŜ >:ǛƲBk]r²'ÉǕBţƛ"=Ǜ ShmswSouBƻ'k]rBƦ"= >Bƍ7)ťŤ)?'>3)ǜ ĥǛXc^GHELJţ(Ŝ<?'>Ɨ Ť+k]r²ČŊ.ǛJdTHL^ĖÃ( >ǜ JdTHL^ĖÃ.Ǜƙǎ+SU\iBĿŻ>
z(Į°+k]r²ČŊ( =Ǜ ĥ-etMp huM,.ÿƚ|»Ń+ƋĤ( >ǜ;$'Ǜ etMphuMĠƍ,'9ǛÞƊƌ-ţƿņ NJ,Ā"õ(ǛJdTHL^ĖÃ-ƚſBč 3( @ǜǛetMphuM§žƌ-×,)$'ǛJdTHL^ĖÃ-ƋĤ.Ɗú ǏǛƓČĆưBĕ$'5à >ǜ (ıũŲ(.ǛetMphuM§žƌǛ etMphuMŤĂƋBƵ,%ǛƗŤ+k] r²ČŊ( >JdTHL^ĖÃ2-ŘƠBŏ 8>)BťŤ)'ǛSnap!ǙÍ 1ǚ)§ž ƌÃ-dt[LÑơƩ(Ċ?"etMp i,>JdTHL^-ljB¤=: »Ɲ²>ÞƊĝěXc^GHEBLJţ>ǜ 2. ljljƽũŲ etMpiƔÑ-OubmwYţĦ?Ǜ ¿ŰśĽ:ƶ-SU\i,etMpiÿƚ ,+$"@<Ǜ ?BLJţ>"8-etM pgw-ǖĊ.Džƚ+ŬÉǕ)+$"ǜ (Ǜ Ĭ§.Ø-ďƖƌÃǛ<,.ÜÃ) 'ǛetMphuM-ÞƊBĝě>"8-5 5+SU\ięĻ?"4)ǜ šǑz(ÍõBƃ6ÀA>;+aTmE retMphuMơƩ5)9-;+ƚň-~ <Ś5?"ǜaTmEretMphuMơƩ.Ǜ 5#ØƜŁ+Xc^GHEBLJţ(>4*-áŜă,.Ń>ǛetMpi-ĿƼBÍƠ, ;$'Ɨ-(ǛÜ+*-§žƌ,9¤=: )©ő >ǜ -~(9dt[LÑetMphuMơƩ.Ǜ ¤êǛ¸üǛƗūǛŐź+*-ÒıŤ+ƚſBǛ ?!?œýŤ+õ-dt[L(Ɨŗ>9- ( >ǜetMphuM§žƌ.ǛƀĢŊ-ŘƠ)ŌŜ,Ɠ7)+Ǜdt[LBƃ6ų '>;,etMpiBĊ>)(> -(ǛƸð -LJţ)ÞƊ,ljþǘ5$'>ǜ øǛ§ŶĠƍ(9س-ÞĹdt[LÑơƩ ( >Scratch6,7)BėŜ>)ą?>ǜ Ģŕ8)(.ǛScratch-;+dt[LÑơƩ) Java-;+\KU^ÑơƩBƃ6ÀA"ƯƉ Bƥàƕ$"ƬĸƁ?'>ǜ-ƯƉ Bº"ÞŚ.Ǜùĵ-\KU^ÑơƩ#-Ư ƉBº"ÞŚ,ä'ǛJavaơƩ-ĬƂƧǗ( ïÐ10`wWu^zĊƈBÃz") ÓÅ?'>ǜ-Ƅķ,;=Ǜ\KU^Ñơ Í 1 Snap! Build Your Own Blocks
Memoirs of The College of Engineering, Tamagawa University, No.53 (2018) Ʃ-ÞƊBÛ8>«,dt[LÑơƩ,;>Þ Ɗ-ĨLjBƥ>)(ǛòƦǛªûĿƼǛDŽ ¦ǛLpUàƉ-Ĝ+*-ŘƠB;=ŏ8> )(>)Ƌ<?>ǜ 5"ǛJdTHL^ĖÃ-ÞƊ,ŋť>)Ǜ ÍƠ,;$'JdTHL^ĖÃ-ŘƠBĝě >Xc^GHE-)'.ǛAnchor Garden9) ÓÅ?'>ǜ?.ǛÖġ-Ñ) -ÑBƗ "Ɲƞk]rBÞƊƌ,ęǛÞƊƌ. -Ɲƞk]rBƃ6ÀA'ǛJdTHL^-ĿƼ ÍBĊ>SU\i( >ǜĊ?"ĿƼÍ -nj,.Ǜ ?,äĀ"XwUOw_ęū ?>-(ǛÞƊƌ.áNj-etMphuM,ä >ŘƠBŏ8>)(>ǜAnchor Garden-Ʀ áǗ(.ǛĿƼÍ)XwUOw_BäŇ> ),;=ǛÞƊƌ.etMpi-ĿƼB;=Ņ Ū,ĐĚ>)(")ÓÅ?'>ǜ 3. ıũŲ-ęĻ etMphuM§þƌ,ä'Ǜdt[LÑơ Ʃ<etMphuM-ÞƊBÛ8>)-° ķƨ8<?'>)<Ǜċ.ǛJdTH L^ĖÃ-ÞƊ,'9Ǜ\KU^ÑơƩ-Þ ƊBÛ8>«,dt[LÑơƩ,;>ǀ¥+Þ ƊBƕ),;$'ǛÞƊƌ-ŘƠ;=ŏ5 >-(.+)Ƌ"ǜ (ıũŲ(.ǛetMphuM§žƌà -dt[LÑetMphuMơƩ( >Snap!( Ċ?"etMpi-JdTHL^ÁÕ-lj BǛÞƊƌ,A=:»Ɲ²>Xc^G HEBLJţ>ǜ Snap!.ǛšǑĿĊzǛetMpi-ĿƼB nwRxť(ĐĚ>)ǏǛıũŲ -»Ɲ²,;$'ǛetMphuMÞƊƌǛJ dTHL^ĖÃ-ƋĤ(ĿĊ?"etMp i-ĿƼBĐĚ:+=Ǜ -ƋĤ,%5 &,+>)İ÷?>ǜ 4. äƲ)>dt[LÑơƩ
ıEeqNwSou.ǛSnap! Build your Own Blocks 10)-etMpiBäƲ)"ǜ?.Ǜ Scratch -Ĝă:¿ŰłƏB -55ĕ" z(ǛƐŞ,dt[LǙljġǚƐ(>; ,Ĕó?"dt[LÑơƩ( >ǜ 5" Snap!.Ǜet^YFeLpU-ľāĔ ó?'=ǛJdTHL^ĖÃ,;>etMp huM»Ə+-(ǛıũŲ-ťŤ,ǀ'>ǜ Snap!-etTHL^.ǛU\wTǙƑ¼ǚ )UepF^ǙKlpLYwŶǚ<ĿĊ ?>ǜ5"ǛU\wT;0UepF^,è> etMpiOw_-)BULqe^)È1ǜ <,ǛU\wT;0UepF^.ǛŧČ-U Lqe^Báƕ>"8,ŧ,j[WwT Bƺº>)(>ǜ Snap!-etTHL^: -ĿĊƚſ.ǛXML cDFrǙÍ 2ǚ)'Ý?'=ǛnwR .ZGutw_'Ý>)(>ǜ5"Ǜ Snap!. Scratch B9),Ĕó?"ơƩ( > "8ǛScratch (Ċ"etTHL^B Snap! ,ƪ6ƷC(áƕ>)9(>ǜ
ıƮĢ(.EeqNwSou,;>»Ɲ² Bū, "=ǛÍ3-etMpiBŜ"ǜ
5. EEeqNwSou-ĿĊ)Ĝ ıũŲ(.ǛSnap!nwR( >ÞƊƌ-©ă BƋĈǛĠij( >ıEeqNwSou9Snap! (Ċ"ǜ Snap!-etMpi(.ǛU\wTǛUepF^Ǜ Ɛdt[L.ǛJdTHL^ĖÃ,>Jd THL^,ŧôǛULqe^.ǛjX[_,ŧ ô>9-( >)Ƌ<?>ǜ (ǛıEe qNwSou(.ǛƗ 1 -;+äĀlj)»Ɲ ²ĤŊBėŜ>))"ǜ ıEeqNwSou-Ŝ-ō?.ǛÞƊƌ, ;> Snap!etMpi-ĄÓǛEeqNwS ou,;>etMpi-ĿƼ-»Ɲ²Ǜj[Ww T-ƺºlj-»Ɲ²-ČǓ(ƾ7ǜ 5ǛÞƊƌEeqNwSouBƴ±>) Í4-;+áƕšǑƗū?Ǜ½-Input ProjectInput StageInput SpriteInput Function -4%-fYuBLq[L>)¿ǒť,Ā" ƳÉƗū?>ǜÞƊƌ.Ɨū?"ƳÉ,Ÿ +<ǛSnap!(Ċ"etTHL^,lj> ĄÓB>ǜŗŔ(.ǛäƲ)+>etTH L^-ĿƼ-ĄÓ.ǛEeqNwSou<Ėū ?"ČǓ, $'ÞƊƌ,'9<ǜ Í 4 ıSU\i-áƕšǑ (a) sprite (b) smile (c) block
Í 3 ıƮĢ-(Ŝ" Snap!-QueretMpi Ɨ 1 Snap!-JdTHL^)»Ɲ² JdTHL^ jX[_ »Ɲ² U\wT ULqe^ UepF^ ULqe^ dt[L ULqe^
Memoirs of The College of Engineering, Tamagawa University, No.53 (2018) >ĄÓ.ń-ƻ=( >ǜ Ǚ1ǚetTHL^ Ǚ2ǚU\wTÂ)ULqe^ Ǚ3ǚUepF^Â)ULqe^ Ǚ4ǚÞƊƌģ",Ċ"dt[L ?"ĄÓ.ǛSnap!-NJéŤ+qU^ĿƼ (ĺŽ?>ǜÍ5.ǛÍ3-QueretMpi B9),"ĄÓ( >ǜ ĄÓ-øǛÞƊƌáƕšǑǙÍ4ǚ-íz ,Ɨū?'>KlpLYw-EFOuBL q[L>)Ǜ?"ĄÓ<Í6-;+ etTHL^-»Ɲ²Ɨū?>ǜ(Ǜ JdTHL^.«%-Ø(Ɨŗ?Ǜ ¿JdTHL^-ÆÌ,.jX[_ -« ))9,ç+(Ɨū?>ǜƐdt[L.Ǜ ?Bĕ%JdTHL^)Ɔ(%+<?Ǜdt [LÑ-EFOu(Ɨū?>ǜ Ĭø,ǛÞƊƌÍ6-½{-åŷ-EFOu BLq[L>)ǛÍ7-;,ƺJdTHL ^<ºJdTHL^2-j[WwTBƗ åŷ-EFOu±ǛÞƊƌ.j[WwT-ƺ ºljBŘƠ>)(>ǜ 6. ƋƋâ)ƫǕ ÞƊƌ.ǛSnap!(Ċ?"etMpiBƛ+ <ıEeqNwSouBŜ>),;=Ǜ -etMpiƙġ-JdTHL^(Ċ=ų $'>)xť(¤>ǜ5"Ǜj[WwT JdTHL^(ƺ?>ŀÜBƛ>) (>-(Ǜ -ö¬)ƺvº-ljBŦ ćŤ,)<>)(>ǜ ;$'Ǜdt[LÑơƩ( > Snap!,ıEe qNwSouBƘ¯Ġij)'ƃ6ÀA'J dTHL^ĖÃ,%'ÞC(<ǛJava +*-\KU^ÑơƩ2Ůƕ>;,?/ǛĬ§ <\KU^ÑơƩ-6BÞ1;=9JdTHL ^ĖÃ2-ēĒćđ<?>)İ÷?>ǜ ø-ƫǕ)'.ǛJdTHL^ĖÃ-Džƚ +ľā( >ƅĎljǙLtwuljǚ-»Ɲ² >ǜSnap!(.ǛàƉ?"UepF^BLt wuǙ¡©ŜǚǛģUepF^BĊ> )(>ǜıEeqNwSou(.ǛŗŔ( .etTHL^-ĿƼ-6B»Ɲ²' >ǛJdTHL^ĖÃ-ÞƊBĝě>ĆÇ( Ǚaǚstage Ǚbǚsprite Í 5 Snap!-qU^,ĺŽ?"ĄÓ Ǚcǚblock Í 6 etMpi-ĿƼ-»Ɲ² Í 7 j[WwT-ƺºlj-»Ɲ²
.ƅĎ-»Ɲ²ħǐ)9ÿƚ( @ǜ ,9ǛAnchor Garden-;,»Ɲ²,äĀ "\KU^Ñ-Ow_Bnj,Ɨū>łƏBƹ ®ǛÞƊƌ ?<-ljBƟâ(>;, ?/Ǜ§žƌÃ-dt[LÑơƩ<~žƌ zŜ>\KU^ÑơƩ2-Ůƕ,ä> ÞƊĝě,+>)Ƌ'>ǜ 5"ǛŗÏ.etMpi-ĄÓBČĽ( >ÿƚ >ǛáŜŤ,.Ɛ±²>) į5ǜÍ8.ProcessingBŜ'XMLcDFr <ĿƼBƪ6£'»Ɲ²"9-( >ǜŗ ÏǛSnap!-řÔ-~(ÁŶ-łƏBáŗ(>; ,ЃBƧ6'>ǜ 7. 55)8 ıũŲ(.Ǜdt[LÑơƩ Snap!(Ċ" etTHL^-]wYĿƼ-»Ɲ²BƕEe qNwSou)ǛJdTHL^ĖÃ-ŘƠBĝě >"8, Snap!(etTHL^-ĿƼB»Ɲ² >EeqNwSou-LJţBƕ$"ǜÞƊĝě BťŤ)"EeqNwSou(.ǛŗÏǛSnap! etTHL^-ĿƼ)j[WwT-ƺºlj -»Ɲ²áŗ?'>ǜ ø.ǛSnap!etTHL^-ĄÓB;=× ƝƞŤ,Ɨŗ(>ĤŊBļƣEeqNwS ouBЃ'"ǜ5"ǛEeqNwSo u-ĮŜă)dt[LÑơƩ,;>JdTHL ^ĖÃÞƊ-ÞƊ°ķBƦ>áǗBƕ$' ")Ƌ'>ǜ ¶ƋĢŕ 1ǚĢǂŭÞŨ 2020ð,Ã"Ġƍ-ĄÓ², lj>ĉƭǝ~Lj)=5)8Ǜ(2016)ǜ 2ǚĢǂŭÞŨ çÞĹņNJ,>ĮưƌƱǝ çÞĹņNJ,>etMphuMĠƍ-Ï= Ĥ,%'ǙƱƮ-¹=5)8ǚǛ(2016)ǜ 3ǚ~ÚĠƍãƱǝñůÎǛçÞĹǛ~ÞĹǛǘ ŶÞĹ·0œ¨ĝěÞĹ-ÞƊĖæƚǔŶ-Ğ Ê·0ÿƚ+ĤŹŶ,%'ǙŸşǚǛ(2016)ǜ 4) E. Lemut, B. du Boulay, G. Dettori (Ed.): Cognitive Models and Intelligent Environments for Learning Programming, Springer-Verlag, (1993). 5) ŝ~ǁǝaTmEretMphuM, bit¨ aTmErFuYcHwU (ïëŅ, ßĴƻĩ Ƈ) , ŵ2Ŵ 2.2, ų£Œ, (1996). 6) NHK E\sǝWhy!? etMphuM, (2016;= ğƺ) ǜ
7) Lifelong Kindergarten Group (MIT Media Lab): Scratch, (2006). https://scratch.mit.edu
8) D. Bau, J. Gray, C. Kelleher, J. Sheldon, F. Turbak: Learnable Programing: Blocks and Beyond, Communications of the ACM, Vol.60, No.6, pp.72-80, (2017).
9) yŎË, IJµÙǁǝJdTHL^ĖÃetM phuM-ľāŘƠBĝě> Anchor Garden SU\i-Ʀ, ĄÓ¢ŘÞFuYpLSou 2013ƮĢǍ, (2013).
10) M. JensǛB. Harvey: Snap! Build Your Own Blocks, (2011). http://snap.berkeley.edu
2018ð2ĭ28ĥµűºǛ2018ð3ĭ14ĥėdžʼnà Received, February 28, 2018; accepted, March 14, 2018
Í 8 Processing ,;>»Ɲ² 14