Featured image of post 计科大二通关指南

计科大二通关指南

详细的计科大二通关指南,包括心态篇、方法篇与详细的课程攻略。

▶️ 前言

相信各位应该看过信科大一通关指南。其中心态篇与方法篇也介绍了许多内容,各位感觉有需要可以翻一翻。

正文无关。各位可能会疑惑,为什么这个网站的域名是 ovideros.site 而不是 ovideros.github.io?请参考关于

睿信与特立在大一暑假,便要选专业。当时我因为各种专业的差别,犹豫了很久。最后发现自己排名很高,于是选择了计拔。现在回头来看,在计算机大类中,各个专业(计科、软工、AI、大数据)具体差别并不大,只要你选择的专业符合你的需求即可。

对于软件工程专业,多谢Reina同学写了一个北京理工大学软件工程课程资料仓库,质量很高,里面也有对各个课程的评价,可以与本指南互补。

需要注意,本攻略只是记载了我对于许多课程的主观看法以及个人心得,并不能做到客观。事实上,不同课程对于不同人都会有不同的难度,每个人都会有自己独特的方法。并不存在一种学习方法可以推之四海而皆准,适合自己的才是最好的

同时,作为一个应试还不错的人,下面不少内容可能都存在幸存者偏差或者片面归因。“成功者”想要写一个攻略,便会找一些理由,然而这些理由可能只是成功的推进因素,并不是决定性因素(可参考真理元素的这期视频)。同时,每个人的关键优势也不相同。这里我举一个科幻的例子—— SCP-CN-3000 - 众节点永垂不朽

下一段存在剧透,对此 SCP 感兴趣的或者想读一读的建议先去看看源文档

正文无关。我初高中阶段出于无聊,用 Kindle 联网,看过一些 SCP 的作品,感觉很有意思。进入大学以来,几乎没怎么看过。这学期考试周前一周,我打开了 SCP CN,虽然知道很早就有 CN 3000 了,不过还没看。用 2h 看完了,感到相当震撼。如果你此前没有接触过 SCP,但是对科幻相关感兴趣,推荐看一看。


在 SCP-CN-3000 中,为了应对非物质,众人经过不断尝试,发现了一种方案——不同人根据稀金的指引,用独特的方式改变自身,达到有效特征向量,并将其广播,进而成为节点。该过程相当多样的——有利用稀金追求梦想的工匠,有放浪形骸的酿酒师,有为了拯救世界而失去心脏的情侣,有勇敢猎杀太阳的猎手…… 为什么这些人可以用独特的方式找到有效地特征向量呢?没人知道。异常并不会回答。但是每一个成为节点的个体,都充分发挥了自己的特质,将自身的喜好与优势坚持到底。这便是人类能够反抗异常的力量。

回到刚刚的话题,不同人因为先天与后天的各种条件不同,都是独特的个体。所以,本文也只是记录了一种符合我个人特性的学习方式与个人心得,在我身上,它很适用。但对于不同特性的人,方法不尽相同。一味照搬我的方法,并不能让你的学习效率变高,反而有可能因为不适合,成为某种路径依赖,阻碍了真正有效的方式。

说回“幸存者偏差”,接下来留下来的攻略,反而可能并不是成功的关键因素,而是次要因素。真正关键的因素,是隐藏在具体方法或具体路径之后的精神,是每个人特有的价值——例如积极地搜集各类信息与资源,大胆地改变过去的做法,无畏地尝试新事物,对自身特性的理解,对知识纯粹的好奇等等。许多特性在大众看来是较为少见的——例如我了解有学长不刷各类社交媒体与长短视频网站,拥有殖民火星的梦想,并以此为动力积极创业;有学长课内成绩并不优秀,但对于科研有发自内心的兴趣,对知识具有好奇心,本科阶段发了多篇顶会文章;有学长“比较俗气”地想搞钱,积极学习开发技术,去多个大厂实习,本科毕业拿到好 offer ……

对于我个人而言,我可能并没有那么纯粹的特质,不过经过两年的大学生活,可能也找到了一些:

  • 我觉得真正理解知识是有趣的,为此会选择主动寻找资源帮助理解
  • 我喜欢从多重视角看问题,甚至是不同学科的视角
  • 对于难以平衡的一些事情(例如科研 vs 竞赛 vs 水综测),我会选择直接放弃不重要的

所以,下面的攻略或多或少会包含我的这些个人特质,请各位明鉴。也希望各位可以积极探索,或许可以找到一些自己的特质吧。

大二上的顶级折磨

下面采取更新式的方法,说一说我认为大二与大一的区别。

如果你是信科,想必感受到了大一下与大一上难度有着鸿沟。然而大二上也不简单。具体来说,我们这一届大一下平均分为 79.3,大二上平均分为 78.3 。这还是许多优秀学生选择去计算机学院,卷出来的结果。

