刘华明,毕学慧,王秀友,韩天鹏,张乐乐
(阜阳师范学院 计算机与信息工程学院, 安徽 阜阳 236037)
“互联网+”竞赛背景下《软件工程》案例教学研究
刘华明,毕学慧,王秀友,韩天鹏,张乐乐
(阜阳师范学院 计算机与信息工程学院, 安徽 阜阳 236037)
“互联网+”竞赛背景下,学生必须具备一定的软件开发能力。《软件工程》课程是指导学生如何进行软件开发与维护的一门学科,但该门课程理论内容抽象、晦涩难懂,如果在教学过程中适当引入案例,可以更好地帮助学生把理论和实践结合起来。笔者阐述了在“互联网+”项目驱动下,如何在《软件工程》课程中引入案例进行教学,并结合实例分析了引入案例、获取案例的知识如何迁移到“互联网+”竞赛中,最终目的是提升学生的软件开发能力,为社会培养合格紧缺人才。
“互联网+”;案例教学;项目驱动教学
互联网实现了网络资源的共享和数据通信,给人们带来了便利性。利用互联网思维进行改革创新提到了新的高度。李克强总理提出“互联网+”的理念,大众创业、万众创新拉开了序幕。教育部举办“互联网+”大学生创新创业大赛,培养造就“大众创业、万众创新”的生力军;引导高校主动服务创新驱动发展战略,创新人才培养机制,切实提高学生的创新精神、创业意识和创新创业能力[1]。在此背景下,对计算机相关专业人才的培养提出了新的要求,尤其是对学生的软件工程素质的培养,提升了一个新的高度。目前全国各大高校培养出来的计算机专业人才,在软件开发方面能力较弱,未能适应市场需求,有必要对计算机人才的培养提出新的教学模式。以计算机科学与技术和软件工程专业为例,需要对教学内容、教学模式、教学方法等进行一系列探索,培养具备创新精神和能力、“互联网+”思维的市场紧缺人才。
案例教学具有一定指导性,学习案例的经验可以直接转化为能力,最明显的特征就是学生可以开发类似案例的系统[2]。案例教学与师傅带徒弟的教学模式比较相似,学生在案例的教学中学习实际开发经验,锻炼了动手能力。
“互联网+”大学生竞赛自2015年教育部举办以来,学生竞赛的积极性较高。纵观全国竞赛获奖的项目,绝大多数项目的实际应用价值较高,具有广阔的创业前景,这也充分说明了学生具有一定的创新意识、创新能力,在“互联网+”竞赛平台下,展现自己的创新成果[3]。“互联网 +”离不开信息技术、网络技术,计算机相关专业学生在技术方面具有一定的优势,但很多学生缺乏实际软件开发经验,而《软件工程》正是指导学生如何进行软件开发的一门课程,在此课程中加入必要的案例教学,可以更好地让学生掌握软件开发知识和技能。在“互联网+”竞赛背景下,如何在《软件工程》课程中利用案例教学,展开有意义的探索和讨论,提升学生的软件工程素质,能够为“互联网+”竞赛打好基础,从而促进学生的学习动力,激发学习热情,为社会培养紧缺人才。
“互联网+”是创新2.0下的互联网发展的新业态,利用信息通信技术以及互联网平台,让互联网与传统行业进行深度融合,创造新的发展业态[4]。通过互联网与传统行业的结合,可以催生新型创业模式,加速产业价值链的重构。智能手机、智能芯片的出现,加速了新型创业模式,例如微信、共享单车等。在“互联网+”背景下,淘宝、京东、饿了吗、糯米等品牌做的如火如荼,取得了巨大的成功。未来新一轮的科技革命将会影响和融合更多行业,向更多领域拓展,例如智能制造、能源共享、数据共享等。在未来传统的粗放型发展必然向集约型发展,更加节约原料、缩短加工时间、提高效率、降低成本。“互联网+”思维是促进结构形式转变、产品升级、保持可持续发展的一条有效途径。“互联网+”竞赛是在大众创新上更近一步,更能够保持创新活力。
“互联网+”竞赛给教育领域尤其是高校注入了新的活力,创新意识的氛围浓厚,能够融合各专业,给不同专业学生带来较大的机遇和合作的机会。学生在竞赛中,提出了很多创新模式,并转化为实际应用,把理论转化为实践,就要求学生能够开发出相应的软件。然而,很多学生并不具备软件开发的能力或者是这方面能力较弱,提升学生的软件开发能力刻不容缓。软件开发能力的培养是培养软件工程素质的一条有效途径,软件工程素质的培养不仅是学习《软件工程》这门课这么简单,还需要学生在掌握程序设计、计算机网络、数据库、数据结构、操作系统等相关基础知识后,再学习软件工程知识,配以实践教学,在实践中掌握软件开发知识和技能,否则会导致学生只见树木不见森林,没有系统开发软件的思想和意识。
案例教学是给学习者提供案例,通过学习案例掌握所学知识,较典型的案例教学就是哈佛商学院案例教学的应用,培养了很多杰出的商业人士[5]。在《软件工程》理论教学过程中,课程比较枯燥、抽象、晦涩难懂,学生知易行难。软件工程知识的掌握应与实践相结合,对于完全没有开发经验的学生来说,案例教学是一个快速上手的教学方式。
(一)案例选择
学生要想在“互联网+”竞赛中取得好的成绩,不仅要具备一定的理论知识,还需有软件开发能力。在《软件工程》课程教学中,理论知识较抽象,适当地引入案例教学,可以更容易地让学生掌握所学知识,提升软件开发能力。案例教学需要注意几个方面:①针对性。对近几年“互联网+”竞赛进行梳理,发现竞赛项目大部分都与移动开发、网站开发、物联网开发有密切的关系,在这些领域中寻找合适的案例进行教学能够很好地培养学生的软件开发能力。②真实性。案例要能够真实反映实际的软件开发环境,促使学生在真实的环境中学习开发软件,激发学生学习热情。③可讨论性。案例需要在教师的指导下进行,尽量是指导教师自己开发的软件或者比较熟悉的软件,这样有利于教师与学生分析、交流,教师也可以介绍自己的开发经验。④先进性。案例要能利用当前前沿技术和成果,突破传统方式,以最快、最便利、更低成本的方式,让人们享受技术带来的优越性。学生一走出校门,就可以将这些技术知识转化为生产力。
对2015年和2016年“互联网+”竞赛获奖项目进行分析,发现大多数项目与网站系统、APP、桌面系统有关系,而这些技术和《软件工程》课程也是密切相关的。在《软件工程》课程教学中,加入网站、APP、桌面应用的案例,是非常有必要的,有利于学生熟练掌握这些知识,为参加“互联网+”竞赛打好坚实的基础。
(二)案例的实施
“互联网+”背景下案例的选择要围绕竞赛课题展开,而案例的实施也要紧扣“互联网+”项目进行。通常比较可行的做法是选择与“互联网+”项目相近或相似的案例,具体实施步骤一般包括筛选案例、分析案例和分析案例解决方案。
1.筛选案例
通常的做法是教师从最新的教材中、或者网络资源上寻找与“互联网+”竞赛关联程度较强的案例,案例要具备文档和代码,教师对案例仔细阅读,弄清项目解决的问题、开发者的解决思路、软件结构设计、实现等,为下一步实施案例教学做足备课工作。如果案例是教师自己开发的软件,教师对案例的把握更具体,实施案例教学更佳。“互联网+”项目多数会涉及到互联网,效果尽量将与互联网相关的软件选为案例,反之像单机版的游戏和管理系统,不适合作为案例,因为不涉及互联网问题,也不是时下潮流所向。
在翻译过程中,译者吸取了原语内容,由于原语和目标语及其文化背景的不同,译者就会不可避免、主观地作出相应的调整和修改;也就是说,选择一些合适的翻译策略来协调两者的差别。首先,译者必须考虑原作者的写作意图,目标语形式和目标语读者的接受程度。“我们甚至可以说,没有创造性叛逆,也就没有文学的传播与接受。……但这仅仅是文学的创造性叛逆的一个方面,创造性叛逆的更重要的方面还在于它对文学作品的接受与传播所起的作用。”[6]141但是,译者的有意识误译,即译者所作出的创造性叛逆必须有一个度的限制。
2.分析案例
教师把案例要解决的问题,先让学生分析讨论,分组进行,组长提交最后讨论结果。从讨论的结果看学生的解题思路,能够发现问题或不足。在分析过程中,学生是主体,充分发挥主观能动性。教师启发学生思考,同时提供一些“互联网+”竞赛获奖项目,对这些项目,完全可以借用案例的解题思路,学生可以从中获取相应的知识。
3.分析案例解决方案
针对“互联网+”案例,学生提出解决方案,教师对这些方案总结,得出哪些方案可以解决问题,哪些方案不能,为什么?提出的方案在解决过程中应注意什么?最后与学生一起分析案例的解决方案,理解并掌握相关技能。在分析过程中,教师尽量把软件工程的思想、技术、工具和开发过程等利用实际的案例指出,加深学生对软件工程思想的理解。案例的学习,有利于学生掌握软件开发技能,举一反三,能够更快入手软件开发。
在《软件工程》课程教学中,案例的实施是对该门课程知识的深入,是联系理论与实践的桥梁,是理论实践化的有效途径。在案例中,既有理论的身影,也有具体应用的实现技巧。案例知识的分析过程,是软件开发活的标本,能更好地提升学生的实践能力。案例分析获得的技能可以直接应用于“互联网+”项目中去;需求分析、设计、实现、测试等过程知识,有很多也能重用于“互联网+”项目中去,既可以减少开发时间、提高开发效率,也是软件工程特别推荐的开发方式。
学习案例是为了能够更好地实施“互联网+”项目,让学生能够更快解决项目中遇到的各种难题。通过相关案例知识的学习,掌握的技能应用到“互联网+”项目中。可以把“互联网+”项目比作任务驱动项目,在教师引导下,学生完成项目[6]。自主学习、主动参与、自主合作、探索创新的新型学习方式,适合于培养学生的创新能力、动手实践能力和独立分析并解决问题的能力[7]。
(一)“互联网+”项目特点
“互联网+”项目比传统项目驱动教学更具有活力,具有一些特点:①创新性。“互联网+”项目要求有一定的创新性,“创新”是竞赛的灵魂。②前沿技术。“互联网+”竞赛项目,能引领未来产业发展的方向,一般是前沿技术,或者是目前社会流行的开发技术,这些技术将会使毕业生更好地融入社会。③综合性。“互联网+”项目,涉及多个方面,例如市场调研、创新点、技术保障、管理措施、融资计划、发展规划等,是综合性较强的项目。④团队协作意识强。“互联网+”项目组人员,都是自发性组织的,人员分工协作意识要强,充分发挥个人的长处,有利于项目的开展和实施[8]。
(二)“互联网+”项目驱动教学实施
“互联网+”项目是竞赛项目,学校应该给予充分环境支持,例如提供上机环境、教师指导,并给予一定的奖励。项目在实施过程中,一般要注意几个方面:①任务分解要合理,针对学生知识的掌握情况,合理分配任务;②教师有能力指导并解决项目完成过程中的关键技术难题,保证学生能够坚持完成项目;③教师监督项目进展情况,把握全局,以避免学生钻死胡同,走弯路;④借鉴并学习相关案例,以解决项目实施过程中遇到的各种问题。在此过程中,需要指导学生进行案例搜集、整理,以培养学生知识的迁移能力。
(一)实例分析
“互联网+”项目,强调软件工程知识的实际应用。笔者在2016年指导了安徽省“互联网+”竞赛,题目是“任e游”,是一款关于旅游的App软件,获得了第二届“互联网+”竞赛安徽赛区三等奖,现以该项目为例说明如何实施案例教学和“互联网+”项目驱动教学。图1是任e游的功能结构图,对功能进行了详细分解。表1是功能分解后,参考的软件和需要学习的案例。这些软件是目前市场比较成熟和流行的软件,有许多功能值得借鉴和学习。掌握这些界面设计、功能实现,对于该项目的实现具有重要意义。
图1 任e游功能结构图
表1 功能分解
(二)项目实施指导
项目指导按照软件工程快速原型模型来实现,首先提出系统所要实现的功能列表,根据实现的功能,创建原型,原型是用户设计界面(见图2)。在通过评审后,确定用户需求。在需求确定后对软件进行结构设计,设计各个模块、以及模块之间的调用关系,确定总体设计结构图(见图1)。这些知识,需要教师进行分析、讲解、答疑,并给出案例的设计结果,指出设计者设计意图和想法,启发学生思考。详细设计,主要分析源代码,提出算法处理流程。实现方面,提出代码实现的细节,启发学生如何动手实现所设计的系统。例如投诉处理,可以根据电子商务网站给出的投诉处理,借鉴好的处理流程和处理实现,这些都为任e游项目的实现,提供较好的借鉴方案。表2是本项目技术实现的难点,指导教师要重点对这些功能进行指导,保证项目的技术实现。表3是任e游项目实施与软件工程教学环节、相关案例的结合情况。任e游项目的实施,离不开参考的案例,从中学习相关知识,使项目能够顺利开展。
表2 技术实现难点
图2 任e游主界面
表3 项目实施与软件工程教学环节、相关案例的结合情况
结合当前“互联网+”竞赛背景,讨论了如何通过在《软件工程》课程中加入案例进行教学,使学生迅速掌握软件开发知识,能够应对“互联网+”项目的开展和实施。案例是衔接理论与实践的一个重要桥梁。在案例教学过程中,教师要选择与竞赛项目有较强关联的、合适的案例,例如功能或使用的技术等有很强的相似性,这样有利于学生知识的迁移,可以快速入手“互联网+”项目。笔者通过对近两年“互联网+”竞赛的指导,将案例教学和任务驱动教学相结合,使得学生的软件开发能力比以往取得了较大的进步。通过竞赛可以增强学生的自信心,有效实现理论知识和实践能力的统一,提升学生的自学能力、知识迁移能力,为今后能够更快适应工作岗位奠定了基础。学生具有较高的学习热情,同时项目创新性强,与前沿技术结合较紧密。
[1]教育部.教育部关于举办首届中国“互联网+”大学生创新创业大赛的通知[EB/OL].(2015-05-21)[2017-01-08].http://www.moe.edu.cn/publicfiles/business/htmlfiles/moe/s5672/201506/188568.html.
[2]张新平.论案例教学及其在教育管理学课程中的运用[J].课程·教材·教法,2002(10):56-61.
[3]解继丽.“互联网+”引领教育改革新趋势[J].楚雄师范学院学报,2015(2):85-88.
[4]翁凌燕,朱俐. “互联网+”背景下成人教育创新型创业思维塑造[J].继续教育研究,2017(7):56-59.
[5]殷美桂.案例教学法在软件工程教学中的应用[J].福建电脑,2008(5):201.
[6]崔贯勋,王勇,潘瑜,等.基于任务驱动的实践课程教学改革与探索[J].实验技术与管理,2010(6):164-166.
[7]孙宇.基于“任务驱动”的计算机课堂教学模式探析[J].商业经济,2006(4):101-102.
[8]赵军,杨克岩. “互联网+”环境下创新创业信息平台构建研究——以大学生创新创业教育为例[J].情报科学,2016(5):59-63.
The Research on Case Teaching of Software Engineering Under the Background of “Internet +” Competition
LIU Hua-ming, BI Xue-hui, WANG Xiu-you, HAN Tian-peng, ZHANG Le-le
(School of Computer and Information Engineering, Fuyang Normal College, Fuyang 236037, Anhui, China)
Students majoring in computer are required to get software development capabilities when they participate in “Internet +” contests. Software Engineering is a course for the studnets to learn software development and maintenance, but it is abstract and obscure. By introduction of case teaching, it is helpful for the students to combine theory and practice. Under the background of “Internet +” project-driven teaching, this paper introduces case analysis in Software Engineering and put it to the “Internet +” contest to enhance the students’ software development ability.
Internet +;case teaching;project-driven teaching
欧 恺)
TP317
A
1007-5348(2017)11-0100-05
2007-07-21
安徽省质量工程教研项目“软件工程素质培养研究”(2015jyxm222);安徽省质量工程教研项目“高校工科《概率论与数理统计》课程的改革与实践研究”(2016jyxm0755);大学生创新创业训练计划项目“基于Android的旅途无忧APP开发”(201610371052)
刘华明(1981-),男,河南沈丘人,阜阳师范学院计算机与信息工程学院讲师;研究方向:软件工程。