Skip to content

richardchien/kaoyan-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

考研笔记

2020 年上海交大软件工程专硕的考研笔记。

数学和专业课笔记内含 LaTeX 公式,建议 iOS 上使用 MWeb 查看、电脑上使用 VS Code 预览。

目录

初试经验分享

先说一下初试分数:政治 75,英语 80,数学 121,专业课 139,总分 415。

再说一下我的个人情况:我从初中开始自学编程,在大学主要也是自学,没怎么听过课,学校是普通双非本科,教学质量一般,从小英语学得不错,大一上下学期分别裸考通过四六级(四级 624,六级 546),从高中开始一直到大学数学都没认真学,比较菜。

如果你和我的情况差不多的话,下面的经验也许可以帮到你;但如果你和我的情况很不一样,这些经验不一定有用,甚至可能误导你,请自行斟酌。

总体

我从 2 月底开始复习,直到考试差不多整整 300 天。前几个月因为要上课,耽误了一些进度,6 月开始比较疯狂,到后期有些疲惫(无论是生理上还是心理上),但最终坚持了下来。

总体上来说,有以下这些经验:

  1. 搞清楚为了什么考研,然后下定决心,不要半途放弃
  2. 放下其它的一切事情,即使它们很重要
  3. 可以不用很早决定目标学校,但要想好几个备选
  4. 从一开始就给自己定下各科的目标分和保底分,并随着复习不断更新
  5. 每一轮复习结束后,想办法评估自己此时的水平
  6. 饱和式复习,把每一科都复习到极致,即使某些可能已经达到目标了
  7. 除非特殊情况,否则每天去图书馆学习
  8. 制定详尽的复习计划,以周或若干天为单位,让每一天都有事做
  9. 根据自己的熟练程度、进度的紧迫程度,及时调整学习方式和计划
  10. 保持谦虚和低调,即使觉得已经稳了

可以总结为:努力、专注、坚持、计划、低调。

其实最重要的就是要明确自己在干什么,自己到底是什么水平,对自己要有清晰的认识。我复习时候给自己定的目标分是政治 70、英语 79、数学 120、专业课 120、总分 389;考完之后估分是政治 70、英语 80、数学 100、专业课 133、总分 383;真实分数是政治 75、英语 80、数学 121、专业课 139、总分 415。可以看出,我在考前对自己的判断和最终考试结果还是比较接近的(事实上考前的定目标和估分时,我故意低估了自己)。而饱和复习的结果就是,即使真的有一门课发挥失常(比如我考试时以为数学炸了),最终分数也令人满意。

数学

数学可以在知乎上找一找复习经验,基本上总结得很好了。这里想强调的就是,数学真的是所有科目中最重要的一门,也是最飘忽不定的一门。要想考好,首先一定要打好基础,如果时间充裕的话高数最好刷一遍同济版教材,而不是直接去看考研辅导;然后就是一定要疯狂刷题,并且做好错题归纳和总结,我几轮复习下来一共刷了 3000 多道练习题(有一半是高数书上习题,属于小题),并且做了从 1987 年开始的所有历年真题,就这样我在最后都感觉不是很稳,应该是因为错题总结做得不够好,个人建议可以只刷 15 年真题,并且做好整理和总结。

除此之外,考试时得状态也非常重要。我做真题的时候几乎每一份都是限时做完(基本在 2 个半小时完成),但真的考试的时候,一旦有某题卡住了,整个对时间的概念都会有影响,紧张感会导致根本想不出解法,即使题目并不算难。所以,考试时一定要冷静。

最后,如果考试的时候真的无法冷静,做来做去发现大题没有几个完整会做的时候,一定要根据剩余时间情况,选择「性价比」最高的题,深呼吸,开始头脑风暴,把任何能推出的可能有关的式子都写上去。比如我吧,我的大题除了高数前两题和概率第一题之外,没有一题是完整答完并且检查没问题的,但是最后我把能写的式子都写上去了,尽量把试卷填满,我以为只能考 100 多,没想到考了 121。

专业课

825 软件学课基础总体来说考得比较简单,下面分科目讲一下。

软件工程

软件工程考的比较简单,以书本上的内容为主。个人认为重点有这些:

  • 软件过程:常见的软件过程的特点,其中敏捷软件过程比较重要
  • 需求工程:FURPS+ 模型似乎考过好几次
  • 设计工程:设计模式非常重要,考过好几次,需要能够说出特点并举例,今年考了架构风格,建议也要熟悉常见的架构风格
  • 结构化方法:实体关系图和数据流图最好跟着书上画一画,虽然似乎只考过一次,但还是可能考的
  • 面向对象方法:重中之重,最主要是用例图、类图,几乎必考,应该信手拈来;用例、类之间的关系(泛化、关联等)的识别也会考;类和包设计原则最好也看一看,可能会给出例子让比较或优化
  • 软件测试:几种测试的概念,常见的白盒和黑盒测试;控制流测试和基本路径测试是最重要的,应该要会编写实现各种覆盖的测试用例
  • 其它:除了上面给出的重点,其它部分可能主要考简单的名词解释,认真看一遍书应该问题不大

复习时建议结合平常写项目和使用软件时的体验来记忆,可能效果会好一些,比如设计模式和架构风格那块,我在复习的时候感觉给自己项目中的很多做法找到了理论支撑。

另外,书后的习题感觉没必要做,重点部分跟着书上给的例子做一遍(比如用例图、类图那块),之后再拿真题练习就 OK 了。

计算机系统基础

ICS 也是主要考书上内容,题目基本和书上习题差不多,建议至少刷两遍,其中第 2 章(信息的处理和表示)的书后题比较多,感觉没必要全刷,把内容中穿插的题刷掉就差不多了,第 8、9、10 章有的题是编程题,建议在电脑上动手写一写。

