公务员期刊网 论文中心 正文

研究生编程能力培养的思考和实践

研究生编程能力培养的思考和实践

摘要:针对普通高校计算机专业研究生编程能力普遍较差且水平参差不齐等问题,分析问题产生的原因,提出以面向对象技术课程为基础,采用分类教学并更新教学内容,使课程内容更符合课题研究需要和企业软件开发的实际需要,并通过实践教学提升研究生的编程能力。

关键词:面向对象技术;编程能力;计算机专业;案例教学

0引言

随着云计算、大数据、物联网、移动互联网和人工智能的快速发展,社会对掌握相关技术的从业人员的需求越来越大,同时,对从业人员需要的技能要求也越来越高。然而,计算机技术蓬勃发展的同时也带来编程技术和编程语言的日新月异,更新换代极快,导致编程技术越来越多、越来越复杂,这就要求研究生紧跟时展,掌握最新的编程技术。计算机专业研究生的研究课题大部分是面向实际应用的算法研究,在提出或改进算法的同时,必须编程实现该算法,以验证所提算法的正确性和优越性。因此,编程能力对于研究生两年多的课题研究也至关重要。然而,目前普通高校计算机专业研究生的编程能力普遍较差,分析原因主要包括:①很多学生从三本院校考来或由其他非计算机类专业调剂过来,原有的编程基础较差,没有掌握基本的编程思维和方法,无法满足未来学习和工作需要;②很多学生为了考研,在本科阶段只注重考研理论课程的学习,缺少编程训练和实践。此外,不同研究生的研究方向、兴趣点和熟悉的编程语言各不相同[1]。因此,如何合理安排教学,提高普通高校计算机专业研究生的整体编程能力至关重要。面向对象技术是目前计算机相关行业使用最广泛的编程技术,很多最新的编程框架都是以面向对象技术为基础[2-3],面向对象技术也是计算机专业研究生阶段所开设的与编程最密切相关的一门课程,因此,通过面向对象技术课程建设,提高普通高校计算机专业研究生的编程能力,是一种很好的选择。

1课程改革建设内容

1)开展分类教学。普通高校计算机专业研究生的编程能力普遍不强,而且存在较大差异,有一部分学生的编程基础较好,而个别学生编程能力很差,几乎是零基础。目前一门研究生课程的课时为32课时,无法在有限的时间内兼顾各类学生的个体差异。有的学生反映,由于基础差,原有的讲课内容不好理解;而有的学生则反映讲课内容应该多讲实际案例和最新的编程技术。为了提高研究生的整体编程能力,有必要开展分类教学。教师可以将课程内容分为课堂讲授和课下自学两部分,解决课时不足和学生个体差异的问题。课堂讲授内容是要求大部分学生能掌握的编程技术。课下自学部分主要针对学生基础和个体能力不同的特点,开展高低层次学习:①将最基础的编程技术课件、视频和学习资料放到课程教学平台上,要求编程基础差的学生利用课后时间按照计划提前自学;②将最新的编程技术学习资料放到课程教学平台,供学习能力强的学生课后自主选择学习。2)更新教学内容,紧跟最新编程技术发展。面向对象技术经过多年的发展,已经产生了许多新的技术和方法。虽然这些年也在不断更新教学内容,但远远跟不上技术的发展速度。因此,有必要对授课内容进行梳理,除了讲授面向对象基本分析方法和编程技术,还有必要针对目前流行的Web开发框架、手机App开发和微信小程序开发,讲授相关的编程知识,提高学生对新技术的了解,掌握使用新技术的编程能力。3)探索新的课程考核模式。虽然除了采用传统的笔试外,还可以通过课程作业的方式考查学生的学习情况,但整体上还存在无法真正度量学生编程能力、考核不及时的问题。因此,有必要探索新的考核模式,探索“定期交流汇报—实践过程监督—最后答辩汇报”的考核新模式。通过交流汇报不仅了解学生的学习情况,而且可以增强学生间的学习。通过中间实践环节文档和编程结果的审核考察学生的学习情况,及时发现问题,从而可以有针对性地对学生进行辅导。最后要求学生就所做的课程实践内容进行答辩汇报,既考核了学生的实际编程能力,又锻炼了学生的上台汇报课题能力。4)以实际项目开发需求为导向,以提高实际编程能力为目标,通过案例教学[4],提高研究生的编程实践能力。编程能力的提高要靠实际项目训练,因此有必要在课程的内容设置上,以企事业单位的实际项目为案例,采用最新的面向对象技术,传授最新的编程技术(web开发框架、手机App开发、微信小程序开发、EChart可视化技术等技术),通过编程实现实际项目的一部分功能,锻炼学生的分析能力和实际编程技能。通过对比分析实际可运行系统和自己编程实现系统之间的差异,学生能真正体会如何进行系统分析与设计、编写好的程序代码,从而找出自己不足,提高编程能力。5)建设课程的在线学习和分享平台,实现课程自学和编程技术的开放共享。根据课程的实际需求,开发设计课程在线学习和分享平台。首先,可以将提前准备的课件和视频资料放到平台上,供学生在线自学;其次,实现一些资源分享,包括最新技术介绍、优秀代码分享、历届研究生课程作品展示等。

