摘要:针对目前创新设计课程以项目实训为导向的现状推行教学、实践、开发相结合的人才培养模式,总结该课程项目驱动主要教学法在教学内容和授课方式上的实践、探索及相关教学经验,为高校完善和构建完整的实践教学模式以及培养高质量的人才提供借鉴。
关键词:项目驱动;创新设计;CDIO
0 引 言
为满足培养具有扎实专业基础、较强创新和实践能力专业人才的需求,云南大学软件学院2009版教学计划在第6学期开设面向本科生的专业必修课程创新设计,该课程以培养应用型高层次软件创新人才为目标,以项目实训为导向,推行教学、实践、开发相结合的人才培养模式。在教学过程中,教师可借鉴CDIO先进教育理念开展实践探索,采用项目驱动教学和任务驱动教学提高学生的实践动手能力,充分调动学生的积极性,培养学生自主探索知识的能力、创新意识和创新能力。
1 实践探索过程
项目驱动式教学模式的基本流程大致是以项目为情境,以问题为线索,由教师引导学生思考并通过师生或学生之间的讨论、课下小组的协作等手段推动项目的实施,最终完成项目任务。在创新设计这门课程之前,学生通过第4学期及第5学期两门专业课程“专业实训1、2”的训练,已经具备了一定的软件产品开发能力和经验,因此本学期布置的项目内容除了要涵盖教学内容的难点、重点和要点之外,还要求指导教师结合自己的研究领域和科研项目,精心策划并建立与专业密切相关的能体现和贯彻CDIO构思、设计、实现、运作过程的综合性实践项目,同时也鼓励学生根据自己所掌握的理论基础知识和技术能力提出感兴趣的课题。
创新设计实践项目均为团队合作项目,学生以小组为单位,通过“做中学”的形式,在指导教师的引导下完成设计、探索及创新。团队协作的模式使学生能够完成较为复杂的实践课题,加强沟通协作能力,达到主动学习的目的。课程结束时,所有学生都必须根据所承担的任务完成研究报告,提交研发成果。在实际的课程实践探索中,我们采用以下几种方法进行教学,取得了良好的教学效果,也得到了广大学生的认可。
1)任务式引导学生思维,注重学生反馈。
教学过程由项目问题导人,引导学生逐步进行可行性研究、需求分析、概要设计、详细设计、实现、运营等环节,就项目进行过程中遇到的各种问题进行全方位、多角度、多层次的思考。项目实施过程以学生为主体,采用师生互动的形式进行,学生每周上课时向指导教师汇报总结,导师记录工作情况并根据学生的汇报及时发现问题,通过以问题或者任务为引导,把学习置于复杂、有意义的情景中。表l为大致的任务进度安排,指导教师可以根据实际情况进行灵活调整。
2)强调小组集体的概念,鼓励学生上台进行项目介绍和交流。
软件开发项目是一个集体智慧的成果,团队协作和沟通交流起着至关重要的作用,因此在教学过程中教师应注重通过多种方式培养学生的交流协作能力,通过分阶段集中汇报交流的形式让各组成员彼此了解各个小组要做什么、在做什么和怎么做;根据工作进度和需要适时调整更换各项目组的组长,让学生在项目运行过程中担任多种角色,训练在不同层次上的沟通能力;课程实训的最终成绩评价也以组为单位,其中个人的成绩与其在小组中完成的工作量成正比,从而纠正一学生不参与集体协作,就想得到一个成绩评定的错误想法。
3)多角度地信息教学,加强对专业新兴领域的研究。
在教学过程中,教师除了要求学生掌握相关专业知识的原理及技术之外,还应鼓励学生从兴趣出发,自主查阅相关资料,跟踪了解有关技术、方法和成果的最新研究动态,在培养学生有效获取信息、掌握信息和运用信息能力的同时,让学牛实时了解行业的最前沿,接受最新技术知识,完善知识体系,也明确自己未来就业的方向。
4)规范软件文档撰写,培养良好的代码编写风格。
软件文档的撰写在软件开发工作中占有重要的地位日一具有一定的工作量。高效率、高质量地开发、分发、管理和维护文档对于转让、变更、修IL、扩充和使用文档、充分发挥软件产品的效益有着重要意义。在教学过程中,针对本科生把工作重心放在代码编程而对软件文档不够重视的现象,教师可要求学生一方面在软件开发的不同阶段分别撰写《项目可行性分析(研究)报告(FAR)》《系统需求规格说明(SRS)》《系统(结构)设计说明(SDD)》《系统测试报告(STR)》《系统规格说明(SPS)》《系统运作总结》及《源代码目录(附光盘)》等一系列文档;另一方面培养学生良好的代码编写习惯,不但有助于代码的移植和纠错,而且有助于小组不同人员之问的协作,因此,教师还需对学生的变量命名、注释、空行、缩进格式等编程风格进行指导,使学生形成统一、规范的代码编写习惯,更快地适应职业需求,良好编程习惯的养成将使学生受益终生。
5)注重过程,合理应用考试成绩评定体系
采用项目驱动教学法使学生以项日为核心开展工作,可以训练学生的发散思维能力和实践动手能力。课堂教学不再以教师、教材和理论知识为中心,而是紧紧围绕学生、项目和实践应用来开展
课程允许教师采用不同的有效方法衡量学生的专业知识、个人自身能力、团队合作能力、建造产品和系统的能力。学期末采取人作业的方式进行考核,在坚持实践性、全面性原则的前提下,形成一个强调创新的评分标准,见表2
2 案例展示
“协同过滤电影推荐系统”是学生根据自己的兴趣爱好,在进行可行性研究后定下的一个实践项目,该项目旨在实现一个推荐算法,帮助用户挑选他可能会喜欢的影片,具有一定的实用性。在项目实施过程中,学生展现出对新技术领域的浓厚兴趣和强烈的求知欲,很快明确采用基于物品的协同过滤算法实现电影推荐。为了更好地推进项目开发,小组根据不同成员的特长进行分工,目的明确,整个项目的进行按照图1所示的过程执行,进展顺利。
在项目开发结束后,学生发现推荐系统的有效性评估这方面缺少数据及客观评价。为了验证推荐结果是否有效,小组决定以问卷形式向周围同学收集对电影的评分。小组共收集了58位学生对14部经典影片的评分,通过分析每名学生的不同评分,推荐相应的影片。问卷调查选取了《东成西就》《三傻大闹宝莱坞》《阿凡达》《盗梦空间》《死神来了》《午夜凶铃》《国产凌凌漆》《泰坦尼克号》《无间道》《黑客帝国》《温暖的尸体》《暮光之城》《生化危机》《七宗罪》14部较为经典的影片,分别编号为1-14。用户评分标准为0-10分,其中0分代表该用户没有看过该影片,10分代表该用户非常喜爱该影片,极力推荐;其余分数1、3、5、7、9分别代表差、较差、一般、好、较好,反映了用户对影片的喜好,分数2、4、6、8分别介于上述评分的中值。
通过分析,项目成员得出虽然用户喜好比较复杂,但是基于物品的协同过滤算法也能给出一个合理推荐的结论。尽管本次调查研究的局限有很多,如很难进行大规模的用户调查、物品种类较少、缺少冷门物品及新加物品而对推荐造成的影响等,学生还是通过本次项目驱动式实践训练,在团队合作、编程能力、解决问题能力等方面都得到了极大的锻炼。课程结束时,学生纷纷表示基于项目驱动解决问题,实践能力和沟通能力都得到了极大的提高。根据小组最后提交的系统以及平时表现,小组成员的期末考核都得到了“良好”以上的评价。
3 实践效果
创新设计采用项目驱动式教学并深入贯彻CDIO教学理念,取得了明显的实训效果,教师及学生从中都得到了极大的锻炼。
对于教师而言,教学过程也是加强自身工程知识和能力的过程。为了在教学中为学生提供恰当的工程实例,专业教师通过积极参加一些著名企业的短期培训项目和学院横向科研项目,参与实际工程项目开发,积累工程实践经验,身体力行为学院完善和构建完整的实践教学模式、培养高质量的人才提供有意义的建议和参考意见。
对于学生而言,学习的过程就是技术创新能力、工程实践能力、团队协作能力及沟通能力不断提高的过程,是缩短对未来工作岗位适应期的过程。创新设计是学生将知识转化为实践的一个重要途径,学生从中获得项目开发的经验,体会团队合作的力量,通过系统性实训累积大量有实际项目意义的成果,如翻译软件的研究与实现、名片识别系统的研究与实现、WebQQ聊天加密软件的设计与实现、随机序列的生成及检测等。学生在这些成果的基础上继续申报校、省和国家级的创新创业项目,或者参加每年一度的全国大学生信息安全竞赛,均取得了不错的成绩。
4 结语
培养和提高学生的实践创新能力是创新设计课程的主要教学目标,项目驱动教学改变了传统程序设计类课程教学中教师主动、学生被动的教学模式,在教师与学生之间营造出一种创新氛围,极大地鼓舞了学生的自主学习热情,强化了创新意识和创新精神,明显提高了学生的创新能力和综合素质。
实际应用表明,在项目驱动教学的过程中,通过将理论与实践、知识与素质相结合,能够培养学生的工程设计能力、实践创新能力、沟通能力及团队合作能力,帮助学生树立多次回顾、反复修正、不断创新和深入探索的理念与不断追求卓越的意识。新世纪的高等教育还需不断探索和改革教学方式,注重创新能力的培养,造就一批拔尖的高层次创新人才,从而推进社会科研的内涵式发展。