C3PV 1,a) 2,b) 2,c) 3,d) 1,e) 2012 4 20, 2012 10 10 C3PV C3PV C3PV 1 Java C3PV 45 38 84% Programming Process Visualization for Supporting Students in Programming Exercise Hiroshi Igaki 1,a) Shun Saito 2,b) Akifumi Inoue 2,c) Ryota Nakamura 3,d) Shinji Kusumoto 1,e) Received: April 20, 2012, Accepted: October 10, 2012 Abstract: In this paper, we propose a coding process visualizer for programming practice. Our system named C3PV consists of an online editor and a coding process viewer. The online editor can collect all coding process performed by each student. The coding process viewer can visualize whether the students are doing well about their programming exercises. This viewer enables a lecturer and teaching assistants to identify the students who are falling behind the rest of the class. We confirmed that the system could determine whether the student needed our help with 84 percent accuracy by some practical experiments. Keywords: programming exercise, coding, progress management, software engineering education 1 Graduate School of Information Science and Technology, Osaka University, Suita, Osaka 565 0871, Japan 2 School of Computre Science, Tokyo University of Technology, Hachioji, Tokyo 192 0982, Japan 3 Katayanagi Institute, Tokyo University of Technology, Hachioji, Tokyo 192 0982, Japan a) igaki@ist.osaka-u.ac.jp b) syuns@hil.cs.teu.ac.jp c) akifumi@cs.teu.ac.jp d) rnakamura@media.teu.ac.jp e) kusumoto@ist.osaka-u.ac.jp 1. [2] c 2013 Information Processing Society of Japan 330
[5] [11] TA Teaching Assistant [4], [10], [12] C3PV Coding Process Visualizer in Programming Practice C3PV LOC Lines Of Code 4 C3PV TA 2 3 4 5 6 2. 2.1 2.2 [9] TA R1 R2 R3 LOC 3. C3PV 3.1 c 2013 Information Processing Society of Japan 331
1 Table 1 Categories of C3PV s editor area log. inserttext removetext insertlines removelines 1 1 2 Table 2 Examples of editor area log. 1 C3PV Fig. 1 Coding process visualizer in programming practice (C3PV). ID 1 2012-2-1 15:22.476 int x = 4; insertlines 1 0 3 0 int y = 3; 2 2012-2-1 15:31.793 3 removetext 2 8 2 9 3 2012-2-1 15:32.404 5 inserttext 2 8 2 9 4 2012-2-1 15:39.643 int x = 4; removelines 1 0 3 0 int y = 5; 2 Java Fig. 2 Coding example of Java with C3PV s online editor. C3PV 1 C3PV C3PV PC C3PV C3PV 4 3.2 2 Save CompileRun Compile Run Ace [1] C3PV 1 1 C3PV 3.2.1 C3PV 1 & &C3PV / 2 C3PV ID ID int x y 2 insertlines y 3 5 removetext inserttext 2 removelines 3.2.2 C3PV 3 autosave C3PV newopen open close 1 c 2013 Information Processing Society of Japan 332
close 4 C3PV hello, world! Java ID syuns newopen C3PV autosave syuns [Compile] compile [Run] run syuns [Save] save [ ] submit close 3.3 C3PV 4 M1 LOC M2 M3 M4 3 Table 3 Categories of C3PV s controller area log. newopen open newopen save [Save] autosave C3PV close compile [Compile] run [Run] submit [ ] M1 LOC LOC LOC LOC 1 M2 newopen open submit M2 M3 / & 2 1 1 M3 (1) (4) 4 (1) a (2) a (3) class (4) class 4 Table 4 Examples of controller area log. ID ID 1 syuns newopen 2012-2-1 15:30:00 Java 2 syuns autosave 2012-2-1 15:31:00 Java 3:...world! ) 3 syuns compile 2012-2-1 15:31:05 Java 3:...world! ) 3: ; expected 4 syuns run 2012-2-1 15:31:20 Java 3:...world! ); hello, world! 5 syuns save 2012-2-1 15:31:25 Java 3:...world! ); 6 syuns submit 2012-2-1 15:31:30 Java 3:...world! ); 7 syuns close 2012-2-1 15:31:35 Java 3:...world! ); c 2013 Information Processing Society of Japan 333
M4 / / M4 3.4 C3PV M1 M4 3 3(a) ID LOC 3(b) 3(c) 5 5 10 15 3(d) 4 (a) ID 4(b) 4 M1 M4 ID X11105D M1 M2 2 2 LOC 2 2 M1 M4 4. 3 Fig. 3 Example of metrics ranking view. 4.1 1 C3PV (a) M1 M4 (b) M1 M4 4 Fig. 4 Visualization example of sheetmap view. c 2013 Information Processing Society of Japan 334
edubasecloud [7] edubasecloud Xeon 2.4 GHz CPU 8 24 GB OS CentOS5.6 DBMS Apache/2.2.3 MySQL/5.0.77 PHP/5.3.3 ZendFramework/1.11.0 JavaScript jquery/1.7.0 Ace/0.2.0 edubasecloud IaaS IaaS OS CPU edubasecloud C3PV OS CPU OS C3PV 4.2 Ideone Ideone.com [3] API Ideone 40 SOAP 4.3 C3PV C3PV ID C3PV 3 C3PV C3PV C3PV 3 C3PV 3.2.2 C3PV newopen open close 1 autosave compile run C3PV Ideone.com compile run API API compile run compile run submit C3PV C3PV 1 1 C3PV ID 5. 5.1 C3PV 5 II 1 Java A B 30 30 TA 4 5 Table 5 Experimental environment. 1 2 II Java 2 90 2 A B /TA 1/3 1/4 16 21 c 2013 Information Processing Society of Japan 335
M1 M4 1 TA 3 1 10 TA 6 1 2 ID 3 4 5 6 1 3 4 C3PV 5 6 1 4 1 2 /TA 3 4 5.2 6 C3PV 6 /TA Table 6 Total number of directed students. 1 31 22 6 9 1 2 35 23 1 12 2 C3PV 1 31 C3PV 1 30 24 80% 2 35 C3PV 2 33 32 97% C3PV 3 3 1 1 2 2 2 7 1 6 30 C3PV 1 2 1 5.3 1 4 7 7 Table 7 Result of enquete. 1 16 1 5 11 2 15 1 3 1 15 2 21 1 3 18 2 16 5 3 9 12 c 2013 Information Processing Society of Japan 336
1 5 2 3 eclipse undo 2 2 DL 2 2 C3PV 1 1 2 21 16 1 1 2 9 1 2 9 8 C3PV Web Web 1 4 6. 6.1 5.2 1 C3PV C3PV C3PV C3PV 5.3 8 8 7 C3PV 1 C3PV 2.2 R1 R3 3 A1 C3PV ID A2 M1 M4 A3 M1 M4 C3PV C3PV 2 Save/Compile/Run C3PV undo c 2013 Information Processing Society of Japan 337
UI Web C3PV C3PV 6.2 2 CAPES [4] CAPES [6] [10] C Java [8] C3PV [12] TA C3PV C3PV 7. C3PV Java Ideone M1 M4 C3PV C3PV C3PV C3PV C3PV C3PV C3PV B 24700030 [1] Ajax.org Cloud9 Editor: Ace, available from http://ace.ajax.org/. [2] IT 2011 (2011). [3] Sphere Research Labs: Ideone.com, available from http://ideone.com/. [4] c 2013 Information Processing Society of Japan 338
Vol.J91-D, No.2, pp.280 292 (2008). [5] Vol.53, No.1, pp.61 71 (2012). [6] Vol.48, No.2, pp.958 968 (2007). [7] edubase Cloud, http://edubase.jp/cloud/. [8] PEN Vol.48, No.8, pp.2736 2747 (2007). [9] Vol.26, No.1, pp.5 15 (2009). [10] collaboration agent / ET Vol.104, No.703, pp.19 24 (2005). [11] CE Vol.2012-CE-113, No.6, pp.1 8 (2012). [12] 18 pp.1 6 (2007). 2000 2002 2005 2011 IEEE ACM IEICE 1999 2005 ACM 2008 2007 2011 2011 DICOMO2005 & 2006 2007 GNWS2011 ACM 1988 1991 1996 1999 2002 2005 IEEE IFPUG 2011 c 2013 Information Processing Society of Japan 339