2020年数字所上科大武大北航清深夏令营面经

因为夏令营前很多博客帮到了我,所以也在此把我的经历记录下来,希望能有所帮助。

数字所

10分钟左右面试,1分钟英文自我介绍+9分钟专业知识问答。六七个老师拿着你的资料边看边问你问题:

  1. 假如有两个多对多的关系让你设计数据库,你会用几张表
  2. 数据库的三个范式
  3. 缓存管理的组相连算法
  4. 概率论的p值法(没学过但课本上有,就是用MATLAB做回归分析时自动给出的那个p值,直观含义是“比观测到的情况更极端的概率”)
  5. 用过逻辑回归分析吗?(通知只说问专业课,没想到写在简历上说学过机器学习也会被问,还愣了好一会儿。。接下去几个都是机器学习问题,我是几个月之前粗粗学的,一问三不知。。)
  6. 什么时候可以用逻辑回归?如何进行特征选择?用什么量评估特征选择的好坏?贝叶斯与朴素贝叶斯的区别?
  7. 看你组合数学很高啊,这门课主要学了什么?装箱问题如何求解?(我没反应过来装箱问题是啥,问老师能不能具体描述一下,老师就直接让讲讲动态规划了,后来想想其实不就是背包问题吗。。)
  8. 如何求最小生成树

英语介绍感觉只是听听流畅度,专业知识问了数据库、计组、概率论、数据结构、个别高分课程、简历上写的机器学习(所以不熟或者以前熟但现在忘了的东西还是不要写了)。面试分两组同时进行,结束后和另一组同学讨论,他被问了处理机有几种调度算法、介绍一种好的排序算法、p值法等一共四个问题。约60入营、16优营。面试宽容度还是很高的,我机器学习都没答上来,p值法也不会,没想到还过了。面试的时候感觉是哪个老师想问就问,没有固定的顺序,问我机器学习的老师还很温和地引导我,所以答不上来也不要紧,被问得多有可能是因为老师对你比较有兴趣。

上科大

20分钟面试,自我介绍后四个老师一人问一块专业知识,最后问些别的以及英语,没有问项目。

  1. 算法:说一种喜欢的算法,我说快排后追问了快选(我说了小根堆和基于快排两种方法)
  2. 数学:正定矩阵、正交矩阵的定义
  3. 编程语言:会哪些语言,c、c++、python的区别,c指针的作用,面向对象三特点及解释
  4. 体系结构/计组/操作系统/数据库:虚拟内存的作用,java虚拟机与虚拟内存的关系,快表与高速缓存的比较,缓存的一致性原理,数据库事务的原子性,fork函数
  5. 其它:想做什么方向;计算机图形学主要学了什么,记得坐标变换公式吗,顺时针逆时针旋转哪个是负的;知道哪些插值函数,双线性插值用了几次插值公式
  6. 英语:疫情对你生活的影响,在家上课感觉怎么样

总体比较简单,个别问题不会也没关系。我是上午最后一个,面我的时候已经十二点半了,刚进去能感觉到老师们都乏了,但后面逐渐精神起来,可能因为我答得挺好嘿嘿。

武大

中文自我介绍,英语问答(为什么读研,在武大学到的最重要的东西),心理健康(谈谈团队精神、遇到分歧如何解决),杂(会的语言,想做的方向及原因),项目(有没去学习相关知识,模型原理,用神经网络比不用有什么好处,对模型有无自己的改进)。不同组差别挺大, 有的组问了编译原理、计组等专业知识。

北航

入营500,机试留300,面试录160。机试100分,面试200分,最后按总成绩从高到低给优营,今年最高297.7,最低237。

机试两小时两题,中文题目,60分+40分,c或c++都可以。如果机试分数低,即便进了面试,最后优营的希望也很小,所以想去北航的同学还是要好好刷题,争取机试拿高分。因为往年说是和csp第三题字符串模拟比较像,于是我考前主要在刷csp,然而并没有用。。所以不要只刷一个类型的题,各种题型、平台都刷刷。线上机试要比线下方便,双机位,不限IDE、系统环境。

第一题是PAT A1064 Complete Binary Search Tree原题,也就是完全二叉树+二叉搜索树。有几个点要知道,比如完全二叉树静态存储在数组里的顺序就是层序遍历序列,二叉搜索树的中序遍历序列是有序的。输入的序列什么都不是,升序排序得到中序遍历序列,中序遍历二叉树的同时把序列放上去就得到了。考的时候没想起来完全二叉树的性质,一直以为只有中序序列确定不了一棵树,考完才知道是PAT原题,第一次不会的题果然需要刷第二次,不然之后遇到还是不会。。

第二题完整题目如下。我只过了第一个样例,第二个样例的扇入系数和调用次数没调对。

