Keywords

1 Introduction

1.1 Overview of ACM/ICPC and C++ Course

The Association for Computing Machinery / International Collegiate Programming Contest (ACM/ICPC) is the most influential international computer competition for college students from all over the world. It is a stage for college students majoring in computer science to show their talents, a direct embodiment of the achievements of computer education in famous universities, and the best platform for information companies to communicate with the world's top computer talents [1]. The ACM/ICPC is a completely closed competition, which can conduct a real-time comprehensive inspection of students’ abilities, and its results are more authentic. Therefore, it has become a hot spot pursued by domestic colleges and universities. It is an important activity for cultivating outstanding talents in an all-round way, and it has an important value orientation for the cultivation of computer professionals. Since the ACM/ICPC has set a set of the reasonable competition ranking and challenge rules, it provides a complete practice mode for learning and using programming languages and algorithms, so that students can be proud of being proficient in programming and form a positive and self-directed learning atmosphere. At present, some colleges and universities have applied the ACM model to the teaching process of the basic software courses such as “Data Structure” and “Algorithm Design and Analysis” and achieved the remarkable results [2, 3].

“Advanced Language Programming (C+ +)” is a basic computer course offered by most domestic colleges and universities for undergraduates. It is not only strong in theory, but also in practice. The quality of the experimental teaching effect directly affects the overall teaching quality and effect. Aiming at the common problems in the traditional C++ teaching mode, the author proposed a C ++ teaching reform mode based on ACM/ICPC by applying the ACM mode to the C+ + teaching method reform in our school. This model cultivates students’ interest in participating in ACM/ICPC, greatly improves students’ initiative and enthusiasm for learning, strengthens the cultivation of teamwork spirit and innovation ability. The proposed mode improves teaching quality and teaching level, and is highly praised by students, which has a certain demonstration effect on the teaching reform of C ++ courses in our school. Now this reform has been fully launched among the freshmen of computer science of our university [4,5,6].

1.2 Key Issues to Be Solved in Course and Teaching Reform

There are three key issues that need to be addressed in the teaching reform process as follows.

(1) Theoretical teaching: Firstly, the course ideology and politics have not been organically integrated into the whole process of course teaching, with few ideological and political cases and cannot be naturally integrated into the course teaching contents. Secondly, students are not very interested in purely theoretical C ++ teaching. Thirdly, the course contents and the learning resources are lagging behind, lack of modernity and advancement. Finally, the classroom teaching methods are outdated. The teachers ignored the program demonstration and the running links. The teaching method does not highlight the dominant position of students, resulting in the low student participation and difficulty in the teacher-student interaction.

(2) Practical teaching: The C++  teaching method focuses on theoretical teaching and ignores practical teaching. There is a big difference in programming ability between students. In a small number of experimental courses, there is a lack of the advanced, innovative and exploratory experiments. The practice content is solidified in a single form. There is no test data for programming questions or the test data is not considered comprehensively. The training links of students' practical innovation ability and the spirit of craftsmen of a great country are missing, which cannot meet the training requirements of the new engineering talents. It is difficult for the students to solve the practical problems from the perspective of the computer, that is, students’ computational thinking cannot be effectively cultivated.

(3) Course assessment: The assessment method of C++ tends to focus on the results and ignore the process. The assessment method cannot stimulate and promote the students’ learning in the whole process. It focuses on the summative assessment and ignores the process assessment. Therefore, the current assessment method is not reasonable enough.

2 Research Work and Purpose

2.1 Innovative Contents

Aiming at the main problems existing in the teaching of traditional C+ + courses, relying on the background of the “new engineering” era, a “five-in-one” C ++ teaching innovation mode is proposed. The “five in one” means: a national quality resource sharing course, a system combining competition and teaching, a C++ intelligent examination system, an ideological and political classroom, a laboratory combining competition and teaching. The “five-in-one” is interconnected, coordinated, promoted and complemented to form an organic whole.

This teaching innovation mode highlights the “student-centered” teaching concept, and ingeniously integrates the ideological and political contents of the course according to the teaching objectives of each class. Taking the “problem-solving” and the “live code” as the main line of teaching, using information-based teaching as a means, using the ACM/ICPC competition to promote the integration of students' science and practice, organically combining the process assessment and the summative assessment, this course implements a variety of assessment forms.

