1 Course Overview and Pain Point Analysis
Python is a powerful high-level programming language characterized by its simple and readable syntax, interpretability, cross-platform capabilities, rich third-party libraries and frameworks, object-oriented programming, and an active community.[1] In the 2022 IEEE Spectrum programming language rankings, Python maintained its dominant position at the top of the list. As a foundational course, Python serves as the language basis for subsequent courses such as neural networks and deep learning, web development technologies, and computer image processing. It has been widely applied in various fields including numerical computation, artificial intelligence, web development, automation operations, and financial analysis.[2].
As a foundational course, the goal of the Python programming course is to enable students to master the basic syntax of Python and develop the ability to use Python to solve complex engineering problems, while also cultivating a good scientific literacy and a sense of responsibility to contribute to the country. The course is offered after an introduction to computer science, so students already have a certain understanding of programming concepts. However, the simplicity of Python’s syntax can lead to a lack of curiosity and importance among students, resulting in a phenomenon where they are ambitious but lack practical skills. Python, as a tool language, emphasizes the cultivation of thinking methods, while students tend to be more accustomed to mathematical thinking and struggle to connect theoretical content with practical problems, lacking the ability to analyze and model problems.[3]
The existing teaching model fails to meet the course’s training goals due to the following pain points: ① Compared to other programming languages, Python has a lower entry threshold, and the basic syntax of Python has already been introduced in C language courses, making learning Python not very challenging. Students lack intuitive feedback and a sense of achievement, leading to a lack of sustained motivation to learn. ② The teaching method mainly adopts a teacher-led model, where the teacher explains knowledge and provides examples, while students passively receive information. Moreover, the practical content mainly focuses on abstract mathematical problems, neglecting training from context to problem-solving approaches. Students’ practical activities are merely exercises in syntax training and verification, failing to enhance their problem analysis and solving abilities. ③ The course content is highly logical and abstract, lacking integration points with ideological and political education and fixed organizational patterns.[4] If the integration of ideological and political education is too rigid, it may disrupt the original teaching approach and affect teaching effectiveness. Additionally, a preachy ideological and political education model may easily provoke student resistance.
2 Interest-Driven, Capability-Oriented, and Value-Led Integrated Course Innovation Model
The interest-driven, capability-oriented, and value-led Python programming teaching model, as shown in Figure 1, aims to enhance students’ ability to analyze and solve practical problems through the introduction of progressive contexts while learning the Python language. It adopts a situational inquiry-based learning approach, integrating knowledge explanation into case analysis, abstracting theory from problems, and summarizing general problem-solving steps. The teaching process emphasizes training in the thinking methods required to solve practical problems.
(1) Organizing multidimensional teaching cases from humanities, nature, society, history, and science through online and offline collaboration, teacher-student collaboration, and human-machine collaboration, using vivid cases close to reality to stimulate students’ enthusiasm for learning, transforming classroom explanations into problem inquiry.
(2) Adopting the “Introduction-Analysis-Expansion” course development model, introducing knowledge explanation through stories that align with programming concepts, and demonstrating the “real problem-mathematical problem-program problem” engineering thinking strategy through case analysis, expanding and reinforcing the thinking process through cases, with a focus on the problem-solving process from problem to method to achieve the goal of capability development.
(3) Combining the teaching goals and characteristics of Python with two major ideological and political education components of humanistic quality and scientific quality, integrating ideological and political education through the fusion of teaching case materials, teaching methods, and practical activities, subtly permeating various dimensions of ideological and political elements, reflecting the humanistic care of the course’s ideological radiation.
3 Course Innovation and Practice
3.1 Collaborative Construction of a Diverse Teaching Resource Library
Diverse teaching resources are the foundation for conducting course instruction and serve as the raw materials for organizing course teaching. Currently, the Python programming course has achieved diversification in teaching methods, with inquiry-based learning, self-directed learning, and collaborative learning widely applied in the teaching process based on teaching resources. Accordingly, teaching resources should also be diversified to meet the needs of different teaching methods and stages. Therefore, the course team has constructed a diverse teaching resource system through online and offline collaboration, teacher-student collaboration, and human-machine collaboration, as shown in Figure 2.
Cases are excavated from different directions such as nature, history, science, and humanities, targeting different teaching stages before, during, and after class, integrating various types of teaching resources. Since 2018, MOOC course teaching resources and Super Star teaching demonstration packages have been launched, and accompanying textbooks “Python Programming” and “Python Programming and Case Tutorial” have been published. Before class, online multimedia resources such as MOOC online course platforms and Super Star demonstration teaching packages are used to publish pre-class preparation tasks, cultivating students’ self-learning abilities. During class, the integration of textbooks and cases is utilized to reasonably arrange teaching content, set tiered teaching cases, and carry out inquiry-based learning tasks. After class, online tools such as PTA and Learning Pass are used to publish practice expansion tasks. By utilizing online and offline collaboration, the quality of teaching is improved within a limited teaching period. Another way to construct diverse teaching resources is to leverage the collaborative efforts of teachers and students, where teachers publish teaching case collection tasks before class, collecting different dimensional cases that align with programming concepts from students, which are then screened and integrated by the teacher. Typical cases can serve as teaching content during class or practical activities after class. The background of practical cases is collected from students and collaboratively analyzed and solved by teachers and students to enhance students’ participation and satisfaction in teaching. In addition, during the process of integrating teaching resources, teachers can fully utilize human-machine collaboration, utilizing generative AI products like ChatGPT to generate actual cases based on the characteristics of different teaching stages, which are then screened and reorganized by teachers to ensure the reasonableness, practicality, and interest of generated cases in the teaching process. Through these three methods of integrating teaching resources, students’ learning characteristics and interests during the teaching process are fully considered, maximizing students’ initiative in the teaching process to enhance their motivation to learn.
3.2 Creating a Progressive Situational Teaching Model
The traditional Python teaching model adopts a method where knowledge explanation precedes practical programming, with practical cases often being simple mathematical problems, neglecting the problem analysis process. Therefore, a “Introduction-Analysis-Expansion” progressive situational teaching model, as shown in Figure 3, has been established. The teaching content is centered around tasks, organized through problem inquiry, and structured as “discovering problems, analyzing problems, solving problems,” transforming knowledge learning into capability cultivation and enhancing students’ initiative to learn. In the course introduction phase, cases are selected from multiple dimensions such as humanities, nature, society, history, and science, to analyze the programming concepts in the cases and extend the explanation of basic knowledge. For example, in the design of loop structures, the cyclical elements in the story of the Foolish Old Man Moving Mountains are analyzed, and the corresponding loop statements in Python are provided to achieve knowledge introduction. In the course analysis phase, specific programming cases are combined, and students gradually complete the three-step engineering problem-solving process under the teacher’s guidance: real problem → mathematical problem → program problem. For example, the actual problem to be solved in the programming case of the Foolish Old Man Moving Mountains is to “find the first occurrence where the sum of the excavations is greater than or equal to the total mountain volume,” then analyze the mathematical representation of the actual problem, summarizing the corresponding mathematical problem as 1+2+…+2n-1, and finally find the corresponding loop pattern model: sum=sum+2n-1. Through the above problem-solving process, a thinking framework for students to solve practical problems is established. In the course expansion phase, students are guided to analyze and solve higher-order problems such as temperature mean filtering by referring to the three-step thinking process, reinforcing their engineering thinking abilities. The teaching process is connected by different teaching cases, allowing students to form fixed thinking paradigms during the case resolution process, thereby enhancing their ability to discover, analyze, and solve problems.
3.3 Conducting Integrated Ideological and Political Education
Ideological and political education is a necessary means for higher education to achieve the fundamental task of moral education and is a teaching grasp that reflects humanistic care in professional courses. Therefore, based on the above Python teaching process, the course adopts the “three-integration” model of ideological and political education, as shown in Figure 4, integrating ideological and political education into teaching objectives, content, and methods.
Based on the attributes of ideological and political education elements, two categories of ideological elements have been distilled: scientific quality and humanistic quality. Scientific quality focuses on cultivating the advanced abilities needed for students to engage in professional research, ensuring that students can excellently complete their learning and work. Humanistic quality emphasizes elevating students’ spiritual character, serving as a source of motivation for students to establish and realize lofty ideals. In the implementation of course teaching, the ideological characteristics of these two categories of elements are combined to integrate ideological and political education into the teaching content, methods, and processes. The cultivation of scientific quality emphasizes teaching by example, and the implementation of ideological and political education should permeate the inquiry process of classroom teaching problems. Through guided teaching methods, students are made to realize the importance of cultivating scientific qualities such as scientific spirit, innovative consciousness, and behavioral norms, thereby spontaneously forming continuous motivation to learn. The cultivation of humanistic quality relies on case inspiration, using cases from different dimensions such as nature, history, science, and humanities as the teaching background to excavate ideological and political elements from the cases. By introducing the connotation of cases in a storytelling format, the course ideological education is enriched, enhancing the course’s interest. Specifically, during the teaching design process, the current teaching content and characteristics are analyzed, and relevant ideological themes are distilled, as detailed in Table 1.
After determining the ideological theme, corresponding ideological story cases are designed. For example, in the section on structured programming design, the historical event of Commander Qi Fabao defending national sovereignty with his own body is used as an example. When the national territory is infringed upon and faced with multiple enemies, Commander Qi Fabao chooses to open his arms to protect the national territory. This event is then related to the problem of choice structure programming in Python, introducing the syntax and implementation methods while reflecting the ideological education element of patriotism and dedication through storytelling. Case designs can be obtained through collaboration between teachers and students or human-machine collaboration. Teachers provide ideological themes and encourage students to collect ideological cases from different dimensions, allowing students to subtly receive ideological education during their contemplation of the teaching content. They can also use generative AI tools like ChatGPT to generate cases, which teachers can then organize and process, thereby reducing the difficulty of designing ideological cases in the course. During case teaching, teachers can use careful teaching designs to choose different teaching methods such as inquiry-based, collaborative, and experimental approaches to convey ideological connotations during problem-solving processes. For example, in the temperature mean filtering case, both boundary consideration and non-consideration problems are set, breaking down complex engineering problems into a gradual problem-solving process, with problem thinking gradually refined. This serves as an example to cultivate students’ scientific inquiry spirit. Finally, a comprehensive evaluation method is used to assess the effectiveness of integrated ideological teaching, which serves as a basis for teaching reflection and continuous improvement of the teaching process.
3.4 Diverse Teaching Effect Evaluation
Teaching evaluation is a deepening method to consolidate and enhance teaching effectiveness. The traditional teaching model uses a combination of usual scores and final exam scores as evaluation criteria, focusing more on testing knowledge points and neglecting the assessment of the ability to apply Python to solve practical problems. Therefore, the diverse teaching effect evaluation method shown in Table 2 is adopted, dividing course evaluation into process evaluation and summative evaluation. Process evaluation comprehensively considers multiple elements before, during, and after class through questionnaires, assignments, exercises, peer reviews, reports, etc., achieving a comprehensive evaluation of self-learning ability, knowledge internalization ability, thinking and practical ability, and ideological teaching effectiveness. Summative evaluation consists of final exam evaluation and extracurricular competition evaluation, focusing on students’ comprehensive abilities and re-learning capabilities. This model emphasizes assessment from multiple links and dimensions, involving multiple subjective and objective factors such as teachers, students, and assignments, placing greater emphasis on student participation in teaching, transforming passive learning into active learning, and enhancing teaching quality and effectiveness.
4 Course Teaching Effectiveness
(1) Students’ grades, practical abilities, and ideological awareness have gradually improved. Students’ understanding and mastery of course content have deepened, with significant improvements in learning outcomes, as shown in Figure 5. The proportion of students scoring above 90, 80, 70, and 60 has significantly increased, while the failure rate has noticeably decreased. Students’ engineering practical abilities have significantly improved, and they actively participate in various competitions such as Internet+, Challenge Cup, ACM programming contests, national computer design competitions, and mathematical modeling competitions, accumulating 6 national-level awards and 24 provincial-level awards. Guiding teachers recognize students’ foundational abilities in Python and scientific literacy. Furthermore, through surveys and feedback on reports, students have positively responded to the ideological education in the course, generally believing that it enriches classroom content and enlivens classroom atmosphere. Students’ ideological awareness has also been continuously heightened, with active contributions to society through various forms such as technology assistance to farmers, military enlistment after graduation, and rural teaching support.
(2) The construction of course resources has yielded fruitful results. Three textbooks, “Python Programming,” “Python Programming and Case Tutorial,” have been published, winning one first prize and one second prize in the Excellent Textbook Awards from the Shaanxi Computer Education Society, and receiving project support for the Ministry of Industry and Information Technology’s “14th Five-Year Plan” textbook initiative. The course has also been approved as a high-quality online open course in Shaanxi Province in 2019 and as an open course under the Ministry of Education-Huawei “Intelligent Base” initiative. The course resources have been recognized by Super Star as a “demonstration teaching package.” These rich online and offline resources provide important materials for enhancing teaching quality.
5 Conclusion
The interest-driven, capability-oriented, and value-led Python programming course teaching model, through collaborative construction of diverse course resources, organizes teaching with multidimensional case materials, adopts a progressive situational teaching model of “Introduction-Analysis-Expansion,” and integrates ideological and political education, focusing on cultivating thinking processes and shaping values, enhances students’ practical abilities to solve real problems. Reform practices have proven that students can actively participate in the teaching process, forming an immersive teaching experience. The progressive case teaching method greatly enhances students’ learning interest, and through the analysis and resolution process of cases, helps students establish a paradigm for solving real problems, genuinely improving their practical abilities.
References:
(End)
More Exciting Content:
Boao Releases Strong Voice in Education | CIE2023 Fifth China IT Education Boao Forum and the 20th Anniversary of the Launch of “Computer Education” Magazine Successfully Concluded
Call for Papers for the 2024 China Higher Education Computer Education Conference (CCEC2024)
New Year Message from the Seventh Editorial Board
Guidelines for Ideological and Political Education in Computer Science Courses
Academician Chen Guoliang | Cultural Construction of the Virtual Teaching and Research Room for Computer Course Ideological and Political Education
Professor Chen Daoxu from Nanjing University | Change and Constancy: Dialectics in the Learning Process
Yan Shi | Thoughts and Suggestions on the “Predicament” of Young Teachers in Higher Education
Xiao Fei et al. | Metaverse Education and Its Service Ecological System
【Directory】”Computer Education” 2024 Issue 1
【Directory】”Computer Education” 2023 Issue 12
【Editorial Board Message】Professor Li Xiaoming from Peking University: Reflections on the “Year of Classroom Teaching Improvement”…
Professor Chen Daoxu from Nanjing University: Which is more important, teaching students to ask questions or teaching students to answer questions?
【Yan Shi Series】: Trends in Computer Discipline Development and Their Impact on Computer Education
Professor Li Xiaoming from Peking University: From Interesting Mathematics to Interesting Algorithms to Interesting Programming—A Path for Non-Professional Learners to Experience Computational Thinking?
Reflections on Several Issues in Building a First-Class Computer Discipline
New Engineering and Big Data Major Construction
Learning from Others’ Successes—Compilation of Research Articles on Computer Education at Home and Abroad