APP下载

“程序设计与算法语言”实践课程中的项目教学

2014-07-05李骏扬魏海坤许倩茹夏思宇

电气电子教学学报 2014年4期
关键词:成员课程教学

李骏扬,魏海坤,许倩茹,夏思宇

(东南大学 自动化学院,江苏 南京210096)

近年来,很多高校的理工科专业为新生开设了一些研讨课,“程序设计与算法语言”就是其中一门实践课程[1]。它以锻炼学生的编程能力为目的,并运用编写程序来解决工程或科研中的实际问题。课程来用项目教学的手段,让学生更真实地体验到如何去解决一个复杂的问题,并进行更加深入的探索和研究,有利于改变学生在中学时期依赖课本的应试型学习惯性。

1 项目教学

基于项目的教学模式,是建立在建构主义思想基础上的一种行之有效的人才培养模式,学生在教师指导下,围绕着具有实用意义的项目任务进行学习的模式。学生运用他们在核心课程中学习的知识来解决现实生活中实际问题,这些任务需要学生利用课余时间进行调研、设计、决策和实施,并尝试解决遇到的各种困难,最终以作品和报告的形式展示项目成果。在学习过程中需要学生发挥激情、毅力、创造力、执行力和协同力,这些不是来自于课本,而是来自项目实施的过程[2-4]。

以项目为主线,以学生为主体,以教师为主引是项目教学的显著特点。“程序设计与算法语言”课程的项目教学,不仅能让学生更好地学习程序设计,还能使学生更快的适应主动式的学习方法。这种学习能力的提升,将对学生未来的学习、科研产生持续的正面影响[5]。

该课程项目教学与传统的实验教学相比,除了难度和规模上有所提升之外,还有两处不同:①实验一般与课程进度相结合,而项目则可以超越教学范围,项目中运用的知识很多需要学生在课外自学完成;②项目实验不仅需要关心程序本身,还需要关心程序的需求、设计和测试等软件工程方面的问题。在该课程项目教学的过程中,我们主要从项目选题、任务分配、项目跟踪、项目评价等诸多方面进行了探索与实践。

2 教学方法

2.1 项目选题的科学真实性

用现实的工程或科研课题作为该课程项目选题,可以给学生带来更多的真实体验,让学生了解计算机程序在解决实际问题过程中的作用。从教师的科研或工程项目中提炼出来的具有专业特色的课题,在锻炼学生综合能力的同时,还可以让他们更多地了解本专业的工程背景,以及需要面对和解决的关键性问题。

教师须先对这些选题进行抽象和简化,让项目对于低年级学生具有可行性,适合于项目教学的需要。尽管如此,学生在开始面对课题时因对背景不熟悉,对方法不了解,还是会感觉无从下手,容易停滞不前。因此,教师需要对项目背景进行必要的讲解和阐述,引导学生自主学习,查阅资料和文献,帮助学生对课题进行分析和建模,让学生透过表面现象抓住问题的内在本质。

课程进度与项目进度不一定严格同步。项目中所涉及的内容可以超前于课程,学生在项目教学过程中处于一种自主学习的状态。比如程序中的语法学习,学生在项目中往往先知道如何用,然后再在课程中知晓为什么这么用,由此更深入的了解了语法现象背后的本质。

2.2 项目管理任务的均衡性

项目教学是以学生组成项目小组的形式开展的,小组成员间的合理分工,能发挥出每一位成员的能量,使项目的质量和进度得到更好的控制。但在实际项目教学中,项目组成员的工作量往往会出现不均衡,从而降低项目组的整体效率。如何更好的分配项目任务,是课程项目管理上普遍存在并需要解决的问题。我们通过分析发现小组成员本身能力的差异、项目管理的松散和个人评价体系的缺失是造成这种不均衡的主要因素。因此,我们有针对性地采取如下三项措施来改善项目组成员工作任务的均衡性。

(1)项目小组成员个人功底—在进行小组项目的同时,依据教学进度,学生必须完成若干个人项目。个人项目是小型的开放性问题,没有标准答案,学生有足够的拓展空间。完成基本功能只能得到80%的分数,其余的20%来自学生对问题的进一步探索和创新。

