“编译技术”是计算机类专业必修课程。编译系统是计算机系统中最重要的系统软件之一,也是学生在课堂学习过程中接触到的第一个完整的软件系统。编译系统也是高级程序设计语言的工程化实现,即将高级程序设计语言编写的程序转化为低级语言程序,是学生理解高级程序设计运行机理的必修课程。本课程全面介绍编译系统的功能、原理和构造方法,重点解决设计语言翻译器时遇到的普遍问题,不局限于某种源语言或目标机器。本课程要求学生既要掌握有关编译的经典基础理论,又要学会运用先进的软件开发技术构造实际编译系统的方法,是对理论和实践要求都很高的课程,也是培养计算机专业学生系统能力非常重要的课程。
本课程自上世纪80年代开始一直是北航计算机专业的专业必修课程,有良好的“传帮带”传统,自编教材曾获得原航空航天部和国家教委优秀教材二等奖。本世纪,课程建设重点是难度和深度提升,以及课程知识体系的体系化、多样化、层次化、个性化和信息化。
2004年被评为北京市精品课程。2008年被评为微软教育部精品课程、国家精品课程。2013年获北京高等教育精品教材。2013年被评为国家级精品资源共享课。2018年获批北京航空航天大学双百工程(优质课程)。2020年获评首批国家级一流本科课程。
教师团队
“编译技术”课程教学团队有良好的“传帮带”传统,经历了几代老师。课程负责人与主讲教师师德好,学术造诣高,教学能力强,甘于奉献。大部分主讲教师有10年以上授课经验。
张莉老师长期致力于本科教学工作,优化了课程知识体系,探索了章节重组、重点与难点梳理、过程化考核方式等教学方式。史晓华老师凭借在Intel公司多年的编译优化功底以及在编译优化领域研究的长期坚持(主持了多个编译优化有关自然基金项目),加强了本课程的优化部分,并首次在国外编译课程中开展“优化竞速排名”;杨海燕老师改革和完善了课程实验体系,并负责研发了国内第一个编译实验作业的自动评判系统;胡春明老师将课程成果推广到全国,2020年参与和推动了第一次全国大学生编译系统设计大赛,我们的课程作业系统也通过改造成为竞赛支撑平台。
经过多年的建设,课程团队培养出北京市教学名师、宝钢全国优秀教师奖、北航“我爱我师”十佳教师、霍英东青年教师奖、中国青年科学家奖获得者,“万人计划”科技创新领军人才、北京航空航天大学蓝天教学新星、北京航空航天大学蓝天新秀等一批优秀教师,并多次获得国家级、省部级教学成果奖。
特色经验
课程教学理念充分体现以学生为中心、高阶性和挑战度:理论和实践相结合,以为学生的获得感为目标;激发学生学习兴趣,挑战一定难度,收获成绩和自信。
2.进阶式的课程组织方式,有利于学生首先理解完整的编译过程和编译系统,再进一步挑战编译自动化和优化。
重新设计课程结构,打破传统按阶段讲解课程的顺序,将复杂的自动生成技术和优化技术从编译过程中剥离出来,形成课程的“基础篇”,便于学生理解和掌握一个完整的编译过程和编译系统;编译优化技术、编译的自动生成技术等形成课程的“提高篇”,培养学生的抽象思维和形式化描述与推理能力。
3.教学评价多元化、个性化、精细化、过程化。通过分层分级充分考虑学生差异,体现不同层级的挑战度。精细化的过程管理,督促学生从读懂一个Pascal-S编译器开始,到撰写C0/C1的词法分析、语法分析、代码生成、优化,分阶段测评和考核,不断增强自信心,收获成就感。
4.理论和实践体系化建设,采用案例教学法,通过问题场景导入,激发学生兴趣;通过开放式问题,启发学生思考。教学过程突出探索性、挑战性、创新性。
5.教学管理过程信息化、智能化。国内第一个课程中引入编译优化竞速排名,国内第一次实现编译构建全过程分阶段自动评判系统,从而为300多学生的教学过程提供了信息化和智能化管理平台,云端平台也支撑了学生随时随地开展课程实践。
6.对编译科研方向的坚守是课程创新的基础和源泉。课程组承担了编译有关国家自然科学基金项目,参与了华为方舟编译器研究计划项目等。保证了教师的知识能力更新和科研成果到课堂的及时转化。
7.扩大影响力,积极和国内、国际同行交流,共同提高编译课程质量。