考研复试可能的问题准备

注:以下内容均为我自己准备研究生复试所用,不具有任何针对性,仅供参考。关于研究生复试的其余两篇链接为:

具体食(使)用方法:本文收集了一些复试面试中,可能会遇到的问题,以及在真实面试中,遇到的问题。但由于涉及到面试内容的保密性,文中不对真实遇到的问题做特别标注,仅供参考,希望在熟悉常见问题后,大家也能从容应对面试!若内容存在明显错误或不当指出,恳请大家指出,联系方式见主页邮箱。

专业知识问题

专业知识问题涉及面太广泛,这里简单列举几个经典的问题,后续专业课内容会在专业课知识准备这篇文章中更新。

Q1什么是软件工程,你对软件工程的理解是什么?用英语回答试试?

印象最深的定义是IEEE的定义:软件工程是将系统的、严格约束的、可量化的方法应用到软件的开发、运行和维护上,即将工程化思想运用到软件上。

我自己的理解:软件工程是在充分准确地了解客户需求的前提下,以开发出具有易用性、容错性、可维护性等优点的软件为目标,将我们所学的操作系统方法,计算机网络基础、软件设计模式、算法等知识运用到软件的开发过程中。

英语:Software engineering is the systematic application of engineering approaches to the development of software.

Q2数据库的三大范式是什么?

第一范式:属性不可再分

第二范式:在1NF的前提下,非主属性完全依赖于主属性

第三范式:在2NF的前提下,不存在传递依赖于主属性

Q3计算机网络的七层协议

应用层、表示层、会话层、运输层、网络层、链路层、物理层

Q4了解大数据概念吗?

大数据通常具有的特点是数据量大、数据类型多样、数据价值密度较低、时效性要求较高。使用常规化手段无法存储、处理这些数据,需要新的处理模式来面对这样的海量信息。

我认为大数据与数据仓库和数据挖掘相联系。数据仓库是指面向主题的,集成的,随时间不断变化的数据集合。而数据挖掘是从这种大量的数据集合中,提取出对我们有价值的信息。

在大数据工程导论这门课上,我配置了Hadoop分布式集群,并使用Eclipse运行了MapReduce项目,让我真实感受到了处理大数据的一种方法。

Q5C++和Java的区别了解吗?用英语回答试试。

  1. C++即可面向对象又可面向过程,而Java是纯面向对象语言。
  2. C++有指针,Java没有指针,但是有引用。
  3. Java运行于JVM上,可移植性比C++好。
  4. C++语言通过编译器编译为目标程序后,即可运行;Java语言处理器结合了编译和解释过程,先将Java代码编译为字节码,交给JVM解释执行。
  5. 正因为第4点原因,导致C++程序运行速度比Java程序快。
  6. C++需要程序员手动管理内存,Java有自动垃圾回收机制。

Q6用过哪些编程软件、学过哪些编程语言,最擅长哪种语言?你觉得这种语言最难的地方是什么

学习C和C++的时候用的vs,学习Java的时候用的Eclipse,学python的时候用的Geany,后面偶然遇到了jetbrains的编辑器,就一直用这个系列的。

最擅长的是python语言,因为平时很多项目,像可视化、数据清洗这些用python很方便。

python的难点应该在于,我认为所有的编程语言难点都在如何运用,可能学会一种语言的语法很简单,但是学完后马上解决问题,感觉就写不出来,这就是运用的问题。多看看别人写的优秀代码,自己模仿着思路写一写,慢慢就会运用这个语言了。语言也只是工具,更重要的是编程思想。

Q7做过哪些项目,用了哪些技术,选一个擅长的项目介绍一下?

每个人项目经历都不大相同,对于自己的项目应该有个总结,面试时有很大概率讲你的项目。我的项目介绍详见简历和博客介绍:项目准备

Q8你对人工智能、机器学习的理解?

人工智能是一个大领域,其主要思想是,让机器模拟人的思想,就像拥有人的智能一样,而机器学习是实现人工智能的一个方法,机器学习最基本的思路是使用算法对数据进行分析,建立出相应的模型,然后使用模型对真实世界中的数据做出预测。实现人工智能的其他方法还有自然语言理解、计算机视觉等方面。

Q9你对自己感兴趣的领域做过哪些方面的研究

