课程名称 | 编译原理 |
课程编码+选课编码 (教务系统中的编码) | 编译原理(10039501) |
课程性质 | ●必修 ○选修 |
授课类型 | ○在线课程 ●线下课程 ○线上线下混合式课程 ○社会实践课程 ○虚拟仿真实验教学课程 ○全英语课程 |
开课年级 | 三年级 |
面向专业 | 计算机科学与技术、信息安全 |
实践基地 | (社会实践课程必须填写) 名称及所在地: |
学 时 | 51 |
学 分 | 3 |
选用教材 | 程序设计语言编译原理(第3版),ISBN:9787118022070,陈火旺、刘春林,国防工业出版社,2014年 编译原理(第二版)龙书,ISBN:9787111251217,机械工业出版社,2022年 |
使用的在线课程 | “编译原理”,同济大学,负责人卫志华 https://coursehome.zhihuishu.com/courseHome/100002 |
使用方式: MOOC ○SPOC |
一、课程目标
编译原理是计算机系统的核心和基础,也是计算机专业学生区别于非计算机专业学生的重要课程,是计算机科学与技术专业的必修课程。通过编译原理课程的教学,使学生掌握程序设计语言编译的基础理论、基本技术与实践技能。
基于计算机学科发展与专业人才培养总体规划,根据编译原理课程自身的特点,即既有便于抽象的问题,又有较成熟的理论,属于软件技术系列课程,涉及学科抽象、理论、设计3个形态。除知识外,还有基本问题求解的典型思路和方法,继程序设计、数据结构与算法等课程后,从系统级再认识程序、算法。对于培养学生4大学科基本能力非常重要,根据课程容量和学生特点,选择适当的知识为载体,遵循研究型教学和实践型教学相结合的思想和理念,注重学生实践能力培养,贯穿计算思维教育。
二、课程内容
课程充分利用信息化手段提升教学效果,在课程网站(https://ci.tongji.edu.cn/29642/list.htm)的基础上,进一步利用canvas平台整合课程资源,所有课件和作业都发布在canvas,学生作业也保存在canvas平台,极大方便了学生学习和老师整理课程资料;课程授课录像全部放在“同济云课堂”平台,方便学生回看,课程网站同步更新相关信息。
课程主要包括理论教学、实验设计和综合性课程设计三个部分。
理论教学:要求学生了解编译原理的发展状况和研究内容,掌握基本概念、基本知识和基本方法,主要包括高级语言及其语法描述、词法分析、语法分析、语法制导翻译和中间代码产生、符号表、运行时存储空间组织、代码优化和目标代码生成等内容,掌握编译原理的一些主要思想,为今后解决复杂的计算机系统设计和实现奠定扎实的专业知识。每节课后,针对当天教学内容,老师会给学生布置适量的课后习题,用于巩固学生的学习效果,了解学生的学习情况,同时老师根据学生习题中出现的重难点问题,也会组织进行习题解答。
实验设计:要求学生通过课堂学习和课外查阅资料,实现词法分析器设计、语法分析器设计、中间代码生成大作业,培养培养学生运用有限状态自动机、BNF范式、语法分析算法等解决程序语言编译具体问题。
综合性课程设计:需要完成一个完整的类C语言编译器设计培养学生针对实际设计任务开展方案设计和系统实现的能力,同时选择部分小组进行口头汇报展示,从问题分析能力、系统方案设计能力、编程能力、撰写报告能力、查阅文献资料能力五个方向考查学生对知识点的掌握情况。
三、课程成绩评定方式
课程的成绩评定改变以试卷考试为主的形式,注重学生平时作业、算法设计分析和综合项目设计的考核,加强学生教学参与程度和应用动手能力考核的比重,按照平时成绩占40%,期末考试占60%的比例进行期末综合评定。
其中,平时成绩主要由三部分组成:(1)出勤及课堂表现,占10分;(2)平时作业及算法设计分析完成情况,占50分;(3)综合项目设计完成情况,占40分。
算法设计分析和综合项目设计评分以程序和文档为主,采用各项指标打分制,(1)程序:正确无误、独立完成、界面友好;(2)文档:不存在大篇幅抄袭、表达通顺、结构清晰、内容完整、实验充分、提出个人想法;(3)对于小组项目,考虑各成员的工作量。
此外,为了提高学生学习的积极性,本课程设立“自主申优”方式,对于符合申请条件且顺利通过综合项目答辩的学生,课程成绩直接给予“优”。申请条件:成绩组成的前两部分的总分需达到“中”的水平即不低于40分。答辩评分标准:(1)PPT清晰规范;(2)口头表达清楚流畅;(3)回答问题到位。