2023/1/5 15:36:37 阅读:267 发布者:
原标题:
Learning Effectiveness Oriented Hybrid Teaching Mode
1 Introduction
Program comprehension and analysis is the basic theory and technology of compiler optimization, software development and quality assurance, and the basic technology of building an independent, safe and controllable software development life cycle support environment [1-2].
Program comprehension and analysis course is a core course of computer science, cyberspace security, and software engineering. Since 2015, the course has been taught every spring semester. In 2020, this course was supported by our university for the construction of online open courses. Online course resources have been built, and students-centered online and offline hybrid teaching mode has been carried out. The reform of the teaching mode has been focused on the learning effectiveness of students. Through this course, students can master the theory and methods of program analysis, get access to the state art of program analysis, and solve practical problems with the theory and methods.
The characteristics of the hybrid teaching mode of this course are as follows. Sufficient self-learning resources have been provided online. The students can preview independently as well as expand the outside class knowledge online. For the offline part, the teaching mode of “intensive teaching of difficult and key knowledge points, consolidation in class, discussion and expansion” is adopted to deepen students’ understanding of theory, to help the students understand the application of theory in industry and grasp state art of research, as well as expand students’ innovative thinking.
2 Design of the Teaching Mode
The design of the student-centered hybrid teaching mode is shown in Fig. 1.
Before class, students conduct self-study in the designated online courses according to the tasks assigned by teachers. Students choose videos and documents to preview before class according to the basic requirements of the course issued by the teacher. In addition, students who have spare power can also selectively study the advanced content of the course to realize network extension.
Offline teaching methods include classroom teaching, in class testing, thematic discussion and flipped discussion.
(1) Classroom teaching is a traditional way of teaching. Only the key points and difficult issues are demonstrated in detail in class. Topics include intermediate representation of programs, data flow analysis, abstract interpretation, pointer analysis, program slicing, type system, model checking, data-driven program analysis, optimization oriented program analysis, etc. The application of these techniques in compiler optimization, software quality assurance, and integrated development environment are also included. Practical cases are introduced, and solutions are analyzed for the practical issues. For example, the mechanism of open source and industrial bug detection tools has been analyzed and compared. Especially, how the industries use these tools to improve the quality of software has been introduced. Some cutting-edge issues have also been analyzed, such as how to ensure the security of AI software, how to realize automatic code completion to improve the efficiency of software development.
(2) The in class test is set for students to quickly review and answer the questions on the online website immediately after they finish the theory study The questions are in the form of choice, blank filling or judgment questions. After answering the questions, they can immediately get the grading results, so as to grasp their unsound knowledge points, fill the gaps and consolidate the basic theoretical knowledge.
(3) Thematic discussion is set to discuss the topics set by teachers in the course website in advance. The purpose is to expand the students’ theoretical content, deepen the students’ understanding of difficult knowledge, and form their own knowledge system.
(4) The flipping discussion section adopts the method of “students’ teaching, students’ evaluation, and interactive research and learning”. Discussion of the recent papers from top conferences is carried out so as to track the state art of program analysis techniques. Students play a leading role by explaining the latest paper in the field of program analysis, analyzing and discussing the innovative points of the paper and industrial practice. The students also introduce their project homework in the flipping discussion section. They are guided to analyze the impact of engineering practice and technical solutions on society, and understand the great driving force of scientific and technological innovation.
3 Design of Evaluation Method
3.1 Diversified evaluation mechanism
A diversified evaluation mechanism has been established. Students’ grades consist of three parts.
• The in class test accounts for 40% of the total score. The tests focus on the basic theoretical knowledge.
• In order to better understand the research and practical progress of program analysis techniques in the world, academic literature reading and analysis assignment is arranged. It accounts for 30% of the total score. The latest papers in the top conferences of program analysis such as ICSE, FSE, ASE, PLDI, were assigned to the students. Each paper is explained by a student as the key speaker, and then the students have a further discussion on the paper.
• In order to closely combine engineering applications with theory study, and improve the students’ ability of applying program analysis methods to solve practical problems, the program analysis tool assignment is arranged in the experimental part. It accounts for 30% of the total score. The students are required to develop a program analysis tool. The tools can be applied to any program analysis task, such as testing[3], code completion[4], code search[5], program repair[6],bug detection[7], etc.
The literature analysis and program analysis tool assignments adopt the method of peer evaluation, so that students can more widely and deeply understand the research progress and practical application of program analysis.
3.2 Supervise students in accordance with their aptitude
The students in this class are of different levels. There are undergraduate students, Master’s degree candidates, and PhD candidates. Some students whose reach topic is program analysis already do some research in program analysis, while the others don’t. Their learning concerns are different. The former ones pay more attention to program analysis theory and techniques, and the latter ones pay more attention to the application of some program analysis techniques.
In order to enable students at all levels to actively participate in all links of the course and achieve the teaching objectives, hierarchical design is adopted in the design of seminar topics, online homework for in class testing, and the development and application of program analysis tools, as shown in Fig. 2.
In each class, there are three discussion topics, two of which focus on the theory and techniques of program analysis, while the other one focus on the application of program analysis in practice, so that students of different levels can find their own concerns and actively participate in the discussion.
For students whose research topic is not program analysis, they are required to analyze existing tools and apply them to their own project development process. They are required to deeply understand the design mechanisms and implementation details of these tools.
For students whose research topic is program analysis, they are required to develop or improve a program analysis tool to encourage innovative topics at all levels. These students are guided to understand the great role of scientific and technological innovation in promoting technological progress.
4 Implementation effect
4.1 Course learning participation
The number of visits to the course website are shown in Fig.3. Most of the students can complete the learning content in class. As shown in Fig.4, there are also some students who further study after class.
4.2 Completion of class test
As shown in Figure 5, all students can complete the in class test well, with a completion rate of 100%, and their grades are above 20 (full score of 40). Since there are two course supervision experts in the course (accounting for 5.88%), the ratio shown here is 94.12%.
The in class test can promote students’ understanding of knowledge points. Some students encounter difficulties in the process of doing the in class test. They watch the video and discuss the difficult content in class.
Through the discussion and the scores of the in class test, the teacher can further understand the students’ mastery and explain these difficult contents in time.
4.3 Effectiveness questionnaire
We conducted a questionnaire among 70 students in the class. The results are shown in Table 1. The following questions have been surveyed.
Q1: The preview questions help you focus when watching the online videos.
Q2: Through listening carefully, you can correctly and easily complete most of the in class test questions.
Q3: Thematic discussion helps deepen the understanding of the theory and techniques.
Q4: The process of preparing literature analysis can further deepen the understanding of the principle of program analysis.
Q5: Through the development and analysis of program analysis tools, you have a deep understanding of how to develop and apply program analysis tools in the industry, and improve your practical ability.
The students choose 5 to 1 in accordance with their approval to the question. The percentage of each grade has been counted.
As can be seen from Table 1, the feedback from the students are positive.
When watching the video, the students watched it with preview questions. They watched the video carefully, understood most of the questions fully, and most of the students got full marks. However, there were also some problems that were not fully understood and confused, which need further discussion and answers. For example, they did not understand the complete and complete attributes in program analysis, and confused the two different technologies of inserting print statements and program pegs in the process of program debugging. For these problems, teachers gave corrections and analysis in the discussion, which deepened the students’ understanding of knowledge.
The students were well prepared during the thematic discussion. For example, in the discussion session, the students summarized the mind map of the learning content of this course by watching the video, which is very accurate and comprehensive. A student analyzed the program attributes involved in the course content and in the process of his practice in a project from Huawei. For example, in the process of developing software, it is important to pay attention to the operation efficiency of the program. The student also analyzed the software defects he had encountered and the practical experience of how to eliminate these software defects.
Other students also showed a good analysis and summary of the learning content, and analyzed their own practical experience from different angles. These experiences can provide reference and reference for other students, and students from different research directions participated in the discussion, which is helpful to expand the knowledge of students from other directions.
5 Conclusions
Learning effectiveness oriented hybrid teaching mode has been carried out in the program comprehension and analysis course. The course content focuses on the frontier of the subject field. Case teaching, group discussion, development practice are comprehensively used. Teaching, learning and practice are closely integrated to strengthen the theoretical basis and the solution to practical problems with the theory and methods. “Learning content guide and preview, watching the course videos, in class test, theme discussion, flipping discussion” are linked. This helps to promote students’ active learning, improve class participation and learning efficiency, and improve learning effectiveness.
References
[1] Zhang J, Zhang C, Xuan J F, et al. Recent progress in program analysis[J]. Journal of Software, 2019, 30(1): 80-109. (in Chinese)
[2] Mei H, Wang Q, Zhang L, et al. Software analysis: A road map[J] .Chinese Journal of Computers,2009,32(9): 1697-1710. (in Chinese)
[3] Harman M, Jia Y, Zhang Y. Achievements, open problems and challenges for search based software testing[C]//2015 IEEE 8th International Conference on Software Testing Verification and Validation.Washington, D C: IEEE, 2015: 1-12.
[4] Liu F, Li G, Zhao Y, et al. Multi-task learning based pretrained language model for code completion [C]//IEEE/ACM International Conference on Automated Software Engineering. Washington,D C:IEEE,2020.
[5] Gu X, Zhang H, Kim S.Deep code search[C]//International Conference on Software Engineering. New York:ACM,2018:933-944.
[6] Jiang N, Lutellier T, Tan L. CURE: Code-aware neural machine translation for automatic program repair [C]// International Conference on Software Engineering.New York:ACM,2021:1161-1173.
[7] Evans D, Larochelle D. Improving security using extensible lightweight static analysis[J].IEEE Software,2002,19(1):42-51.
Tiantian Wang and Xiaohong Su are with the Faculty of Computing, Harbin Institute of Technology, Harbin 150001, China. E-mail: {wangtiantian, sxh}@hit.edu.cn.
Tiantian Wang received her M.S. and Ph.D. degrees in Computer Science and Technology from Harbin Institute of Technology in 2005 and 2009, respectively. She presided over 2 projects of National Natural Science Foundation of China, and published more than 50 scientific papers.
Xiaohong Su received her M.E. degrees from the Department of Electronic Engineering, Harbin Institute of Shipbuilding Engineering in 1991, and her Ph.D. degree from the Department of Computer Science, Harbin Institute of Technology in 2003. She is currently working in Harbin Institute of Technology. She presided over the completion of 4 projects of National Natural Science Foundation of China and 1 project of National Defense Fundamental Research, and published more than 200 scientific papers. She won the first prize of the Heilongjiang Provincial Teaching Achievement Award.
引文格式:Tiantian Wang, Xiaohong Su. Learning Effectiveness Oriented Hybrid Teaching Mode[J].计算机教育,2022(12):14-19.
转自:“计算机教育”微信公众号
如有侵权,请联系本站删除!