APP下载

程序设计类课程能力培养的教学模式研究

2015-02-27周晏朱宗胜

安阳工学院学报 2015年4期
关键词:项目驱动程序设计教学改革

周晏,朱宗胜

(安阳工学院,河南安阳455000)



程序设计类课程能力培养的教学模式研究

周晏,朱宗胜

(安阳工学院,河南安阳455000)

摘要:程序设计类课程是计算机专业的核心基础课程,这类课程的特点是强调通过教学培养学生的创新能力和实践能力。传统的“老师讲,学生听”教学方式已经不能达到较为良好的教学效果。本文针对程序设计类课程的特点,提出了基于敏捷开发的项目驱动教学理念,改革了课程考核方法,注重培养学生的实战能力和团队合作精神,对程序设计类课程的教学方法进行了初步改革探索。

关键词:程序设计;教学改革;敏捷开发;项目驱动

随着高等教育大众化的推进,如何立足就业,把握市场动向,为社会培养大批专业技术知识较扎实、实践动手能力过硬的应用型人才,既是高等学校亟待解决的问题,同时也是高校教师教学工作的重要职责。

“应用型人才培养”作为一种人才培养模式,在计算机专业人才培养中,我们始终强调以实践应用为特征,以综合能力培养为核心要素,这种综合能力的培养既包括运用自身所学专业知识解决实际问题的能力,又包括自我学习的能力及创新能力。我们只有紧紧围绕这个特征与核心,不断深入研究程序设计类课程的教学方法,不断改进教学手段、不断转变教学理念,不断提高教学质量,才能更好地完成应用型人才的培养。因此,当前我们开展针对程序设计类课程能力培养的教学模式研究是十分必要的。

1 程序设计类课程目前教学存在的问题

程序设计类课程是计算机专业的非常重要的专业基础课程,其中主要包括高级语言程序设计、C++面向对象程序设计、JAVA程序设计、软件工程等。这些课程的传统教学模式一般均采用以教师课堂面授教学为主、学生实验实践教学为辅的教学模式,该种教学方式目前存在以下问题:

1.1教学模式陈旧

1)课堂教学缺乏互动。课堂教学受到教室硬件条件的制约,只能是老师在讲台上讲,学生在座位上听,“教”与“学”相互独立。无法将“教”与“学”良好的结合,整个教学过程中缺乏教师与学生的互动,学生无法在教师讲的过程中直接参与实践,通过同步实践提高学习效率,课堂教学效果不佳。

2)教学重基础轻项目。课程在讲授时,一般以讲授书本上的例题程序为主,而书本上的例题和习题往往较简单且代码量很少。如果学生从来没有接触或编写过上千行代码的项目,那么一旦遇到较复杂的程序或功能较多(需要编写较多代码时)的项目时,就会无从下手。

3)教学重理论轻实验。课程在讲授时,理论学时数较多,占总学时数的2/3,而实验学时数较少,只占到总学时数的1/3,甚至更少。这样,学生根本没有充足的学时做实验,课程结束后学生只是掌握了一些程序设计的基本概念,而没有掌握应有的编写程序和调试程序的能力。

1.2实践教学方法、理念陈旧

1)实践教学理念落后,实践教学停留在对课堂知识点、例题的验证上。大部分院校的实践教学还依赖于主教材配套的实验指导书,部分实验的内容已经多年未更换。学生上课做实验仅仅将这些程序输入完成进行验证就可以了,根本不需要做任何思考,又多以验证性实验为主,缺乏设计性和综合性实验。

2)实践内容枯燥无味,通常是解决一些简单的数学问题,缺乏新意,既和实际生活结合不紧密,也没有实际的应用价值。在学习了这些程序后,学生不知道有何用处,而一旦真的碰到实际的问题又不知道要如何入手解决,致使学生缺乏学习兴趣。

3)实践考核方式落后,传统的实践考核方式是学生做完实验后提交实验报告,老师对实验报告进行批改,给出实践成绩。在这种考核模式下,学生撰写的实验报告更是“实验目的—实验内容(步骤)—实验思考”千篇一律的“八股文”。这样