(2)分层落实项目任务—项目任务一般包含技术性工作和非技术性工作:技术性工作可以按照程序的结构划分为若干个可拆分的部分,由小组成员分别承担其中的某一个部分,最终进行组合。这需要教师在项目的初始阶段指导学生对项目进行结构性规划,引导学生控制好项目的进度。教师鼓励能力较强的学生指导其他成员完成其应该完成的部分,但不是独揽所有的工作。非技术性工作同样分解为若干部分,这些工作包括项目的组织、进度的跟踪、程序的测试、阶段性的汇报、文档的撰写、演示文稿的制作、项目的展示,以及在这些过程中项目组内外部关系的协调等,由小组成员轮流承担。所有的学生都能够在项目中得到多方面能力的锻炼。

(3)完善个人评价机制—包括四个途径:多人联合报告,个人总结,小组成员自评和小组成员互评。在项目进行报告时,每个成员都要报告与自己工作相关的部分,这能够较好的反映出个人对项目的贡献。通过个人总结和个人自评,可以部分反映出个人在小组中的作用。公开的小组互评一般不会有预期的效果,然而以不公开的方式对小组其他成员进行评价是目前实践中反映个人工作量相对可信的方法,这种方法会在项目的一开始就告知学生,并对学生在项目过程中的参与度形成一定的压力。

2.3 项目跟踪指导的针对性

教师在项目教学的全过程中,对学生的引导应该是多方位的。在项目的一开始,激发学生对任务完成树立信心,引导学生查阅资料,搜集文献,对学生的任务进行规范和审核;在项目设计阶段,指导学生建立数学模型,并对系统进行自顶向下的多层结构设计;在项目实施阶段,鼓励学生对多种方法进行尝试和探索,克服项目中的各种困难。教师需要及早地发现项目进行中出现的问题,包括小组工作量不平衡,小组整体进度缓慢,小组缺乏凝聚力等并及时地介入,有针对性地帮助学生处理和解决,保证项目良性运作,避免项目的失败。

2.4 项目考评体系的综合性

我们针对项目教学的特点,对项目考评体系进行了改革:采用分阶段组合、分任务组合和分团队组合等方式,请不同的考评者进行评分。每一次考评,都有不同的形式。如课堂研讨、项目答辩、项目进度陈述、创新点陈述、项目文档和个人对项目组贡献等多个元素。学生不仅有在小组内展现成果的机会,更有在全体教师与学生面前展示成果的机会。因此,学生得到的评价,不是一个节点的效果,而是多个节点的综合效果;不是任课教师一个人的评价,而是来自于不同层面的公正评。

3 教学实践与教学效果

3.1 教学改革

作为全校性的公共基础课,我校的在一年级开设“程序设计与算法语言”,在二年级短学期开设了“计算机综合课程设计”,计算机教学指导委员会统一教学要求与考试大纲,各学院自主完成教学任务。2008年,我们在“计算机综合课程设计”中开始引入项目教学,并取得了初步的成果。2011年我院正式开始全面地进行该课程项目的教学改革。

当时我院一年级共4 个班级,两个班级参与了项目教学,两个班级采用了传统的授课方式,期末上机考试使用相同的试卷,参与项目教学的两个班级平均成绩分别为81.9 分和79.3 分,未采用项目教学的班级平均成绩为73.5 分和74.2 分。不难发现,参与项目训练的学生的实际编程能力得到了明显的提升。

3.2 具有专业特色的选题

通过项目教学,小组完成项目的难度不断地提升。作为项目教学的雏形,2008年至2010年,我们仅在二年级课程设计中引入类似操作,学生选择的课题大部分都比较简单,如简易计算器和Windows画图板等。2011年秋季,在一年级课程中开始实施项目教学后,学生选择的项目课题难度开始逐年提升,如:“二维分形绘图”、“迷宫(自动生成迷宫,自动走迷宫)”、“人机对战五子棋”、“串口通讯PID 温度控制”及“基于图像的石头、剪刀、布手势识别”等。我们将温度控制、数据建模、图像识别、系统仿真等与专业知结合紧密的课题引入课程的项目教学实践中,虽然低年级学生在项目过程中会遇到各种意想不到的困难,但是最终都能出色的完成任务。

2013年12月我们对接受过项目教学的部分学生进行了问卷调查:接受调查的84 名学生共组成了26 个项目组。调查结果是:

(1)对于项目题目难易程度,52.4%和35.7%的学生认为选题难和非常难,其余学生认为难度中等,没有人认为项目是容易的。

(2)15.5%的学生认为他们在项目实施中,出色地完成了任务,65.5%的学生认为他们的项目既有超越,也有遗憾,另外有16.7%和2.4%的学生认为他们基本完成任务,或任务未达到预期。

