课程评价_操作系统(蒋炎岩)
关于老师由蒋炎岩老师设计并授课(此前的 ICS PA 也是 jyy 深度参与设计的)。jyy 每年都在迭代 OS 的课程和实验内容,会在课程中加入一些比较前沿的技术和研究内容。上课非常有激情,他本人也在知乎有号,经常在群里和知乎上发表一些暴论。
jyy 上课会进行 B 站同步直播+录播,可以不到场。
前置知识对 x86 体系的大概了解、计算机系统基础(ICS)
课程内容教材为 OSTEP(Operating System: Three Easy Pieces),主要包含:
OS 是什么
并发(并发原语、条件变量、信号量、并发 bug)
虚拟化(进程、shell、标准库、链接、ELF)
持久化(驱动、文件系统、简单数据库)
内核的浅显理解(2025 Spring 已删除)
作业、考试与得分如上所述,每年 Lab 的变动较大,仅供参考。主要变动体现在:OSlab 越来越少、Minilab 越来越多。
2024 Spring 的 Lab 包括 6 个 Minilab(操作系统编程)和 3 个 OSlab(编写操作系统):
M1:基于 procfs 实现进程树打印
M2:基于 setjm ...
课程评价_算法设计与分析
关于老师推荐徐经纬老师(好像 2025 年起不担任本课程了),支持免修不免考,事少,人好。
黄宇老师不支持免修不免考,且对有 OI 经验的学生敌意很大,会找麻烦。
前置知识简单的 C++ 使用经验(C with STL)
课程内容一些简单的经典算法,包括:
复杂度分析
贪心
动态规划
二分
排序
图论(最短路、最小生成树)
搜索
分治
堆、单调栈等简单数据结构
简单计算复杂性(NP、NPC、NP-Hard)
远低于 OI 中普及组难度。
作业、考试与得分作业主要为书面作业,来自于教材课后习题。需要格外注意作业中的格式和规范性,考试时如果过程不规范则基本不得分。
会有一些简单的 OJ 题目,不超过普及组难度(Tarjan 缩点、分层图、可持久化并查集等)。
其他对于没有 OI 基础的同学,这门课的内容十分重要。类似 OJ 的题目将会大量出现在各类保研机试/找工作机试中,建议以此课程为跳板,在 LeetCode 上练习相应专题。
课程评价_计算机网络(国际化)
关于老师由 COSEC 组的张渊老师授课,使用英文 PPT + 英文讲述。张老师讲课的语调有点令人犯困,还是英文上课,体验一般,不如对着 PPT 和 GPT 自学。
前置知识Modern C++ 基础
课程内容经典的计网教材:计算机网络(自顶向下方法),涵盖:
网络基础(带宽、时延、抖动)
应用层(HTTP、SSL、SSH、ICMP、SMTP、POP3)
传输层(UDP、TCP)
网络层(IP、DHCP、NAT、OSPF、BGP)
链路层(ALOHA、CSMA/CD、ARP、交换机)
无线网络(CDMA、802.11、CSMA/CA)
计算机三大件之一,非常有用(尤其是 TCP、HTTP、SSL、ARP),考研保研实习必考,建议熟练到倒背如流。
作业、考试与得分没啥作业,主要是 Lab,2024 Fall 是照抄的 CS144,跟着框架完成了:
抽象数据流的封装
TCP Sender
TCP Receiver
ARP
需要使用 Modern Cpp 的一些写法和特性,可以现学;大约共有 7 个 Lab,每个 Lab 耗时约 3 小时。
其他就算是跟着把 CS ...
课程评价_计算方法
关于老师由理论组的刘景铖老师授课,刘老师讲课慢条斯理,对于一些难以理解的地方会主动展开解释,相对而言没那么容易 get lost。
前置知识线性代数、图论
课程内容比起参加一个课程,笔者更觉得这是一门“大讲座”:针对很多问题都有概念性和比较浅的介绍,并没有深入某个领域挖到底,更多是对一些数值计算领域的经典问题介绍 background、motivation 和一些经典的 solution。整个课程参与下来比较轻松,没有什么负担。
课程内容主要涵盖:
插值与拟合(方程求根、插值、最小二乘、FFT)
线性矩阵计算(高斯消元、解线性方程组、SVD)
谱图论(Laplace 矩阵、图上随机游走、电阻电路网络)
线性规划(建模离散问题、线性对偶、Min-Max 原理)
课程难度主要来自于数学功底不扎实。概念的理解和算法的原理上没有很大障碍。
作业、考试与得分作业有一定难度,可能需要一些思考、查找和讨论。单次作业耗时约 5 小时,共约 8 次作业。
按照惯例,期中考试是一次 take-home-exam,即发放一份量比较大的作业,按作业时间完成和提交。期末考试题量较大、难度较低,考察概念性的题 ...
课程评价_最优化方法导论
关于老师由 AI 学院的张立军老师授课,老师本人方向偏向机器学习理论,跟课程内容还算比较对口。
前置知识线性代数(范数、矩阵求导等)
课程内容凸优化相关的基础内容,包括:
数学基础
凸性判断
对偶问题与拉格朗日乘数法
KTT 条件
梯度下降
线性规划
都是凸优化中最基础的内容,主要难点来自于矩阵运算(求导、取极值等)的规则。对偶问题和 KTT 条件的推导比较省略,需要背公式。
笔者上这门课时,全程都在怀疑自己学习/做题的动机:在每一个阶段都无法理解为什么要学习这些技巧和操作;在后面的章节中才会实际应用到之前看似无用的炫技操作。所以听不太明白是正常的,对着 ppt 能理清逻辑即可。
作业、考试与得分基本为上述每两章对应一次作业。单次作业包含一些基础的题目,耗时约 5 小时。
考试难度远低于作业,会考察一些来自于作业的概念和技巧(和密码学原理感觉很相似)。
课程评价_大学物理
关于老师老师是随机的,每年都有区别,无法定论。2023 Spring 是匡院的郭亚冲老师,很有年轻老师的特质。
前置知识微积分
课程内容视老师而定。2023 Spring 是力学和热学,不难。
学到的没有任何用。
作业、考试与得分视老师而定。
其他这是一门注定没用的课。要是选了就用「去锻炼建模思维」说服自己;觉得花这么多时间不值得就别选。
课程评价_Rust程序设计语言
关于老师由 PL 组的冯洋老师讲授,上课风格很随和(甚至有些随意);讲课水平一般:自己确实是懂,并且很努力在讲明白,但确实是讲不太明白。
不过这门课是语言入门课,老师对语言基础的讲授并不是重点;冯洋老师会补充一些在使用 Rust 某些特性时的经验技巧、一些 Rust 编译器的实现方式与特性、Rust 部分机制背后的设计哲学,这部分非常受用。
上课氛围比较自由,冯老师更像是一个索引和答疑者,不点名。
前置知识一门强类型高级语言的使用经验(Cpp/java/Go等)
课程内容2025 年是第一年开课,内容不全面、质量一般,主要覆盖:
Rust 基础语法
Cargo 包管理
所有权
错误处理
生命周期
并发编程
该课程主要基于冯洋老师自编的教材,直接对着教材看 Rust Doc 就可以。主要锻炼来自于 Lab。
作业、考试与得分没有作业和考试,评分基于 Lab。Lab 为四选一完成:
Git
数据库
Lox 解释器
植物大战僵尸
需要提交 OJ(植物大战僵尸除外),都会有一些额外加分项,在答辩时呈现。可3人组队完成,1/2人队伍有10%和5%的分数加成。 ...
About me
ResumeContests
CSP2019(S): First Prize (2019.11)
ICPC2022 Nanjing Regional Contest: Silver Medal (2023.1)
CSP31: Top 0.33% (2023.9)
CSP34: Top 1% (2024.5)
iGEM (as a member of NJU-China Dry Lab): Winner of Best Software & AI Project (2024.10)
CCSP2024: Gold Medal (Rank 12) (2024.10)
Courses (Extracted)
Teaching Assistant of 信息与计算科学导论实验 (2023 Fall).
I’ve designed some unconventional programming problems for beginners, contact me if interested.
GPA (First 2.5 years): 4.64/5.00
离散数学(强基, ...
编译原理_期末复习
第三章 词法分析
词法分析的作用
词法单元的规约(正则表达式)
词法单元的识别(状态转换图/有穷自动机)
词法分析器生成工具及设计
词素/词法单元的区别:词素是输入的东西,词法单元是匹配出来的东西模式:词法单元对应的词素可能具有的形式正则表达式:Regular Expression;优先级:* > 连接符 > |
状态转换图、NFA、DFA:NFA拼接、RE转NFA、NFA转DFA、DFA最简化:见 FLA
第四章 语法分析概念
句型/句子:句子不包含非终结符
语言:所有可接受的(推导出来的)句子的集合
消除二义性
此处不考;优先级上升算法处考
消除左递归
立即左递归的消除:$$A\to A\alpha_1|A\alpha_2|\cdots|A\alpha_n|\beta_1|\beta_2|\cdots|\beta_m$$改写为:$$A\to \beta_1A’|\beta_2A’|\cdots|\beta_mA’$$ $$A’\to \alpha_1A’|\alpha_2A’|\cdots|\alpha_nA’|\varepsi ...
编译原理_实验报告
项目地址
Lab 1编译方法在 Code 文件夹下输入命令 make 即可自动编译生成 parser 文件。
功能简介文件结构如下所示:
123456Code├── Makefile├── lexical.l├── syntax.y├── syntaxtree.c└── syntaxtree.h
其中 lexical.h 存放与词法分析相关的 flex 代码;syntax.y 存放与语法分析相关的 bison 代码和 main 函数;syntaxtree.h 和 syntaxtree.c 用于存放与语法树相关的结构体定义和函数。
词法分析对于ID、INT和FLOAT,我使用了这样的正则表达式:
123INT 0|([1-9][0-9]*)FLOAT {INT}+"."{DIGIT}+ID (_|{LETTER})(_|{LETTER}|{DIGIT})*
在分析时需要注意优先级,例如先匹配 /*、最后匹配ID等。
在匹配到 /* 时,我将不断向后读取内容直到遇到第一个 ...