Frontiers in Computing and Intelligent Systems ISSN: 2832-6024 | Vol. 1, No. 2, 2022 79 Research on Project-Based Learning Python Programming Course Fengru Ling *, Shu Gong School of Computer Science, Guangdong University of Science & Technology, Dongguan, China. * Corresponding author: Fengru Ling. Abstract: In order to improve the teaching quality of Python programming course, this paper adopts the teaching model based on Project-Based Learning to design and decompose Student Information Management System, and reforms the teaching method, classroom teaching feedback and assessment methods in combination with the actual situation of the college. The practice results show that the teaching model based on Project-Based Learning can stimulate students' interest in learning, mobilize their initiative in learning, improve their engineering practice ability and programming ability, and achieve good teaching results. Keywords: Python programming; Teaching reform; Project-Based Learning; Process assessment; Classroom teaching feedback. 1. Introduction Python is a programming language that has been developed for more than 30 years, and it is also a universal programming language that is closest to natural language at present. In 2016, the College Computer Course Teaching Steering Committee of the Ministry of Education issued the Basic Requirements for College Computer Basic Course Teaching, proposing to use Python as the teaching language of the first programming course, and add it as one of the subjects of Computer Level II Examination. With its help, domestic colleges and universities gradually set up Python programming course, which has also become a hot spot in teaching reform. A project is a planned work with a fixed start time and end time. In the field of education, the project refers to a series of learning activities conducted by students around the selected topic, such as investigation, observation, research, expression of new knowledge, display and sharing. In education research, such learning activities are called Project-Based Learning (hereinafter referred to as PBL). PBL is an educational method and principle based on the theories of situational cognition, social constructivism and pragmatism. PBL advocates "student-centered approach". Its basic feature is to teach in the form of projects, with projects as the main line, teachers as the leading, and students as the main body. All teaching activities of the PBL teaching model are carried out around real projects. When students complete the prescribed projects, teachers also complete the corresponding teaching content. In recent years, a large number of teaching researches around this theory have emerged, which has confirmed the feasibility and effectiveness of applying this theory to the teaching of programming courses from multiple dimensions. 2. Analysis of the Current Situation of Python Programming Course Python language basic syntax; (2) Process control; (3) String; (4) List, tuple, dictionary and other combined data types; (5) Function; (6) Object oriented; (7) Exception; (8) File operation; (9) Modules and common libraries. At present, the teaching method is still based on "teaching by teachers and imitation by students". Students rely on the knowledge taught by teachers and can only complete simple small programs. They are still helpless for more complex practical problems and cannot propose effective and innovative solutions. The existing teaching design is mainly taught in the order of the chapters of the textbook, and at the same time, it is demonstrated with the corresponding code applet. The students' computer experiments are mainly to verify the classic cases. Experiments are incoherent and out of touch with real projects at work.Therefore, students' ability to apply knowledge points is relatively poor, and they will only write similar small programs, but will not use the knowledge points to program to solve practical problems. The same problem exists in Java programming and C programming courses. In the long run, students will have a sense of frustration and fear, which will affect their enthusiasm for follow-up learning. The course assessment takes the final exam paper grades as the main assessment and evaluation index. Taking the college where the author works as an example, the final exam score accounts for 60% of the total score. Since the difficulty of programming questions is limited by the length and duration of the final exam papers, they are often just some classic algorithm questions. Many students memorize some questions in advance in order to cope with the exam, but they cannot flexibly apply these algorithms to real scenarios. This imperfect evaluation mechanism is not conducive to cultivating students' programming ability and computational thinking. 3. Teaching Model of Project-Based Learning 3.1. Project Design Project selection plays a crucial role in the effect of curriculum reform. The projects selected by teachers should not only cover most of the knowledge in the course, but also have certain practical application value. At the same time, the difficulty level of the project should be moderate. After selecting a project, the teacher must first let the students master the basic knowledge points through a certain theoretical explanation, and then let the students work in groups as a unit, divide roles according to different divisions 80 of labor, clarify the learning tasks of each role, and guide students to carry out project practice activities. Let student’s complete requirement analysis, software design, coding implementation, software testing and other links according to the software life cycle, and show the learning results of the course through group defense. The project selected in this paper is Student Information Management System, which is not only closely related to students' learning situations, but also covers most of the knowledge points of this course. The course is taught according to the process of project development, including project requirement analysis, system design, system development environment, project directory structure, main function design, student information maintenance module design, query/statistics module design, sorting module design and project packaging. Each stage of project development is integrated into the explanation of the corresponding Python knowledge points, as shown in Table 1. Table 1. Project Schedule Project module Main task description Knowledge points Completion time I Requirement analysis: a company needs to develop a simple student information management system. After receiving the task, the project manager first needs to communicate with the project stakeholders to conduct requirement analysis. - Week 1 II System design: according to requirement analysis, the main functions that the system should have are obtained; sort out the system business process; design the main interface and each functional module interface of the system. - Week 2 III System development environment and project directory structure: prepare the system development environment and the organizational structure of project folder according to the key technologies used in the project Installation and use of Python development environment: Operating system: Win7 or above; Python interpreter: Python 3.7 or above; Development tool: PyCharm; Python built-in module: os Organization of project documents: first-level file: project folder; secondary files: Python files (to achieve specific functions), files (to save student information) automatically created by the system Week 3 IV Main function design: write the main function to display the main interface functions of the system Variables and Data types; Input and output; Process control; Call of function Week 4~5 V Design of student information maintenance module: input, delete, modify student information. Variable List, Dictionary, String; Process control; Definition of function; object-oriented; File Operation; Exception Week 6~10 VI Query/statistics module design: find students information by students' name/ID; query and display all students' information; count the total number of students as above Week 11 VII Sorting module design: display students' information in ascending or descending order according to the grades of each subject or all subjects as above Week 12 VIII Project Packaging: Package the program as an executable file (*.exe) Installation and use of modules; Program packaging Week 13 It can be seen from Table 1 that the knowledge points involved in the development of each functional module of Student Information Management System are repeated, and Module IV and Module V basically cover most of the knowledge points of this course. If all the knowledge points are explained directly in one module at one time, it is too comprehensive and difficult for students to digest. Therefore, the knowledge points can be explained in Module IV and V step by step. Since the knowledge points involved in Module VI to Module VII are the same as those in Module V, they can be used as an expansion exercise task for students. In order to make the project in the teaching process cover the knowledge 81 points that need to be taught in the course, teachers need to guide students to try to use various methods to complete the project tasks, which is conducive to mastering relevant knowledge. 3.2. Project Implementation Python programming course has 4 class hours per week, totaling 52 class hours, including 26 theoretical hours and 26 experimental hours. Before the second class, students should complete the task in groups of 3-5 people, and choose the group leader, and then sit again in groups. The teacher shows Student Information Management System project schedule to the whole class, as shown in Table 1. The teacher uses the method of "top-down and gradual refinement" to explain the project, and students use the method of "bottom-up and gradual improvement" to complete the modules in the project, and establish a complete concept from actual problems to computer program development. The specific teaching is carried out in the following order: first of all, the teacher describes the actual problem to be solved, introduces the background, specific content and requirements of the project, and organizes students to think independently and discuss the solutions to the problem; secondly, the teacher conducts in- depth analysis and interpretation of the project, decomposes the project task level by level, and finally divides it into several sub modules with relatively independent functions and low implementation difficulty, analyzes the business process of each sub module, and guides students to compare with the previous solution; once again, the teacher analyzes the knowledge points corresponding to each sub-module to help students build problem-solving knowledge maps; finally, it is the whole process of coding, debugging and running of the project. Then, all functional modules are combined, run, debugged, tested, optimized and improved to achieve problem solving. 3.3. Classroom Teaching Feedback In the process of teaching reform, good classroom teaching feedback plays a role in promoting students' active learning and improving learning efficiency. Therefore, it is necessary to collect feedback from students in a timely manner and multiple times, so as to know the students' real thoughts and mastery of the classroom content at the first time, and adjust quickly. Better feedback method: Before each get out of class, please take 3 minutes to fill in the three questions. The three questions are arranged in order from easy to difficult, from more to less. These three questions can be designed according to what feedback the teacher wants to get. For example, if teachers want to know whether students like the current teaching method, they can ask three questions like this: (1) Describe your state in this class in three words; (2) Say two things that you enjoyed the most in this class; (3) Say one thing you would like the classroom to improve or something you would like the teacher to do more or less in the future. These questions can help teachers understand students' true feelings about this lesson from the superficial to the deep, from the surface to the inside. After collecting students' feedback, it is necessary to analyze and respond. The teacher's response style is best matched with the student's feedback style. 3.4. Course Assessment and Evaluation The ultimate goal of teaching reform is to improve the teaching quality, so that students can better master professional knowledge and practical skills. In the process of implementing teaching reform, the method of combining learning process assessment and goal assessment is adopted, focusing on the diversity of evaluation. The main content and weight of the assessment plan are shown in Table 2. Table 2. Weights and Standards of Course Assessment Assessment time Assessment method Weight/% Assessment criteria All term Attendance 10% Score according to the check-in situation of each class exported by Chaoxing Xuexi Tong Task 20% Average score of verification type and design type task derived from Chaoxing Xuexi Tong Project acceptance 15% In the process of teaching reform, the teacher will assess students' comprehensive performance to form the project acceptance evaluation results Midterm Class progress test 20% Scores of the mid-term theoretical objective test derived from Chaoxing Xuexi Tong End of term Project defense 15% After the completion of the project, multiple teachers will form an evaluation team to comprehensively evaluate students’ project completion from the aspects of code standardization, basic functions of the project, innovation and difficulty, document content, document standardization, and students' answers to questions, and give opinions and form project defense scores Final examination 20% Score of the final theoretical objective test derived from Chaoxing Xuexi Tong 4. Conclusions Adopting PBL teaching mode can enhance students' enthusiasm for learning, maximize students' subjective initiative, cultivate teamwork ability, and improve students' ability to analyze and solve practical problems. In view of this, it is expected to introduce PBL teaching mode into the teaching process of various subjects, so as to improve the overall teaching quality. Acknowledgments This work was financially supported by 2022 "Quality Project" Higher Education Teaching Reform Project of Guangdong University of Science and Technology (Grant No. GKZLGC2022048). 82 References [1] W.X.Fan, Y.C.Zhang and Y.Li: A Review of the Research on Computational Thinking both Domestic and Overseas, Journal of Distance Education, Vol. 36 (2018) No.2, p.3-17. [2] R.K.Sawyer: The Cambridge handbook of the learning sciences (Cambridge University Press, New York 2006), p.79- 96. [3] F.Lin, H.Ma and X.J.Gong: Exploration on teaching reform of “Comprehensive practice of programming” six-element integration experiment, Experimental Technology and Management, Vol. 37 (2020) No.1, p. 149-154+158. [4] L.Du, L.L.Chen,H.Y.Liu, et al. Research on Project—Driven Python Course, Software Guide, Vol. 19 (2020) No.11, p.268- 271. [5] X.Y.Cao: The Reform and Practice in Project—Driven Programming Course, Software Guide, Vol. 19 (2020) No.2, p.180-183. [6] Q.P. Ji, H.S.Yan: On Teaching Reforms and Practice of Python Programming Course—Based on Project Teaching Mode, Journal of Southwest China Normal University (Natural Science Edition),Vol. 46 (2021) No.11, p.90-95.