1 1 C Java CE113 BlockEditor Java 15 (BlockEditor) (Java) BlockEditor Java Java A Block Editing System for Seamless Migration to Java in Introductory Programming Education Matsuzawa Yoshiaki 1 Sanshiro Sakai 1 Abstract: In the past decade, improvements to the environment of an introductory programming education by block-based programming language have been made by Squeak, Scratch, etc. However, there is still a problem for migration to text-based programming languages such as C and Java. Hence, using the OpenBlocks framework proposed by MIT, we developed a system named BlockEditor, which has functions to convert block language and Java both ways. We conducted an empirical study of this system in an introductory programming course for one hundred and ten university students. When students were given opportunities to select their language to solve their programming assignments, we traced their selection by tracking working time with BlockEditor or Java for each individual student. As a result, we succeeded in illustrating the nature of the seamless migration from block language to Java, and found there is great diversity for timing and speed of the migration by each individual. Additionally, we found the selection rate of the block language by students with low self-evaluation for their skills was significantly higher than students with high self-evaluation. The BlockEditor could scaffold them by promoting mixed writing with block language and Java in their migration age. 1. Squeak[1] Scratch[2] *1 1 Faculty of Informatics, Shizuoka University *1 1
[3][4] MIT(Massachusetts Institute of Technology) OpenBlocks [5] 6 2 3 4 5 6 7 2. Squeak Scratch [6][7] [7][8] [9] PEN[10] Erik [11] Erik JubJub Java JubJub Erik Java Java Java Brian Scratch BYOB(Build Your Own Block) [12] Scratch Brian SICP(Structure and Interpretation of Computer Programs)[13] PAD(Problem Analysis Diagram) C [14][15] PAD C C C PAD PAD PAD [14] [15] PAD PAD C C [16] on Squeak Java on Squeak Java 2
3. 3.1 BlockEditor BlockEditor BlockEditor BlockEditor 3 1 2 3 Java Java 1 Java 2 Java 3 3.2 1: 3.2.1 BlockEditor 1 1 BlockEditor BlockEditor Java Java BlockEditor Java Java Java 1 Java Java Java 3.2.2 BlockEditor OpenBlocks [5] OpenBlocks on Squeak [16] Java 3 Java Scratch Squeak BlockEditor Java Java int double boolean String Java for while BlockEditor Java Java while Java if if-else switch BlockEditor Java Java if-else 2 Java BlockEditor Java Java BlockEditor BlockEditor Java Java 3.3 2 Java 3.3.1 Java BlockEditor Java BlockEditor Java OpenBlock XML BlockEditor XML 3
1 BlockEditor Fig. 1 The interface of BlockEditor. 1 public class TenBoxes extends Turtle { 2 3 public void start() { 4 { //10 5 int j = 1; 6 while(j <= 10){ 7 { // 8 int i = 1; 9 while(i <= 4){ 10 fd(50); 11 rt(90); 12 i++; 13 } 14 } 15 rt(90); 16 fd(50); 17 lt(90); 18 j++; 19 } 20 } 21 } 22 23 } 2 Java Fig. 2 The converted Java source code. Java 10 BlockEditor 2 Java 1 BlockEditor 1 BlockEditor while Java [17] Java (1) rt (2) fd 3.3.2 Java Java BlockEditor Java BlockEditor Java OpenBlock XML Java 3.4 3: 3.4.1 BlockEditor OpenBlocks 3 10 2 4
Fig. 3 3 The demonstration of collapsing abstraction block. 3.4.2 3 3 [13] 20 3.4.3 Java Java Java Java 2 3 10 Java Java 4. 4.1 2012 BlockEditor 1 1 Table 1 The environment of the experimental study. () ( 15 ) Squeak 4 110 1 108 2 2 90 2 15 2 6 110 2 6 Squeak 4 2 1 4 5 6 Java BlockEditor Java 180 60 Java 3 B(Block ) BlockEditor 5
Table 2 2 The curriculum of the introductory programming course. B A J 1 - - - 2 1 3 1 3 1 2 2 4 1 4 2 5 1 2 2 6 0 2 0-1 - 7 8 ( ) (BMI ) 0 3 0 0 5 1 9 0 3 1 10 0 4 2 11 0 3 1 12 0 2 0 13 0 2 0 14 0 0 0 15 - - - J(Java ) Java A(ANY ) 3 2 BlockEditor BlockEditor Java Java Java ANY 4.2 2 5 Tb Tj BlockEditor Java BlockEditor (Rb) Rb = T b T b + T j (1) Rb Rb Rb ANY 108 4.3 14 BlockEditor 88 7 BlockEditor BlockEditor BlockEditor Java BlockEditor BlockEditor 5. 5.1 BlockEditor BlockEditor 4 5 BlockEditor 4 5 BlockEditor 0.6 0.4 0.1 Q6-1, Q6-2 if 6 7, 8 BlockEditor BlockEditor Java BlockEditor 6
4 Fig. 4 BlockEditor Chart for the rate of working with BlockEditor and lines of code for each assignment. 5 BlockEditor Fig. 5 Chart for the rate of working with BlockEditor and total work time for each assignment. Fig. 6 6 BlockEditor Tiles representation of rate of working with BlockEditor for each student. BlockEditor 6 6 x y BlockEditor *2 y 6 10% BlockEditor BlockEditor 10% 80% BlockEditor *2 7
6 BlockEditor Table 6 Advantages of the BlockEditor. 62 (72%) 21 (24%) 60 (70%) 32 (37%) 8 BlockEditor Fig. 8 Difference of the rate of working with BlockEditor by self evaluation of programming skill levels. 5.2 5.2.1 BlockEditor BlockEditor 4 4 7 6 5.3 BlockEditor G( ), NG( ), NGA BlockEditor 8 G(n=11, sd=0.25, avg=0.25), NG(n=47, sd=0.20, avg=0.41), NGA(n=28, sd=0.15, avg=0.44) G NG, G NGA t G NG t(13.29)=2.04,.05 < p <.10 G NGA t(13.15)=2.39, p <.05 BlockEditor 2 5.3.1 BlockEditor BlockEditor 6 3 5.3.2 BlockEditor BlockEditor 4 3 BlockEditor Java Java Java 5.3.3 BlockEditor Java BlockEditor Java 5 BlockEditor Java BlockEditor Java 2 5.3.4 BlockEditor BlockEditor 6 5.3.5 BlockEditor 4 7 A, B BlockEditor Java Java C BlockEditor Java D Java BlockEditor 8
Fig. 7 7 BlockEditor Rate of working with BlockEditor by questionnaire. 3 BlockEditor Table 3 Results of usability evaluation. 80 1 (1%) 6 (8%) 61 (76%) 12 (15%) 80 0 (0%) 9 (11%) 57 (71%) 14 (18%) 81 2 (2%) 23 (28%) 44 (54%) 12 (15%) 73 5 (7%) 21 (29%) 42 (58%) 5 (7%) 53 6 (11%) 24 (45%) 22 (42%) 1 (2%) 47 10 (21%) 18 (38%) 17 (36%) 2 (4%) 4 BlockEditor Table 4 Usage of the BlockEditor. BlockEditor 17 (19%) 64 (73%) 7 (8%) Java Java 19 (22%) 54 (61%) 15 (17%) Java 27 (31%) 50 (57%) 11 (13%) Table 5 5 BlockEditor Java Effect of the BlockEditor experiences for developing Java skills. BlockEditor Java BlockEditor Java 1 (1%) 15 (17%) 23 (26%) 43 (49%) 6 (7%) 9 (10%) 20 (23%) 42 (48%) 15 (17%) 2 (2%) 6. BlockEditor Java 5 BlockEditor Java BlockEditor BlockEditor Java (Scaffolding) BlockEditor Java 9
A B C D 7 Table 7 Students comments. BlockEditor Java BlockEditor BlockEditor Java Java BlockEditor Java BlockEditor Java BlockEditor BlockEditor BlockEditor BlockEditor BlockEditor BlockEditor BlockEditor Java Java BlockEditor BlockEditor 6 BlockEditor BlockEditor Java [18] PEN BlockEditor BlockEditor BlockEditor Java Squeak Scratch BlockEditor BlockEditor 7. MIT OpenBlocks BlockEditor Java BlockEditor 0.6 0.4, 0.1 2 BlockEditor Java 10
[1] Dan Ingalls, Ted Kaehlei, John Maloney, Scott wallace and Alan Kay: Back to the Future: The Story of Squeak, A Practical Smalltalk Writtern in Itself http: //www.squeak.org, Proc. of ACM OOPSLA 97, p. 318 (1997). [2] Scratch Team Lifelong Kindergarten Group MIT Media Lab: Scratch -imagine.program.share- http:// scratch.mit.edu/. [3] : Vol. 49, No. 10, pp. 3409 3427 (2008). [4] Scratch : Vol. 34, No. 4, pp. 387 394 (2011). [5] Ricarose Vallarta Roque: OpenBlocks: An Extendable Framework for Graphical Block Programming Systems, Master thesis at MIT (2007). [6] Scratch Vol. 52, No. 1, pp. 111 113 (2011). [7] Logo 10 pp. 106 107 (1994). [8] Joey C.Y. Cheung, Grace Ngai, Stephen C.F. Chan and Winnie W.Y. Lau: Filling the gap in programming instruction: a text-enhanced graphical programming environment for junior high students, SIGCSE 09 Proceedings of the 40th ACM technical symposium on Computer science education, New York, NY, USA (2009). [9] Vol. 42, No. SIG11(PRO12), pp. 78 90 (2001). [10] : PEN Vol. 48, No. 8, pp. 2736 2747 (2007). [11] Erik Pasternak: Visual Programming Pedagogies and Integrating Current Visual Programming Language Features, Master s thesis, Carnegie Mellon University Robotics Institute Master s Degree (2009). [12] Brian harvey and Jens Monig: Bringing No Ceiling to Scratch: Can One Language Serve Kids and Computer Scientists? Constructionism 2010, Paris (2010). [13] Abelson, H. Sussman, G. J. Julie Sussman( ) Structure and Interpretation of Computer Programs 2nd ed.( ) MIT Press (1996). [14] C -PAD -pp. 41 48 (2000). [15] PAD C pp. 17 24 (2004). [16]. pp. 123 128 (2000). [17] Papert, S.: Mindstorms: children, computers, and powerful ideas, Basic Books, Inc., New York, NY, USA (1980). [18] PenFlowchart CE113(13) pp. 1 6 (2012). 11