校风云培训学校管理系统
您所在的位置: 培训学校管理系统 > > 培训学校咨讯> 本科生导师制在计算机类学生实践教学中的探索研究

本科生导师制在计算机类学生实践教学中的探索研究

  2017-08-06   来源:培训学校管理系统 

  本科生导师制有利于提高学生学习质量,加快成才。相较其他专业而言,计算机类学生更加迫切需要进行专业实践,因此,从指导教师的视角出发,总结对计算机类学生的项目组织能力、项目开发的实践能力、技术培训等方面的指导与培养实践的经验,提出地方高校培养IT创新人才的实践教学一些行之有效的方法,具有相当的价值与意义。

  以学生为本,尊重学生的个性选择,在大学本科教育阶段施行导师制,能够提高学生学习的质量,有利于促进学风,有利于创新人才的培养。在国内外的一流大学与地方高校,都取得了很好的效果[1-3]。本世纪初,国内就针对本科生导师制的制度展开了研究,并取得了较好的成果[4-6]。研究者也从具体专业的本科生指导方面进行了探索,找出了问题,并指出了可能解决的方向[4][7]。

  计算机专业课程体系庞大,在有限的本科教学时间内,课程教学只能帮助学生搭建学科的基本理论框架。相较其他专业而言,计算机类学生需要自己花费更多的时间进行专业实践学习。但是,学生刚进入计算机学科学习,对学科并没有系统与全面的认识,自学就有可能事倍功半,缺乏系统性。这时如果有教师针对学生的兴趣进行适当引导与培养,则学生的成才速度将加快。如果有运行良好的本科生导师制,使得学生能够参与到导师的研究项目中,进行各种实践能力的培养以及掌握专业前沿知识,将有助于创新性人才的培养。

  本文写作的动机主要为:当前关于本科生导师制的论文,主要从管理者角度进行思考与讨论,本文从一个本科生指导教师的视角,根据在湖南科技大学计算机科学与工程学院的实践进行分析与阐述。同时,就计算机类本科生导师制的具体实践过程中采取的一些行之有效的方法进行讨论,希望能给相关同仁有一定借鉴意义。

  1 计算机类本科生现状

  经过多年的教学实践发现,当前计算机类的本科生存在以下问题:

  一是教学与实践脱节。存在一些所谓高分低能的现象,成绩好的同学注重基础理论的学习,忽视编程能力的实践。而一些编程能力强的学生成绩较差,却找到了理想的工作。因此部分学生认为,只要编程能力强,学习成绩无所谓,对学风影响较大。

  二是自主学习缺乏系统性。本科生在学习过程中,由于尚未建立起整个学科的框架。自主学习容易没有章法,难以形成体系。因此花费了大量的时间成本收效甚微,并由此认为自己缺乏计算机天赋而放弃专业学习。实际上这是由于计算机学科庞大,自主学习没有抓住重点。譬如,学习C/S开发尚未完全入门,听说Web前端前景好,又匆忙转入,而Web前端又有诸多HTML语法、CSS、前端库等等,或者发现前端难度,然后又转向游戏开发等等。在指导实践中,发现许多造成学生放弃的难点只需要教师稍微指导就可以逾越。

  三是缺乏项目组织与团队协作经验。大部分计算机本科生都在认真学习编程。但是由于对项目任务分解、分工完全没有经验,也没有认识到重要性。通常是团队中的开发依靠一两个学生完成。其他学生没有任务指派,得不到锻炼。而完成全部或大部分工作的学生则对协调项目进度、团队的沟通、项目的协作缺乏体验。

  2 本科生导师制的基本运行制度

  笔者已从2013年开始在湖南科技大学计算机科学与工程学院作为导师指导大二、大三的本科生进行学习与项目的实践。在近4年的实践中形成了一套较为有效的制度与方法。

  2.1 师生的双向选择

  学生对教师的选择,主要基于教师介绍的培养方向以及自己的兴趣进行申请。教师需要通过对学生的选择,来促使学风进一步向诚实、热爱学习方面转变。

  教师对学生的选择,需要以学生的成绩为主。在实践中,许多指导教师首选编程能力,而忽视了学生的成绩。成绩好的学生忙于基础理论的学习,忽视了编程能力的实践。而部分学生对编程序兴趣浓厚,勤于实践,编程能力较强,不注重理论学习。但这部分学生在找工作时反而能找到较好工作,却由于理论基础较差发展后劲不足。但是毕业时他们能找到较好的工作,形成了示范。使得相当部分学生认为专业学习并不重要,重要的是写代码、编程序,对学风带来了不好的影响。因此,我们在选择学生的时候只选择学习成绩好的学生。其实成绩好,意味着自主学习的意愿高,并且计算机专业学生只要掌握基本程序设计语言,在教师指导下能迅速提高编程能力。

  其次,教师对学生的选择,还需要考虑品行。有些学生表现出来的优秀并不符合事实,他们的成绩并不诚实,但是由于种种原因并没有得到惩罚。许多学生也曾经发出疑问,这样也行?我们在选择学生的时候,明确这样的学生不在考虑范围内。帮助促进学风更进一步好转。

  2.2 师生比的确定

  丁林通过对国内外本科生导师制的调研,认为合适的生师比是每位教师指导的本科生在5~10人之间[8]。笔者认为计算机类本科生指导,每个教师指导学生在20~60人,效果也不错。从2013~2017年来,本文作者指导学生有5~6人的团队,也有30~50人的规模。实践过程中发现,计算机类本科生指导组以项目为导向,一个教师指导5~6人,虽然轻松,但是失败的几率较大。因为学生的兴趣容易变化,有时候新的热点技术或其他方向的诱惑,或者是畏难的心理作用下,就会退出指导小组。特别是小组中较为核心的一两个学生退出后,就面临着解散或重组。

  本文作者的指导组在30~50人规模,虽然先后因考研提前复习、兴趣转移退出了4个编程能力强的学生,但是指导组运作一直良好,项目进展顺利,学生学习兴趣高涨。特别是在人数规模大的时候,可以进行一些复杂的、高难度的项目,更容易让学生得到锻炼。但是,在人数规模大的时候,需要指导老师具备指导项目群的能力。同时需要注意本科生组需要有梯度。目前笔者在2016年11月开始组建的本科生指导组中,14级本科生有23名,15级本科生20名,16级预备组员15名。

  2.3 指导的运行制度

  整个本科生指导采用IT项目引导,技术培训相辅助的形式。每周固定了一个晚上,全体学生参加,用来作项目工作安排、进度汇报,以及技术讲座。同时,再根据项目需要辅助不定时、不确定人数的难题解决讨论与协调临时会议。

  3 IT项目为导向的人才培养实践

  牛津大学的本科生导师制非常成功,原因主要为:关注学生的个体价值与发展、师生双方相互依赖与合作以及对待知识的独特态度[9]。在实践过程中,我们参考牛津大学的经验,并从计算机类本科生的现状出发,结合教师的科研,决定以项目为抓手来组织本科生指导。在43名正式本科生的大型指导组里面,围绕着大数据舆情分析与电子商务分析的大型项目开展,并在此基础上形成项目群。 对学生进行项目组织能力、项目实践能力、技术培训实践培养。

  3.1项目组织能力培养

  学生虽然参与不同的社团以及从社会活动中获得一些组织能力的培养,但是项目的管理有其特殊性。在这方面如果能够得到一定的训练,能让学生在以后职业生涯中走的更远。因此,在本科生组需要进行技术分组,让学生担当技术负责人获取经验。

  在本科生组里面,笔者设置了前端组、后端组、算法组、品类分析爬虫组、口碑分析爬虫组、部署组、业务场景规划组。每一个学生同时隶属于不同的小组,当有一定的经验后,就担当小组长或本小组方向的新项目的负责人。然后就在教师的指导下进行所负责项目的任务分解与分配、进度的安排与调整、小组内部成员激励、小组成员技术问题的解决等。当组织管理出现问题时,教师需要及时进行指导与干预。在目前43名本科生中,受到技术主管训练、并带领组内成员完成项目的学生已有12人。

  3.2 项目实践能力

  3.2.1培养学生对项目全流程的整体观与经验

  对于本科生指导组而言,提高学生实践能力,特别针对计算机类学生来说,培养全栈式程序员,使学生具备CTO或CIO的能力,非常必要。对于学生而言,毕业后进入软件企业,将被分配到项目的各个模块小组中。基于项目保密与技术保密的原因基本上看不到项目的全貌,只能了解与自己相关的一两个模块的内容,很难培养出项目全局的整体观念,获得整体的经验,难以形成自己的架构。因此,我们并不是按通常的层级管理方法——组织各技术小组组长会议,然后组长向成员传达与安排来实现。而是始终坚持在项目需求、设计、开发、测试与部署整个过程中以会议与文档的形式,面向全体学生公开,并辅助教师的讲解。

  3.2.2培养学生的程序编写能力

  计算机类本科生目前大部分都有一个需要提升编程能力的认知。对编程极为重视,但是却往往找不到有效提升能力的方法。他们常常是找来厚厚的《Java宝典》《Python开发实践》等书认真学习,但是这些书内容丰富,花费了大量时间阅读后却没有写几行有效的代码。然后归咎于自己缺乏编程天赋,对自己信心不足。但实际只要学习过基本的程序设计语言,就具备了编程能力。他们缺乏的是如何实现项目代码的能力,也就是如何将自己零散的代码组织成一个具体的项目。

  在我们指导的本科生中,大部分在进指导组以前并不认为自己是编程高手。但是经过实践,成长的都很快。我们主要是通过以下的方法来迅速提高学生的编程能力:

  一是用具体的项目让学生在学习编程的时候对要学习的内容有明确的方向感,并据此形成自己的相应知识体系与编程模式。

  二是对于编程的技术难点,提前组织能力稍强的同学攻关。在这个过程中教师予以详细指导,并且当学生碰到实在难以解决的问题,教师就请在该方向有成就的已毕业学生做相关技术讲座、写详细的技术博客帮助学生快速掌握。

  三是由于本科生指导组内学生分为多个有联系的不同小组,通过各小组代码共享与讲解,使得学生能同时掌握不同方向的程序编写。

  在此基础上,只用了6个月的时间,学生就完成20个知名网站的爬虫代码的编写,设计并完成了网络马甲识别、社区发现、话题发现、情感计算等10个算法,基本形成了算法库,同时完成了相应的网站设计、开发与部署,初步完成大数据分析的基本框架。

  3.2.3培养学生的文档写作能力

  在项目开发与管理过程中,需要用文档来沟通、协调与指挥不同的模块开发小组进行协同。而大学工科教育不开设写作课,大部分学生写的文档条理不清楚,缺乏逻辑性。目前从学生写的操作指南与规范来看,主要有以下问题:

  一是排版混乱、不美观。字体大小不一,行距不规范、不统一。同时,插入的表格、图片,没有表名与图名。文字中也没有相应表、图的引用。

  二是技术文档仍然像中学作文一样,没有章节号来区分,文章结构散乱。

  三是文字内容中各操作步骤不连贯,写作者将部分步骤缺省,默认大家都知道,但实际其他人并不清楚,造成操作可行性差。

  四是文字不注意推敲,歧义部分多,会造成理解的偏差,从而导致项目执行过程中偏离要解决问题的核心。

  根据上述问题,我们有针对的进行培训,首先按照《本科生毕业设计论文规范》要求学生进行排版,因为只有一份美观的文档才会有人愿意去阅读。其次,要求学生整理出项目操作流程图,然后按照流程图进行逻辑分组,以此组织章节与文档结构,力求简洁清晰。最后,教师对学生的文档进行修改,形成模板。目前,我们已组织学生写出下列文档《大数据品类分析数据建模规范》、《大数据口碑分析数据建模规范》、《大数据网络爬虫数据建模规范》、《XX验证码深度卷积神经网络图片训练集制作规范》、《中文分词、情感词本体以及情感计算计算补充词库建设操作规范》以及《网络爬虫开发规范》。并在此基础上协同指导组全体学生完成了上述任务。

  3.3 项目技术培训实践

  如果只单纯提高上述能力,学生的视野仍然较狭窄。因此,在每周的指导与项目任务分解、分配、进度汇报会议上,坚持进行技术的培训。实际工作中,许多技术人员就是通过技术讲座获得技术声誉,从而能更进一步。我们的技术培训实践,主要以学生为主体从以下四个方面展开。

  3.3.1 技术培训

  如果只是将学生召集起来进行项目开发,还不能完全称为本科生指导。必须要对学生进行技术培训。技术培训的讲师主要由学生自己担任。培训的主题以项目所涉及的范围进行。因为针对的就是项目开发中的技术难点,学生的积极性很高,掌握很快,并且培训的内容也成体系。

  3.3.2 技术宣讲能力培养

  技术声誉有相当一部分是依靠技术宣讲获取的,因此宣讲能力非常重要。在实践中,教师需要注意学生的PPT,力求美观大方。并在讲座过程中,针对学生PPT中的版面问题随时进行点评,帮助所有学生解决PPT制作中的问题。同时,对于学生讲解不清楚的地方,教师重新展开讲演,给学生示范如何将技术问题讲的逻辑清晰明了。虽然,不少学生在演讲方面不错,但是他们的经验主要在如何宣讲理想,因此注重的是憧憬大过实际。对如何讲好技术问题经验不足。通过培训,进步较快。

  3.3.3 向高级技术人员需具备的能力方面靠近

  对于计算机本科生指导来说,如果仅仅着眼于培养合格的工程师,还是有所欠缺的。因此,我们根据招聘网站中对高级技术岗位的要求,结合项目进行深入的培训,指导学生学习。在我们的项目中,学生通过实践与学习讲解了Hadoop、Hbase、Spark等大数据的基本工具的使用与开发。并抓住学生讲解过程中反应出来概念不清晰、技术掌握不到位的地方,进行分析进而指导学生进行深入的研究。

  3.3.4 技术博客的撰写

  技术博客也是提高IT技术人员在业界声誉的有效方法。因此,教师要求每一个同学讲解完后,写成博客。目前有部分比较优秀的学生在CSDN上发布了博客。但是,由于学生目前刚刚开始,技术与文字还比较稚嫩,因此本科生指导组开发了自己的博客系统。要求每一位学生技术讲解后发布在上面。这样积累下来也会成为成体系的学习资源。

  4 结语

  作为本科生指导制的指导教师,通过良好的组织与指导,只用了6个月时间,基本开发了大数据品类分析、口碑分析的基础平台,制定了大量的规范和技术文档的撰写。43名原来对自己编程能力信心不足,但有热情与激情的学生,能够开发项目,对项目开发的全过程以及相应的技术有了相当的了解。并且成长了12位可以作为项目小组长的技术人才。在此基础上,我们认为计算机类本科生导师制的指导教师需要有项目引领,如果项目小则人数控制在5~8位合适。如果项目大,指导教师在具备项目群管理能力下,20~60人比较合适。其次,在指导学生的选择的时候,要注意考虑成绩优秀,不必关注编程能力。然后,在指导过程中要注意学生的多种能力的培养,这样能让学生迅速成才,并且学习的知识成体系,能向高级人才转换。

本文由校风云培训学校管理系统责任编辑,如有转载,请注明来源,感谢您的支持!