的实验报告不仅没有起到提高学生实践能力的作用,反而成为学生在学习过程中的累赘,花费了大量的时间,却没有任何正面效果,导致学生产生厌学情绪,学习积极性下降[2]。

1.3课程考核组织形式单一

目前大部分院校的课程考核方式还是以期末笔试成绩为主,平时考勤成绩为辅的考核形式。这种试卷形式的笔试考核,仅仅考察了学生对理论知识的掌握情况,试卷中的程序编写题目很少或根本没有,不能够全面的评估学生的学习情况。虽然也会在总成绩中加入平时成绩,但平时成绩所占权重较低,不能够客观地反映出学生的真实水平和能力。在这种没有结合程序设计类课程的特点的考核方式下,学生们自然就以背书为主,以考前“临时抱佛脚”为主,成为应试型“人才”[3]。

2 程序设计类课程目前教学改革措施

2.1引入项目驱动教学方法

项目驱动教学法是由凯兹博士推创的,它是一种由师生共同完成一个完整的产品项目工作而进行的教学活动,吸取了支架式和抛锚式众多教学法的优点,调动学生的主体作用[4]。

“项目驱动教学法”最显著的特点是“以项目案例为主线、教师为引导、学生为主体”,具体表现在:目标指向的多重性;培训周期短,见效快;可控性好;注重理论与实践相结合[5]。

项目教学法主张边练边讲,边学边教,强调学生的自主学习,主动参与,从尝试入手,从练习开始,调动学生学习的主动性、创造性、积极性等,学生唱“主角”,而老师转为“配角”,实现了教学角色的换位,有利于加强对学生自学能力、创新能力的培养。项目驱动教学方法流程,如图1所示。

2.2引入敏捷开发的项目训练方法

敏捷开发(Agile Development)是近些年兴起的一种软件开发与项目管理的思想,以其灵活性,易操作性得到软件行业的广泛关注。敏捷开发方法不是一种独立的技术,而是一组开发方式的总称,主要包括极限编程(XP)、Scrum、精益开发和动态系统开发方法(DS-DM)、特征驱动开发(FDD)等。它的基本原则有迭代式开发、增量交付、互动式开发、持续集成等。这种开发模式以人为核心、以迭代、循序渐进为开发方式。在开发过程中,产品项目被切分成多个迭代,每次迭代的成果都经过测试,具备集成和可运行的特征。换而言之,就是把一个大项目分为多个相互联系,但也可独立运行的小迭代,并分别完成。

3 基于敏捷开发的项目驱动教学方法教学具体实施

在基于敏捷开发的项目驱动教学过程中,教师将从传统课堂上“老师”的角色转换为产品项目的“客户”或软件公司的“CTO”,保证学生明确项目需求、跟踪学生团队项目开发进度,帮助学生解决开发中遇到的问题,推动项目顺利进行。在教学过程中,可将学生按4-5个人一组,分为若干个项目开发团队。每一个团队中包含一个项目经理、两个或三个程序员和一个测试员。在开发团队中,每个成员彼此平等、遇到技术难题互相帮助、取长补短,培养团队成员的合作精神,团队成员不拘泥于单一的角色职责,也可根据个人能力一人承担多个角色。具体流程如下:

1)团队成员在老师的辅导下,明确了解整个项目的需求,根据整个需求将项目分解为一个个小的需求列表,并根据需求列表撰写项目计划书。

2)召开项目计划会议,根据需求列表明确开发任务,预估每个迭代所需的时间。

3)绘制任务墙。把每个迭代的任务,写在纸条上贴在任务墙,让大家认领分配。每当一个任务完成,由项目经理把任务从进行中贴到完成区域。再从未分配区域认领新任务贴到进行中的区域。

4)举行站立会议。每次上课前,让大家在会议上总结自己所做的工作、开发中遇到什么困难,后续开展什么任务,时间控制在10分钟内,把已完成、正在做、未完成的工作状态贴到一个墙上,这样大家都可以看得到任务的状态,团队中无论谁出现了什么状况,大家都会帮他想办法,保证整个项目能够成功。

