JLcoding Language Tool for Early Programming Learning
<p>The interface of Scratch.</p> "> Figure 2
<p>Different types of Scratch blocks.</p> "> Figure 3
<p>The stage area and object-oriented nature of Scratch.</p> "> Figure 4
<p>The starting view of JLcoding.</p> "> Figure 5
<p>Coding environment of JLcoding.</p> "> Figure 6
<p>Keywords in the function area.</p> "> Figure 7
<p>Move a bee from left to right by using Scratch.</p> "> Figure 8
<p>The coding example of JLcoding to move the bee.</p> "> Figure 9
<p>Input and output by using Scratch.</p> "> Figure 10
<p>Input and output by using JLcoding.</p> "> Figure 11
<p>Arithmetic by using Scratch.</p> "> Figure 11 Cont.
<p>Arithmetic by using Scratch.</p> "> Figure 12
<p>Arithmetic in JLcoding’s coding area.</p> "> Figure 13
<p>Arithmetic by using JLcoding.</p> "> Figure 14
<p>“If” condition rule to move the bee or the butterfly to flower by using Scratch.</p> "> Figure 14 Cont.
<p>“If” condition rule to move the bee or the butterfly to flower by using Scratch.</p> "> Figure 15
<p>Conditional in JLcoding’s coding area.</p> "> Figure 16
<p>Select to move butterfly to flower by using JLcoding.</p> "> Figure 17
<p>Generate 10 ducks by using Scratch.</p> "> Figure 18
<p>Generate 10 ducks by using JLcoding.</p> "> Figure 19
<p>The stage area of JLcoding. The user needs to move the bridge and jellyfish to save jellyfish.</p> "> Figure 20
<p>The coding window in front of the stage area.</p> "> Figure 21
<p>Built-in teaching of JLcoding.</p> "> Figure 22
<p>Built-in practice questions of JLcoding.</p> "> Figure 23
<p>The experimental flowchart.</p> "> Figure 24
<p>Preliminary questionnaire.</p> "> Figure 25
<p>A sample JLcoding test: (<b>a</b>) multiple-choice questions of Named, Coordinate, Height and Width, Scale; (<b>b</b>) multiple-choice questions of Color Code, Go Ahead, Move, Clone; (<b>c</b>) multiple-choice questions of Variable and if/else; (<b>d</b>) filling questions and confidence investigation.</p> "> Figure 26
<p>Research architecture diagram.</p> "> Figure 27
<p>Histogram of pre-test and post-test scores.</p> "> Figure 28
<p>Text-based programming quiz: (<b>a</b>) the output string question of the quiz; (<b>b</b>) the calculation question of the quiz; (<b>c</b>) the if/else question of the quiz; (<b>d</b>) the loop question of the quiz.</p> "> Figure 28 Cont.
<p>Text-based programming quiz: (<b>a</b>) the output string question of the quiz; (<b>b</b>) the calculation question of the quiz; (<b>c</b>) the if/else question of the quiz; (<b>d</b>) the loop question of the quiz.</p> ">
Abstract
:1. Introduction
1.1. Background
1.2. Motivation
1.3. Purpose
- Design a programming language to help the student transits from block-based to text-based programming.
- Help the students who have never studied any programming to easily learn text-based programming.
- The proposed system JLcoding can achieve the purposes with the advantages:
- Easy to learn: The students who have no programming experience can easily learn the basic knowledge from JLcoding.
- Easy to transmit from the block-based to text-based programming skills. The students who learn the block-based language can convert their experience to a text-based environment quickly.
- Quick to produce diversity projects. JLcoding allows the student to generate a different kind of produce.
- Provide object-oriented programming. Students can combine complex logic rules.
- Avoid debugging problems in block-based programs. JLcoding provides a friendly debugging solution that allows the students to find the errors.
- Easy to link up with other high-level programming languages such as Python, Java, and other text-based programming in the future.
1.4. Terminology
- Text-based programming: A general term for program editing software in the general sense, which is used for program design by inputting text. It is then debugged and compiled to produce programs that make the computer work. Although it is possible to generate programs with various functions, it is also difficult to learn. Some famous text-based programs are Java, C++, and Python.
- Block-based programming: A program editing software that does not require text input. The user only needs to drag the blocks to make combinations to generate the program. Although the works it can produce are limited to a certain range, it is favored by novice programmers because of its ease of learning and operation. An example of a block-based program is Scratch.
- JLcoding: A programming environment that combines the ease of learning of block-based programming with the unrestricted functionality of text-based programming. While facilitating the creation of novice programmers, it also maintains the diversity of the works produced.
- N: the total number of test samples.
- Mean: the average of the score.
- SD: the standard deviation of the score.
- SE: the standard error of the score.
- SEM: the structural equation modeling.
- t: the test quantity.
- df: the degrees of freedom.
- p: the significance of the hypothesis.
2. Related Work
2.1. Introductory Programming Difficulties
2.2. Block-Based Programming
2.3. Confidence in Programming Abilities
2.4. Scratch
- Motion: Control the position, angle, rotation, and movement of the character.
- Looks: Control the shape, color, size, and special effects of the character, and display the text.
- Sound: Control the sound playback and volume.
- Events: Set the program to be executed when some event is triggered.
- Control: Set conditions and loops.
- Sensing: Obtain mouse and keyboard information, distinguish touching.
- Operators: Set logic operator, arithmetic operator, string operator, and obtain a random number.
- Variables: Generate variables to store the information.
- Function Blocks: Customized block.
3. JLcoding
3.1. Environment of JLcoding
3.2. Coding Example of JLcoding
3.2.1. Set Variable
3.2.2. Input and Output
3.2.3. Arithmetic
3.2.4. Conditional
3.2.5. For Loop
3.3. Features of JLcoding
3.4. Compare with Khan Academy
4. Research Methods
4.1. Research Object
4.2. Research Process
4.3. Survey Design
- Writing a computer program is easy.
- I am good at writing computer programs.
- I plan to continue programming after the class is over.
- I want to take another computer programming.
4.4. Data Processing and Analysis
- Use descriptive statistics to illustrate the performance of students before and after the JLcoding course.
- Use the paired-sample t-test to illustrate the performance of students before and after the JLcoding course.
- Use the independent-sample t-test to show whether there is a significant difference in the progress scores of students of different genders in the JLcoding course.
- Use the independent-sample t-test to show whether there is a significant difference in the progress scores of students interested in JLcoding and those who are not interested in learning JLcoding courses.
- Use the independent-sample t-test to illustrate the degree of confidence of different genders and interests in students’ programming abilities.
4.5. Descriptive Statistics
4.5.1. JLcoding Test
4.5.2. Text-Based Programming Quiz
4.5.3. Programming Confidence Questionnaire
4.6. Paired Samples t-Test
- Null hypothesis (H0): There is no significant difference between the pre-test and post-test scores.
- Opposite hypothesis (H1): There is a significant difference between the pre-test and post-test scores.
4.7. Independent Samples t-Test
- Null hypothesis (H0): There is no significant difference between the two groups of students.
- Opposite hypothesis (H1): There are significant differences between the two groups of students.
- Null hypothesis (H0): There is no significant difference between the two groups of students.
- Opposite hypothesis (H1): There are significant differences between the two groups of students.
5. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Effenberger, T.; Pelánek, R. Towards making block-based programming activities adaptive. In Proceedings of the 5th annuaire ACM Conference Learned Scale, London, UK, 26–28 June 2018; pp. 1–4. [Google Scholar]
- Israel, M.; Pearson, J.N.; Tapia, T.; Wherfel, Q.M.; Reese, G. Supporting all learners in school-wide computational thinking: A cross-case qualitative analysis. Comput. Educ. 2015, 82, 263–279. [Google Scholar] [CrossRef]
- Kucuk, S.; Sisman, B. Behavioral patterns of elementary students and teachers in one-to-one robotics instruction. Comput. Educ. 2017, 111, 31–43. [Google Scholar] [CrossRef]
- Manches, A.; Plowman, L. Computing education in children’s early years: A call for debate. Br. J. Educ. Technol. 2017, 48, 191–201. [Google Scholar] [CrossRef]
- Mannila, L.; Dagiene, V.; Demo, B.; Grgurina, N.; Mirolo, C.; Rolandsson, L.; Settle, A. Computational thinking in K-9 Education. In Proceedings of the Working Group Reports of the 2014 on Innovation & Technology in Computer Science Education Conference (ITiCSE-WGR ’14), Uppsala, Sweden, 23–25 June 2014; pp. 1–29. [Google Scholar]
- Webb, M.; Davis, N.; Bell, T.; Katz, Y.J.; Reynolds, N.; Chambers, D.P.; Sysło, M.M. Computer science in K-12 school curricula of the 2lst century: Why, what and when? Educ. Inf. Technol. 2017, 22, 445–468. [Google Scholar] [CrossRef] [Green Version]
- Wong, G.; Jiang, S.; Kong, R. Computational thinking and multifaceted skills: A qualitative study in primary schools. In Teaching Computational Thinking in Primary Education; IGI Global: Hershey, PA, USA, 2018; pp. 78–101. [Google Scholar]
- Grover, S.; Basu, S. Measuring student learning in introductory block-based programming: Examining misconceptions of loops, variables, and Boolean logic. In Proceedings of the ACM SIGCSE Technical Symposium on Computer Science Education, Seattle WA, USA, 1–8 March 2017; pp. 267–272. [Google Scholar]
- Lewis, C.; Esper, S.; Bhattacharyya, V.; Fa-Kaji, N.; Dominguez, N.; Schlesinger, A. Children’s perceptions of what counts as a programming language. J. Comput. Sci. Coll. 2014, 29, 123–133. [Google Scholar]
- Weintrop, D.; Wilensky, U. Comparing block-based and text-based programming in high school computer science classrooms. ACM Trans. Comput. Educ. 2017, 18, 1–25. [Google Scholar] [CrossRef]
- Grover, S.; Pea, R. Computational thinking in K–12: A review of the state of the field. Educ. Res. 2013, 42, 38–43. [Google Scholar] [CrossRef]
- Wing, J.M. Computational thinking. Commun. ACM 2006, 49, 33–35. [Google Scholar] [CrossRef]
- Lewis, C.M. How programming environment shapes perception, learning and goals: Logo vs. scratch. In Proceedings of the 41st ACM Technical Symposium on Computer Science Education (SIGCSE ’10), Milwaukee, WI, USA, 10–13 March 2010; pp. 346–350. [Google Scholar]
- Gretter, S.; Yadav, A. Computational thinking and media & information literacy: An integrated approach to teaching twenty-first century skills. TechTrends 2016, 60, 510–516. [Google Scholar]
- Hagge, J. Scratching beyond the surface of literacy: Programming for early adolescent gifted students. Gift. Child Today 2017, 40, 154–162. [Google Scholar] [CrossRef]
- Kalantzis, M.; Cope, B. New learning: A charter for change in education 1. Crit. Stud. Educ. 2012, 53, 83–94. [Google Scholar] [CrossRef]
- Benander, A.; Benander, B.; Sang, J. Factors related to the difficulty of learning to program in Java—An empirical study of non-novice programmers. Inf. Softw. Technol. 2004, 46, 99–107. [Google Scholar] [CrossRef]
- Gomes, A.; Mendes, A.J. Learning to program-difficulties and solutions. In Proceedings of the International Conference on Engineering Education-ICEE, Coimbra, Portugal, 3–7 September 2007; pp. 283–287. [Google Scholar]
- Rahmat, M.; Shahrani, S.; Latih, R.; Yatim, N.F.M.; Zainal, N.F.A.; Rahman, R.A. Major problems in basic programming that influence student performance. Procedia-Soc. Behav. Sci. 2012, 59, 287–296. [Google Scholar] [CrossRef] [Green Version]
- Watson, C.; Li, F.W.B. Failure rates in introductory programming revisited. In Proceedings of the 2014 Conference on Innovation & Technology in Computer Science Education (ITiCSE ’14), Uppsala, Sweden, 21–25 June 2014; pp. 39–44. [Google Scholar]
- Smith, R.; Rixner, S. The error landscape: Characterizing the mistakes of novice programmers. In Proceedings of the 50th ACM Technical Symposium on Computer Science Education (SIGCSE ’19), Minneapolis, MN, USA, 27 February–2 March 2019; pp. 538–544. [Google Scholar]
- Combéfis, S.; Beresnevičius, G.; Dagienė, V. Learning programming through games and contests: Overview, characterisation and discussion. Olymp. Inform. 2016, 10, 39–60. [Google Scholar] [CrossRef]
- Qian, Y.; Lehman, J. Students’ misconceptions and other difficulties in introductory programming: A literature review. ACM Trans. Comput. Educ. 2017, 18, 1–24. [Google Scholar] [CrossRef]
- Seralidou, E.; Douligeris, C. Learning programming by creating games through the use of structured activities in secondary education in Greece. Educ. Inf. Technol. 2021, 26, 859–898. [Google Scholar] [CrossRef]
- Funke, A.; Geldreich, K.; Hubwieser, P. Analysis of Scratch projects of an introductory programming course for primary school students. In Proceedings of the 2017 IEEE Global Engineering Education Conference (EDUCON), Athens, Greece, 25–28 April 2017; pp. 1229–1236. [Google Scholar]
- Park, Y.; Shin, Y. Comparing the effectiveness of scratch and app Inventor with Regard to Learning Computational Thinking Concepts. Electronics 2019, 8, 1269. [Google Scholar] [CrossRef] [Green Version]
- Price, T.W.; Barnes, T. Comparing textual and block interfaces in a novice programming environment. In Proceedings of the Eleventh Annual International Conference on International Computing Education Research (ICER ’15), Omaha, NE, USA, 9–13 July 2015; pp. 91–99. [Google Scholar]
- Parsons, D.; Haden, P. Programming osmosis: Knowledge transfer from imperative to visual programming environments. In Proceedings of the 20th Annual Conference of the National Advisory Committee on Computing Qualifications (NACCQ2007), Nelson, New Zealand; Mann, S., Bridgeman, N., Eds.; pp. 209–215. Available online: https://www.researchgate.net/publication/228525906_Programming_osmosis_Knowledge_transfer_from_imperative_to_visual_programming_environments (accessed on 24 May 2022).
- Moors, L.; Luxton-Reilly, A.; Denny, P. Transitioning from block-based to text-based programming languages. In Proceedings of the International Conference on Learning and Teaching in Computing and Engineering (LATICE), Auckland, New Zealand, 19–22 April 2018; pp. 57–64. [Google Scholar]
- Symmetry of Language. Available online: https://wiki.c2.com/?SymmetryOfLanguage (accessed on 14 May 2022).
- Luxton-Reilly, A.; Albluwi, I.; Becker, B.A.; Giannakos, M.; Kumar, A.N.; Ott, L.; Paterson, J.; Scott, M.J.; Sheard, J.; Szabo, C. Introductory programming: A systematic literature review. In Proceedings of the Companion of the 23rd Annual ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE 2018 Companion), Larnaca, Cyprus, 2–4 July 2018; pp. 55–106. [Google Scholar]
- Beaubouef, T.; Mason, J. Why the high attrition rate for computer science students: Some thoughts and observations. ACM SIGCSE Bull. 2005, 37, 103–106. [Google Scholar] [CrossRef]
- Marwan, S.; Lytle, N.; Williams, J.J.; Price, T. The impact of adding textual explanations to next-step hints in a novice programming environment. In Proceedings of the 2019 ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE ’19), Aberdeen, UK, 15–17 July 2019; pp. 520–526. [Google Scholar]
- Wiggins, J.B.; Fahid, F.M.; Emerson, A.; Hinckle, M.; Smith, A.; Boyer, K.E.; Mott, B.; Wiebe, E.; Lester, J. Exploring novice programmers’ hint requests in an intelligent block-based coding environment. In Proceedings of the 52nd ACM Technical Symposium on Computer Science Education (SIGCSE ’21), Virtual Event, USA, 13–20 March 2021; pp. 52–58. [Google Scholar]
- Bennedsen, J.; Caspersen, M.E. Failure rates in introductory programming: 12 years later. ACM Inroads 2019, 10, 30–36. [Google Scholar] [CrossRef] [Green Version]
- Vihavainen, A.; Airaksinen, J.; Watson, C. A systematic review of approaches for teaching introductory programming and their influence on success. In Proceedings of the Tenth Annual Conference on International Computing Education Research (ICER ’14), Glasgow, UK, 11–13 August 2014; pp. 19–26. [Google Scholar]
- Giannakos, M.N.; Pappas, I.O.; Jaccheri, L.; Sampson, D.G. Understanding student retention in computer science education: The role of environment, gains, barriers and usefulness. Educ. Inf. Technol. 2017, 22, 2365–2382. [Google Scholar] [CrossRef]
- Kinnunen, P.; Malmi, L. Why students drop out CS1 course? In Proceedings of the Second International Workshop on Computing Education Research (ICER ’06), Canterbury, UK, 9–10 September 2006; pp. 97–108. [Google Scholar]
- Petersen, A.; Craig, M.; Campbell, J.; Tafliovich, A. Revisiting why students drop CS1. In Proceedings of the 16th Koli Calling International Conference on Computing Education Research (Koli Calling ’16), Koli, Finland, 24–27 November 2016; pp. 71–80. [Google Scholar]
- Techapalokul, P.; Tilevich, E. Understanding recurring quality problems and their impact on code sharing in block-based software. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Raleigh, NC, USA, 11–14 October 2017; pp. 43–51. [Google Scholar]
- Weintrop, D. Block-based programming in computer science education. Commun. ACM 2019, 62, 22–25. [Google Scholar] [CrossRef]
- Xu, Z.; Ritzhaupt, A.D.; Tian, F.; Umapathy, K. Block-based versus text-based programming environments on novice student learning outcomes: A meta-analysis study. Comput. Sci. Educ. 2019, 29, 177–204. [Google Scholar] [CrossRef]
- Bau, D.; Gray, J.; Kelleher, C.; Sheldon, J.; Turbak, F. Learnable programming: Blocks and beyond. Commun. ACM 2017, 60, 72–80. [Google Scholar] [CrossRef]
- Xie, B.; Abelson, H. Skill progression in MIT app inventor. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), Cambridge, UK, 4–8 September 2016; pp. 213–217. [Google Scholar]
- Weintrop, D.; Wilensky, U. Using commutative assessments to compare conceptual understanding in blocks-based and text-based programs. In Proceedings of the Eleventh Annual International Conference on International Computing Education Research (ICER ’15), Omaha, NE, USA, 9–13 July 2015; pp. 101–110. [Google Scholar]
- Armoni, M.; Gal-Ezer, J. Early computing education: Why? what? when? who? ACM Inroads 2014, 5, 54–59. [Google Scholar] [CrossRef]
- Malik, S.I.; Mathew, R.; Al-Nuaimi, R.; Al-Sideiri, A.; Coldwell-Neilson, J. Learning problem solving skills: Comparison of e-learning and M-learning in an introductory programming course. Educ. Inf. Technol. 2019, 24, 2779–2796. [Google Scholar] [CrossRef]
- Kazimoglu, C.; Kiernan, M.; Bacon, L.; Mackinnon, L. A serious game for developing computational thinking and learning introductory computer programming. Procedia-Soc. Behav. Sci. 2012, 47, 1991–1999. [Google Scholar] [CrossRef] [Green Version]
- Zapušek, M.; Rugelj, J. Learning programming with serious games. EAI Endorsed Trans. Game-Based Learn. 2013, 1, e6. [Google Scholar] [CrossRef] [Green Version]
- Du Boulay, B. Some difficulties of learning to program. J. Educ. Comput. Res. 1986, 2, 57–73. [Google Scholar] [CrossRef]
- Ebrahimi, A. Novice programmer errors: Language constructs and plan composition. Int. J. Hum.-Comput. Stud. 1994, 41, 457–480. [Google Scholar] [CrossRef]
- Grover, S.; Pea, R.; Cooper, S. Designing for deeper learning in a blended computer science course for middle school students. Comput. Sci. Educ. 2015, 25, 199–237. [Google Scholar] [CrossRef]
- Denny, P.; Luxton-Reilly, A.; Tempero, E.; Hendrickx, J. Understanding the syntax barrier for novices. In Proceedings of the 16th Annual Joint Conference on Innovation and Technology in Computer Science Education, Darmstadt, Germany, 27–29 June 2011; pp. 208–212. [Google Scholar]
- Kelleher, C.; Pausch, R. Lowering the barriers to programming: A taxonomy of programming environments and languages for novice programmers. ACM Comput. Surv. 2005, 37, 83-–137. [Google Scholar] [CrossRef]
- Kölling, M.; Brown, N.C.C.; Altadmri, A. Frame-based editing: Easing the transition from blocks to text-based programming. In Proceedings of the Workshop in Primary and Secondary Computing Education (WiPSCE ’15), London, UK, 9–11 November 2015; pp. 29–38. [Google Scholar]
- Moskal, B.; Lurie, D.; Cooper, S. Evaluating the effectiveness of a new instructional approach. In Proceedings of the 35th SIGCSE Technical Symposium on Computer Science Education (SIGCSE ’04), Norfolk, VA, USA, 3–7 March 2004; Volume 36, pp. 75–79. [Google Scholar]
- Bishop-Clark, C.; Courte, J.; Howard, E.V. Programming in pairs with alice to improve confidence, enjoyment, and achievement. J. Educ. Comput. Res. 2006, 34, 213–228. [Google Scholar] [CrossRef]
- Heintz, F.; Mannila, L.; Färnqvist, T. A review of models for introducing computational thinking, computer science and computing in K-12 education. In Proceedings of the 2016 IEEE Frontiers in Education Conference (FIE), Erie, PA, USA, 12–15 October 2016; pp. 1–9. [Google Scholar]
- Passey, D. Computer science (CS) in the compulsory education curriculum: Implications for future research. Educ. Inf. Technol. 2017, 22, 421–443. [Google Scholar] [CrossRef] [Green Version]
- Rose, S.P.; Habgood, M.P.J.; Jay, T. Designing a programming game to improve children’s procedural abstraction skills in scratch. J. Educ. Comput. Res. 2020, 58, 1372–1411. [Google Scholar] [CrossRef]
- Scratch Team 2020 Scratch Statistics. Available online: https://scratch.mit.edu/statistics/ (accessed on 2 May 2021).
- Rich, P.J.; Browning, S.F.; Perkins, M.; Shoop, T.; Yoshikawa, E.; Belikov, O.M. Coding in K-8: International trends in teaching elementary/primary computing. TechTrends 2019, 63, 311–329. [Google Scholar] [CrossRef]
- Resnick, M.; Maloney, J.; Monroy-Hernández, A.; Rusk, N.; Eastmond, E.; Brennan, K.; Millner, A.; Rosenbaum, E.; Silver, J.; Silverman, B.; et al. Scratch: Programming for all. Commun. ACM 2009, 52, 60–67. [Google Scholar] [CrossRef]
- Perkel, J.M.J. Julia: Come for the syntax, stay for the speed. Nature 2019, 572, 141–142. [Google Scholar] [CrossRef]
- Bezanson, J.; Edelman, A.; Karpinski, S.; Shah, V.B. Julia: A fresh approach to numerical computing. SIAM Rev. 2017, 59, 65–98. [Google Scholar] [CrossRef] [Green Version]
- Koolen, T.; Deits, R. Julia for robotics: Simulation and real-time control in a high-level programming language. In Proceedings of the International Conference on Robotics and Automation (ICRA), Montreal, QC, Canada, 20–24 May 2019; pp. 604–611. [Google Scholar]
- Computer Programming of Khan Academy. Available online: https://www.khanacademy.org/computing/computer-programming (accessed on 24 June 2022).
- Altadmri, A.; Kölling, M.; Brown, N.C.C. The Cost of Syntax and How to Avoid It: Text versus Frame-Based Editing. In Proceedings of the 40th Annual Computer Software and Applications Conference (COMPSAC), Atlanta, GA, USA, 10–14 June 2016; pp. 748–753. [Google Scholar]
Course | Theme | Content |
---|---|---|
Basic Course 1 | Little blue duck leaving the team | 1. Understand JLcoding and system. 2. Learn how to set the position and coordinates of objects. |
Basic Course 2 | Pigs will set sail | 1. Learn how to set the length and width of object. 2. Learn how to set the sizes of objects. |
Basic Course 3 | Missing turtle eggs | 1. Learn how to set the color of objects. 2. Forward and turn of objects. |
Basic Course 4 | Trapped jellyfish | 1. Movement and rotation of objects. |
Basic Course 5 | Infinite bomb | 1. Learn how to use the code for copying objects. |
Basic Course 6 | Pirate’s gold coin | 1. Learn how to set variables. 2. Arithmetic operations of variables. |
Basic Course 7 | Delicious fish soup | 1. Learn how to use the code for If/else. |
Item | Scratch | JLcoding |
---|---|---|
Entry barrier | The difficulty of getting started is extremely low. Students can execute the program and see the effect without typing the code and dragging the building blocks directly with the mouse; however, when there are relatively problems, it is difficult to debug, and it is inconvenient to perform complex combinations of logical conditions. | There is a certain degree of difficulty in starting, but JLcoding redefines the original complex code into modern code that is easy to understand. With the program assistance function that comes with the JLcoding platform, it can greatly reduce the cost of learning to write code. |
Creative space | The number of functions is limited. The limitations of the platform compress the space for creation. The student cannot freely create their own function. | A platform specially designed for teaching allows students to freely use a variety of materials and hundreds of rich built-in functions (APIs) to support students in designing games, APPs, small systems, etc. The platform can be connected to hardware or AI. Students’ creative field further expands to the Internet of Things (IOT) or artificial intelligence. |
Teaching support | The design focuses on easy operation for students and supports a few necessary teaching auxiliary functions for teachers. When teachers use the program platform to teach, they usually need to open other auxiliary tools such as PPT. | JLcoding integrates teaching, learning, and practice. Teachers use the courseware and built-in auxiliary tools to teach on the platform to improve the teaching effect. Students use the student courseware to learn and can also practice directly on the platform, improving learning efficiency and effectiveness. |
Programming environment | What you see is what you get (WYSIWYG), so that students can quickly see the results of the program; however, there is still the problem of separation of teaching, learning, and practice, which reduces the learning effect. | JLcoding achieves WYSIWYG and the integration of teaching, learning and practice. The teaching materials and courseware can be switched between teaching and learning smoothly without switching any software, and the programming environment has function prompts and detailed Chinese explanations. Remove language and format barriers. |
Item | Scratch | JLcoding | Khan Academy (JavaScript) |
---|---|---|---|
1. Programming environment | Block-Based programming | Text-Based programming | Text-Based programming |
2. Programming type | Drag the blocks | Typing string | Typing string |
3. Creation | Programmatically control the placed objects | Programmatically control the placed objects | Programmatically generate controllable objects |
4. Programming paradigm | Object-Oriented Programming | Object-Oriented Programming | Functional Programming |
5. Memorizing codes | Find in block palette | Find in functional area | Find in coding documentation |
6. Separators | Not using curly braces and semicolons | Not using curly braces and semicolons | Need to be used correctly |
7. Teaching | Not provided | Built-in Graphic teaching | Built-in video teaching |
8. Practice | Free creation | Built-in practice questions | Built-in practice questions |
Attribute | Participants | Percentage |
---|---|---|
Male | 18 | 51.4% |
Female | 17 | 48.6% |
Scratch | 34 | 97.1% |
Code.org | 7 | 20.0% |
mBlock | 5 | 14.3% |
Python | 2 | 5.7% |
Interested in JLcoding | 24 | 68.6% |
Non-interested in JLcoding | 11 | 31.4% |
Question | Attribute | Pre-Test | Post-Test | Progress |
---|---|---|---|---|
Question 1 | Named | 6.3 | 9.4 | +49.21% |
Question 2 | Coordinate | 8.3 | 9.1 | +9.64% |
Question 3 | Height and Width | 8.6 | 9.7 | +12.79% |
Question 4 | Scale | 2.9 | 7.1 | +144.83% |
Question 5 | Color Code | 8.3 | 8.9 | +7.23% |
Question 6 | Go Ahead | 3.7 | 4.3 | +16.22% |
Question 7 | Move | 6.9 | 7.4 | +7.25% |
Question 8 | Clone | 1.7 | 1.1 | −35.29% |
Question 9 | Variable | 2.0 | 4.9 | +145.00% |
Question 10 | If/else | 4.3 | 6.0 | +39.53% |
Test | N | Mean | SD | SE |
---|---|---|---|---|
pre-test | 35 | 52.86 | 18.720 | 3.164 |
post-test | 35 | 68.00 | 14.912 | 2.521 |
Score | N | Percentage |
---|---|---|
0 | 1 | 2.7% |
10 | 1 | 2.7% |
30 | 2 | 5.4% |
40 | 6 | 16.2% |
50 | 9 | 24.3% |
60 | 8 | 21.6% |
70 | 4 | 10.8% |
80 | 3 | 13.5% |
90 | 1 | 2.7% |
Score | N | Percentage |
---|---|---|
20 | 1 | 2.9% |
30 | 1 | 2.9% |
50 | 2 | 5.7% |
60 | 9 | 25.7% |
70 | 9 | 25.7% |
80 | 11 | 31.4% |
90 | 2 | 5.7% |
Category | N | Pre-Test Mean | Post-Test Mean | Progress Score |
---|---|---|---|---|
low-level | 9 | 30 | 55.56 | 25.56 |
middle-level | 17 | 53.53 | 71.18 | 17.65 |
high-level | 9 | 74.44 | 74.44 | 0.00 |
Category | N | Pre-Test Mean | Post-Test Mean | Progress Score |
---|---|---|---|---|
male | 18 | 51.67 | 67.78 | 16.11 |
female | 17 | 54.12 | 68.24 | 14.12 |
Category | N | Pre-Test Mean | Post-Teat Mean | Progress Score |
---|---|---|---|---|
interested | 24 | 51.67 | 69.17 | 17.50 |
non-interested | 11 | 55.45 | 65.45 | 10 |
Quiz | Category | Correct | Wrong | Give Up | |||
---|---|---|---|---|---|---|---|
1. Output String | C++ | 15 | (42%) | 14 | (40%) | 6 | (16%) |
Java | 16 | (44%) | 13 | (36%) | 6 | (16%) | |
Python | 28 | (80%) | 1 | (2%) | 6 | (16%) | |
2. Calculate | C++ | 13 | (36%) | 15 | (42%) | 7 | (20%) |
Java | 11 | (30%) | 14 | (40%) | 10 | (28%) | |
Python | 11 | (30%) | 13 | (36%) | 11 | (30%) | |
3. If/else | C++ | 9 | (24%) | 4 | (10%) | 22 | (62%) |
Java | 7 | (20%) | 5 | (14%) | 23 | (64%) | |
Python | 7 | (20%) | 4 | (10%) | 24 | (68%) | |
4. Loop | C++ | 0 | (0%) | 8 | (22%) | 27 | (76%) |
Java | 0 | (0%) | 6 | (16%) | 29 | (82%) | |
Python | 0 | (0%) | 6 | (16%) | 29 | (82%) |
No. | Question | Mean | SD |
---|---|---|---|
C1 | Writing computer programs is easy. | 3.03 | 1.071 |
C2 | I am good at writing computer programs. | 2.97 | 1.200 |
C3 | I plan to continue programming after the class is over. | 3.11 | 1.132 |
C4 | I want to take another computer programming course. | 3.29 | 1.073 |
Paired Differences | ||||||||
---|---|---|---|---|---|---|---|---|
Test | Mean | SD | SEM | 95% Confidence Interval of the Difference | t | df | p | |
Lower | Upper | |||||||
Pre-test–Post-test | −15.143 | 19.154 | 3.238 | −21.723 | −8.563 | −4.677 | 34 | 0.000 |
Gender | N | Mean | SD | SE |
---|---|---|---|---|
male | 18 | 16.11 | 20.62 | 4.86 |
female | 17 | 14.12 | 18.05 | 4.38 |
Gender scores | t-Test for Equality of Means | ||||||
t | df | p | Mean Difference | SE Difference | 95% Confidence Interval of the Difference | ||
Lower | Upper | ||||||
0.304 | 33 | 0.763 | 1.99346 | 6.56627 | −11.36571 | 15.35263 |
Interested | N | Mean | SD | SE |
---|---|---|---|---|
yes | 24 | 17.50 | 16.75 | 3.42 |
no | 11 | 10.00 | 23.66 | 7.14 |
Gender scores | t-Test for Equality of Means | ||||||
t | df | p | Mean Difference | SE Difference | 95% Confidence Interval of the Difference | ||
Lower | Upper | ||||||
1.078 | 33 | 0.289 | 7.50000 | 6.95775 | −6.65564 | 21.65564 |
No. | Gender | t-Test Results for Interested | ||||
---|---|---|---|---|---|---|
Male | Female | |||||
Mean | SD | Mean | SD | t | p | |
C1 | 3.33 | 1.283 | 2.71 | 0.686 | 1.817 | 0.081 |
C2 | 3.33 | 1.283 | 2.56 | 1.004 | 1.905 | 0.065 |
C3 | 3.50 | 1.098 | 2.71 | 1.047 | 2.187 | 0.036 |
C4 | 3.56 | 1.042 | 3.00 | 1.061 | 1.563 | 0.128 |
No. | Interested | t-Test Results for Interested | ||||
---|---|---|---|---|---|---|
Yes | No | |||||
Mean | SD | Mean | SD | t | p | |
C1 | 3.25 | 0.944 | 2.55 | 1.214 | 1.873 | 0.070 |
C2 | 3.29 | 0.999 | 2.27 | 1.348 | 2.506 | 0.017 |
C3 | 3.42 | 0.974 | 2.45 | 1.214 | 2.510 | 0.017 |
C4 | 3.50 | 0.978 | 2.82 | 1.168 | 1.802 | 0.081 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Li, W.-Y.; Lu, T.-C. JLcoding Language Tool for Early Programming Learning. Symmetry 2022, 14, 1405. https://doi.org/10.3390/sym14071405
Li W-Y, Lu T-C. JLcoding Language Tool for Early Programming Learning. Symmetry. 2022; 14(7):1405. https://doi.org/10.3390/sym14071405
Chicago/Turabian StyleLi, Wei-Ying, and Tzu-Chuen Lu. 2022. "JLcoding Language Tool for Early Programming Learning" Symmetry 14, no. 7: 1405. https://doi.org/10.3390/sym14071405
APA StyleLi, W. -Y., & Lu, T. -C. (2022). JLcoding Language Tool for Early Programming Learning. Symmetry, 14(7), 1405. https://doi.org/10.3390/sym14071405