Research on Teaching Reform of C Programming Language Course for Deep Integration of Professional Fields

Advanced Language Program (C language) is a required basic course of computer technology for science and engineering majors at Sichuan University of Science and Engineering. In order to improve students’ abilities of computational thinking, mathematical modeling, algorithm design, problem analysis and solution, this paper puts forward a C language curriculum reform oriented to the deep integration of the professional fields of the lecturers in view of the current C language teaching and experiment without considering the professional characteristics of the lecturers. Taking electronic information science as an example, the C language course plan related to the subsequent courses is designed according to the major characteristics of the students in class 2020. Compared with the final scores of 2018 and 2019, it can be found that the program is conducive to improving students’ interest in learning, deepening their understanding of the theoretical knowledge of the course, improving their ability of programming practice and deep integration with the professional field.


Current Teaching Situation of C Program Course
TIOBE released its ranking of programming languages in January 2021.C remains the world's no. 1 language, followed by Java, Python, C++ and C#.In December 2021, TIOBE announced the latest programming language ranking.In this list, C language ranks second in the world.Thus, C language is widely used in the international computer high-level language.Foreign C language teaching focuses on the cultivation of students' creative and practical ability.Domestic universities generally adopt C language as an entry-level programming course for science and engineering students, which are divided into two parts: theory and experiment.Except the computer major, the C program design course is implemented as a general course in other majors.Although students can master the key knowledge points of C language through classroom learning and experimental operations, they lack the ability to master C language thoroughly.Therefore, in order to better meet the professional training needs of students, how to enhance students' interest in C language courses, improve teaching effects, and deeply integrate students' professional fields are urgent problems to be solved in the current teaching of C language courses (Zhu & Wu, 2021).Through the analysis of the research status and the actual teaching situation of C language, it can be seen that at present, the C language course teaching is facing the following problems:

Teaching Objects
As C language is a general course for non-computer majors, teachers use unified experimental syllabus and textbooks in experimental teaching.The experiment content includes C program running environment and running process, structured programming (sequence, selection and loop), array and function, pointer, structure sharing and file, C language program debugging and writing comprehensive experiment.The experimental teaching system is rigid, the teaching mode is outdated and the teaching object is not targeted, which cannot meet the social demand for interdisciplinary, cross-compound and competitive innovative talents.The unified experimental teaching management mode constrains students' professional-oriented personalized development, fails to reflect the teaching concept of students' needs as the main body, and students are more passive in learning and less active in exploring (Jin & Wei, 2021).

Teaching Content and Methods
At the same time, the single type of C language experiment method, outdated experimental teaching content, backward experimental environment, mechanical experimental operation mode cannot stimulate students' interest in learning, cannot expand their vision, and can't improve their innovation ability.Boring theoretical explanation and no novel code verification will kill the passion of students who are originally interested in program design.

Theoretical and Experimental Teaching
The traditional teaching mode of C programming is theory teaching in the first three weeks, and theory and experiment teaching are carried out simultaneously from the fourth week.The teacher teaches the basic knowledge of C language, algorithm ideas, programming methods and other contents in class.After the students master the knowledge points, they go to the laboratory to operate the experiment content arranged by the teacher.There are four theory classes a week and two experiment classes a week.The theoretical teaching content is too much, some students will have a disconnection between theoretical content and experimental operation, that is, students have mastered the knowledge points explained by teachers in class, but do not know how to do the operation questions on the computer.

Teaching Time and Task
The content of C language is substantial and the knowledge points are widely distributed.Only 48 theoretical hours and 32 experimental hours require students to fully master a programming language, which is quite difficult.There are differences between teachers' teaching progress and students' acceptance ability.Preview before class, practice in class, review after class and other links are indispensable.Once a problem occurs in a certain link, it is bound to affect students' acceptance and understanding of the teaching content.How to finish the teaching task with high quality within the limited teaching time has become a great challenge for teachers.

