结合计算思维的软件项目实训教学实践
2013-12-29吴梦麟
摘要:近年来随着我国外包产业的迅速发展,企业对高校软件人才需求日益增大。项目实训是高校软件人才培养的重要手段之一,然而程式化的培训流程制约了学生创造力的发展。该文通过在实训过程中引入计算思维,使学生在掌握规范性的开发流程的同时,提高自身的抽象能力和程序设计能力。
关键词:项目实训;计算思维;软件开发
中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2013)22-5103-02
软件外包指的是一些大型软件公司为了降低软件研发成本,将一些非核心的软件项目通过外包形式交由人力资源成本相对较低的国家的公司开发。随着中国内需市场增长和国内外外包行业合作加深,企业对具备相应和程序设计能力和开发经验的高校毕业生的需求日益增大。项目实训是高等院校针对企业需求定制培养软件人才的重要手段之一,然而过于程式化的实践性教学严重影响了学生自身的创造力和软件设计能力。该文通过在软件项目实训的过程中引入计算思维的思想,在开发过程中更加重视对学生程序的设计能力的培养。
1 计算思维的概念
计算思维的概念由美国卡内基·梅隆大学的周以真(Jeannette M. Wing)教授提出,指的是运用计算机科学的基础概念进行问题求解和系统设计,以及人类行为理解的涵盖计算机科学广度的一系列思维活动。计算思维的本质在于抽象,即如何将实际问题清晰、抽象的描述出来,并将问题的解决方案表示成一个信息处理的流程。对于计算机专业而言,随着计算机科学、技术与工程发展越发迅速,知识更新周期缩短,越来越多的编程语言和编程方式应用于实际工程,计算思维的抽象能力是软件人才必须具备的专业素质。传统的教学方式以知识的灌输和编程工具的使用为主,忽略了对学生计算思维的培养。当前信息社会需要的软件人才,既要能够熟练的掌握编程工具的使用,也要具备抽象化、结构化的软件设计能力。因此,在教学中应有意识的培养学生对现实生活中的实际任务转化为计算机问题的能力,尤其是通过约减、嵌入和转化等方法,将一个困难问题阐述为一个可求解问题的思维方法。
2 项目实训的现状
目前很多高等院校计算机专业都开设了针对具体企业定制需求的项目实训课程,通过项目工程化、系统化的开发训练增强学生的动手能力和实践能力,然而过于模式化、程式化的培训模式制约了学生的设计能力和创造力的培养,存在以下不足:
1)实训项目选题较为单一,与企业的实际开发项目尚有一定差距。实训选题大多都是信息管理系统一类的项目,所涉及到的主要是页面设计、业务逻辑和数据库操作,因此学生实践的内容有限,缺乏多样性和复杂性。
2)培训的方式过于程式化。为了顾及不同专业和年级的学生的水平,实训往往采用给定项目架构,教师重点在于指导学生设计相对简单的业务逻辑和编码实现,而对整个项目的框架设计、数据结构的抽象则指导相对较少。
3)实训的时间较短。考虑到日常教学,实训一般都安排在暑期进行,时间约为10~20天左右,其中还包括前期的项目介绍和基础知识补充,对大部分学生而言,短时间内只能被动地从事代码编写,而问题的独立思考则无法完成。
考虑到上述问题,该文从实践角度出发,在项目实训过程中引入计算思维,从重代码编写转变为侧重抽象思维的训练,并增加相应的评论环节,给学生相应思考和讨论的空间。
3 实训教学引入计算思维的实践
在具体实训开展之前,需要进行前期的准备工作。首先邀请软件公司的开发人员对实训项目进行介绍,让学生了解项目的计划和目标,对软件开发的相应流程和规范有相应认识;其次,虽然学生具备一定的专业基础,但大部分学生对先前所学知识有所生疏,因此需要专业教师在实训前期指导学生巩固基础知识,包括程序开发语言、数据库操作和软件工程,并通过小型管理系统Demo的示例让学生熟悉相关的专业知识。
在实践训练过程中,采用过程规范组织软件的开发流程,同时使用合作公司的过程改进框架支持系统SPIF统一管理数据和进行版本控制。在此软件平台之上,从项目需求分析阶段和技术方案阶段培养学生的计算思维。
在需求分析阶段,根据项目的实际需求,按照功能模块对学生进行分组。通过调查、基本设计和功能设计,制定需求分析报告。学生使用visio来绘制每个模块的功能页面,通过组内评审和相互讨论,明确用户的功能性需求,改进功能页面设计。在此阶段,教师除了相关知识介绍和操作流程的讲解之外,应启发式的引导学生进行需求和功能的抽象,同时周期性的组内评审讨论也能够激发学生对项目设计问题的思考。
在技术方案阶段可以分为结构设计、详细设计、编码和测试。在结构设计和详细设计阶段,每个组员应在教师的指导下有意识的培养程序设计思维,将实际问题抽象建立相应的算法框架和数据流程,完成各个模块的详细设计,其中包括每个功能的功能说明、功能操作、算法和逻辑、数据库操作、接口说明和错误处理。在数据库设计阶段,通过组间和组内讨论,将实际的存储的问题抽象为项目所需要的数据表。编码阶段,在软件公司提供的开发平台的基础上,完成各个模块的编码实现,在代码实现的过程中可以鼓励一些基础较好的学生学习项目框架的设计模式;测试阶段,编写测试式样书并按照测试样例进行功能测试,对产生的错误进行调试,测试结束后对不同的错误原因和解决方法进行总结。
项目完成后,由各小组组长对模块进行总结,演示模块功能。通过公司的软件工程师及教师的总结和点评,促进学生对软件流程、业内规范以及框架设计等方面进行思考。实训结束后,教师与学生进行交流,对下一轮实训的选题进行探讨。
4 结束语
本文针对目前项目实训中程式化、单一化的特点,提出在项目训练过程中引入计算机思维的训练,侧重学生抽象能力和设计能力的培养。下一步的工作则是完善实训项目的选题,力求做到选择题多样性和复杂性,缩小与企业实际项目的差距。
参考文献:
[1] 姚天昉. 在程序设计课程中引入“计算思维”的实践[J]. 中国大学教学, 2012(2):61-62.
[2] 王新年. 整体项目驱动模式下计算机软件人才培养模式研究与探索[J]. 计算机教育, 2010(3):115-116.
[3] 吕俊. 项目实训在高校软件外包人才培养中的实践探索[J]. 中国电力教育, 2010(34):164-165.
[4] 陈业斌,李颖. 对高校软件外包人才培养几个问题的思考[J]. 计算机教育, 2010(7):58-60.