本科 ICS 课的作业和试卷也比较有用,不过比考研题目难一些,建议最后刷一遍就好。

数据结构与算法

去年这门课的参考书是邓俊辉老师的《数据结构》,是本很不错的书,我先用这本书复习了一遍,后来今年参考书改成了《C++程序设计:基础、编程抽象与算法策略》,其实总体上区别不大,都是用 C++ 实现常见的数据结构和算法。

数据结构基本不太可能直接考书上的内容(但书上内容还是很重要),一般就是考几个算法题,一部分可能只需要写算法描述,一部分可能需要写出完整代码,然后让分析复杂度,题目还会分成多问,第一问让写基本方法,第二问让提出优化之类的。总体难度不大,相当于把书上的算法做一点调整的程度,比如今年的 Top K 问题就是快排做一点修改。我刷了 LeetCode 热门 100 题里的简单题和一部分中等题,然后看了《王道数据结构》和《算法与数据结构考研试题精析》里几个重点章节(栈、二叉树、堆、排序)的部分算法题的思路(它们的选择题没什么用),感觉很有用。

个人认为算法题需要重点关注栈的应用(求排列、组合、栈混洗等)、递归(包含/排除模式、二叉树的各种递归操作)、二叉树的遍历(各种遍历的递归和迭代方法)、堆(建堆和增删)、排序(各种排序的性质和实现,以及稍加修改的变体)。

值得注意的是,虽然近年算法题比较简单,但在 2016 年曾出现过动态规划的应用题(完全背包),相对来说稍难一些,建议也最好熟悉一下,可以参考《背包问题九讲》。

英语

英语我能给的经验有限,如果你的英语水平大于等于我,那就随便复习就可以了,可能主要需要注意的就是下面这些:

  1. 真题很重要,要认真做,关注其中不认识的单词和短语表达(有些往往会重复考)
  2. 留几份真题在最后隔几天做一份来保持状态
  3. 背单词对阅读中的某些题会有用,还是比较值得的
  4. 作文还是要好好练一练的,毕竟平常主要还是听和看比较多,写起来会有点不同
  5. 那些什么某某模拟题、阅读理解XX篇、阅读理解技巧啥的,没什么用,别浪费时间了

我个人理解英语复习是有极限的,即使整篇文章能完全看懂,有些题还是会错的。总的来说历年真题的平均分会跟最后考试得分差不了多少,我是从 2005 年的开始做的,客观题平均扣 8.2,再减去作文和翻译的扣分,差不多就 80 左右。

如果你一直觉得英语很烦,成绩本来就不太好,那还是老老实实跟个老师的课学吧,多看看长难句。

还有一个有趣的事情是,我在复习的时候全程都是用 iPad 做英语真题的,到真的考试时候,试卷是一个小册子,让我一下有点懵,读起来的感觉是不一样的。所以建议在最后阶段还是把剩下来的真题打印下来做,会更有实感一些。

政治

政治分为选择题和分析题,其中选择题是重点,因为是客观打分的,而主观的分析题很难拉开大差距,尤其是在北京、上海之类会压分的地区。

选择题我主要是刷了一遍徐涛强化班视频,全程几乎没有记笔记(记了一点点也没看),配合刷肖 1000(毛中特部分没刷完),然后去做徐涛优题库真题版,先按章节做了一遍,最后考前按年份做了一遍,同时刷了肖 8、肖 4 的所有选择题,全都控制在 25 到 30 分钟完成(因为我写字慢,要给分析题留很多时间),还刷了几份徐涛和腿姐的模拟卷的选择题。另外 12 月还粗略刷了一遍风中劲草,只看了重点部分(大约花了十几天,平均一天半小时左右)。还看了金柳安的重难点精讲,但是感觉没什么用。最后考试时候觉得单选有点难,但对答案发现选择题总共只扣了 6 分左右(单选多选各错两个,可能有记错的会有一点点误差)。

分析题方面,非常不建议无脑背肖 4,因为就算背完了 4 套,最后能直接默写作为答案的最多 3、4 个小问(今年只有 3 小问是能直接写的),而这种背诵会浪费复习后期大量的时间。我分析题主要跟了金柳安(不是很出名),重点就是他的「分析题答题思路」和「终极点题」两个课(前面说了,「重难点精讲」没什么用),再结合历年真题和肖 4 第一套,自己写个几题(我写了一共 10 题左右吧,相当于两套卷子),就能总结出适合自己的答题框架。当然最后也不是完全不背,只需要考前几天背一下马原会用到的原理、毛中特和史纲的几个可能考的点(金柳安的终极点题会给出 PDF),主要还是马原,毛中特、史纲、思修、当代基本都是完全类似的套话,然后考试的时候根据材料提炼几句,按照答题思路写得很顺畅。

我 10 月初国庆之后才开始准备政治,总结来说,打基础比较有用的是徐涛强化班、肖 1000,选择题比较有用的是优题库真题版、肖 8、肖 4、风中劲草彩色打印部分,分析题比较有用的是金柳安的答题思路和终极点题。

最后,我觉得挺关键的一个点是,不要把政治仅仅当成是一个需要应付的考试。政治课的内容,尤其是毛中特,都是我们所处的国家真真实实的政治制度,即使不考试也是值得我们去了解的,很多人天天说国家这里不好那里不对,可是他们(包括曾经的我)根本就没有去仔细了解我们的国家是怎么运行的,根本没有参与政治的意识。当你渐渐体会到共产党的执政风格、它所在乎的重点的时候,很多题通过推理就可以选对,根本不用死记硬背。