AI-Assisted Teaching System for Computer Programming Courses

0 Introduction

With the advent of the big data era, computer programming courses have entered various professional fields. Courses such as C language, C++, Java, JSP, PHP, and embedded programming design are important foundational or specialized courses in the training of computer and related professionals[1]. Their learning outcomes directly affect subsequent courses in the major and are also key courses that reflect students’ professional skills and future employability. Currently, there are many issues in computer programming education. ① There are fewer teachers than students, and teachers have limited energy, making it difficult to answer questions from all students; some students cannot receive guidance. ② Students’ learning needs are dynamically changing, while corresponding teaching resources are not updated in a timely manner, failing to meet student needs. ③ Teachers often rely solely on their subjective teaching experience to judge students’ knowledge levels, lacking quantitative evaluation methods. ④ Previous teaching focused only on students being able to ‘remember and perform well on exams,’ neglecting the cultivation of students’ thinking abilities and innovative consciousness. To solve these problems, the computer programming course system must break through traditional thinking patterns and build a new teaching model, focusing on enhancing students’ comprehensive application abilities in programming design; aligning with engineering education accreditation requirements for solving complex engineering problems, emphasizing the cultivation of students’ engineering thinking and practical abilities through programming learning practices; based on the clear information science demands of new liberal arts and sciences, focusing on cultivating logical thinking and design thinking through programming learning practices, achieving personalized and intelligent learning guidance centered on students, thus enhancing the effectiveness of student learning.

1 Student-Centered AI-Assisted Teaching System

AI technology’s penetration into the education field has broken traditional teaching models and strengthened a ‘student-centered, capability-enhancement-led’ teaching model. Many experts and scholars are dedicated to the development of AI-assisted teaching systems[2-3], but currently, most systems only passively answer student questions, and the feedback students receive is often just a single answer to the question.

The AI-assisted teaching system based on knowledge graphs focuses on the C programming course, extracting related knowledge from the knowledge graph based on keywords, providing guiding questions to students according to the difficulty level, specifically testing students’ mastery of related knowledge, explaining weak points, and providing relevant training; at the same time, it allows students to learn through the AI-assisted teaching system in advantageous spaces, at advantageous times, in advantageous ways, and with advantageous content, thus achieving personalized and efficient learning, truly meeting the requirements of building a student-centered ‘golden course’ based on the OBE concept, laying a broader knowledge foundation for students during their learning stage[4].

Enhancing students’ abilities requires them to experience programming design methods and deepen their understanding of programming design theory through continuous practice. The programming course emphasizes practice and methodology[5], adopting a teaching route of ‘practice – abstraction – design – re-practice’. The AI-assisted teaching system, in setting teaching content, is based on student capabilities, focusing on verification and imitation content, and through continuous practice, experiences programming design methods[6]. The teaching focus is on cultivating students’ thinking abilities; abstraction and design of problems are key pathways for enhancing students’ capabilities, requiring them to abstract relevant elements of programming design from specific problems and design solutions. Students practice programming training problems, verified by the AI platform, which helps students identify design flaws and provides relevant knowledge points and training problems, allowing students to practice repeatedly, cultivating their ability to self-inspect problems, and training different levels of logical thinking[7].

As shown in Figure 1, the AI-assisted teaching system for computer programming courses is structured from both teaching methods and content. Teaching methods encompass theoretical and practical teaching. Theoretical teaching serves as the foundation for practical teaching, centered on students, designed from before, during, and after class, achieving timely Q&A and focused, intensive practice. Practical teaching implements tiered training, focusing on basic programming training for statement standardization, and expanding programming training to enhance students’ logical thinking and creativity. The AI-assisted teaching system based on knowledge graphs provides strong support for practical teaching, including three modules: basic knowledge consultation, teaching difficulty feedback, and capability enhancement. The feedback module of the AI-assisted teaching system is the basis for optimizing theoretical teaching, providing ideas for subsequent theoretical teaching and improvements to the AI-assisted teaching system.

AI-Assisted Teaching System for Computer Programming Courses

1.1 Teaching Content Design

In terms of teaching content, the teaching content of C programming design is divided into three modules: the first module is the ‘Basic Module,’ mainly including the basic concepts and elements of programming languages; the second module is the ‘Core Module,’ mainly including functions, modular programming design, arrays, pointers, files, etc.; the third module is the ‘Advanced Module,’ mainly including structures, unions, enumerated types, user-defined types, etc. Teaching content starts from the first module and gradually expands to the second and third modules.

1.2 Teaching Method Design

1.2.1 Theoretical Teaching Segment

(1) Pre-Class Basics. Before the class, teachers release learning objectives and task lists for each knowledge point, and students conduct self-study. If they encounter difficulties, they can first consult the AI-assisted teaching system for clarification. The AI-assisted teaching system categorizes and summarizes student inquiries, forming a document that is fed back to the teacher. Based on system feedback, teachers appropriately adjust the focus of instruction.

(2) In-Class Deep Learning. In response to AI system feedback, teachers analyze common difficulties among students, provide targeted explanations for key and difficult content, and summarize the taught content by knowledge points, updating the attributes of knowledge point entities in the knowledge graph within the AI system, continually evolving the knowledge graph to improve the accuracy and relevance of the consultation system’s responses. Teachers conduct capability expansion training for students in class and release individual or group expansion tasks in the system’s capability expansion area.

(3) Post-Class Expansion. Through the above two segments, students have generally mastered the content of the class. If students still have questions, they can again consult the AI system, which can generate targeted responses based on their inquiries and actively question students around the knowledge points they raised to uncover their weak areas, helping them better understand their questions. Teachers monitor the student expansion area post-class, providing real-time guidance to enhance students’ logical analysis abilities, training their thinking skills in practical problems, and accumulating engineering experience.

1.2.2 Practical Teaching Segment

1) Basic Programming.

The primary task in the basic programming phase is to improve the standardization of students’ basic statements and syntax. Students often make numerous statement and syntax errors during basic program writing, such as writing the header file #include<> as include<>, or failing to add a ‘;’ at the end of statements. This occurs because, after learning in the theoretical teaching segment, students have grasped some foundational programming concepts, but due to a lack of practice, they find themselves ‘out of practice’ in programming, leading to common and hard-to-detect errors.

The AI system provides targeted training exercises for students regarding such issues, such as ‘comparing three numbers’ and ‘determining leap years.’ If students encounter problems while writing programs, they can consult the AI system, copying the program into the system for analysis, which identifies issues and provides guidance, reinforcing students’ foundational knowledge.

2) Advanced Programming.

The primary task in the advanced programming phase is to train students’ programming thinking and logic. The programming in the advanced area aims to bring basic knowledge points from teaching into engineering problems, conducting tiered training to cultivate students’ logical thinking in solving engineering or practical problems. The AI intelligent system assesses students’ proficiency in completing problems and the difficulty of the problems, providing a capability evaluation over time, analyzing students’ capability structures, and guiding knowledge points and abilities that need enhancement, preparing for subsequent training. In summary, AI advanced programming allows students to explore methods independently, forming their own logic for problem-solving, achieving the teaching objective, as the saying goes, ‘teaching a man to fish is better than giving him a fish’[8].

After the design of the AI-assisted teaching system is completed, the teaching process of the programming course shifts from teacher-led to student-led. Teachers transition from a leading role to a supportive role, with students’ learning pace driven by their own needs, and the classroom adjusts significantly in both theoretical and practical teaching aspects.

2 Student Performance Feedback on AI-Assisted Teaching System Effectiveness