我们这一届的核心课程如下:

  • 数据结构与算法设计,5 学分
  • 离散数学,4 学分
  • 大学物理A II,4 学分
  • 概率论与数理统计,3 学分
  • 马原,3 学分
  • 数值分析,2 学分

小学期有两门课——程序设计方法与实践,1 学分;网站开发,1 学分。

根据课表,今年开始,5 学分的数据结构与算法设计变成了 3.5 学分的数据结构课,又拆开了。

并且,今年小学期好像合并了网站开发与算法题两门课程。原先,这两门课各自 1 学分,现在合起来变成了 3 学分的课,不确定会如何。

大二下稍微放松

大二下相对轻松一些,可以多选一些选修课。

核心课程如下:

  • 数据库原理,3 学分
  • 毛中特,3 学分
  • 面向对象技术与方法,2 学分
  • 数字逻辑,2 学分

如果你是计科的,那么就没了。计拔会多一门数据科学与大数据技术的数学基础,2 学分,这门课也是大数据专业与大数据全英班的必修课。


💛心态篇补充

关于未来方向

进入大二,你应该逐渐明确自己的专业方向与未来路径,并知道课外应该往哪方面努力(例如多刷一些公开课提升实力,多刷算法题打 acm,多去工训楼搞机器人队,多学开发技术进大厂实习,或者进组科研实习等等)。

因为每个人的路径并不相同,所以这方面并没有统一的答案。很多事情是个人偏好决定的。例如在计算机保研指南中,有的人倾向学校的 title,有的人倾向好城市,有的人倾向于好导师。这都没有对错,只是不同人有不同的喜好罢了。

不过,我还是建议各位尽早尝试,这样有可能找到自己比较喜欢的方向。其实喜欢也并非一个很高的标准,只要你不讨厌每天花几个小时做这件事,并且持续几个星期,我觉得至少可以说明不讨厌。

关于计算机专业课

大二选择计科后,你会接触到很多计算机学院的专业课(包括必修与选修),充分感受到课程与考核的抽象——PPT 无法反映最新技术,是几十年一成不变的;考试无法反映真实理解水平,很多只是死记硬背;有些授课水平一言难尽,没有听的必要。

至于该课程或者授课水平怎么样,可以在 BIT101 的课程界面上提前搜一搜,有一个印象。如果差评如潮,那么就要当心了。

关于选修课

学校中选修课有两大类——全校公选课,以及专业选修课。前者全校都可以选修,要求的是 6-8 学分;后者是每个学院特有的,需要根据培养计划选够足够的学分,例如计科是 12 学分,计拔是 14 学分。这一届具体可以参考教务部的培养方案,不过目前 24 级还没有出。

攻略中并没有涉及计算机学院的选修课。因为我大二上没有选修,大二下选修了两门,但是都在暑假才截止。

有学长建议从大二上到大四上(大四下没有专业选修课),每学期的选修课如下——1, 4, 1, 0, 1(针对 14 学分的情况)。然而我的可能是 0, 2, 2, 1, 2 或者 0, 2, 2, 0, 3。具体怎样,可以根据情况安排,不过有空还是提前多选一些比较好。

个人来看,选修课可以分为三大类(具体这门课如何,可以参考 BIT101 上的评论)——

  1. 水,给分高。这类课通常很热门,能否抽到需要看运气。
  2. 硬核,给分低,但是能学到真东西。例如金旭亮老师的开发系列课程。
  3. 讲的烂,给分还低。这一类没有什么选择的必要。

关于给分

宏观来看,期末考试可能有三种形式——

  1. 机考作答,例如 C 语言。这种形式较少,大二全年只有数字逻辑这门课是机考。
  2. 答题卡作答,例如大学物理、概率论。这些课程改卷相对公正,老师之间随机批改。
  3. 纸质试卷作答,最常见的形式。这类课程有较大的灵活性

纸质试卷的灵活性就在于,大多数班级的纸质试卷,都是由授课老师亲自批改的。这就意味着有一定的放水空间。然而,不同老师的批改方式可能不完全统一,造成不同班级的考试结果不公平。所以,如果试卷答得很好,但期末成绩并不理想,或者是反过来,都可能有这方面的因素。

关于考试时间

大二开始,许多专业课的考试都会塞满大量的题目,力求覆盖各类知识点。所以,考试的题量相当大,也很有可能做不完(例如离散数学、数值分析、数据库原理与设计等等)。

并且,许多科目网上流传的往年卷都是“难度降低”版本的,实际考试的难度往往更高。建议提前做好思想准备,考场上根据作答情况,灵活调整时间,大胆跳过,避免出现最后时间不够的情况

关于专业路线

既然各位点进了这个攻略,应该或多或少选择了计算机相关专业。那么,作为相关专业的学生,应该了解专业要学习什么。