Firstly, deeply dig the ideological and political education resources contained in the C++ course contents, and integrate the course ideology and politics into the whole process of teaching. In the specific process of the curriculum ideological and political construction, innovative thinking is needed. New thinking is used to generate new ideas. The new ideas are used to seek the new development. The new development is used to promote the new methods. The new methods are used to solve the new problems. The innovative development of the curriculum ideology and politics is thus realized. Mining the ideological and political resources according to the C++ course contents, such as: when teaching the selection statements, we can tell the student that the Ariane 5 launch vehicle failed for the first time due to the bug so that students can realize the importance of writing a safe and high-quality code, and realize that programming must have a rigorous logical thinking. When teaching the repetition statements, by taking the virus of a panda burning incenses or the latest ransomware virus as an example to guide students to think about the world outlook, the life outlook, values and other issues. The ideological and political construction of the curriculum helps to cultivate outstanding talents with the family and country feelings, the international vision and the responsibility.

Secondly, by taking the “problem-solving” and the “live code” as the main teaching line, and combining the theory with practice, we establish teaching the themes and the live code cases. The “Problem-solving” means that the main knowledge points of the C ++ course are introduced in the “problem-introducing”. Let students know the reasons for the introduction and application scenarios, and then condense the knowledge of each chapter into 4 ACM-style questions with a certain degree of challenge. Taking the "programming language for solving practical problems" as the main line, we will carry out teaching in accordance with aptitude and layered innovative teaching, so as to improve students' interest in learning, the programming ability and the innovation ability. The "Live code" means that the main knowledge points of the C++ course are demonstrated through one or more complete runnable C++ programs, rather than just explaining the syntax or the code fragments, which can improve students’ interest in learning and focus. This course cultivates students' computational thinking and innovation ability by describing the programming ideas of C ++, and lays a solid foundation for subsequent courses such as "Data Structure" and "Algorithm Design and Analysis". The traditional teaching method only shows PPT in the classroom. Although the PPT also includes the theoretical knowledge points and the program codes, the students are not very interested in the PPT and the learning effect is not ideal. Through the live code and the heuristic teaching methods, students can visually feel and observe the dynamic changes of the relevant memory after each statement is executed, so as to not only know the function of each program, but also know why. Therefore, this teaching method can greatly improve students’ attention, which can greatly stimulate students’ enthusiasm for learning. Heuristically demonstrate the course contents according to the theme, make the code live on the screen, deepen the understanding of knowledge points, and gradually cultivate students’ interest in learning.

Thirdly, the ACM/ICPC promotes the integration of the students’ theory and practice, and cultivates the students' practical ability, the innovation ability and the teamwork spirit. The ACM/ICPC is a completely closed competition, which can conduct a real-time comprehensive inspection of students' abilities, and its results are more authentic. Therefore, it has become a hot spot pursued by domestic colleges and universities. Many topics do not have the ready-made algorithms and require the innovative spirit. Because the ACM/ICPC involves a wide range of knowledge, for the freshmen, computer-related knowledge is almost blank. How to gradually cultivate the programming interest without fear of difficulty is a key problem to be solved in this course reform. In the process of C++ reform based on the ACM/ICPC, the general principle of the course questions is: according to the format of the ACM/ICPC questions, the important knowledge points of each chapter are integrated into 4 questions (according to the difficulty factor, divided into A, B, C, and D, in order to teach students in accordance with their aptitude and deal with the problem of stratified teaching).

At present, although our school has applied the ACM model to the reform of the C++ teaching method and achieved obvious teaching effects, the final exam of this course is still a traditional exam with paper. One of the biggest drawbacks of this exam is that teachers can not make a fair, impartial and effective judgment on the only subjective question (usually 2 programming questions, whose score accounts for about 20–30% of the total score of the test paper). If the problems in the test paper does not pass the compilation, it is difficult to judge whether the code is 100% correct from the lengthy code written by the students. In addition, the scoring of programming questions varies from person to person, and it is difficult to grasp the scoring standard. Therefore, the test results of this course are inherently lack of fairness and impartiality. Although some paperless examination systems for programming languages ​​have appeared [7], these systems can only automatically score three types of objective questions, such as judgment questions, fill-in-the-blank questions, and multiple-choice questions. Therefore, in order to make the C++ examination more scientific and objective, aiming at the defects of the general paperless network examination system, based on the ACM/ICPC platform, the author proposed a new C++ paperless examination system and successfully solved the defects of the general paperless network examination system, and realized the fair, impartial and automatic scoring of the C++ paperless examination. In addition, in order to prevent students from intentionally avoiding the knowledge points to be assessed, the author improved the traditional OJ system, developed a new keyword-oriented combination system of competition and teaching, and obtained a software copyright.