The effectiveness of the AI-assisted teaching system in assisting students with programming design will affect the system’s promotion. In the initial use phase of the AI-assisted teaching system, 480 students were selected for a comparative experiment, with one group using the AI-assisted teaching system (experimental group, 236 students) and another group not using it (control group, 244 students). Before the course began, to measure the initial levels of each group, a test was conducted on basic computer knowledge, and the test scores (with a full score of 100) were analyzed. Due to the large sample size, it can be considered normally distributed, and SPSS software was used for statistical processing, selecting a significance level of α=0.05, employing independent sample t-tests to compare the scores of the experimental and control groups. The test results are shown in Table 1. It can be seen that the mean (Mean) and variance (SD) of scores between the experimental and control groups are similar, and the t-test results (p=0.483>0.05) indicate no significant difference in knowledge levels between the two groups before the experiment, making them suitable experimental subjects.

AI-Assisted Teaching System for Computer Programming Courses

In the C programming course at H University, the final exam has a maximum score of 100 points, with a closed-book written exam format focusing on assessing basic knowledge, concept mastery, and problem analysis and understanding abilities. The final exam scores of the experimental and control groups are displayed in a bar chart (as shown in Figure 2). It can be seen that in the final exam, the number of students in the experimental group scoring above 80 points is nearly 34% higher than that in the control group, with only 8 students in the experimental group scoring below 70 points. Overall, the final scores of the experimental group are better than those of the control group.

AI-Assisted Teaching System for Computer Programming Courses

Conducting a differential test on the final scores of the experimental and control groups shows the results in Table 2. It can be seen that the average scores of the experimental group are higher than those of the control group, and the t-test results (p=0.01<0.05) indicate a significant difference in scores between the two groups.

AI-Assisted Teaching System for Computer Programming Courses

From the above data, it can be determined that using the AI-assisted teaching system in the teaching of the C programming course has played a significant role in improving students’ scores.

Furthermore, to measure student performance across various question types, the final exam questions were divided into conceptual questions (60%) and understanding questions (40%). Conceptual questions mainly assess students’ mastery of basic knowledge, while understanding questions mainly assess students’ logical thinking abilities. The specific scoring situation of each group of students on each question type was statistically analyzed (see Table 3). It can be seen that for conceptual questions, although the experimental group’s average score is higher than that of the control group, the t-test results (p=0.227>0.05) show no significant difference. In terms of understanding questions, the experimental group’s performance is significantly better than that of the control group. This is because, through the AI-assisted teaching system’s autonomous learning, students gain a deeper understanding of programming logic and design while mastering basic knowledge, thus performing better on understanding questions. In contrast, conceptual questions focus more on foundational knowledge, which the control group can also master through learning, hence no significant difference in scores for conceptual questions between the two groups.

AI-Assisted Teaching System for Computer Programming Courses

3 Student Experience Survey Feedback on AI-Assisted Teaching System Impact

Using a Likert 5-point scale, with 12 measurement items across three dimensions: knowledge learning, skill learning, and attitude learning, a survey was conducted among students in the experimental group to understand the teaching effectiveness of the AI-assisted system. A total of 236 questionnaires were distributed, with 224 valid questionnaires returned. The measurement data for each item were categorized by dimension, and the frequency of each option within the dimensions was summed, resulting in the overall option distribution for each dimension (as shown in Figure 3). It can be seen that in each dimension, most students held a positive attitude, indicating that students’ overall learning effectiveness is good.

AI-Assisted Teaching System for Computer Programming Courses

4 Optimization of the AI-Assisted Teaching System

4.1 Theoretical Teaching Optimization

In the theoretical teaching segment, the AI system collects data on students’ performance in daily exercises and final exams, including scores, error types, answering times, etc. After analysis by the AI system, this data can help teachers understand students’ mastery of different knowledge points. For common weak knowledge points among students, knowledge graphs can be used to represent and organize them, helping students better understand their relationships and dependencies. Corresponding information related to weak knowledge points can also be added to the knowledge graph, such as examples and key points, to improve the knowledge graph. For example, when students have a poor grasp of pointers, examples and key knowledge about pointers will be added; based on teaching experience, if students lack mastery of a certain knowledge point, it is likely due to insufficient mastery of prerequisite knowledge for that point. Therefore, in the knowledge graph, addresses as prerequisite knowledge for pointers will also be correspondingly added to assist learning.