在此推荐一下 HackWayCSDIY 上的 CS 学习规划,各位可以参考名校的计算机培养方案,了解计算机的大致学习内容。

接下来的介绍部分利用 Gemini 2.5 Pro 进行润色,AI 生成。本文其他部分都没有用到 LLM。

接下来,我们用一个“盖房子”的比喻,自底向上地看看计算机科学的全景图:

地基:物理与数学

  • 这是什么? 一切的起点是物理学的半导体(晶体管)和数学的布尔代代数。它们告诉你如何用“开”和“关”这两个状态(0和1)来构建逻辑。
  • 对应课程: 离散数学、数字逻辑电路。
  • 一句话理解: 这是制造砖块(逻辑门)和水泥(运算规则)的方法。

框架结构:计算机体系结构

  • 这是什么? 有了砖块,我们怎么把它们搭成一个能计算的“毛坯房”?CPU、内存、硬盘这些硬件如何协同工作?指令集(机器码)就是这个房子的“建筑指令”。为了方便人类理解,我们给机器码套上了一层“助记符”,这就是汇编语言。
  • 对应课程: 计算机组成原理、汇编语言。
  • 一句话理解: 设计房子的承重墙、房梁和水电线路,并规定了最基础的施工口令。

灵魂核心:算法与数据结构(贯穿所有层)

  • 这是什么? 这是计算机科学的“内功心法”,是解决问题的通用“方法论”。无论你盖什么房子,都需要高效的组织材料(数据结构)和快速的施工方法(算法)。
  • 对应课程: 数据结构、算法导论。
  • 一句话理解: 它不是房子的一部分,而是盖房子的蓝图和施工工艺。学好它,你的“建筑水平”才能登堂入室。(这部分至关重要,请务必高度重视!)

内部装修与管理:系统软件

  • 这是什么? 毛坯房太难住了,我们需要一个“物业管家”(操作系统)来管理水电(CPU、内存资源),安装“翻译器”(编译器)把我们人类说的高级语言(C++/Java/Python)翻译成机器能懂的“施工口令”。
  • 对应课程: 操作系统、编译原理。
  • 一句话理解: 从毛坯房到精装房,让房子变得宜居、易用。

对外连接:计算机网络

  • 这是什么? 房子盖好了,但不能是孤岛。我们需要修路(网络协议),让我们的房子能和别的房子通信、交换信息。
  • 对应课程: 计算机网络。
  • 一句话理解: 为你的房子接上互联网,连接世界。

上层应用:入住与生活

  • 这是什么? 房子终于可以入住了!你可以在里面做各种各样的事情,这就是我们日常接触到的软件和应用。这也是大家未来最可能从事的领域。
  • 主要方向:
    • Web开发: 建造各种网站(淘宝、B站),分为“装修”页面的前端和支撑服务的后端。
    • 移动开发: 开发手机App(微信、抖音)。
    • 人工智能/数据科学:训练聪明的“管家”(AI),让它帮你分析数据、识别图像。
    • 游戏开发:在房子里建造一个虚拟游乐场。
  • 对应课程: 数据库、软件工程、Web开发、机器学习等各类专业选修课。
  • 一句话理解: 在精装房里享受生活,并创造出丰富多彩的应用。

了解这个全景图,你会发现,即使你未来只想做“室内设计”(前端开发),懂一点“建筑结构”(计组、OS)也能让你避免设计出奇葩的方案,遇到问题时能更快地定位到是“墙体”还是“装修”的问题。这就是我们常说的“建立知识体系”,它能决定你未来能走多远。

关于自学

了解完上面的计算机学科架构后,便可以根据自己的情况,寻找相关资源进行自学。

自学后,往往能更从容地应对课程内容,也能在学期内留出更多时间做别的事。例如,我大一结束后暑假学完了 CS61B,掌握了基础的数据结构与算法,所以面对大二上的数据结构课更加从容。

另一方面,自学后也能看清课程的重点,同时知道课程的大体框架,知道每一部分的作用。这对于学习来说也是很重要的。

关于缓考

有时,我们总会遇到突发情况——例如考前生病,无法参加考试。对于要保研的同学来说,可能会很担心这一点。

实际上,有缓考的机制存在。只要在考试前提交缓考申请,就可以在下学期再次考试,不会影响你的成绩。

由于我并没有缓考的经验,所以也向一些有缓考经验的同学请教过。特别感谢 Timothy 编写了详细的缓考攻略,请各位参考 Timothy 的博客


🔧 方法篇补充

我在之前的方法篇里面介绍了总体的想法——效率比时间重要,费脑子的学习行为才是有效的,要积极利用先进设备。这里我针对当下 LLM 发展、以及高效学习工作流进行补充,并提供关于考前突击的一些看法。

LLM 发展