2.2 Innovation Processes

The innovation process of this course is divided into four parts as follows.

(1) Innovation in the teaching concept: Aiming at cultivating the top-notch innovative talents in the computer field with the strong professional programming ability, the computational thinking, the family and national feelings, the global vision, and the all-round development, this course strives to highlight the “student-centered” teaching concept.

(2) Innovation in the teaching mode: To promote teaching through competition, a “five-in-one” teaching innovation mode is put forward to cultivate the students' practical ability, the computational thinking ability and the innovation ability. “Computational thinking” is an important means for human beings to solve problems in the future society. It involves using the basic concepts of computer science to solve problems, design systems and understand human behavior, rather than making people operate mechanically like computers. The construction of new engineering majors and the educational reform put forward the cultivation of students’ scientific thinking ability.

Taking the “problem-solving” and the “live code” as the main teaching line, according to the characteristics of the C++ course form and content, the rational use of online teaching platform and the modern educational information technology can highlight the characteristics of C++ course and effectively cultivate students' computational thinking ability. According to the teaching feedback, through teaching students in accordance with their aptitude, the exploratory experiments that are more in line with students’ cognition and learning laws are designed in layers, so as to effectively improve students’ practical ability and innovation ability.

According to different knowledge points and teaching objectives in each class, actively carry out the inquiry (the exploratory knowledge points), the seminar (the algorithmic knowledge points), the game (the game projects), the heuristic (the expandable knowledge points), the case-based (actually occurring cases), the project-driven (the practical projects), the problem-oriented (the control structures, the functions and the class-related knowledge points) and other teaching activities to achieve the teacher-student interaction, the student-student interaction, and increase the student engagement.

(3) Innovation in the teaching contents: Taking the golden class standard as the curriculum construction requirements, insisting on taking the morality and cultivating people as the central link, the ideological and political work throughout the whole process of the education and teaching, realizing the whole process of the educating people and all-round education, and continuing to guide students to have a firm belief in the core values of the socialism. The scientific and cutting-edge teaching contents are continuously built. The C++ standard is updated almost every 3 years. The teaching contents of each academic year are updated according to the actual situation and keeps pace with the times, such as: adjustment of teaching cases, redesign of teaching situations, an introduction to recent updates to the C++ standard, etc.

(4) Innovation in the assessment methods: Organically combine the procedural assessment with the summative assessment, implement diversified the assessment forms, and cultivate the students' hands-on ability, the computational thinking ability and the innovation ability. In the teaching process of this course, emphasis is placed on the assessment of the students' practical ability. The grades are divided into three parts, namely: the daily homeworks and the classroom performance, the OJ experiments, and the final exam. The proportions are: 10%, 30%, and 60%, respectively.

2.3 Online Judging System

The ACM online judging system (referred to as the OJ system) is an online real-time submission system that integrates the programming competition, the competition training, the course experiment, and the daily practice. The system can provide a large number of competition questions for students to practice or compete. Students submit the program code to solve the relevant competition questions online. The system can automatically compile the program code, generate an executable file, and test the program according to the stored test cases.