通过去年暑假找到的实习机会,是做自动化测试,然后这次毕业设计,是做软件缺陷定位的,通过这些项目经历,我对软件测试相关的内容非常感兴趣。

Q10初试考了C语言,你觉得C语言的难点是什么?

C语言难点—-仁者见仁,智者见智。主要想好怎么组织语言,把自己的观点清晰地表达出来即可。

Q11平常编程遇到问题的解决方法

这里最重要的是体现一个思维的过程和平时的实践过程。

遇到问题,首先最重要的是应该分清楚,这是一个什么样的问题,是业务规则上的不对,还是程序实现上的不对,对症下药。举个例子,如果是程序实现上的不对,报错了,我们应该采用调试的办法,先自己调试代码,争取自己找到出错的地方,增加自己的调试能力,如果自己解决不了,应该去网上查找资料,看看别人遇到此问题,是如何解决的。这种过程能加深我们对错误的理解,以便于下次遇到问题,能够自己解决。

Q12你觉得软件开发最重要的环节是什么?

最重要的环节应该是一个前提条件,即充分、正确地了解客户的需求。因为我们的软件,是要给用户带来使用体验,给用户方便,如果用户不满意,这个软件很可能就无法得到它期望的效果。反映到现实生活中,就是软件无法带来经济效益。

Q13说一个你熟悉的设计模式

单例模式,我在实习期间,做了一个项目,主要功能是将测试报告写入Excel、HTML和数据库中,而且要求每个程序只能生成一个对象进行写入,我使用了单例模式。我了解两种单例模式,一是饿汉式,二是双重检验机制。饿汉式不是线程安全的,如果两个线程并行运行,可能会导致两次创建实例对象。双重检验机制使用了同步与检测,线程安全,但效率也降低了。实现单例模式还有一些其他的方法,如枚举法实现单例,我没有进行深入的研究。

Q14介绍一下你的毕设项目吧

我的毕设项目见我的项目复试准备。项目准备

专业规划问题

Q1你对什么研究方向感兴趣?对这个方向的理解、项目经验?

我去年去公司实习,主要做的内容是测试自动化,最近做的毕业设计,与软件缺陷定位相关,在这个实践过程中,我对软件测试的兴趣逐渐增加。我认为,软件测试不仅仅是常规意义上的测试软件功能是否正常,而是通过与各种技术结合,以更少的人工干预,来完成测试内容。

Q2你的读研期间规划是什么?更长远的呢?

读研期间规划:首先要踏实学好基础知识,不管做什么事情,基础首先是最重要的;然后就是跟着导师,多学习,多了解学术前沿知识和发展动态;最后,多思考,多动手,多实践,争取在某个领域内,有自己独到的见解。

经历感悟问题

说说本科阶段你最有成就感的事情 / 遇到的最大挫折是什么,是怎么解决的

针对自己的过往经历,进行总结。记住!挫折和成就感都可以说一件事,因为不能只说挫折,说完挫折老师很大概率会问你,那你怎么应对这次挫折的呢?所以,说完自己遇到的困难,就要讲自己怎么解决的,这也能说成是最有成就感的事情。

我最大挫折/成就感的事情是:实习期间做的项目,需要重构一个测试仪表的代码,逻辑结构很复杂。详细描述哪里困难。最后与同事进行沟通,自己调试代码,最后解决。

其他

Q1你有什么其他的问题吗?

针对面试情况,合理提出自己的疑问,但不要提出类似:我能过复试吗?这种肯定不会告诉你答案的问题。

Q2有联系过导师吗?对他的论文有什么了解?

有联系过导师。他主要是研究软件缺陷定位与修复的,我读过他的论文,其主要研究内容用各种抽象出的模型来定位软件中的缺陷或错误。其中印象较深的两篇文章是将深度学习和卷积神经网络应用于软件缺陷定位。

Q3在大学中,学习时间占比?其他时间花在哪里了?

大学中,第一年没有找到学习的感觉,导致浪费了一年的时间,到后面几年,我逐渐找到了学习的乐趣,每天都能自觉学习。其他时间由于我对历史也很感兴趣,主要看看历史剧,记录片,培养自己的文化素养。偶尔也和同学玩玩游戏。

Q4看你简历还不错?为什么要考研?