当今时代,LLM 发展迅猛。去年这个时候(24 年 6 月),最强的模型还是 GPT-4o,或者 Claude 3.5 Sonnet。到了 24 年 9 月,OpenAI o1 发布,是第一个具有推理能力(思维链)的模型。此后,25 年 1 月,Deepseek r1 发布,许多人第一次尝试了具有推理能力的模型。

去年,如果你随便截一张作业的图扔给 GPT-4o,往往会得到错误的回答。现如今,截图扔给 Gemini 2.5 Pro,或者其他较强的最新模型(OpenAI o系列、Claude 4系列、Deepseek r1 0528、Doubao 1.6 等等)可以轻松得到高质量回复。这大大拓展了我们的学习能力。对着 PPT 哪里不理解,直接截图去问,或者把整个 PPT 喂过去。鉴于目前许多 LLM 拥有 100k 以上的长文本,同时有思维链与多模态能力,基本上 90% 甚至 99% 的知识点与题目,你都可以直接不懂就问。

高效学习工作流

拥有一个高效的工作流是一个常见的话题,例如 CSDIY 上就有相应介绍。这里我主要针对应试,提供一种可能的方案。

对于应试,较好的学习方案应该达到以下几点:

  1. 可以充分利用现有资源,包括书籍、PPT、LLM 的回答等;
  2. 可以高效地复习知识点;
  3. 可以方便地刷往年题,并进行错题整理。

我下面提供的基于 MarginNote4(后面简称 MN4)的方案便满足了这几点。当然,有的同学更倾向于纸质材料学习,也有的同学没有苹果相关设备,不过下面只是一种可能的方案,供各位参考。各位的方案只要能达到上面那几点,就可以了

我从大一下开始尝试使用 MN4,整理了一点工科数学分析下的试卷。从大二上开始,除了思政课,我都不怎么买书,直接找电子版传入 MN4。

对于 PPT 或课本中需要记忆的知识点,使用 MN4 的摘录工具形成卡片,每一个卡片正面就是对知识点的提示(例如正态分布的公式是什么),反面是具体知识点,例如:

$$ f(x) = \frac1{\sigma\sqrt{2\pi}}\; e^{-\frac{\left(x-\mu\right)^2}{2\sigma^2} } $$

根据每门课的篇章,可以划分为 4-10 个小部分,每一部分创建一个复习卡组。每个卡片绑定到相应复习卡组中,进入复习模式,便可以用记忆曲线的方式来复习卡片(类似 ANKI)。

绑定后,你可以隔一两周甚至一两个月复习一次,期末周继续发力。鉴于 MN4 对 PDF 的支持很好,可以将各类资源统一转换为 PDF(PPT、课本、试卷等),并且统一进行刷题。例如你可以把往年 10 多届的试卷都导入,用平板刷题。遇到错题,可以轻易地使用摘录工具形成卡片,并绑定到复习卡组。此后连着知识点与错题一起复习。

这种学习方法是比较高效的,至少我用这种方法可以高效地完成应试的工作。不过也有一些要求——因为 MN4 只支持 iOS 与 MacOS,你需要有 iPad 或者 Macbook,同时为了方便写,最好 iPad 买个笔(官方的太贵的,找一个平替即可)。

有条件可以考虑 iPad+Macbook,通过苹果自带的多端复制,可以在 iPad 上复制题目图片,粘贴到 Mac 上问 LLM。或者使用屏幕镜像中的随航,将 iPad 作为 Mac 的副屏使用。

当然,以上说的都是,并非。只要你能找到一个高效的工作流,不用过于在意具体的实现方式。上面只是一种可能的方案。

考前突击补充

一些公共课有大量的往年题目(例如概率论、大学物理下),然而对于计算机学院的专业课,能找到一两套的久远的往年题都算不错了

这种试卷的缺失,在深度学习的角度,可以看成是分布迁移(distribution shift),也即你的训练集与测试集的分布不同,导致泛化性能很弱。如果你做的都是书上面的题或者作业题,可能就与试卷上的题目相差很大。

方法一

解决分布迁移有很多方法。最核心的还是多找一些真实数据,例如 best of bits 或者 BIT101 上的 CS 仓库整理 的资源推荐,上面每一个 repo 都看一看,自己整理得到更多试卷。一些其他的途径,例如 BIT101 网盘、贝塔驿站资料、睿信学指资料、学长学姐、身边其他老师班级的同学等,都尝试一下。

方法二

⚠️下面有一些公式,只是为了好看,不影响全文的阅读。⚠️

解决分布迁移的第二个方法便是使用重要性采样。在概率论中,设随机变量 $x$ 服从某个概率分布,例如 $p(x)$。这里的 $x$ 可以代表考试题目,$p(x)$ 代表考试题目的概率密度(例如有些考试题目常见,有些题目少见)。假设得分函数 $f_\theta(x)$ 是关于 $x$ 的函数,输入是题目,输出我们作答题目的得分,其中 $\theta$ 代表可以通过学习改进的参数(例如我们大脑中的神经元)。我们学习的目标就是最大化考试得分,也就是 $f_\theta(x)$ 的期望:

$$ \theta^* = \mathop{\arg\max}\limits_{\theta}\ \mathbb{E}_{x\sim p(x)}(f_\theta(x)) $$

但是,因为往年题较少,所以 $p(x)$ 难以采样。相反,其他来源的题目容易采样(例如书上课后题等),假设这些训练集的题目的概率分布满足另一个分布 $q(x)$。那么,我们可以根据期望的定义,展开原先的式子:

$$ \mathbb{E}_{x\sim p(x)}(f_\theta(x)) = \int p(x)f_\theta(x)dx $$

接着,我们引入一个 “1”,进行化简:

$$ \mathbb{E}_{x\sim p(x)}(f_\theta(x)) = \int p(x)f_\theta(x)dx = \int \frac{q(x)}{q(x)}p(x)f_\theta(x) dx = \int \frac{p(x)}{q(x)}f_\theta(x)q(x) dx $$

最后,可以根据期望的定义,将 $q(x)$ 与 $dx$ 结合,变成期望:

$$ \mathbb{E}_{x\sim p(x)}(f_\theta(x)) = \int \frac{p(x)}{q(x)}f_\theta(x)q(x) dx = \mathbb{E}_{x\sim q(x)}(\frac{p(x)}{q(x)}f_\theta(x)) $$

在此,我们证明了重要性采样,并且得到了重要性权重—— $\frac{p(x)}{q(x)}$。直观来讲,现在你不需要从原先考试题的分布 $p (x)$ 当中采样,而只需要在平时练习题的 $q (x)$ 采样,并在学习时乘以重要性权重——也就是根据 $\frac{p(x)}{q(x)}$ 进行判断,考试题的分布 $p (x)$ 越多,就越应该注重这个题目。

(其实上面扯了这么多就是想写点公式) 大白话很简单——考试题考得多的地方就是重点,要多看;几乎没考过的地方就少看甚至不看。如果老师靠前发了考纲,那自然不用管考纲上没出现的内容。

方法三

解决分布迁移的第三个方法便是使用仿真数据或合成数据(做具身智能的喜欢叫仿真数据,做 LLM 的喜欢叫合成数据)。这方面我只是做了一点点尝试。

在考数据科学与大数据的数学原理这门课前,我让 LLM 根据课件以及考纲,生成了一些题目。虽然不一定很好吧,但是也可以起到一定的练手作用。除了直接生成题目,你问 LLM 一道题后,让他做一些知识点的拓展与延伸,或者出一些类似题目,也可以算是使用仿真数据。

小结

这三个方法,可以解决不少 分布迁移 的问题。从大模型的角度看,平时学习可以看成是海量的无监督学习(Unsupervised Learning),作业可以看成是有监督的微调(SFT),明确的模拟考试得分可以看成是 RL (这个类比可能不是那么恰当,就当是随便说说吧)

在无监督学习阶段,可以多补充一些材料,让自己更好理解(例如各类科普视频、科普书、博客、问 LLM 等等)。在有监督的微调阶段,如果试卷没有答案,可以写完后直接让 LLM 帮忙批改(一次不要问太多,3-5 小题或 1-2 个大题比较合适)。在 RL 阶段,完整地做一套试卷,重点是熟悉考试的题量,调整自己的时间安排。

以上,对考前突击做了不少补充。也希望各位也可以多一些自信——即使平时没怎么学,甚至作业还是抄的或者让 ai 写的,也拥有考前一两周学完科目并且考高分的信心。事实上,如果你参加一些竞赛或科研活动,这几乎是唯一的选择。在日后,诸如研究生或职场,也不会有人给你 3-4 个月的时间完整学一个东西,最多用 1-2 周快速了解并熟悉。虽说对当下大学教育的诟病有许多,这种突击能力可能是未来真正会用到的技能吧


📃大二上课程攻略

互联网应用开发基础训练

如上面所述,今年起这门课与程序设计方法可能合并为了 3 分的一门课。

小学期的课,1 学分。计拔、软工应该都有这门课。计科的好像叫 Web 开发基础,相比起来好像要求更死板。

计拔与软工的这门课比较宽松,最后 3-4 人组队做一个产品。我们小组实现了一个交互式神经网络学习网站,可以拖拽式移动模块(例如 MLP 当中的神经元,CNN 当中的卷积层、池化层、全连接层等),并利用 Tensorflow.js 进行训练。最后高分。

那还是在一年前 AI 不太行的时候,我就用了许多 AI 辅助。如今 AI 写前端相当牛,有什么想法都可以轻松实现了。均分 90.5。

