大二学习经验:课程考核、实验与期末复习
软件学院课程的特点在于平时压力较少,课程分数高度集中于期末考试和大作业。
- 大二上:本学期核心课包括计算机硬件基础、算法、面向对象(Java)、概率统计和离散数学,此外还有基物实验、毛概、英语等课程。
- 大二下:此学期的核心课程包括操作系统、软件工程基础、人工智能和数据库,此外还有军理和马原等课程。此学期的特点是考试周不再局限于最后两周,而是从第 13 周开始,各门课就陆续结课并进入考试周期(大作业答辩、期末考试),因此战线会被拉得很长。
写在前面
软件学院大二学年据说是课程压力最大的一个学年(因为笔者目前也仅仅是一名大三牲,直观上来讲,大三上的课还是要比大二轻松的)。不过,相比于隔壁,软件学院课程的特点在于平时压力较少,课程分数高度集中于期末考试和大作业。不过,期末的压力可能会相对大一点,但就个人经验上来说,软件的考期相对来说还是比较分散的,至少能为每门课留出一定的复习时间。同样,推荐一下软件学院的学习资料库:https://github.com/Soft-Where-21/21CoreDocs。
此外,对于带有实验的专业课(如计算机硬件基础、操作系统),其中的线下实验每年是相对固定的。网上很容易找到往年学长们的相关博客(比如,想找到 OS 的相关资料,就可以搜索“北航 操作系统 OS”)。这些博客对于课程的介绍大多十分详细,也可能会包含当年的线下实验和线上测试;但至于要不要参考、要参考多少,就见仁见智了。
此外,对于有保研意愿的同学,注意软件学院在综测排名中采用 GPA 作为基准,其二次函数的计算方式会放大低分数课程对总评的影响(举个例子,90 分对应 GPA 为 3.81,而 80 分则对应 GPA 为 3.25),因此在学习备考中需要格外关注那些中位数偏低的课程(比如基物实验和部分思政课)。不过,从另一方面来看,GPA 算法也抑制了极端内卷的氛围(比如 95 和 100 实际上 GPA 只差了不到 0.05),感觉这也是软件学院内部氛围相对来说比较友好(指远离内卷)的原因之一。
小学期
总体上可分为两个大方向:自主选题和项目制。每个大方向下又可以分为若干小方向,比如项目制下面就有无人车和无人机,自主选题则包含游戏开发、Web 开发、移动端 App、微信小程序、Windows 应用程序、人工智能应用等。相关评分机制是五级制,绝大多数人都是优(GPA 4.0)或良(GPA 3.5),良好按百分制换算大约是 84 分。对于成绩比较靠前的同学来说,还是有一定区分度的。
我当时选择的是自主选题。自主选题总共有两场答辩:验收答辩所有人都要参加,并据此决定申优名额(24 级申优人数为 25/105);申优答辩则只有申优的同学参加,通过答辩后才能获得优秀,否则为良好(未参加申优答辩的最高为良好)。
24 级进行大二小学期时,vibe coding 还没有普及,因此还存在着部分同学纯手搓项目的情况。但就最终答辩来看,老师的关注点往往还是项目的功能和观赏性,较少会提问项目的具体运行逻辑(可能也是考虑到同学们都刚升入大二,对代码逻辑不一定了解)。因此,除非对自己的能力有绝对的自信,否则最好还是至少用 AI 来优化一下前端(至少观赏性上会提升许多)。
大二上
本学期核心课包括计算机硬件基础、算法、面向对象(Java)、概率统计和离散数学,此外还有基物实验、毛概、英语等课程。
计算机硬件基础
这门课实际上就是软院的计组,但课程学分和课程难度相比于隔壁都有明显降低(最典型的就是过程考核变成了固定时间的固定内容上机测试,不用像隔壁一样闯关了)。对于本门课程而言,成绩往往取决于两项的表现:线上测试和期末考试(线下测试和平时作业,感觉只要正常完成,一般都不会在这上面扣分)。对于线上测试而言,最主要的还是要把线下的题目理解好(哪怕线下参考了网上的博客,也要在参考后理解其中的运行原理)。线上的测试基本都与线下实验有关,有些测试甚至是直接在线下版本的基础上进行增量开发。此外,每次线上测试都有几个独立的小题(其中可能会有 1~2 道比较困难的题目,但分数占比并不会很高)。助教有时也会进行适当的提示和帮助,所以线上测试时如果实在做不出来,也可以碰碰运气,万一有意外收获呢?此外,如果某次题目特别难,可能会延长考试的时间,所以考场上不用过度紧张。
对于期末而言,题型相对来说比较固定,直接刷往年题就可以了。由于题目和知识点基本存在着一一对应的关系,可以按照知识点来进行复习。此外,考前会组织一次知识点串讲,其中会对某些知识点进行强调,这部分知识点往往会成为考题(主要是选择题)。因此,有时间的话最好还是参加这次串讲。总体而言,考试难度不是很高,而且就身边统计学来看,大家最后的得分都比自己的估分要高:)
算法
emmm……说实话,这门课我也没怎么学懂。从平时上机到最后的考试,做出的题数都不是很多;花了最长的时间来复习,考了最低的成绩,因此这部分你们可以参考林明同学的分享。个人感觉,这门课还是比较吃考试状态的,可能考场上一道题就能在总评上差出来大几分,因此考场上务必保持冷静,不要在某道题上钻牛角尖,浪费了过多的时间。
面向对象(Java)
对最终成绩影响较大的,主要是大作业和期末考试,大作业需要三人组队,选好队友,最后答辩需要现场演示(而且可能会问一些比较专业的问题),答辩前务必要从头到尾走一遍流程,否则现场出现 Bug 会很尴尬。
期末考试包括选择、算法和设计。其中,算法题在考场上会直接判题,前面的题目相对来说耗时并不多;但设计题如果完全完成,需要大量的时间与极高的熟练度。目前还没听说过 24 级有同学能把设计题全部完成:)。因此,这部分其实主要靠老师和助教捞。个人建议是,每道题不一定要做完,但最好都要提交一个版本上去,至少要给助教们一个捞人的理由:)(毕竟如果没交,那就肯定没分了)。从个人经历上来看,助教给分还是挺慷慨的。
概率统计
为数不多的有大量往年题的课程,考前刷往年题即可。但这门课期末占比很高,24 级是 80%,据说以前有 100%;但期末总体难度不高(尤其是在刷了大量的往年题的情况下),题目类型也比较固定,因此也是一门期末突击性价比比较高的课程。一般来说,只要平时作业按时完成,考前刷足够的期末题,最终分数都是不错的。
离散数学(2)
大一离散数学的进阶版,课上回答问题或参与课堂展示(需要抽签)可以加分,24 级的期末相对来说比较简单,但听说 23 级的得分普遍偏低,因此存在大小年的可能,期末题目格式较为固定,建议先刷一套题,了解题目考查的知识点,再有针对性地进行复习。
基物实验
emmm,这门课……怎么说呢?虽然我挺喜欢这门课的,但是感觉这门课在周边同学的评价并不算好(最昂贵的一学分的含金量)。主要是因为这门课对动手能力有一定要求,而且撰写实验报告也会花费比较多的时间(但可以参考往年学长们的报告,比如微信群里神秘的网盘链接)。考虑到这门课大多数同学分数都在 80+ 分,以及软件学院以 GPA 为综测基准,课程还是有一定重要性的。我的个人经验是,课程中的选做实验应尽可能完成;拓展实验(能额外加分)可以选模拟实验室,任务量比较少;实验报告参考学长们的格式就好,然后考前再刷几套往年题(期末题中很多选填甚至是往年题原题),还是有很大希望上 90 分的。
大二下
此学期的核心课程包括操作系统、软件工程基础、人工智能和数据库,此外还有军理和马原等课程。此学期的特点是考试周不再局限于最后两周,而是从第 13 周开始,各门课就陆续结课并进入考试周期(大作业答辩、期末考试),因此战线会被拉得很长。如果此时还有科研等任务,则可能会压力比较大。因此,可以将一些任务提前完成(如软工大作业),以空出后半学期的时间。
操作系统
大二以来第一门和隔壁一起上的专业课,能感受到分数组成与考核要求都细致了很多,颇有隔壁“每一分都算得清清楚楚”的特色。同样,对总评有影响的主要两项为线上测试和期末考试。线上测试是在线下代码的基础上做增量开发(所以务必对代码有基本的了解),分为 exam 和 extra 两部分。exam 相对简单,extra 则比较困难(有时候可能两个学院加起来也没有几个能过 extra 的)。幸运的是,exam 占了绝大部分分数,extra 在总评中总共占 3 分(0.5 × 6),而且考场上助教一般会给关于 exam 的提示(捞人),但 extra 就不会给任何提示了。此外,线上测试是允许携带纸质资料的。我当时的方法是用 AI 辅助完成线下测试(半年前的 AI 就已经能速通包括挑战性任务在内的所有题目了),然后让 AI 总结一份每个函数的使用方法并进行押题,然后把资料带到考场上以供查阅。这门课程同样有学长们的博客可供参考,上网搜索关键词即可。
有期中考试,但占比很小,对总评影响不大。期末考察的知识点和实验关系不大,但同样题型较为固定且难度不大,参照往年题结合 PPT 进行复习即可。
软工
整体的课程风格和上学期的 Java 比较像,同样是一门需要组队的课程(5 人完成大作业)。身边统计学发现,大作业质量对最终成绩还是有一定的影响的。题目很早就会开放,因此进度比较快的组在前半学期就可以完成。最终答辩时,助教问的问题一般也比较友好,不太会问特别具体的技术细节(但可能会问某一功能是如何实现的)。
期末为开卷上机考,题型为选择题、简答题和画图题。选择题和简答题基本都可以在 PPT 中找到对应的答案。画图题题量较大(建议考前再过一遍平时实验中的画图题),很难完全完成。建议策略同 Java:每个图都画一点,不要交白卷,给助教和老师充足的捞人理由:)
人工智能
成绩组成主要包括实验和期末考试。实验一定要按时完成,迟交会扣分。期末考试难度不算很高,但需要记忆的知识点比较多(尤其是选择和填空),建议考前参照 PPT 把各个知识点都过一下。
数据库
这门课的考核主要集中在期末考试,平时实验为作业性质,只要按时完成基本都会给满。但期末考试有一定难度且占比较高(60%),需要抽出一定时间进行复习。难点主要在于关系代数和 SQL 语言的逻辑推理上,感觉这一部分和大一的离散数学比较像,都是考察如何将给定目标拆解成若干步操作。此外,虽然题型比较固定,但考察的知识点可能很细,强烈建议最后从头到尾过一遍 PPT。
写在最后
作为一个本科生,真心感觉软件学院是一个很好的学院。相比于隔壁,软件学院课程的难度和工作量均比较小,许多课程的学时虽然看上去很吓人,但许多实验学时仅停留在课表上,而非真的需要线下上课。而且在最终考评中,大部分课程都或多或少地会捞一捞,时常会有意外的惊喜。学院里的氛围很友善,内卷氛围也并不浓重。学业压力被释放后,学生们就有更多的时间去做自己想做的事:想冲学业排名的冲排名,想做科研的做科研,想从事学生工作的从事学生工作。甚至哪怕是纯粹想“躺平”的同学,软件学院更低的学业压力也能让他们躺的更为舒服一些,在这里,不同目标、不同能力的同学都找到属于自己的位置。
希望学弟学妹们能够在这里找到适合自己的节奏,在学习的同时,也保留一些时间去探索真正感兴趣的事情。无论是追求更好的成绩、参与科研与学生工作,还是去做一些自己想做的事情,大学本就是一个不断探索与尝试的阶段,而这里的容错率往往比想象中的更高。
刘钟屹
2026年10月11日写于北航