【问题描述】
给定某能正常运行结束的程序动态运行时用户函数调用栈信息(当一个函数被调用时将入栈,当调用返回时,将出栈)。编写程序,对函数调用栈信息进行分析,依据函数入栈和出栈信息,找出调用层次最深的函数(最深层次数大于1),并计算其调用路径、扇入数(调用该函数的函数个数)及实际函数运行时实际被调用次数;当存在多个调用层次相同的函数时,请按执行顺序输出;若某函数存在多条相同最深调用路径,则只输出执行顺序最早的调用路径信息。假设程序中不存在递归调用;函数名符合C语言标识符的规定,函数名中字符个数不超过20。
【输入形式】
假设用1时表示入栈操作;用0时表示出栈。当操作为1(入栈)时,输入形式为:
<操作> <函数名>  
当操作为0(出栈)时,输入形式为:
<操作>
所有入栈操作和出栈操作都是从标准输入分行输入,调用栈中操作个数不超过200,出现的函数个数不超过100。
【输出形式】
按照调用顺序将调用层次最深的函数信息分行输出到标准输出,每行的信息包括:函数名、调用路径、扇入数和实际被调用次数,各信息间以一个空格分隔;调用路径用调用的函数名和英文减号“-”连接而成,第一个函数名前和最后一个函数名后没有英文减号。
【样例1输入】
1 main
1 input
0
1 area
0
1 findA
1 area
0
0
1 findB
1 get
0
0
0
【样例1输出】
area main-findA-area 2 2
get main-findB-get 1 1
【样例1说明】
输入了14个栈操作:开始main函数入栈;main函数调用的input函数入栈,然后input返回并出栈;接下来main函数调用area函数并返回;随后main函数调用findA函数,findA函数调用area函数,这时存在3层函数调用(包括main函数);然后area函数返回,接着main函数调用findB函数,findB函数调用get函数这时也是存在3层函数调用;最后get、findB和main函数依次返回并出栈。14个栈操作完毕,栈为空,这时调用函数最深的层次数为3,按照操作的顺序分别输出这些函数的信息。其中area被两个不同的函数分别调用一次,所以其扇入数为2,调用次数为2。
【样例2输入】
1 main
1 input
0
1 mysqrt
0
1 findA
0
1 findB
1 area
1 mysin
0
1 mycos
0
1 mysqrt
0
0
0
1 findC
1 area
1 mysin
0
0
1 mysqrt
1 max
0
0
0
1 output
0
0
【样例2输出】
mysin main-findB-area-mysin 1 2
mycos main-findB-area-mycos 1 1
mysqrt main-findB-area-mysqrt 3 3
mysin main-findC-area-mysin 1 2
max main-findC-mysqrt-max 1 1
【样例2说明】
输入了30个栈操作,开始main函数入栈;main函数调用的input函数入栈,然后scanf返回并出栈;接下来main函数分别调用input和findA函数并返回;随后main函数调用findB函数,findB函数调用area函数,area函数调用mysin函数,这时存在4层函数调用(包括main函数);然后mysin函数返回,接着area调用mycos函数,这时也是存在4层函数调用;后面的操作依次类推。三十个栈操作完毕,栈为空,这时调用函数最深的层次数为4,按照操作的顺序分别输出这些函数的信息。其中mysin函数共被调用2次,但都是被同一函数调用的,所以其扇入数为1,而且其两次调用都是最深层次调用;mysqrt函数共被调用3次,而且是被不同函数调用,所以其扇入数为3。
【评分标准】
该题要求对函数调用栈信息进行分析,提交程序名为stack.c或stack.cpp。

面试五个老师分别问一块,英语(自我介绍+名词解释)+政治(抽一个问题讲看法)+数学(主要是概率论、离散数学、高数,我被问到集合,完备集,独立与互斥的区别及性质,大数定律)+专业知识(算法+网络+操作系统,我被问到图论中哪些算法用了动态规划,最小生成树求法,如何优化kruskal算法,并查集如何提高查找效率,两个n阶矩阵相乘的时间复杂度,腾讯会议用的传输层协议,异步socket与同步socket的区别,线程与进程,写过多线程吗)+科研/项目(介绍,用到模型的输入输出,遇到过什么难点),最后还让你自我推荐一下。。

想清楚些再回答,多线程很久以前写过一点也可以说写过,总比没写过好。。不同组差别挺大,比如有个同学项目少直接被嫌弃你这项目不行啊,另一个同学没项目老师还帮忙解围。会有一点运气成分,但总体还是比较硬核的,至少同组被录取的一个同学专业和项目两块都答得比我好,所以挂了也是服气的。感觉北航不太看本科学校,今年武大11个过了机试,最后只给了4个优营。

清深OPEN FIESTA

知乎上对这个项目评价较差,但有人说可以自己去外面实习两年,觉得可能还不错就报了,其实也是因为清深ai和计算机都没入营才参加这个。官方给定小组名单,约两天半合作完成一个项目。每组要定一个组长,自定题目。我在的组里有管工、美工、新闻以及两个计算机共五个同学,项目创意最重要,不需要写代码,定下来之后就是各种包装。小组展示之后获得面试资格的同学会收到通知。open fiesta挺看重领导力的,我在的组只有组长进面试了。但实际合作过程中明显感觉到另两个同学比组长优秀不少,所以如果真想去的话就争取当组长多一点机会吧。

你可能感兴趣的:(夏令营)