(3)从这些小组的项目得分(不包含项目中的个人得分)的情况来看,有16 个小组出色的完成了任务。其中得分在90 分或90 分以上的约占61%;而10 个小组的得分在80 ~89 之间的约占31%。项目的最终评分实际上高于学生对项目的自我评价。以上数据说明了学生对于项目的期望可能高于评定者对项目的期望。

学生在项目中投入了巨大的热情,并随着项目的推进,逐步为项目注入新的创意,提高了自己对项目的期望。虽然对于学上来说并不是所有的预想都能在项目截止日期前实现,但是项目完成的部分已经超越了教师对项目的预期。

3.3 小组成员的参与程度

为了使小组中每个成员的各方面能力都得到锻炼,我们对项目组成员分配任务均衡化,并制定每个学生必须完成的小型个人项目,这些措施取得了明显的成效。小组成员之间匿名相互评价的取分为0~10 分。这可以大致体现出小组成员对本小组的贡献。而小组中各成员所起作用的差异越小,说明小组成员间分配任务的均衡化越好。

我们统计了从2011 至2013年,各年级学生对自己在小组目中发挥作用的评价结果,如图1所示。

图1 各年级学生对自己在小组中的贡献的评分

从图中可见,2011 级学生认为自己是核心成员,或对小组做出重要贡献的比例较低,有部分学生认为自己对小组没有贡献。该情况在2012 级学生中有所改善。2013 级学生中,认为自己是项目小组的核心成员的比例有所增加,达到29.8%,其余的比例都有所降低。47.6%的学生认为自己对项目组具有重要贡献,22.6%的学生认为自己对项目组的贡献一般,而认为对小组毫无贡献的比例降低为0。从数据上可以看到,小组成员对自己重要性的评价在逐年提高,这说明我们对小组成员工作量均衡化的努力是有效的。

3.4 项目教学对学生后续学习的影响

在调查中,91.4%的学生表示通过项目教学训练后,在程序的编写、构架、算法或调试方面均有所提高。其中,调试程序的能力依然是学生在编程中的弱项,需要在以后的教学中给予更多的关注。关于哪些其它综合能力得到提高时,选择最多的是“遇到困难敢于挑战的勇气”,占75.0%。“团队协作能力”位居第二,占72.6%。认为自己在“复杂问题的分析能力”和“问题的解决能力”有所提高的分别占63.1%和59.5%。

在针对2011 和2012年级的学生的调查中,大多数学生表示,“程序设计与算法语言”课程中的项目训练对自己在此后二年级和三年级的学习中有所帮助,特别是体现在大学生科研训练计划SRTP、学科竞赛和其他课程的项目活动中。

4 结语

运用项目教学手段在工科新生中实施教学任务,促使工科新生尽快在适应大学学习模式,从而激发了学生的学习热情。项目教学采用理论与实践的紧密结合,不仅提高了学习效果,保证了教学质量,而且还培养了学生解决实际问题、科研工程实施的能力,并为学生后续的发展奠定了基础。

[1] 孙志凤,张红霞,郑昱. 研究型大学新生研讨课开设效果初探--南京大学案例调查研究[J]. 北京:清华大学教育研究,2010,31(6):119-124

[2] B. J. S. Barron,D. L. Schwartz,N. J. Vye,A. Moore,A.Petrosino,L. Zech,J. D. Bransford,The Cognition and Technology Group at Vanderbilt. Doing with understanding:lessons from research on problem and project-based learning[J]. US:The Journal of the Learning Sciences,1998,7(3/4):271-311.

[3] J. W. Thomas. A review of research on project-based learning[OL]. http://www. ri. net/middletown/mef/linksresources/documents/ researchreviewPBL_070226.pdf,2000

[4] T. Markham. Project Based Learning[J]. US:Teacher Librarian. 2011,39(2):38-42.

[5] 邵玉祥,陈青.“案例教学+项目教学法”在计算机语言教学中的互补应用[J]. 南宁:高教论坛,2012,(2):21-23.

猜你喜欢

成员课程教学
主编及编委会成员简介
主编及编委会成员简介
主编及编委会成员简介
主编及编委会成员简介
数字图像处理课程混合式教学改革与探索
微课让高中数学教学更高效
软件设计与开发实践课程探索与实践
为什么要学习HAA课程?
“自我诊断表”在高中数学教学中的应用
A—Level统计课程和AP统计课程的比较