Reform and Practice of Laboratory Course for Compiler Principle in HIT
“Compiler principles” is widely regarded as one of the most difficult major course in software engineering because of its difficult theory and abstract content. Thus, laboratory is an important part of the course and it is a good way to help students to understand and master relevant contents. This paper discusses how to improve laboratory course of compiler principle.
KeywordsCompiler principles Software engineering Laboratory course
Compiler is a kind of important system software. Compiler principle is one of the professional and major courses in software engineering. The course is commonly regarded as one of the most difficult course with teaching and learn because of its difficult theory and abstract content [1, 3, 5]. Thus, laboratory is an important part of the course. Laboratory is a good way for students to master the relevant content and to stimulate students’ interest. Due to the limited laboratory hours, we need to request students design the system in advance instead of work on it until laboratory class begins [2, 4]. Thus, there will be more discussion and evaluation time for students in class. This is a great improvement on laboratory course.
2 Brief Overview of the Laboratory Course
Laboratory contents and hoursThe laboratory course includes three projects, namely design and implementation of lexical analyzer, design and implementation of syntax analyzer, and design and implementation of semantic analyzer. Each project takes two classes with 3 h for each class (see Table 1).Table 1
Experiment contents and hours
Design and implementation of lexical analyzer
Design and implementation of syntax analyzer
Design and implementation of semantic analyzer
The course assessment consists of two parts: operational skills (50 %) and experiment report (50 %).
Equipment of laboratory teaching assistant
In the laboratory class, each teaching assistant (TA) will direct 15 students.
3 Problems of the Laboratory Course in the Past
Insufficient preparation before laboratory class.
In the past, students almost did nothing before class. They usually began working on the project at the moment the lab class began. In fact, the laboratory task is rather heavy, even though having done much preparation, for many students, it is still considerably difficult to complete the programming task in several hours in class.
Inadequate time for onsite check.
To guarantee quality of the laboratory, onsite check is a crucial link. It mainly includes program demonstration, checking of running result, explanation of source code etc. Checking for one student takes about 10 min. For 15 students, each TA will take about 150 min, which is just 3 teaching hours (50 min per teaching hour). Therefore, unless the TA(teaching assistant) starts checking the students’ projects one by one since the beginning of the class, it is difficult to complete checking experimental results of all the students in class time. In fact, according to problem (1), many students cannot finish their projects in lab class, so they didn’t get their work checked by TA. Without checking, we can’t effectively evaluate students’ work on the project. This is bound to affect quality of the laboratory.
Ununiformed assessment standards among teaching assistants.
Sometimes, scores given by teaching assistants may be influenced by individual factors. Some teaching assistants may hold higher assessment standards and they tend to give higher scores, while others may hold lower assessment standard and they tend to give lower ones.
4 Reform and Practice of Laboratory Teaching
Revised guideline of laboratory report.In the past, students were only required, as preparation before experiment class, to understand the purpose and content of each experiment project. Such preparation is not enough for finishing the whole experiment smoothly. Now, we have revised the template of experiment report which now includes four parts:
Project requirement analysis (10 points)
Design of grammar (15 points)
System design (15 points, including the outline design and detailed design),
implementation of system and results analysis (10 points)
Among them, the first three parts are required to be finished before the first lab class of each project as preparation report (as mentioned above, each project takes two lab classes). Points will be deducted if these parts are not finished before the first class. In fact, from the viewpoint of software engineering, these are necessary analysis and design work to be finished before the formal performing on computer. The last part is permitted to be filled in after second class of each project.
The revised guideline of laboratory report involves various aspects of software implementation, and it reflects the cultivation of students’ software engineering quality by this course.
Ensure enough time for onsite check.
For many students, it is difficult to complete the experiment in class time of only several hours although they have taken much preparation, because of the heavy task. Therefore, students are encouraged to finish their project before the second (also the last) class of each project if they cannot ensure they can finish it in class time. Teaching assistant will onsite check students’ work one by one at the beginning of the second class for each project so as to ensure adequate time to check all students’ work of the group. If a student doesn’t finished the project on time and not get checked by teaching assistant in class time, he will lose certain points. This is, in fact, a kind of inverted classroom, which requires students to learn and practice off class, and study, discuss and evaluate students’ learning outcomes in class. Adequate preparation and practice before class can help students find more problems in advance and thereby ask their teaching assistant for help in the class. On the other hand, if they don’t take adequate preparation and practice before class, it is rather difficult for them to find out the problems in the limited class time.
Establish detailed evaluation criteria for operational skills.Evaluation criteria for operational skills includes four parts:
Every teaching assistant is required to fill in the following form in detail (Table 2).Table 2
Finish the project on time and get it checked in class time (10 points)
Correct running result (20 points)
User-friendly interface, easy to operate, good demonstration effect (10 points)
Necessary development notes or instructions in source program, complete application’s documentation (10 points)
Detailed evaluation criteria for operational skills
Scores of operational skills
Finish on time and get checked in class time (10)
Correct running result (20)
User-friendly interface, good demonstration (10)
Completeness of project documentation (10)
Total score (50)
Organize training to teaching assistant.
We specially write a laboratory reference book for teaching assistants, which specifies laboratory contents, laboratory requirements, relevant theoretical knowledge and desired outcomes. We provide uniform training to teaching assistant based on this reference book and give detail explanation to some key points. On the other hand, in order to decrease the influence of individual factors in project evaluation, we need to balance the distribution of scores given by teaching assistants. So we require every teaching assistant to follow the principle that students with scores above 90 accounted for no more than 20 % in each group (3 persons), students with scores lower than 70 accounted for no less than 20 % in each group (3 persons).
Share good works of former students.
Every year, we select some pieces of good works from former students and upload them onto the course website. It plays a very good role of guidance to current students. Practice has shown that the general level of current students’ works got greatly enhanced.
5 Evaluation of the Proposed Methods
Proportion of students got projects checked in classTable 3 shows number and proportion of students who got their projects checked in class. As can be seen that the proportions in 2012 are 77 %, 57 % and 32 % for project 1, 2 and 3 respectively. In 2013, the proportions are 90 %, 83 % and 67 %. In 2014, the proportions are 97 %, 87 % and 77 %. We began to implement this reform in 2013, so we can see, after this reform, most students got their work checked in class, and it surely help guarantee the quality of onsite check.Table 3
Number/proportion of students got projects checked in class
Total number of students
Number of students got checked in lab class
Number of students got checked in lab class
Number of students got checked in lab class
Distribution of scores given by TA’sFigure 1 gives some data on distribution of scores given by TA’s. For example, in 2012, for TA 1, 7 % of scores given by him falls in range 100 to 90, 40 % falls in range 90 to 80, and so on. So as TA 2 to TA 5. As can be seen from the figure that in 2012, the third TA gave more than 80 % of his scores to the range 90 to 80, so he tends to give higher scores. However, the first TA gave most of his scores to the range 80 to 70, so he tends to give lower scores. But after the reformation, in 2013 and 2014, TA’s tend to give scores of similar distribution.
Average scores of laboratoryTable 4 gives average scores of laboratory. As can be seen that average scores of 2012, 2013 and 2014 are 78.28, 80.09 and 82.98 respectively. Which shows that the general level of current students’ works got greatly enhanced.Table 4
Average scores of laboratory
Laboratory is an important part of the course. According to the problems of laboratory course in the past, this paper talks about some improving methods, including revised guideline of laboratory report, ensure enough time for onsite check, establish uniformed assessment standards, share good works of former students. Practice has shown that with the reformed course, students get more passionate on compiler principle, and their ability of engineering practice is greatly enhanced.
- 1.Dongmei L, Haihu S.: Study and Exploration of the Teaching Methods for Course “Compiler Principle”. Computer Education. 68, 103-104(2008)Google Scholar
- 2.Zongli J.: Teaching Design of the Course “Compiler Principle”. Computer Education. 63, 26-30(2008)Google Scholar
- 3.Man L.: Study on the Teaching Mode of Taking Students as the Center. China University Teaching, 2012(8): 32-36Google Scholar
- 4.Yuhui G.: Rational Thinking on the Teaching Reform of Principle of Compiler. Education and career, 2009(10): 84-85Google Scholar
- 5.Yu Z., Yiyun C., Qilong Z.: Research on Teaching Methods and Teaching Material Construction of the Course “Compiler Principle”. China University Teaching, 2005(7): 61-62Google Scholar