面试过程和内容:
1) 考官先自我介绍,然后要求你自我介绍
2)问:为什么去德国读书?
答:东西方教育体系差异很大,想了解西方教育体系,选择德国是因为对德国文化特别感兴趣。
问: 问什么对德国文化特别感兴趣?
答: 对哲学感兴趣,而德国有很多哲学家。
问:去德国后想到哪里读书?
答:帕德博恩。
问:是想住学生公寓还是租房子?
答:没考虑。
问:对你在德国的花费有什么计划?
答:大概500欧一个月。
问:去德国读书需要修德语,你是否已经开始学习德语?
答:已经学了三个月了。
问:是否还会继续学?
答:在国内在学半年,到德国再学一年。
3)问:你是学的计算机科学?
答:是
问:你学多长时间了?
答:第四年了。
问:那你是大四的学生了,是否已经开始做毕业设计了?
答:是的,不过我刚刚开始,只是选定了题目。
问:你的论文题目是什么?
答:一个博弈机器(Game Robot)关于一种……(被打断)
问:一个 Robot? 它是什么? (用手比划)一个能够moving的Robot吗?
答:不,它只是一个program,playing a Chinese card game with……(被打断)
问:card game,那它就不能move 了。
答:是,它只是一个打扑克牌的program。
停顿……(面试官询问记录官,刚才是否记录了关于move的内容,记录官回答没有,只是记录了Game Robot,Card Game),恢复面试
问:那他是关于人工智能的了?
答:是。
问:让我们来看看你的笔试部分,第一题。。。正确。。。那么你能说明一下信息是怎样在网络中传输的吗?
答:你是让我介绍网络的分层模型吗?
问:是。
答:那我将要介绍一个五层网络模型……(被打断)
问:不是七层模型吗?
答:你说的是OSI 模型,但它太复杂而变得无用,我们课本用了一个五层模型。
问:太复杂,为什么?
答:我不知道,课本上只是用了几句话描述它。
问:那你知道少了那两层吗?
答:知道,session layer and representation layer。
问:然后介绍一下各层的作用。
答:我将从最下面开始,第一是物理层,他负责透明传送比特,第二是数据链路层,它负责Framing the IP packet assembly……(打断)
问:什么叫Framing?
答:Framing 是说将IP packet 分成一个个的片。
问:什么是 IP packet ?
答:你知道,当一个应用程序想要通信时,信息首先会被分成片,一片就是一个IP packet。
问:一个 IP 数据报包含几部分?
答:几部分,我不知道。
问:是四部分,或者六部分。(在纸上画了一个长方形条,然后分成四部分)如果说这是个IP数据报,你能解释个部分的含义吗?
答:第一部分:源IP地址加端口, 第二部分:目的IP地址加端口,。。。嗯,第四部分是传送的信息,第三部分我想不起来了。(现在想想第三部分应该是该IP数据报的各项控制信息)
问:OK,没关系,你刚才提到端口,那么端口是干什么的?
答:你知道,当两台计算机通信时,实际上是两个应用程序在通信,但网络并不知道是哪个应用程序在通信,网络只负责两台计算机的通信,但是当信息传送过来的时候,计算机必须知道是那个应用程序的信息,然后交给该应用程序,而端口号标识着应用程序。
问:你能举几个例子说明吗?
答:ftp:21,http:80, 想不起来了。
(好像答非所问,她又解释了半天,我也没听太懂她究竟要问啥)
问:那么信息是怎样交给应用程序的?
答:这个是由操作系统管理的。
问:操作系统是怎样管理的?
答:不知道,我没学过。
问:你知道TCP和UDP的区别吗?
答:TCP是可靠传输,UDP是不可靠传输。
问:可靠传输是什么意思?
答:可靠传输是说当你使用TCP传送数据时,能够保证接收方能够接收到数据。
问:你怎么保证接收方能够收到数据?
答:使用TCP传输时,没法送一个信息,发送方都要求接收方发送一个确认,以确定接收方收到了信息,否则他就会重发。
问:那么UDP呢,它就不管吗?
答:是的,UDP只管发送信息,而不管接收方是否收到了信息。
问:除了上面的例子(指ftp,http),你还能再举几个例子吗?
答:ftp, telnet,……(被打断)
问:你知道telnet是干什么的吗?
答:知道,是关于远程登录的。
问:那你会用吗?
答:不会,课本上就介绍了几句话。
问:所以你们只讲课本,没有实验课吗?
答:对。
问:OK,我们来看第二题,你选择了A,B,能解释一下各个选项的含义吗?
答:当然,我首先介绍封装性,封装性是说隐藏细节,这就是说当我们使用一个类的时候我们just need to know what he can do for us, but don't need to know how he could do that。
(面试官与记录官对望一眼,都没明白,我明白该用草纸了)
(我定义了一个class circle, 内置method draw()。
然后解释:当我们使用circle时,我们只需要知道调用draw()会在显示器上画出一个圆就够了,而不需要知道它怎样画的圆)
问:OK,I see。
答:现在我介绍继承性。继承性意味着 reuse data。
问:reuse data?
答:reuse code。当我们新定义一个类时,如果这个类在很大程度上与库中某个已经定义好的类很相似时,我们不需要重写所有代码,只需要声明这个新的类继承自库中的那个类就行了。
问:那么过程是否也可以reuse呢?
答:当然,在面向对象语言中,所有的东西都是对象,而过程是定义在对象中的,在对象中成为method。
问:让我们看一下你的成绩单,划定Object-Oriented Programming,介绍一下这门课你学了什么?
答:这门课我们学了C++语言。
问:你们还学过其他语言吗?
答:C,汇编。
问:你能介绍下汇编和C++的不同吗?
答:阿,它们是完全不相同的语言,汇编是低级语言,C++是高级语言……(打断)
问:什么是高级语言?
答:高级语言意味着编程更方便……(打断)
问:为什么编程更方便?
答:因为高级语言会通过编译器翻译成低级语言……(打断)
问:什么是编译器?
答:编译器是一个将高级语言翻译成低级语言的软件。
问:那它是怎样工作的?
答:编译器的工作可以划分为五个部分,第一:词法分析;第二:语法分析;第三:语义分析和中间代码产生;第四:优化…… (打断)
问:(指着笔试卷)让我们来看一下第三题。
答:后两题我都找不到答案。(第三题实际上是把上面三个选项标上记号,真正的选项是上面三个答案的组合,四个选项中没有我认为对的组合项第四题给的四个选项的i值我都认为不对)
问:为什么?
答:我的答案与四个选项都不对。
问:我们想看第三题,什么是一个最小堆。
答:最小堆是指最小的元素总是放在根中,但是对于最大元素在哪我们一点儿也不知道。一个堆实际上是一棵树…… (打断)
问:一棵树,那么它与树有什么不同呢?
答:堆总是组织在一片连续存储的空间中。
问:什么是数组?
答:数组是序列分配的一片连续存储空间。
问:那么什么是一棵平衡树?
答:平衡是说对于整棵树或者起任何一棵子树,其左右子树的深度差值不能超过1。
问:(和记录官对看一眼,没听懂,好像上面那个长句子我说的有点乱)那么你能稍微解释一下吗,或者使用演草纸。
答:(花了一棵平衡树)这棵树的左右子树深度差值小于1,因此是一棵平衡树;(又画了一棵非平衡树)这棵树的右子树深度为一,左子树的深度为三,差值大于一,因此是非平衡树。
问:现在我想我们可以结束了,两星期后我们会通知你面试的结果,请你耐心等待。