24年中科院计算所夏令营纪实
夏一营,夏一优
夏令营报名
自动化所未入营,计算所拿到了智能算法安全实验室暑期班的入营通知。
后来才知道计算所独有的“霸面”机制:
- 即使未收到入营通知,也有较高概率拿到所报考实验室的霸面资格
- 即使未报名夏令营,依然可以通过直接联系导师的方式拿到霸面资格
霸面不能参加夏令营的各种活动,更不会报销路费和住宿费等等。不过这些活动也不是很重要,入营同学也可以选择不参加这些活动。霸面同学和入营同学都参加同样的面/笔/机试等环节。
夏令营活动
7.16 周二
- 09:00-11:30 计算所中关村园区报道、参观展厅和招生咨询
- 13:00-15:00 合影+开班仪式+专题报告(没听,睡午觉)
- 15:00-18:00 乘车去计算所环保园区,参观附近的龙芯公司(挺远的,龙芯对面还有个华为公司,实习很方便?)
- 18:00-20:00 乘车前往稻香湖酒店并入住(住房普通无亮点,但是周边环境非常好!)
- 20:00-21:00 各实验室科研方向介绍(没听,同伴手机没电,和他一起提前回了房间)
7.17 周三
- 07:00-11:30 乘车去国科大雁栖湖校区,参观+国科大计算机学院介绍,不去的话就乘车去环保园(没去,准备机试)
- 15:30-18:00 各实验室选拔面试(智算组是机试)
- 19:30-21:00 回酒店(准备第二天的面试)
7.18 周四
- 07:00-12:00 乘车去环保园+各实验室选拔面试(智算组没安排,我待在酒店,中午自行打车+地铁去中关村)
- 13:30-18:00 各实验室选拔面试(智算组面试,实际从13:00一直面到22:00,我大概16:00面试,结束后就回学校了,后续无活动了)
7.19 周五
- 09:30-12:00 各实验室选拔面试
各个实验室都扎堆面试,我不清楚该如何同时去参加多个实验室的选拔,所以各个活动都没参加,反正最终也只参加一个实验室的选拔。
各个实验室选拔机制都不太相同,vipl实验室是笔试+机试+面试,强度拉满;有的组只面试,面完直接发offer;智算组是机试+面试,我在面完第二天下午接到导师电话。
机试
“通过机考的同学已邮件通知”,感觉很少的人被机试筛掉(或者根本没筛选?)。
机试的形式不太正式,入营同学在一个小会议室使用自己的电脑+IDE做题,两个研究生监考,手机上交,电脑不可联网,不可查看本地文件或者纸质笔记。霸面同学在另一个大会议室机试。
- 题目打印在A4纸上,6道题目,分值在10-20之间,两个小时,不限编程语言,并非都是算法题。
- 不给数据范围,只给一个简单测例用以理解题目
- 部分题目需从文件读入数据
- 上交代码文件人工评分(监考老师提醒即使不会也可以用注释写大概思路)
1
括号匹配,LeetCode简单难度,用栈即可解决,和LC20.有效的括号完全一样。巧合的是这题我刚刚在考前5分钟做过。
2
NLP字符串预处理,非算法题,不难但很麻烦,要求读取文件:
- a. 将所有字符(非英文字母)均替换为空格
- b. 将 ICT(不区分大小写)全部替换为 Institute of Computing Technology
- c. 删除少于10个词的句子
- d. 将多于50个词的句子截断,保留前50个单词
- e. 排序,一大堆规则记不住了,不过只用
sorted()
就能满足其中大部分 - d. 删除句子前导空格和尾随空格,将处理后的句子写入新文件
看到题的第一反应就是放弃,完全没想到会出这种题。平时这些处理都是直接交给ChatGPT处理,字符串那么多函数没记过,不过还是回忆起了起来:replace
、split
、join
,读写文件这块也卡了一会儿。
3 4 5
均为算法题,难度不低,可达LC困难,限定时间初见几乎不可能完全做出来(至少我不行,不必说初见,我就是见了但不记模板也没法临场复现出来)。3是二叉树,4是回溯,5是动态规划(5分ab两部分,a很简单)。
6
伪代码转高级语言,大抵是考察复现论文的能力?纯开发,无算法,题目背景是分析用户对电影的评分。用伪代码给出了计算相似矩阵的函数和预测评分的函数,可读性还行,很容易看明白具体实现过程。
但是我个人以为代码细节处理很差,局部变量和全局变量混淆,比如用户数量在一个函数中是传入参数,在另一个函数中却是默认的全局变量;另外就是我没分清两个函数的依赖关系,计算相似矩阵需要补全评分矩阵,补全就需要预测评分,但是预测评分又需要借助相似矩阵去计算。时间紧迫,我没想清楚其中细节就结束了,虽能实现函数,但输出与样例不太一致。
机试小结
- 我全用 python 写的,稍难一点的算法都没写出来,最后得分可能就一半?
- 第3题实现了部分,第4题交了白卷,其实应该写一下注释,回溯法的思路还是有的,第5题b部分没思路
- 人工阅卷,所以我刻意注意了代码格式(多写注释和类型注解),增加可读性
据说是老师阅卷,不过第二天面试的时候,也没老师问机试的细节。
面试
面试基本没有压力(具体分实验室),没有英文自我介绍、PPT简历和英文问答等等,每人面20分钟。面试前需按要求准备好材料:个人信息&自述+个人简历+成绩单。
每人进去先做一个自我介绍(没说时间限制),我说了基本情况和报计算所的原因,毕竟其它信息材料上都有。
然后就是问答环节。当天32人面试,我排在第10位,从前面的人口中也大致知道了情况:最开始几位同学只会问数学,每个同学只会被问到线性代数/微积分/概统中的一门;到我前面几位开始问简历上的项目+一点数学。
项目上,我具体被问到我在项目中所做的工作、难点和一点细节(比如强化学习的action state设计,或者美赛中所使用遗传算法的步骤);数学上,只问了比较简单的两三个问题;还问了一个计算机专业课的问题,这个没学不会,老师说没什么,随后问“Python为什么能在各种机器上运行”,我答Python虚拟机,被追问虚拟机具体作用,不会。
后续
第二天下午接到导师电话,确认了。
夏令营活动整体体验不错,只是在中关村和环保园区都较难找到一个有插座的桌子的位置,不过酒店环境真的好!