AI-Assisted Teaching System for Computer Programming Courses

At the same time, based on students’ performance, the time allocation for each chapter in the teaching syllabus can be dynamically adjusted (see Table 4). For chapters that students can easily master through AI assistance, redundant content can be compressed or some concepts simplified to shorten class time, allowing more time and energy to be devoted to key and difficult sections.

AI-Assisted Teaching System for Computer Programming Courses

4.2 Practical Teaching Optimization

Since students’ initial programming abilities and mastery levels vary, to ensure that each student can learn programming within their suitable capability range, the AI system can dynamically adjust the weight of various levels of exercises within the total exercises. For example, when students practice ‘applications of one-dimensional arrays,’ programming exercises are divided into easy, medium, and advanced levels. After students complete basic training, the AI system automatically adjusts the weight of each level of exercises based on students’ performance and mastery levels. If students perform well, the system will increase the proportion of medium and advanced exercises to raise the learning difficulty and challenge. If students perform poorly, the system will reduce the proportion of medium and advanced exercises to lower the learning difficulty and enhance students’ interest in learning. Once students reach a proficient level through gradually accumulated practice, they will then proceed to the next knowledge point, ‘applications of two-dimensional arrays,’ using the same practice model as before.

AI-Assisted Teaching System for Computer Programming Courses

By dynamically adjusting the weight of various levels of exercises within the total exercises, a personalized learning experience can be provided for students, helping them better master programming skills and improve their programming levels. Similarly, adjustments to practical teaching hours can also be made according to students’ performance (see Table 5).

AI-Assisted Teaching System for Computer Programming Courses

5 Conclusion

The AI-assisted teaching system for computer programming courses is student-centered and capability-enhancement-led, reconstructing and optimizing programming course teaching plans through proactive guidance, tiered training, and dynamic optimization, while solidifying the foundation, focusing on cultivating students’ thinking and creative abilities. In practical teaching, it guides students to autonomously explore the key and focal points of related issues, enhancing their analytical and problem-solving abilities through scientific methods. At the same time, it encourages students to actively create during practice, cultivating their practical and innovative abilities, laying a solid foundation for future learning and career development.

In the future, assisted teaching can be combined with large models, utilizing the generalization and generative capabilities of large models to reshape the educational ecosystem[9], providing students with more intelligent, personalized, and efficient learning experiences and teaching services, expanding the development space and possibilities of education.

References:

[1] Liu Qian, He Qinming, Yan Hui, et al. Construction of Excellent Textbooks for C Language Programming Courses[J]. Computer Education, 2022(7): 205-208.

[2] Tang P, Liang Q, Yan X, et al. GP-CNN-DTEL: Global-part CNN model with data-transformed ensemble learning for skin lesion classification[J]. IEEE Journal of Biomedical and Health Informatics, 2020, 24(10): 2870-2882.

[3] Zhu Weiping, Lin Hai, Xie Rong, et al. Application of Intelligent Q&A Systems in University Course Teaching[J]. Computer Education, 2019(10): 23-26.

[4] Wu Linzhi. Research on the Construction and Implementation Path of the ‘Four-Dimensional’ New Engineering Talent Training Model[J]. Heilongjiang Higher Education Research, 2022(8): 151-155.

[5] Zheng Zhong, Wang Lei, Tan Lixiang, et al. Layered Collaborative Experimental Teaching Model for Computer Programming[J]. Laboratory Research and Exploration, 2022, 41(5): 188-191.

[6] Song You, Li Ying, Xiao Wenlei. Thoughts on the Construction of ‘Golden Courses’ for Programming Oriented to Large Categories[J]. Chinese University Teaching, 2019(11): 61-65.