程序设计方法与实践

小学期的课,1 学分。就是刷 30 道算法题,没别的。

想要认真学习算法建议参考下方《数据结构与算法设计》的资料推荐。这门课想要水让 AI 帮忙写就可以。均分 91.2。

数据结构与算法设计

🗯️下一届开始,这门课拆成了 3.5 学分专门的数据结构,整体难度应该有所降低。🗯️

5 学分的存在,注定了这是一门硬课。同时,这也是CS 四大件(数据结构和算法、计算机操作系统、计算机网络、计算机组成原理)之首,重要程度无需多言。

如此重要的科目,自然有数不尽的优质资源。例如 CSDIY 上就有专门一节公开课推荐,其中有 CS61B、Coursera Algorithms、MIT 6.006、MIT 6.046、UCB CS170。我在大一暑假学完了 CS61B,收益颇丰,尤其是 SP21 的 Project2 Gitlet,需要你用 Java 手搓一个简化版 Git,整个项目大概 1000-2000 行。

如果你是搞 acm 的,自然可以多看看 OI Wiki,刷一些洛谷 的题。

在求职面试算法题方面,力扣当然少不了,也可以参考代码随想录刷一刷。Hello 算法也是一个入门资源。

在考研 408 方面,可以刷一刷考研题。当时我刷了一些王道数据结构考研题(可以在 Anna’s Archive 上找电子版,也可参考 b站视频),记了很多比较偏的点。但是这个的分布迁移有些大,真正考试的选择题并没有那么难,知识点并不会考得那么全。

虽然有如此多优质资源,BIT 的教学可谓是相当抽象,尤其是乐学上构思一般(甚至不如构思)的题目——从来不标注的数据范围与类型,从来不说明白的题意,从来没有的 starter code,注定了是一个折磨。一方面,这显然不贴近工程中写代码的环境,没能起到类似 CS61a、CS61b 中 project 的作用;另一方面,这也不贴近算法题,因为题干很多东西都不清楚,锻炼的不是你的算法能力,而是揣摩汉字,考虑数不清的 corner cases 的能力。

课程上,我们这一届是数据结构+算法+设计理论。下一届开始这一门课会分开。为什么我会说又呢?因为据说 4-5 年前这几门课就是分开的。设计理论考得很浅,就是一些定义与背诵,与前两者加在一起比较突兀。

设计理论方面我还看了一半的 《GEB——哥德尔、埃舍尔、巴赫:集异璧之大成》。这本书我初中就因为科普视频接触过,不过看得一知半解,好像看了一半不到。这回重新看,还是感觉写得挺好,也相当有启发性。不过,我看了一半,之后又没看下去😂。

考试上,选择+大题的形式。其中大题占大头(70 分左右),有 6-7 道算法设计题目。部分题目除了描述算法,还需要手写代码,比较恶心。

因为上述提到的分布迁移问题,我没有花时间多做一些算法题,而是过于看重一些选择题的概念,最后喜提大二上考试最低分。不过这属实有点凡尔赛,因为相比均分也挺高的了(均分 76.7)。

大学物理 A II

4 学分,相当硬的课,均分 75.0。包含电磁学与近代物理。考试带计算器。

想要认真学,可以看郭爷(郭芃)在延河课堂上的课。理解方面,也许可以翻一翻 《费曼物理学讲义第二讲》。虽然我高中搞过物理竞赛,不过只会做力学题,电学方面了解不多。翻开费曼物理学讲义,又感受到了物理的一些兴趣 (不过这一届诺贝尔物理学奖颁给 AI,我也何尝不算是在学物理呢) 。工数下的一些工具(散度、旋度、各种线面积分等)还是挺有用的。

刷题方面,课本每章后有习题,可以在辅导手册上找到详细解答。建议刷一刷。往年题也有很多,我好像是刷完了。我记得报名物理竞赛项目有加分,但是我因为较忙,没有参加。MOOC 上记得按时完成。

离散数学

4 学分,这位更是重量级,均分 70.9。我在 BIT101 上已有过详细回答,可以参考。

我们老师的成绩组成如下:

  • 平时作业,乐学提交,不硬性限时,15分。
  • 上机,实际上没去机房,就是乐学上八道编程题,8分。我让 AI 写的。
  • 研究性学习,在考试结束后两周内提交,相当于写一个小论文,7分。我的大作业在如何用大模型水一篇LaTeX论文?中有分享。
  • 期末考试 70分。

几年前,离散的上下合并,从两学期合成为一学期,保留了数理逻辑、集合论、代数系统、图论四章。后两章难度显然更大,但前面也并不轻松。

离散课本是经典的填鸭式教材,两页可以冒出十个甚至九个定义与定理,对概念的直观理解与具体示例较少。为此,我在考前一个月还读了一些书,例如曾经初中翻过一点的《数学女孩》系列,其中有几本与离散数学关系紧密,有对群论的直观讲解。各位感兴趣可以照过来看一看。

