Search

KR-102962780-B1 - Block-based Python Programming Learning System

KR102962780B1KR 102962780 B1KR102962780 B1KR 102962780B1KR-102962780-B1

Abstract

A Python programming learning system according to an embodiment of the present invention may include: a problem registration unit for writing the title and content of a program to be created in Python; a programming activity unit for combining code provided by a problem registrant via drag-and-drop and displaying the combined block-shaped code as text code; and a data storage unit for storing code used when creating a program in Python. The text code in the text code area may be changed simultaneously whenever the block-shaped code in the programming activity unit is moved, added, modified, or deleted.

Inventors

  • 김자미
  • 김용천

Assignees

  • 고려대학교 산학협력단

Dates

Publication Date
20260511
Application Date
20231229
Priority Date
20230403

Claims (4)

  1. In Python programming learning systems, Problem register for writing the title and content of the program to be created in Python; A programming activity section for combining code provided by the problem registrant via drag and drop and displaying the combined block-shaped code as text code; and It includes a data storage unit for storing code used when creating programs in Python, The above programming activity unit simultaneously changes the text code in the text code area whenever the block-shaped code is moved, added, modified, or deleted, and The above problem register includes a random order arrangement setting unit for provided commands, a provided command modification setting unit, and a command addition setting unit for adding commands other than the provided commands. Python Programming Learning System.
  2. delete
  3. In Article 1, A Python programming learning system that controls the modification of a provided command, the completion of modification of a provided command, and the deletion of a provided command.
  4. In Article 1, A Python programming learning system that controls the input of the code and description of the command to be added by the command addition setting unit provided above.

Description

Block-based Python Programming Learning System The present invention relates to a programming learning system, and more specifically, to a block-based Python programming learning system. In the 1990s, beginners were taught text-based programming languages actually used in the industry, such as C, Python, and C++. Since beginners had to input commands via the keyboard, errors caused by typos occurred. Because text-based programming languages do not visually display available commands, it is difficult for beginners to know what commands are available. Introduced in 2006, Scratch provides a visual representation of available commands. Beginners can engage in programming activities by combining commands with a mouse, rather than typing them on the keyboard. Scratch helps beginners create programs. However, Scratch requires that its proprietary commands be used only within the Scratch website. Just because a beginner is proficient in Scratch does not mean they will be able to use programming languages used in the industry, such as C, Python, or C++. To address these limitations, Pencil Code as shown in Fig. 1 provides a function that converts commands composed of blocks by beginners into text commands. However, it is difficult to consider a beginner to have learned a programming language merely by looking at text commands. To learn a programming language, a process is required in which beginners acquire the language through activities such as directly inputting, modifying, deleting, and adding commands. Figure 1 is a diagram illustrating a conventional programming learning method. Figure 2 is a diagram showing an example problem of Parsons' Problems. Figures 3 and 4 are algorithms showing the process of learning a programming language based on a model for learning a foreign language. FIG. 5 is a block diagram exemplarily showing a Python programming learning system according to an embodiment of the present invention. Figure 6 is a screen that exemplarily shows the problem register illustrated in Figure 5. Figure 7 is a screen that exemplarily shows the programming activity section illustrated in Figure 5. FIGS. 8 to 12 are screens that exemplarily show the code combination area illustrated in FIG. 7. Figure 13 is a diagram showing the problem-solving sequence of programming elements. Figure 14 is a diagram showing the result of solving the problem. In the following, embodiments of the present invention will be described clearly and in detail so that a person skilled in the art can easily practice the present invention. Figure 2 is a diagram showing an example problem from Parsons Problems. You must move the six commands presented on the left into the space on the right in the correct order, taking indentation into account. You can check the answer by pressing the “feedback” button. Parsons Problems has the following advantages. First, like Scratch, Parsons Problems allows programming by combining commands with a mouse. Second, unlike Scratch, Parsons Problems uses Python commands, which can aid in the transition to text-based programming languages. Third, it highlights error areas with colors, enabling beginners to quickly and accurately identify the cause of errors. However, Parsons Problems only provides the ability to combine the sequence of provided commands, but does not offer beginners the ability to add, modify, or delete commands. It is difficult to consider programming learning to have occurred solely through the process of combining sequences. For programming learning to take place, users must directly input, modify, and delete code, and learn through the process of resolving errors that arise during this process. To enhance the effectiveness of programming learning for beginners, it is necessary to provide an environment where they can improve their proficiency on their own. In other words, it is essential to ensure that familiarity with block-based programming leads to programming proficiency. The importance of the process of adding, modifying, and deleting commands in programming can be explained in connection with the process of learning a foreign language. Research on programming learning methods based on foreign language learning models suggests providing questions containing blanks where words or sentences are missing, and performing activities such as gapped text where students fill in the blanks or jumbled sentences where they complete correct sentences using words provided in a list. If a beginner does not understand programming concepts, low-level learning steps should be provided to aid comprehension. The Cognitive Apprenticeship model views programming as a time-consuming skill and emphasizes learning alongside an expert as one method to acquire it. In fact, learning from experts through best practices has resulted in a decrease in the rate of abandoning programming activities. Research is also being conducted that focuses on programming commands through copy-and-paste in the early stages