Teaching Effect
In the experiment teaching, the teacher sets the experiment target, experiment content and experiment process for each experiment content.However, the experimental teaching goal of the course is not very clear, and students do not know the prospect, use and significance of C language after learning the whole course.Some students even think C is C++.At the same time, students in the limited experimental teaching time, only to verify the experimental content of the experiment, the teaching effect is not ideal.The experimental process cannot stimulate students' innovative thinking (Yu, 2021).

Take Electronic Information Majors as an Example to Design Teaching Content
In traditional C language teaching, teaching content and teaching objects are not targeted, so the curriculum plan designs corresponding teaching contents according to the professional characteristics of the teaching objects.Among them, taking electronic information science as an example, the C program language teaching related to the subsequent courses of this major is designed.C language plays a very important role in the study of the following courses of electronic information major: Principle and Application of Single Chip Microcomputer, Principle and Application of Microcomputer and Digital Circuit EDA Technology.Design relevant application scenarios in C language teaching, so that students can reserve knowledge points related to subsequent courses in advance.
For example, in the experimental course "Principle and Application of Single Chip Microcomputer", the first experiment content is flashing light (Wei & Cui, 2017).The purpose of the experiment is to connect a light-emitting diode L1 on the P1.0 port, so that L1 keeps on and off, with a time interval of 0.2 seconds.
Figure 1 shows the flashing light flow chart of SCM experiment 1.
According to the flow chart, to achieve the effect of flashing lights, need to use a loop statement.To implement delay as well, you can design the delay function as a module to be invoked.Therefore, in C language teaching, after the knowledge of circular statements and functions is explained, the teacher can take the characteristics of electronic information majors as an example to guide students to establish a connection between C language and subsequent courses of the major.Improve the efficiency of C language learning and improve the quality of C language teaching.The specific C language code is shown in Table 1.

Heuristic C Programming Teaching Method
In the theoretical and experimental teaching of C language, knowledge points are relatively fixed.The teacher through the knowledge point explanation, let the student master the basic knowledge point, can carry on the related practice.In order to expand students' programming thinking, teachers can use heuristic C language teaching methods.Operation questions are divided into basic operation questions, thinking expansion questions and innovation questions according to the degree of difficulty.Students with poor foundation can do more basic operations to consolidate the foundation of programming.Students with a good foundation can increase thinking expansion training after completing the basic operation questions.Exceptional students can take on more difficult and innovative problems.
In C language teaching, teachers teach the ability of writing, reading and analyzing C language programs, and students can process and integrate basic knowledge by drawing inferences from one example to another.Therefore, the heuristic C programming teaching method can meet the needs of students with different learning conditions, which is conducive to improving learning enthusiasm and teaching effect (Fei et al., 2020).

C Programming Teaching Method Combining Virtual and Real
With the rapid development of information technology, more and more students accept and like online teaching.Online platforms such as Bilibili, Chinese University MOOCs, Netease Online Open Courses and Cloud classroom of Netease provide rich online learning resources.Students can use fragmented time to learn, so as to better target their learning goals and content.According to the syllabus, teachers design a mix of online and offline teaching programs for C programming courses.The design of teaching content should follow the principle of "knowledge fragmentation and bead fragmentation".The so-called knowledge fragmentation is to decompose the basic knowledge of C programming courses into knowledge points one by one that can be realized by a short teaching video, while the fragmentation beadization means that these fragments can be organized into a string of beads to reflect the logical relationship between these knowledge points.
Students can learn basic knowledge points online, while teachers can teach key and difficult points offline.Teachers publish online learning resources, including videos, courseware, documents, exercises, and discussion topics.Students should complete online course preview, self-study of some knowledge points, interactive communication, participate in the test and complete the assessment within the specified time.Teachers can check attendance, learning status, interaction, test results and assessment levels online.Offline teaching and online teaching will be integrated and closely linked.Offline teaching can complete basic knowledge consolidation and thinking expansion training.Teachers and students should draw knowledge maps or mind maps after learning the knowledge points in each chapter.As shown in Figure 2, after learning the func-tion, students complete the mind mapping of relevant knowledge points.Knowledge graph can clearly display the logical relationship between knowledge points so that students can easily understand and master C language.