群论还可以参考一些视频: 史上最好的群论入门-哔哩哔哩

有能力建议看 Youtube,作者之后还上传了一个群论介绍视频: Simplifying problems with isomorphisms, explained — Group Theory Ep. 2

这个系列也不错: 高中生就能看懂的群论,如何从对称性构建出群,群论01:什么是群-哔哩哔哩

至于图论部分,我考前一周甚至两三天才开始突击的,较为折磨。概念一大堆,证明题也多。也可以b站搜点视频。

如果你想要考好离散数学,还是需要下不少的功夫。你所找到的离散数学的“考试”卷,与真正的考试难度,拥有巨大的分布迁移,堪比学完1+1后考你微积分。

23级,也就是24-25-1学期,离散数学试卷题型如下:

  • 10 道选择题,每题2分
  • 10 道填空题,每题1分
  • 8道大题,分为6分题与8分题,共60分。

这题量相当恐怖,我在快写完选择题时,发现时间流逝了不少,后面提速,最后也还有题没来得及写。考试时还是强烈建议遇到难题果断跳过。题目是按照章节顺序排列的,而不是难度顺序。虽说实际上最后一题图论证明题确实是最难的,但是第一题等值演算相当恶心,我直接放弃,最后回来根据分类讨论写了个结果。好在老师应该是尽可能给分的,我最后的成绩也相当不错。

概率论与数理统计

经典数学课,3 学分,均分 78.7,考试难度还行。这同时也是考研数学的科目之一(除了高数与线代),所以b站上有一大把视频,资源相当多,想学好不难。

理解方面,可以看《普林斯顿概率论读本》,其中伽马函数可以秒杀一些正态分布的积分题目。适当看一些更高级的内容,对简单题目确实有作用。

应试方面,b站做一些考研题后,往年题十多套基本够用了。可能需要复习一些工数上与工数下的积分计算。考试不让带计算器。

这门课有 MOOC,记得按时完成。

马原

思政课,3 学分。考前可以看一些 b站视频,背一背概念。

如果你本身就对马克思主义感兴趣,那么在理解的情况下,考试多写一写,得分应该挺不错的。这还是我大学以来思政课最高分😊。

数值分析

😱 哎呀,骇死我了! 😱

这门课 2 学分,但是很恶心。均分 74.0,考试带计算器。BIT101 上课程评价中我写了考前的一个小插曲。

好在这门课提前结课,有较为充足的复习时间。可以先看孙新老师的网课,大概理解每个公式是干什么的,然后带着理解背。

在扩充资料方面,可以参考周华任的《数值分析习题精讲及考研辅导(清华第 5 版)》(Anna’s Archive 上可以找到),这上面许多题目可以参考。往年题比较充足,大概有 10 套左右。实际考试题量更大,需要抓紧时间写。身边许多同学考试没写完。

比较搞人心态的是,你需要为同一个问题,记住多种算法,背多个公式。因为考试会指定一种特定的算法用来求解问题。

建议熟悉一下计算器的使用,我之前写过《CASIO Is All You Need——数值分析计算器使用指南》,发到过 24 级学指群。也可以看这个夸克网盘链接

物理实验下

1 学分,没有绪论,总共 11 个实验。

这个就不用多说了,想办法找已有的实验报告,然后改数据对着抄。不要为这种区分度很低的 1 学分的课浪费精力👿。(均分 88.6)


📑大二下课程攻略

大二下还是比大二上轻松不少,想要保外并且不是走拿牌子路线的同学,建议想办法进组实习。可以根据自己感兴趣的方向,套磁外校(北京更牛的就是清北中科院吧)或本校的老师。

⚠️注意⚠️:因为现在有些课还没出分,所以未来我可能会进行更新,补充均分等。

数据库原理与设计

3 学分,这学期学分最多的专业课。知识点很多很杂。

其中,前四章还算连贯。但是第五章开始,基本上每一章就是一个独立的话题,互不干扰——优化、安全性、完整性、恢复、并发处理、设计理论等。每一章都有许多要记忆的知识点。

一些知识点可以参考北京理工大学数据库复习总结。不过这个我看得不多,可以做补充作用。我看的主要还是 PPT。

往年题就只有几套,很少。建议使用上方提到的解决分布迁移的一些方法。

多利用 LLM 的力量,每一章的 PPT 都可以输出 PDF 扔进去,然后问一些问题,帮助理解。

期末占比 70%,题型如下:

  • 20 分填空题,一空一分;
  • 10 分判断题,一题一分;
  • 16 分单选题,一题一分;
  • 10+ 分简答题,有四小问,每一问简要解释一个概念;
  • 20+ 分作答题,5 大题,每一题还有小问,设计了许多章节的知识点;
  • 20 分设计题,根据需求,画 E-R 图,转换为关系模型,最后利用 SQL 创建视图与触发器。