In terms of teaching reform, the author mainly reformed the two courses “Advanced Language Programming (C++)” and “Algorithm Design and Analysis” in combination with the ACM competition. A competition-teaching integration system (http://222.201.146.218) is used for teaching and doing experiments. The system is currently running stably. As a platform for students to get started with "Advanced Language Programming (C++)", the competition-teaching system plays an important role in subsequent courses such as "Data Structure" and "Algorithm Design and Analysis". The practical teaching of the competition teaching system can be carried out directly through the network, and it is not limited by time and space.

Different from the usual way of submitting the assignments, the students not only have to write the programs without compilation and logic errors, but also must comply with the input and output formats of the ACM/ICPC to be correctly accepted by the system. The general principle of the author's questions in the combination of competition and teaching is: according to the format of the ACM/ICPC questions, the important knowledge points of each chapter are integrated into 3 to 4 questions. Moreover, in the process of the C++ reform based on the ACM/ICPC, the characteristics of the author's questions are as follows:

(1) Most of the ACM/ICPC test questions are adapted from the exercises of the C++  textbook.

(2) The knowledge points of each chapter are organically integrated into the prepared ACM/ICPC test questions. Students not only master the knowledge points of each chapter, but also understand the format and the style of the ACM/ICPC questions, thus killing two birds with one stone.

As far as the examination system is concerned, the C+ + objective questions, namely: judgment questions, multiple-choice questions, and fill-in-the-blank questions, are relatively simple to implement and can be accurately scored. However, C++ subjective questions, namely: programming questions, as an important question for assessing students’ programming ability, are compulsory questions in various programming languages, and are subjective questions. If the possibility of plagiarism is excluded, the programs written by students are almost different, so this type of question has always been marked by the teacher himself, which is the main reason why many C++ paperless examination systems cannot be completely automatically scored. Taking the OJ system as the basic platform, our exam system will be keyword-oriented to write programming questions.

In view of the fact that the traditional OJ system cannot judge whether the source code of students really meets the knowledge points to be assessed by teachers, by setting the keywords that must appear in the source code and the keywords that are forbidden to appear, the author proposed a method based on keywords [5]. The keyword-oriented ACM/ICPC competition-teaching combined system will be able to effectively and automatically detect whether the students have submitted questions according to the teacher's requirements, thus effectively preventing students from attempting to avoid the knowledge points to be assessed, and greatly reducing the workload of the teachers.

The international description of an ACM/ICPC question includes the following 5 parts, and any part is indispensable:

The first part: “Description” mainly describes the task to be solved.

The second part: “Input” mainly describes the data to be input.

The third part: “Output” mainly describes the data to be output.

The fourth part: "Sample Input" gives the sample input when the program is running.

The fifth part: “Sample Output” gives the sample output when the program is running.

It is precisely because the international ACM/ICPC test questions only focus on the input, the output and the algorithm itself, and do not take into account the characteristics of C +  + teaching, so compiling the questions in the above way leaves a lot of space for students to avoid the assessment knowledge points. In view of this, in addition to the above 5 required parts, the author has added 2 other optional parts, namely:

The sixth part: “Keyword(s) that Must be Used”, which specifies the keywords that must appear in the program.

The seventh part: “Keyword(s) that Mustn't be Used”, which specifies the prohibited keywords in the program.

If the sixth and seventh sections do not fill in anything, then after editing the question, "Keyword(s) that Must be Used" and "Keyword(s) that Mustn't be Used" will not be displayed on the web page for the following reasons.

First: Because these two items are set to be empty when the teacher edits, there is no need to display them.

Second: In line with the international ACM/ICPC question-setting style. That is to say, the style of the questions in this system not only inherits the style of the international ACM/ICPC and the competition, but also expands the style of the questions, and has the style of the questions combined with the C++ teaching.

Without loss of generality, suppose there is a programming problem whose function is to display the input string on the screen. Next, we will explain the principle of the question preparation in the new keyword-oriented competition-teaching combination system.

The function to be realized in this question is to input a string from the keyboard and display the content of the input string from the screen. According to this, we need to fill in the 5 required items of the system “Description”, “Input”, “Output”, “Sample Input” and “Sample Output”, etc. For the two items “KeyWord(s) that Must be Used” and "KeyWord(s) that Mustn’t be Used", according to the specific knowledge points to be assessed in this question, we can stipulate that the keyword that must be used is cin, and the forbidden keyword is scanf. With this restriction, students will have to use C++ language for programming, but at this time students can still choose to use the object-oriented method or the procedure-oriented method. Therefore, if we add another class to the keywords that must appear, then the student will have to use the object-oriented programming method to write the program. The input values ​​for the 7 parts of Problem 2015 on the platform are given below.

Part 1: “Description” input “Input a string, and output a string.“.

Part 2: “Input” Enter “a string”.

Part 3: "Output" Enter "a sring”.

Part 4: “Sample Input” Enter “cin”.

Part 5: “Sample Output” Enter “scanf”.

Part 6: “Keyword(s) that Must be Used” Enter “Hello world!”.

Part 7: “KeyWord(s) that Mustn't be Used” Enter “Hello world!”.

Based on this design, no matter how the student's code changes, the program must be compiled through the competition-teaching system, and the system's test data is used to verify the correctness of the program, thereby greatly improving the fairness of the question judgment and ensuring the fairness of the test. It reduces the workload of teachers to review program questions, thus arousing students’ interest in learning and promoting students to improve their hands-on programming ability.

Therefore, the paperless examination system based on the ACM/ICPC can adapt the subjective questions into the objective questions, which is conducive to the realization of complete fairness, impartiality and automatic scoring of the entire examination system.

2.4 Implementation Methods

This course is organized and implemented by a combination of classroom teaching, computer experiments, extracurricular homework, and online teaching. According to the nature of the C++ course and the requirements of the course objectives, the process, the form, the content and the informatization means of the course assessment are taken as the starting point, the whole process of students’ learning is concerned, and the procedural assessment and the final assessment are organically combined. A variety of assessments are selected, such as the written test, the computer test, the classroom discussion, the game design, the debate, and the program design competition for the freshmen. Comprehensively evaluate and test students’ knowledge mastery, understanding, and application ability from multiple perspectives. By combining with the frontiers of disciplines closely related to the C++ practical problems or engineering the practice problems, the non-standardized answer questions are added to reflect the openness, flexibility and exploratory nature of the assessment content. Students’ knowledge application ability, problem-solving ability and innovation ability are examined.

In terms of C++ classroom teaching reform, combined with the ideological and political elements of the course, teaching methods such as the "live code", the "group discussion method", the "heuristic method " and the "game style” are mainly adopted.

(1) Pre-class stage: Through Rain Classroom ( a teaching plugin), the rich teaching resources and the pre-class test questions can be easily inserted into the slides, and pushed to the students’ WeChat anytime and anywhere to facilitate the courseware preview and the pre-class test.

(2) Mid-class stage: Implement the quick in-class tests and carry out the innovative teacher-student interaction. One-click to send the exercises integrated into PPT, which can be renewed within a limited time, lecture at any time, and test at any time. Bullet screens, submissions, classroom red envelopes, random roll call, large class teaching can also allow everyone to speak, and activate the classroom atmosphere.

(3) After-school stage: According to the teaching contents, push the complete homework questions, subjective and objective questions, voting questions, attachment answering, photo uploading, and voice response, which can meet the different homework needs. After each chapter is finished, 4 programming questions will be arranged on the competition-teaching platform to consolidate the students' programming foundation and cultivate the students' ability to draw the inferences from one instance and draw the parallels by analogy.

(4) Teacher reflection stage: Driven by the panoramic data provided by Rain Classroom, analyze the teaching data of the whole cycle, before class - during class - after class, the data of each step can be seen, providing effective teaching reflection data for the next round of teaching.

In terms of the course assessment reform, the transition from C++ paper-based examinations to a paperless examination system will be promoted. The online examination system will fully support various question types of the offline examinations, such as: true and false questions, multiple-choice questions, multiple-choice questions, writing result questions after reading a program, fill-in-the-blank questions, programming questions, etc. In terms of the application of the teaching information technology means, we will use the competitive teaching system, QQ answering group, and the rain classroom plug-in to innovate and lead the classroom revolution: promote blended teaching, formative evaluation, and multi-channel interaction.

3 Effectiveness of Teaching Innovation

In the first semester of the 2010–2011 school year, the author conducted the first pilot work on the combination of "Advanced Language Programming (C+  +)" teaching and ACM competition in Class 5 majoring in the Information Security, and achieved the certain results. From the second semester of the 2010–2011 school year, the teaching of the combination of "Advanced Language Programming (C++)" and ACM competitive teaching has been officially implemented [4,5,6]. In the first semester of the 2011–2012 school year, the first pilot work was carried out in the Class 1 and Class 2 majoring in the Computer Science and Technology, which combined the teaching of "Algorithm Design and Analysis" with the ACM competition. The pilot was very successful. From the second semester of the 2011–2012 school year, the teaching of the combination of "Algorithm Design and Analysis" and ACM competitive teaching has been officially implemented [3]. The early teaching practice of this course shows that the combination of competition and teaching has greatly cultivated students' interest in participating in the ACM/ICPC, improved the students' initiative and enthusiasm for learning, and strengthened the cultivation of teamwork spirit and the innovation ability, which has been widely welcomed by students.

At present, all the teachers of the C++ course in our university are using this system of competition and teaching, and it has been promoted and applied in the three campuses of our university. In recent years, with the enhancement of students' hands-on programming and innovation ability, our ACM training teams have repeatedly achieved good results in the ACM/ICPC, the ACM-CCPC and the ACM-GDCPC competitions over the years [8,9,10,11,12,13], such as: in the 43rd ACM/ICPC competition, they achieved 2 golds, 7 silvers and 2 bronzes, and in the 44th ACM/ICPC competition, they achieved 3 golds, 6 silvers and 4 bronzes. In addition, during the 2020 season, a total of 9 teams were sent to participate in 6 Asian regional competitions of the International College Students Programming Competition. In the competition of the competition station, they achieved 3 golds, 4 silvers and 2 bronzes, respectively. The 7 teams participated in 4 sub-stations and 1 national final of the China University Student Programming Contest, and won 2 golds, 2 silvers and 3 bronzes [14]. In the competition, the "Stars Shining" team won the 9th place in the Yinchuan Division where more than 500 teams and nearly 200 colleges and universities participated. The team ranked 14th and our school ranked 12th. The team "CSP-Junior" ranked 5th in the Macau Division. In addition, the members of the training team of our college also participated in the “Yuanguang Cup” Guangdong-Macao Computer Programming Contest and the Greater Bay Area Youth Informatics Programming Contest this year, and won the championship of these two provincial competitions.

In the past five years, the total number of student medals in our school has reached more than 60, of which the number of gold, silver and bronze awards in the ACM/ICPC is 6, 14 and 11, respectively, and in the ACM/CCPC is 2, 5, and 4, respectively. The number of first prize/gold prize, second prize/silver prize, third prize/bronze prize in ACM/GDCPC is 7, 7, and 7, respectively. The above achievements fully demonstrate that the students trained by our school have the solid and strong professional competitiveness, and are a direct reflection of the achievements of our school's implementation of the combination of the competitive teaching and teaching reform over the years. In addition, the student evaluation score of the courses taught by the author has always been at the forefront of the college, with a recent score of 4.981 out of 5.

Therefore, from the actual teaching effect and the results of the ACM competition, the "five-in-one" innovative teaching mode has greatly improved the students' learning initiative, the enthusiasm and the practical ability, and cultivated the students' interest and the innovative ability to participate in the ACM/ICPC, which has significantly improved the teaching quality and teaching level of this course. The innovative teaching mode has been praised and generally welcomed by students, and achieved remarkable teaching results.

4 Innovation and Sharing Results

The ACM/ICPC is the most influential international computer competition for college students from all over the world. It is a stage for college students majoring in computer science to show their talents. It is a direct reflection of the achievements of the computer education in famous universities. It is the best platform for information companies to communicate with the world's top computer talents. The following is a summary of the sharing of teaching innovation achievements in this course:

(1) Innovation in theoretical teaching: In response to the problem that the pure theoretical teaching methods are boring and cannot stimulate the students' interest in learning, through the student-centered, the ACM competitions to promote the integration of theory and practice, with the "problem-solving" and the "live code" methods as the main line of teaching, using information-based teaching as a means, the author in this paper put forward a “five-in-one” teaching innovation mode. The "five in one" means: a national quality resource sharing course, a system combining competition and teaching, a C++ intelligent examination system, an ideological and political classroom, a laboratory combining competition and teaching. The “five-in-one” is interconnected, coordinated, promoted and complemented to form an organic whole.

(2) Innovation in practical teaching: In response to the large difference in programming ability among students, the experimental questions and the exploratory questions are set up in layers and effectively cultivate the students’ practical ability and the innovation ability. A large number of outstanding talents have been delivered to the ACM training team. In addition, the traditional OJ system was improved, a keyword-oriented competition-teaching combined system was designed, and a software copyright was approved.

(3) Innovation in course assessment: Aiming at the shortcomings of the C++ paper-based examinations and the traditional course assessment methods, a C++ multi-question intelligent online examination system was designed, and a software copyright was approved. The system solves the problem of unfairness in the programming questions in the traditional paper-based exams. In addition, in the form of the assessment, a multi-process and multi-angle course assessment method is proposed by organically combining the procedural assessment and the summative assessment.

(4) Innovation in talent training: In terms of guiding undergraduate scientific research papers, the author has guided a number of undergraduates to publish more than 20 scientific research papers of algorithm type, including the top domestic journal such as “Journal of Software” and the top international journal such as "IEEE Transactions" on Image Processing" [15], which fully reflects that undergraduates also have the strong programming ability and the innovation ability.

In a word, the "five-in-one" teaching innovation mode has been effectively promoted and applied in the three campuses of our university, which has a certain leading and exemplary role in cultivating the strong professional programming skills, the computational thinking, the family and country feelings, the global vision and the all-round development of the top-notch innovative talents in the computer field.