C Programming Teaching Method to Promote Teaching through Competition
There are many competitions with high gold content among college students.After learning C language, teachers often encourage students to actively participate in electronic design and program design competitions.First-year students can form teams by themselves or with senior students, which is conducive to students' understanding and deepening of classroom knowledge.For example, after learning C language in the second semester of freshman year, students majoring in electronic information can participate in ACM programming competition.By promoting learning through competitions, students' C language learning effect has been sublimated, and students benefit a lot in the follow-up study, postgraduate entrance examination and graduation project, and have strong competitiveness in professional work after graduation.

Analysis on the Effect of Teaching Reform
The C language teaching reform plan is implemented in the teaching of electricity major of grade 2020.In order to highlight the effectiveness of the reform, the results of C language final exam of grade 2018, grade 2019 and grade 2020 of electrical engineering major were analyzed from the perspectives of the highest score, lowest score, average score and pass rate.The details are shown in Table 2 and Table 3.As shown in Figure 3, there are 68, 77 and 64 students majoring in electrical engineering in 2018, 2019 and 2020 respectively.As can be seen from Figure 3, the highest scores are 94, 87 and 96 respectively.The lowest scores were 49, 45 and 54; the average scores were 67. 25, 59.93 and 73.53, respectively.It can be seen that the number of students in the class of 2020 is lower than that in the class of 2018 and 2019, and they have outstanding performance in the three aspects of the highest score, lowest score and average score.The main reason is that the number of 2020 students is relatively small, and the teaching method has changed from the traditional theoretical and experimental teaching to the innovative teaching method of C language oriented to professional integration.Students complete course previews, simple exercises and discussions online.In classroom teaching, students have already understood the knowledge points, and teachers can give targeted lectures on the key and difficult points of teaching.In experimental teaching, questions of different difficulty levels are designed according to the degree of knowledge mastered by students, so that students can not only master basic knowledge, but also have a certain understanding of the relevance of C language and subsequent professional courses.
Figure 4 shows the comparison of pass rates in the final C language exam of the three grades.As can be seen from Figure 4, the pass rate of electrical science students in grade 2020 with the implementation of teaching reform is 92.19%, much higher than that of grade 2018 (77.94%) and grade 2019 (44.16%).The pass rate of the final exam of C language for the class of 2020 has been greatly improved, and the teaching effect is obvious.The reason lies in the combination of theory and experiment.Theory courses not only teach basic knowledge but also practice while talking so that eyes, ears, hands, heart and brain are coordinated and unified.In the first ten minutes of the experiment class, review the basic knowledge and guide the students to expand the practice.Through the organic combination of theory and experiment, students' mastery of knowledge points is greatly improved.

Summary and Prospect
As hardware design becomes more and more software-based, it is very important to learn C language for electronic information majors.By analyzing the knowledge system structure of electronic information majors, we can see that C language is a bridge between professional courses, and mastering C language will also lay a foundation for subsequent related courses.The teaching reform of C language is also imminent.Compared with other non-computer-related majors, students majoring in electronic information science have a deeper understanding of hardware and software.If they can proficiently use C language, they will undoubtedly expand their employment opportunities and better adapt to the social demand for innovative talents.At the same time, compared with other majors, C language is also very important.Therefore, the reform of C language teaching content guided by students' major is conducive to the development of innovative talent training mode.In C programming language teaching, we will continue to design different teaching contents for different teaching objects.

Figure 1 .
Figure 1.Flow chart of flashing light in single chip microcomputer experiment.

Figure 2 .
Figure 2. Mind map of some knowledge points in C language.

Table 1 .
Microcontroller experiment a flashing C language code.

Table 2 .
Analysis of final grades of three grades.

Table 3 .
Analysis on the passing rate of final grade in three grades.
Figure 4. Comparison chart of pass rate.