题量是相当大的,我身边很多同学没写完。

面向对象技术与方法

2.5 学分,笔试,均分 84.5。经典的陈旧 PPT ,很多就是偏难怪知识点的记忆,并没有起到学习面向对象思想的作用(真正的知识还是建议按国外公开课学习)。

考试题是选择题、程序填空与输出判断、手写代码。

有同学推荐 learncpp ,不过我没看过。C++ 好像 Stanford CS106 也会涉及,不过我也没看过😢。

往年题更是稀少,我看到的只有两三套。不过 PPT 当中已经覆盖了很多偏难怪的点了。

数据科学与大数据技术的数学基础

2 学分,少见的好课程。大数据以及计拔会学这门课。(余老师这学期喉咙有些不太好,所以讲课上比较小声) 不过 PPT 是相当优质的。在当今 AI 发达的时代,很多可以直接问 AI。

30 分平时分是乐学的选择题,5 次,每次 6 道题。70 分是考试分。

随机算法方面,我觉得多问问 AI 就可以解决。谱分解方面,强烈推荐鸢尾花书 矩阵力量,里面用相当形象的方式,多视角详细讲解了特征值分解、主成分分析、奇异值分解等等。相信你看完能建立很强的几何直观,回过头来看 PPT 就比较轻松了。如果你入门机器学习,其实整个鸢尾花书系列我都很推荐(虽说我最后的几本书还没怎么看)。

最后一章压缩感知也有点意思。不过我没怎么找补充材料,应试来看 PPT 当中的内容肯定是够用了的。

虽说均分 78.6 看着很低,但老师在群里面说计拔有8位同学卷面满分(共19人)。可能是两级分化比较大吧🤔。

毛中特

3 学分,思政课。

思政课其实套路都差不多,多回答问题,小组展示的时候多讨论一下,积极合作。最后突击看一些视频,考场上用连贯的语言来写(不要仅仅是分点作答,这样老师不喜欢)。

数字逻辑

2 学分,一般般。最后是机考,41 道选择题(我也不知道为什么不是更整的 40 道题)。比较逆天的是,机考无法回头,做一道题过一道。如果后面有题启发了你,你会意识到前面有题目做错,但自己无法修改,这种感觉很痛苦 (太↑痛↑苦↓了→,太↑痛↑苦↓了!😭)

强烈推荐 Steam 上的游戏图灵完备。就算买的时候不打折,我认为 70rmb 是相当值的。为了应对数字逻辑这门课,玩到图灵完备成就肯定就足够了。后面还有汇编部分,我也还没玩。(看一眼小黑盒,上次打折是今年 6 月 1 日到 15 日,通常一年多才打折一次。不过不打折就多花 20r,推荐直接入手)

比较恶心的是,作业题布置的是 2-4 章,没有第五章作业,给你一种第五章不重要的错觉。实际上,期末考试第五章题还不少,可能占到 1/5 左右。这部分一定要多看。

可以参考北京理工大学数字逻辑期末考试复习,这个网站整理得相当好,也有许多题目,方便边看边做。(避免出现 “全是字,一道例题也没有” 的情况)

往年题就只有一两套,好像是疫情期间机考有人截图流传下来的。我个人感觉这一届实际难度是变高了不少的,有些题目是“升级版”。

课程还需要小组实验拿板子,跑代码。我是一个人直接用 LLM 完成的(在 Cursor 当中)。源代码很方便用 Cursor 编辑,具体编译以及上板都是用 Vivado 实现的。(还是先要在 Vivado 中创建文件,然后才在 Cursor 中编辑,不然无法识别)


🎉尾声

到现在差不多纯字数有 10000 多,算上字符有 16000 了。

也希望上述整理可以或多或少帮到一些人吧。相信大部分看到这里的同学,要么是即将大二,要么是即将大三。如果有机会,你也许也可以向学弟学妹分享一些心得🤩。毕竟我可能只是站在很优秀的角度去看,看起来没有踩那么多的坑。

未来有时间也许也会整理一些科研入门教程等,不过估计这个暑假挺忙的)随缘吧。

最后,真诚感谢 Frozen heart、JyYeah、ListenSnow、Lucien、NoMad、Omnipotent、Quan、Reina、Spranty、酸菜不吃鱼、Timothy 等同学的帮助!(首字母排序,不分先后)

正是有了你们对本文的大力支持,并提出了许多有意义的建议,我才能不断完善内容。正文也从一开始 6000 多字,扩充到了 10000 字。

同时,也感谢所有曾经在专业选择上或其他地方帮助过我的学长学姐,让我逐渐看清方向,并不断前行!

Licensed under CC BY-NC-SA 4.0