5)绘制燃尽图,保证任务的概况能够清晰地看到。燃尽图把当前的任务总数和日期一起绘制,每天记录一下,可以看到每天还剩多少个任务,直到任务数为0。

6)代码评审。为培养学生良好的编码习惯,教师应该带领各个团队的程序员和测试员组成一个代码审查小组,通过阅读、讨论和争议,对程序进行静态分析。应指出常见的一些编码不良习惯:如使用“魔数”,不规范的命名规则,滥用全局变量,代码可读性不佳,没有注释等等。

7)评审总结会议。在项目完成时,由老师充

当客户,学生团队演示自己完成的软件产品以轮流发言方式进行,每个人都要发言,总结项目中遇到的问题、改进和大家分享讨论。

4 考核方式改革

本文针对程序设计类课程的特点,对传统的考核方式进行了改革。基于敏捷开发的项目教学法考核分为3部分组成:

1)平时课堂表现与考勤占20%;

2)项目实战50%;

3)期末试卷30%。

其中项目实战的得分要根据学生在项目开发过程中作出的贡献来评定,又分为个人贡献得分和团队整体得分。这样既考核了学生个人的能力,又培养了学生的团队合作精神。

5 结语

通过将基于敏捷开发的项目驱动教学法引入到程序设计类课程教学后,以具体项目为教学线索,精心组织相关教学内容,让学生在项目开发过程中自己发现问题,思考问题,解决问题,大大激发了学生的学习积极性和主动性,学生的动手实践编程能力明显提升。在未来的教学工作中,我们将继续以培养应用型人才为目标,以学生为主体,针对不同课程的特点,将新的计算机技术与传统教学相衔接,取长补短,通过新的教学理念、新的教学方法、新的考核方式,进一步提升程序设计类课程的教学质量和教研水平。

参考文献:

[1]陆国栋,孙健,朱慧.教师教学发展的融合理念与现实探索[J].中国高等教育,2014(6): 32-34.

[2]沈济南,梁芳.程序设计类课程实践教学方式改革研究[J].教育教学论坛,2014(52).

[3]焦泽昌,李艳.项目教学法在高职教学中的实施研究[J].中国林业教育,2003( 4) : 44-46.

[4]朱晓旭,杨季文,赵雷,等.程序设计类课程过程性考核研究与实践[J].计算机教育,2014(22).

(责任编辑:刘怀山)

[5]郑金洲.教学方法应用指导[M].上海:华东师范大学出版社,2006.

Programming Courses Teaching Model of Cultivating the Ability of Research

ZHOU Yan,ZHU ZongSheng
(Anyang Institute of Technology,Anyang 455000, China)

Abstract:Programming courses is the core of computer professional foundation course, the characteristics of this course is emphasized by teaching to cultivate students' innovation ability and practice ability. The traditional teaching methods of "teacher speak, students listen" can not achieve good teaching effect. In this paper, accord⁃ing to the characteristics of programming courses, is proposed based on agile development project driven teach⁃ing ideas, reform the courses examination method, pay attention to cultivate the students' practical ability and the team cooperation spirit, the program design class teaching method reform has carried on the preliminary explora⁃tion.

Key words:Program design;Teaching reform;Agile development;Project driven

作者简介:周晏(1979-),女,河南安阳人,硕士,安阳工学院副教授,主要从事信息系统开发与人工智能研究。

收稿日期:2015-04-20

中图分类号:G642

文献标志码:A

文章编号:1673-2928(2015)04-0117-03

猜你喜欢

项目驱动程序设计教学改革
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
依托工作室的软件工程实践教学研究
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
基于“红色之旅”项目驱动的《调酒与咖啡》工作室制人才培养机制探讨
基于人才培养的技工学校德育实效性研究
现代信息技术在高职数学教学改革中的应用研究
以职业技能竞赛为导向的高职单片机实践教学改革研究