2实施方案

2.1课程结构安排

课程结构安排的主导思想是通过减少理论授课学时、增加实践环节,提高学生的系统设计与编程能力,而且实践环节选择的内容应该是最近大家比较熟悉、比较热门、可以采用最新技术实现、学好后能够推广应用的课题,从而让学生有兴趣投入精力学习。笔者在有限的32学时内,安排讲授18学时、案例编程实践12学时、课程考核2学时,其中讲授内容又分为基本理论教学10学时和实际编程技术教学8学时;另外安排22学时的自学内容,其中简单内容8学时、高级内容8学时、案例自学6学时。课程教授和实践内容以目前主流的Web开发为主,以手机App、微信小程序开发为辅。案例编程实践安排3个内容,其中第1个案例为简单案例,所有学生必须学会,占用2学时(多余任务由学生课余时间完成);第2个案例为基本案例,完成一个相对完整的简单系统,所有学生能够基本掌握,为中等难度案例,占用10学时;第3个案例为较复杂案例,作为自选任务,鼓励部分学生完成,占用8学时。

2.2讲授内容安排

在课程讲授的18课时安排上,内容主要包括课程概述、软件编程技术发展、面向对象概况和核心概念、面向对象基本思维模式和分析方法、简单多层框架开发模式、MVC模式、SSM(Spring+SpringMVC+MyBatis)框架,以及结合MVC框架需要的基本编程技术。在讲授内容的间隙,要求学生自学一些内容,同时安排案例教学内容,保证理论教学和实践的交叉进行。

2.3自学内容安排

在自学内容安排上,首先面向原来基础较差的学生安排8学时的简单内容,包括Java集成开发环境、调试和部署,面向对象基本语法,前端开发技术JS的基本概念语法等;其次面向编程能力水平较高、学有余力的学生安排8学时较复杂内容,包括EChart可视化技术、App应用开发、微信小程序开发以及手机App和微信小程序应用实践学习。

2.4课程考核模式研究

整体考核分为两个部分:笔试(50%)和案例实践完成情况(50%)。笔试主要考核学生对基本概念、技术的掌握以及对整体项目设计思路的掌握能力,分为填空题、选择或者判断题、简答题、设计题、论述题。案例实践考核又分为3个部分:简单案例1(20%)、基本案例2(30%)和复杂加分案例(10%)。简单案例1是一个基本的实践要求,要求学生必须完成,安排在课程中期,主要目的是通过中期的简单案例,了解各个学生对知识的掌握程度以及设计编程能力,从而督促学生进一步学习,指明学习方向,同时适当调整后续课程内容。学生在规定期限完成案例后,教师逐个检查并打分。基本案例2是一个真正培养学生编程能力的案例,要求学生基于基本需求,扩展内容,设计程序框架,并编程实现一个功能相对完整的系统。学生上交项目文档和源代码,并到讲台进行汇报,汇报项目的主要功能、实现的技术特点、项目的心得体会等。教师对每个项目进行点评,指出优点和不足供全班同学学习与讨论,学生也可以针对项目提问题,鼓励学生相互之间交换代码学习。教师根据汇报情况和项目资料进行打分。复杂加分案例是在基本案例2的基础上,提出更多更难的功能要求,鼓励学有余力的学生完成,根据完成情况加分(0~10分),但加分后总分不超过100分。整体上采用实践过程监督(简单案例1)和最后案例汇报(基本案例2)来考核学生的实际编程能力和上台汇报能力,鼓励学有余力的学生完成更多的实践任务,鼓励学生相互之间学习。

3结语

本文的教学方法改革已经在天津工业大学实行。从最终的实施情况来看,大部分研究生的编程能力得到较大提高,都能做出一个较为完整的应用系统,取得了较好的教学效果。

参考文献:

[1]曹佳.综合实验为驱动的教学法在研究生网络编程类课程中的应用[J].计算机教育,2016(5):44-47.

[2]廖湖声.面向对象程序设计课程的教学改革探讨[J].计算机教育,2016(3):99-102.

[3]阿不来提•吉力力,艾则孜•阿不都艾尼.“项目驱动教学法”在面向对象程序实践课程中的应用[J].电脑知识与技术,2016(3):113-114.

[4]苏春燕.“面向对象的软件系统分析与设计”课程案例教学设计初探[J].工业与信息化教育,2015(9):60-65.

作者:柯永振 王瑞昆 杨帅 单位:天津工业大学计算机科学与软件学院