摘要:提高学生的整体项目开发能力和综合素质,一直是程序设计类课程教学改革的主要目标。为了达到这个目标,结合程序设计类课程的实际特点,将建构主义的理论应用于教学活动中,在教学方法与评价方式等方面进行改革实践,探索新的教学模式,以期取得良好的教学效果。
关键词:建构主义;程序设计类课程:教学情境
一、引言
程序设计类课程是计算机科学与技术专业的主干课程,程序素养是计算机专业学生走向工作岗位后终生依赖的看家本领。随着经济社会的发展,软件开发企业对高校毕业生的要求越来越高,既要具有较为丰富的实践经验,能够直接胜任具体的软件开发工作,还要能够紧随着it技术的发展不断提高自身的业务水平,并且具有良好的沟通能力和团队合作精神。这就要求专业教学必须结合程序课程的特点,加强学生工程素质和应用实践能力的培养。传统的“讲授法”、“练习法”、“提问法”等教学方法已经无法满足目前软件开发方向上的人才培养需要了。针对以上问题,在程序设计类课程的教学中实施教学改革,在“教师主导,学生主体,开放式教学模式”的建构主义理论指导下,采用实际案例教学,可望有效培养学生的实际动手能力,增加学生的社会竞争能力。
二、建构主义
在建构主义的理论中,教学活动以学生为中心,学生从课程接受者变为课程建设者。这种角色的转变不仅可以提高教学质量,更可以实现真正的素质教育。因为对于学生来说,建设者比接受者要经历更多的思考和实践,在过程中自身的知识和能力都不由自主地升华了。wWw.133229.cOm而教师对课程的影响度要通过在教学活动中起到组织者、指导者、帮助者和促进者的作用来显现。要利用情境、协作、会话等学习环境要素充分发挥学生的主动性、积极性和创新性,最终达到使学生有效地对当前所学知识的意义建构的目的。建构主义的主要内容,可以概括为以下方面。
1.以学习者为中心的建构性学习
建构主义认为,每一次有意义的学习都是学习者对知识的主动建构过程。在学习中学习者必须根据先前的认知结构,注意和有选择地知觉外在信息,在保持简单信息的同时,理解复杂信息,建构当前事物的意义。建构主义强调,学习者不是单纯、被动地接受教师灌输的知识,因此,接受式的学习方式无疑为建构主义者所摒弃,而代之以理解式学习方式。相应地,教师在传授知识之前,应该考虑学习者原有的知识经验,使新知识与学生已有的经验紧密结合。同时,教师在教学过程中不再是知识的提供者,而是协作者或合作者,其中心任务是协助学生去组合、批判和澄清新、旧知识的差异,在此基础上由学生自己搭建起新的认知结构。
2.互动式的学习
建构主义认为,学习的过程是以人的经验为导向的。也就是说,每个人对现实世界的理解都以自己的经验为基础,这就可能出现不同的学习者对知识的理解千差万别。为了解决这个问题,建构主义者提出了互动式的学习方式,即学习可通过学生与学生之间、学生与教师之间的对话、沟通等方式来进行。在这一过程中,大家可对同一问题提出不同的看法,在交流与辩论的过程中,得到问题的不同解决方案,澄清疑虑,达成一致的社会建构,逐渐形成正式的知识。
3.情境中的学习
建构主义认为,学习是一个与情境紧密联系的自主活动。教师应使学习在与现实情境相类似的情境中发生,以解决学生在现实生活中遇到的问题为目标,学习的内容要选择真实性任务,不能对其做过于简单化的处理,使其远离现实的问题情境。这种“情景式”的学习,比起简化了的课堂环境更容易培养学生的解决问题能力,它的多样性又可以培养学生的探索精神并且在完成任务中表达自己的知识。
综上所述,建构主义学习观是以人为本的学习观,以培养学生的自学能力和经验为目标,强调教师的引导和促进作用。在建构主义理论的教学活动中,不仅学生在建构知识,教师也在建构自己的知识。
三、建构主义在程序设计类课程教学中的举措
建构主义学习观强调学习环境的复杂性和学习任务的真实性。学习环境由情境、协作、会话和意义建构四个要素组成。情境是意义建构的基本条件,教师与学生之间、学生与学生之间的协作和会话是意义建构的具体过程,意义建构则是建构主义学习的目的。同要完成意义建构,应在教学情境、教学手段和评价方式等要素上加以认真设计和实施。
1.教学情境的设计
建构主义理论中教学情境创设,是指以教学目标为指导,以学生已有的生活经验、理论知识为基础,设计真实的或类似真实的情境,让学生主动探索、主动发现,以利于发展联想思维,在新旧概念之间建立联系。通过自己独立解决问题,不仅在学科结构与学生内在的知识结构之间架起桥梁,而且这种成就感能激发学生兴趣,从而逐步培养学生在解决其它具体问题方面的主观能动性和创造性。因此,教师有职责为学生提供类似真实的情境,使他们在真实世界中应用知识解决问题,在教学过程中以项目的不断拓展和层层推进来带动课程的学习,驱动课堂教学的开展,这种情境将使知识建构和再建构以及获得认识和理解的学习活动变得更加容易。这种“项目驱动”教学法符合建构主义学习理论的思想,能够培养学生的创新能力、协作能力和分析解决问题的能力。以c#程序设计课程项目设计为例:
第一阶段:通过开发控制台项目,实现简易计算器的功能,从而使学生掌握c#的常用数据类型和程序的逻辑结构。
第二阶段:对第一阶段的项目进行改进,引入面向对象的思想重构应用程序,实现计算器的功能,从而使学生掌握面向对象的基本概念,明白什么是封装,并体会面向对象的优点。
第三阶段:开发windows应用程序,完成计算器的功能,从而使学生掌握windows应用程序的基本开发,掌握各种控件的使用。
第四阶段:开发简单小型对战式游戏,在游戏的逐步完善过程中,使学生掌握面向对象的继承与多态,并进一步掌握windows应用程序的开发。
第五阶段:开发综合实例:班级选课管理系统,在这一阶段,要使用三层构架开发项目,并锻炼学生的整体开发能力。
每一阶段的项目都不是一步完成的,而都是在“提出问题”、“引入新知识”、“应用新知识”、“解决问题”的过程逐渐完成的。让学生在解决项目中实际问题的教学情境中,逐步掌握各个知识点,建构程序设计的整体知识结构。
2.教学手段的设计
在教学过程中,教师起到组织者、指导者、帮助者和促进者的作用,在不同的教学目的下,采用实际案例,创设情境。
(1)在课堂上,教师可针对同一个问题,让学生提出自己的解决方案,并组织大家进行讨论,指出别人方案中的错误和不足之处,鼓励学生发问,让学生由被动听课、记忆转为主动参与和探索,以培养学生灵活适应在未来不确定情境下可持续发展的能力和创新思想。
(2)在实验教学中,可采用竞赛式教学。对于程序设计类的技能性课程,如果只强调课堂教学,到头来,其知识并不能实际掌握,因为缺少深刻的实践环节,其知识不能准确理解到位。所以其教学目标应该强调实际编程能力,以及在能力前提下的知识体系。课程教学中对能力训练的同时,也强调团队合作精神等心理素质的培养,从而在根本上提升学生的分析、解决问题的能力,即提升其学习能力。为提高学生对实验课的重视程度,可把每一次实验报告的成绩计入总评成绩,占20%的比例。
采用以竞赛形式为主的实验,能够对学生分析、解决问题的能力做出全面的训练和衡量。每一个实验作业都需要经历分析、归纳与代码编写过程,因此从根本上对学生进行了知识、能力、素质的综合训练与测试。
(3)在课余时间,可采用网络自主协助教学平台辅助学生学习,鼓励学生在网络教室的论坛中发表问题讨论帖子。为鼓励踊跃发言,教师可以给学生的帖子评分,分数可作为平时成绩的一部分计入最终成绩,从而刺激学生发帖,让他们在网上充分展示自己的观点,达到鼓励交流和为课程做贡献的效果。在实际操作中,论坛发贴的分数可占期末成绩的5%到10%。实践证明,学生的自主思考和辩论能带来更好的学习效果。
3.评价方式的设计
建构主义认为学习的最终目标是意义建构。然而,学生的意义建构并不全面,这为进一步学习提供了机会。因此,教师应建立客观的评价方式、科学的评价指标和合理的评价体系,从而正确指出学生在一次意义建构上所存在的不足,并提出指导性建议,帮助学生继续学习、探索和实践。
由于程序设计类课程是实践性很强的技能型课程,课程教学的最终目标是培养学生的编程能力,不仅在实验教学中提出了对编程实际能力的要求,期末时还必须对能力进行考核。以c#课程为例,最终成绩中,平时成绩(由实验成绩构成)占30%,笔试卷面成绩占30%,上机考试成绩占40%。
加大平时成绩所占比例,可以注重对学习过程的考查,且评价体系可有一定的弹性。实行上机考试,可进一步考核学生的实际编程能力和应变能力。上机考试可以从实验操作、错误调试、作业设计等多个方面进行考核,以现场操作、实物展示或分组答辩等形式完成对学习效果的评定。笔试试题中尽量减少记忆性内容的考核,增加对应用能力的考核,在课程的实际教学中,条件成熟时,可完全采用上机考试,取消笔试。
总之,要把各种考核当作一种手段,重过程,重能力,发挥考核的正面激励功能,使之服务于学生的全面发展和整体素质的全面提高。
四、结束语
程序设计类课程与实际应用结合紧密,所以教学应以实际的编程能力为目标,引导学生提高综合素质,掌握学习方法,实验与考试也以能力作为目标和要求。教师只有遵循学生的认知规律,结合教学内容灵活选择适当的教学方法,探索、总结并自觉在教学实践中运用课程特有的教学规律,才能达到教学效果的最优化,才能在客观上杜绝死记硬背的学习方式,告别应试教育的教学模式,培育课内外学习的良好风气。