[7] Fu Shuibo. Classroom Practice Research on Cultivating Middle School Students’ Learning Ability: Taking Programming Classroom Teaching as an Example[J]. Modern Educational Technology, 2018, 28(6): 115-121.

[8] Yang Bing, Yin Jiaqiqi, Yang Yang, et al. Status Quo and Development: Reflections on Intelligent Q&A Robots Promoting Learning[J]. Chinese Educational Technology, 2018(12): 31-38.

[9] Wu Di, Li Huan, Chen Xu. Analysis of the Impact of General Large Models of Artificial Intelligence on Education[J]. Open Education Research, 2023, 29(2): 19-25, 45.

(Editor: Zhao Yuan)

Funding Project: Henan Province Higher Education Teaching Reform Research and Practice Project (2021SJGLX393); Henan Province Undergraduate Colleges Smart Teaching Special Research Project ‘Personalized Learning and Quality Evaluation Research of AI-Based Programming Course Groups’; Henan University of Technology Undergraduate Education Teaching Reform Research and Practice Project (JXYJ2021044); Innovative Funds Plan of Henan University of Technology (2022ZKCJ02); Henan University of Technology Research-Based Teaching Course Project (2023YJXJX-10).

Author Information: Xiao Le, male, Associate Professor at Henan University of Technology, research direction in natural language processing and smart education, [email protected]; Deng Miaolei (corresponding author), male, Professor at Henan University of Technology, research direction in teaching reform and intelligent computing, [email protected].

Citation Format: Xiao Le, Shan Xin, Deng Miaolei. AI-Assisted Teaching System for Computer Programming Courses[J]. Computer Education, 2024(7): 134-139, 146.

Article Header Image Created by ‘Zhizhu Qingyan’.

(End)

More Exciting Content:

Principal Interview | Rooted in Frontier Ethnic Areas, Focusing on Teacher Education to Cultivate High-Quality Applied Talents – Interview with Principal Chen Benhui of Lijiang Normal University

Yan Shi | Review and Prospects of Computer System Capability Cultivation

Discussion on the Concept of ‘Student-Centered’ Teaching and Implementation Path

Principal Interview | Promoting Interdisciplinary Integration to Cultivate Innovative Talents in the New Era – Interview with Professor Ni Mingxuan, Founding Principal of Hong Kong University of Science and Technology (Guangzhou)

New Year Message from the Seventh Editorial Committee

Teaching Guidelines for Ideological and Political Education in Computer Subjects

Academician Chen Guoliang | Cultural Construction of Virtual Teaching and Research Room for Computer Courses

Professor Chen Daoqu of Nanjing University | Change and Constancy: The Dialectics in the Learning Process

Yan Shi | Thoughts and Suggestions on the ‘Dilemmas’ of Young Teachers in Colleges and Universities

Xu Xiaofei et al. | Education in the Metaverse and Its Service Ecosystem

【Directory】 ‘Computer Education’ 2024 Issue 6

【Directory】 ‘Computer Education’ 2024 Issue 5

【Directory】 ‘Computer Education’ 2024 Issue 4

【Directory】 ‘Computer Education’ 2024 Issue 3

【Editorial Committee Message】 Professor Li Xiaoming of Peking University: Reflections on the ‘Year of Classroom Teaching Improvement’…

Professor Chen Daoqu of 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 of Peking University: From Fun Mathematics to Fun Algorithms to Fun Programming – A Path for Non-Majors to Experience Computational Thinking?

Reflections on Several Issues in Building a First-Class Computer Discipline

New Engineering and Big Data Professional Construction

Lessons from Others Can Be Used to Improve Ourselves – Compilation of Research Articles on Computer Education at Home and Abroad

AI-Assisted Teaching System for Computer Programming Courses

AI-Assisted Teaching System for Computer Programming Courses

Leave a Comment