笔者刚刚经历了大三下最痛苦的一段时间,即专业核心课实验+编译系统考试+数据库系统考试(有人说这算什么?回答:菜鸡本菜)。尽管有很多学长学姐写的经验贴,但是于我而言,复习期间发现他们所描述的并不总是那么奏效,于是我决定结合自身经验,浅写一下复习经验,也是趁着记忆尚存,权作纪念。笔者为了大家复习方便,不眼花缭乱,病急乱投医(网上资料很多,但并不是都要学,也不是都要看。),所以全文都是干货!!!
Ps:复习过程中,一直就想去写这个博客,现在终于有时间可以为学弟学妹们写一下这门课复习建议了。
编译系统
前言:这门课往年应该是两个老师负责,今年由于另外一个老师有事情,所以cy老师全权负责,为专业400多名学生讲授这门课程。还有就是今年由于疫情原因,大概后两个月(记不太清了emm)的课程都是线上,包括3次的实验验收。考试是线下,且据我观察,年年都是要和数据库一起考,大概间隔两天这样~,今年是5月19编译系统,5月21数据库系统。
首先说一下今年的分数组成:
平时分10分:SPOC(注意是SPOC,所以假期提前做测试是没用的!!具体细节详见MOOC评分标准)以及平时的慕课堂上的随堂测验
实验20分:词法分析、语法分析、语义分析和中间代码生成共三次实验(18级及以前学长的实验就不要看了,因为19级改实验了..)
期末考试,卷面分100分折合成70分:填空10分、选择10分、6道大题80分。
上课形式与一点建议:这门课程是和计算机网络类似,需要结合mooc去学习,但是没有翻转课堂,只是一些cy老师认为简单的内容会让大家提前预习mooc对应章节,然后课上只会简单提一下这些内容。教材的话,我不建议买,因为真的用不上(我在复习过程中,书一点没看)买了就是供着...当然,如果想买个心安,买也可以,买蓝色封皮的本科教学版就行。cy老师上课讲的很清晰,都是知识点,只是前期线下的时候,经常会提前下课(有一次提前了将近20分钟),感觉cy老师不是很愿意讲课的样子~其次就是,上课经常就是mooc15分钟的拉长版...总而言之,这门课上课跟住老师就行,不懂的内容课下多看几遍慕课,龙书我不建议看,私以为逻辑很混乱(翻译的书,懂的都懂)。如果有精力的话,可以在学完对应章节之后,把SPOC的习题(不是mooc选择题测验,是一个200+页的PPT!!!)做一做。当然,最后复习一起做也可以(我就是这么做的)。最后:这门课据往年学长所说,老师基本不捞人,且由于期末占比很高,所以挂科率在20%左右..
多说几句:包括我在内的部分同学都觉得老师的MOOC内容过于简练,经常难以理解,因此尝试过去看其他学校的编译原理MOOC,如国科大。这里给出我的建议:由于每个学校的这门课的慕课内容侧重点并不完全一样,因此如果你想考的好一点,我建议其他学校不要全看,可以是cy老师讲解的哪块你不理解再去寻求解读~
复习:
1) 如果因为其他私情,主要是想以过为主,三天足矣,但是要面向考题(习题PPT+2020考试题)复习。
2) 否则,因为和数据库要一起考试,而且今年是编译原理(05.19)先考的,所以如果你是要卷学分绩的话,我建议要提前两周复习更好一些,两门课一起复习。专业课复习大家各有各的做法,我就说一下我的复习方法叭。因为老师已经明确强调,本课主要学的不是自动机内容,所以考试只会出一个很简单的DFA自动机构造,所以由于有大二的基础,我只是简单过了一下2020年的自动机相关部分的题目,没有深入复习,今年的考试题也确实如老师所说(很良心!!),是一个很简单的DFA。我是和年级的另一名佬同时复习的(不是坐一起),不会的、不理解的问题都会在QQ上讨论,不确定的知识点会再去通过QQ问老师,老师解答十分耐心!然后我是先过了一遍MOOC全部内容,同时做好笔记(ipad和纸质都有,只记了重点,会的不记),接下来就是做题(前文提到的PPT)和网上已有的2020年的两套考题,画*的就不用做了,因为考试考的都是比较基础的内容(如果想训练自己的水平,当我没说)。因为我是参考了2020考题去估计题型,事实上最后考试也的确如此。
关于期末考试的填选:这个真的是看自己精力叭,最后一章代码生成只用了半节课讲完的,只会出几分的小题,笔者复习中精力没那么充沛(菜),这章的很多概念都是理解着记忆的,最后填空出的稍微偏那么一点,我期末考试的卷面分数基本都错在填空了(哭),选择题把MOOC的选择刷一刷叭,原题还是有的,虽然不多。
期末考试大题的题型(cy老师并没详细说,这是我今年考完试记下来的)为:
1)画一个简单的DFA
2)LL(1)构造、画表
3)LR(1)构造、画表
4)修改左递归文法,然后重新设计一个SDD(今年是求二进制数的十进制数值)
5)符号表以及非局部数据访问(访问链)和嵌套深度的考察、
6)三元式的生成和基本块划分、流图、自然循环、支配结点、以及DAG图。
所以大家复习时,一定重点关注这些内容,尤其最后一题中间代码生成代码优化部分的内容,如果中间代码生成出错了,接下来基本没分了..今年这道题是28*0.7分,分值还是相当大的。
最后:本文仅是笔者结合往届学长和自身经验去提供的建议,仅供参考,并不具备普适价值。希望本文能对大家有帮助,鉴于我校的规格严格,未敢公开资料,所以如果有想要相关资料的可以私信我联系方式,注明来意~。two-two-five-zero-eight-four-six-four-seven-five
最后的最后~,附上笔者的这门课成绩吧,以免误人子弟~: