研究生期间陆续帮一些老师带了一些本科生的课或者课程设计,今年也帮老师带了几十个学生的毕业设计,参与了毕业设计的检查和验收,因而有机会接触了更多的同学,也从很多更为优秀的同学那里学习到了很多东西。可能和很多老师不一样,本身我也是学生,从学生的视角可能有一些特别的看法。最近负责了通信专业计算机通信网这门课程的课程设计,刚好结合前面的一些心得体会,以这个课程设计的一些数据和经历,系统的总结下,之所以写这些,是希望我们能够关注些成绩之外的东西。
关于课程设计
很多同学特别喜欢课程设计,因为觉得这完全就是一门送分的课程,两三个人一组,做个小设计,多数情况下网上都能找到近似的代码,同学之间也可以互相参考,课程设计报告更是不用说,之前本科的时候宿舍同学把别人的文档拿过来改个名字就交上去的也有很多,甚至很多学习非常好的同学,也是在应付。无论是课程设计还是毕业设计,目前最大的问题在于大家过分追求成绩,而不注重学习的过程,本质上还是过强的功利心,于是在这两三年中就出现了某一届的优秀毕业生代表最后毕业设计做的是上下位机的数据采集,却在验收的时候不知道串口波特率;一位保送研究生,同时也是学生会干部的同学在验收的时候向我要代码去演示,自己却压根什么都没做。成绩只是非常小的一部分,恰恰却成了很多同学唯一的追求。
无论课程设计还是毕业设计,所学的东西不在于做的内容本身,更多的是一种思维方式、学习方法的锻炼。很多同学还依赖于上课学了什么,才能够去做什么,自己要做的一定要别人先教。而如果没有这些实践,很多人的看法可能永远都不会改变。因此通过课程设计或者毕业设计,或者一个比赛、活动、项目,面对一个陌生的事情,短时间内去学习,去寻找解决方法,去解决问题,去找出错误,去提升和优化,这个过程本身就是非常好的学习和锻炼,至于做的内容和结果,反而是次要的。
关于态度
对自己负责
这次课程设计就遇到了些难以理解的事情,几个同学没有验收,也没有交实验报告,通过其他同学联系上后就有了下面这样让人难以理解的对话:
和其中一位同学的电话:
我:你知不知道你选了这门课,需要做课程设计交实验报告?
对方:知道。
我:这是不是你们的必修课啊?
对方:是的。
我:那你什么都没交,这个直接算缺考的。为什么没验收,也没交报告?
对方:我们的课程设计太多了,有数据库……(此处省略一堆解释)。
我:那你课程设计多这个就不做了?
对方:那我现在交行不行?
我:别人都做了一个星期的课程设计,你现在怎么交,交什么?
对于这位同学反正我是无力吐槽了,之前在动员会的时候我就表态过,只要做了肯定不会挂科,而且我也是学生,学生不会为难学生,而这几个同学对自己不负责的做法,实在让我难以理解。对自己负责,这是最基本的要求。
是态度,是责任,更是实力
去年带毕业设计的时候,开会讨论选题,题目本身有难易,有偏重,慎重的做法是根据自己的兴趣是水平,选择合适的题目,很多同学选题的时候我告诉他,你选某一题可能相对要难很多,另外一题可能更适合,两位同学当时就表态:没关系,就要有挑战。这一表态让老师很高兴,对他们很赞赏。然而在后面做的时候,他们所做的却与他们的表态大相径庭,这两个同学恰恰是做的最差的两位,基本上什么都没有做,最后应付毕业也只是东凑西凑弄了点皮毛的东西,其中一位同学的论文还被我整理出来作为反面的代表(点击查看),很多时候我们都喜欢逞口头之快,但是无论是承诺还是表态,不光是一种态度,更需要的是责任和实力,在生活中,在朋友之间,在恋人之间同样如此。
表现自己,但是不要贬低别人
在课程设计验收的时候,经常能够遇到这样的同学,一直在强调自己做的不够好,是因为自己是踏实做的,别的同学都是拷贝或者网上下载的代码,都是互相抄的。虽然他所强调的是事实,但是在自己的小圈子中这样的方式并不可取。
注重细节
就像上面那个说别人都是抄的,他完全是自己做的那位同学,我让他打开大的工程文件夹,只需要看一个细节便可验证他说的话,如下图(图是截图我自己电脑的):
这就是一个非常简单的细节问题,如果真是如那位同学所说“完全是自己做的”那么除了一些引用文件,无论是工程还是涉及到具体功能实现源文件,多数文件的修改日期应该是最近,debug这种编译生成的文件夹的修改日期更应该是最近时间,所以验收的时候让很多同学打开工程文件夹,看看一些文件的修改日期。虽说这并不是什么高明的手段,也可以很容易躲过去,但是却是绝大多数人都会忽略的一个细节。
细节也能够体现一个人的态度,很多同学基本的细节都做的不完善,遇到一个同学,窗体上只有几个文本框,按钮也没有重命名,简单的加个label说明下文本框的内容,给按钮改个名称说明下功能这种简单的操作都懒得做,有怎么能体现认真。
有的同学虽然做了,但是窗口控件却堆积在一侧,窗体大面积空白,或者控件压根没有排列和对齐。还有的同学为了体现个性,为窗体添加背景,那背景图片的大小和比例就应该跟窗体相符,或者设置为平铺等方式,很多同学不是选择了花哨的图片,就是图片放上去显得非常别扭,整体不协调,这些并不是什么技术问题,很多细节在我们平时用电脑,用软件的时候都能观察的到,因此反映的就是我们平时用不用心,是否注重细节的问题。很多时候细节决定一切!
罗丹说过,“生活中不是缺少美,而是缺少发现美的眼睛”,对于细节也是一样,对细节的关注,在意识上很难控制,是需要锻炼和培养的,而锻炼和培养的方法,就是平时对自己有高要求,做任何事情就尽力去的更好,完美达不到,但是可以及时总结,一次做的比一次更好。
计算机通信网课程设计
关于课题
这次课程设计张学武老师给的题目范围很宽,串口、TCP、UDP随便组合随便做,做成什么样也完全靠自己发挥,完全没有条条框框的硬性要求,因此问题就来了,很多同学觉得无法选题,无从下手。习惯了老师提出1234几点要求,学生挨个去实现的,遇到这样的自由度很多同学觉得茫然。在选题上,三个题目可以选一个,也可以任意组合甚至全选,从课程设计本身来说区别并不大,然而很多同学却又患得患失,选了一个觉得自己做不深没有高分,选了三个又怕做不完,反而进退两难。
关于验收
很多同学做网络通信,做的是服务器和客户端,竟然不知道先开服务器打开端口侦听然后开客户端,服务器都没运行就弄个客户端在那儿连接。你问他他还胸有成竹的说先开那个都无所谓,没关系的。相当多的同学不清楚局域网的概念,有的甚至连IP地址都不清楚,填写IP都能填写一个超过255的数出来。一个通信专业的学生如果这些都没概念,真的很难想象。
实验报告案例分析
这次的实验报告,没有像以往那样交篇论文,而是让大家写自己在做的过程中遇到的问题,并且推荐手写,为的就是提升复制成本,反应真实水平。下面是挑选的一些同学实验报告,扫描出来做一个对比和点评。
实验过程中遇到的问题
实验报告要求写出在调试中遇到的问题以及解决方法等,首先是关于遇到的问题描述,如下图所示:
图1和图2代表了关于这个问题的两个方面,图1中描述的问题不是特别详细,但是问题表述较为具体,而且对问题有一定的探索和尝试,相反图2中的问题表述很难看得出来这个同学真正去做了这个课程设计,问题描述笼统,缺乏认识和探索。
还有一种类型是像下面的同学这样,如下图所示:
无论是在问题描述还是在如何解决问题等内容中,该同学始终在强调一点:没学过,不了解,基础差,做的很头疼。在这里的表述中可以适当叙述下自己的学习过程,但是如果通篇都是吐槽和抱怨则很难让人产生好感,过分强调客观原因却不找自己的主观因素这样同学也很难得到别人的认可。即使因为客观原因做的不够好,能对自己当前水平和所做的工作有理性的认识和分析,并能够发现自己的不足和有合理的规划,一样能够得到认可。
实验过程中如何解决遇到的问题
遇到问题和解决问题最能够体现具体做的如何,仍然看下几个例子:
图4对应上面的图1,这位同学详细描述了解决问题的过程和方法,例如“在CSDN上请教”“由于线程竞争问题导致数据处理异常”,“开了一个数据域用来缓存数据从而解决了这个异常”,问题表述流程完成,怎样来解决问题,问题的原因、解决问题的方法,每一条都有详细的描述。
图5中的同学描述了解决问题的方法,还说明了该方法的缺点,对所用的方法有基本的认识。
相反在看看其他同学。
图6中这位同学描述了具体的方法,但是描述的都是过于基本的问题,IP地址配置,端口号范围问题,这些问题都提出来会让人感觉你做的不深入或者压根没有认真做。
实验改进与发挥
在实验发挥与改进部分,上面两位同学对所做的内容有基本的认识,明白功能缺陷和原因,并且清楚改进的方法和思路,还给出了问题的解决方案。相比之下很多同学就写的很模糊笼统。