我的简历其实也很一般,只是有个公司的实习经历。我考研的原因主要是,我认为在本科阶段,所学的内容比较广泛,但都不是很深入,而研究生会针对某个领域,进行深入学习,我比较喜欢这种能够成为某一领域内专家的感觉,加上我喜欢这个专业,喜欢这个专业给我带来的创造感,所以我想要考研,进一步学习。

Q4兴趣爱好

看纪录片、历史剧,喜欢历史。还喜欢玩魔方。

补充:

六级

483

大学成绩

3.19 排名40% (太辣鸡了。。。)

研究生感兴趣的方向

机器学习、大数据、测试自动化

自我介绍

中文自我介绍

根据自己的实际情况,说出自己的特点。用特点+实际做的事+做事效果 的句式更佳,如动手能力比较强,对于大学课程中的实验 ,例如操作系统的实验、大数据平台搭建我都能按照自己的想法进行实现,并取得不错的效果。

英语自我介绍

根据自己的实际情况介绍。

后续问题收集

Q1大数据现在的痛点

我认为,大数据现在存在的问题有:

  1. 数据来源。大数据自然需要海量数据来支撑,但是数据并不是完全开放,比如政府的政务的数据不会公开,企业的用户信息也会成为企业重要的财富等。
  2. 数据安全。大量数据必定涉及大量用户的各种信息,各种数据中又含有大量有价值的信息,导致不怀好意的人使用各种手段对数据进行窃取。
  3. 数据存储。存储海量数据,要求在数据存储技术上的更新升级,

Q2指针和引用的区别

  • 指针是一个地址,引用是一个别名
  • 通过指针指向的地址,可以找到对应的内存中的内容。这个地址是一个数值,可以为空指针。但是引用是一个变量或对象的别名,不能为空。
  • 所以引用在创建时必须初始化,而指针不用。

Q3估计一下本科期间代码行数

Q4线性回归和非线性回归、逻辑回归的概念、区别

Q5大数据中信息泄露的原因可能有哪些?

  • 基础设施故障
  • 数据处理不规范:比如没有加密等
  • 人为操作不当
  • 数据监管不足
  • 黑客攻击

Q6new开辟的空间在哪里

堆。

Q7广义表和线性表的区别

广义表是线性表的推广,是由零个或多个元素组成的有限序列。

线性表的成分都是结构上不可分的单个数据元素,广义表里面的数据元素可以有单个数据元素,也可以是其他有结构的表。

Q8软件工程与人工智能的区别

首先说一下概念:软件工程是什么,人工智能是什么

然后我认为,使用机器学习实现人工智能,也要遵循软件工程的基本思想。在科学的、可量化的条件下,开发与人工智能有关的软件,才能使

Q9了解大数据概念吗?

大数据通常具有的特点是数据量大、数据类型多样、数据价值密度较低、时效性要求较高。使用常规化手段无法存储、处理这些数据,需要新的处理模式来面对这样的海量信息。

我认为大数据与数据仓库和数据挖掘相联系。数据仓库是指面向主题的,集成的,随时间不断变化的数据集合。而数据挖掘是从这种大量的数据集合中,提取出对我们有价值的信息。

在大数据工程导论这门课上,我配置了Hadoop分布式集群,并使用Eclipse运行了MapReduce项目,让我真实感受到了处理大数据的一种方法。

Q10反向传播思想

BP算法的基本思想是,学习过程由信号的正向传播与误差反向传播两个过程组成。正向传播时,输入样本从输入层传入,经过各隐层逐层处理后,传向输出层。若输出层的实际输出与期望输出不符,则转入误差的反向传播阶段。误差反向传播是将输出误差以某种形式通过隐层向输入层逐层反传,并将误差分摊给各层的所有单元,从而获得各层的误差信号,此误差信号即作为修正单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程周而复始的进行,权值不断调整的过程,也就是网络学习训练的过程,此过程一直进行到网络输出的误差减少到可接受的程度,或进行到预先设定的学习次数为止。——摘自百度百科。但希望大家有自己的理解,这种问题被问到的概率也不大。

Q11The definition of machine learning

根据自己的理解说即可,用英语。

Q12The definition of big data

根据自己的理解说即可,用英语。

Q13算法的五个特性

见专业课准备。

Q14堆和栈的区别

待更新

Q15栈和线性表的区别

待更新

Q16密码学中有哪两大类加密方式

待更新