面向能力培养的“面向对象程序设计”课程教学改革
胡晓鹏
摘 要:“面向对象程序设计”课程具有较强的实践性,通过该课程的学习,学生不仅要掌握扎实的基础理论知识,更应该具有较强的实践动手能力。本文以“面向能力培养”为课程建设目标,在利用在线开放课程平台加强引导型教学、实践教学的改革、课程考核方式改革等方面进行探索,努力提高学生的实践能力和解决问题的能力。
关键词:面向对象程序设计;面向能力培养;课程教学改革
1 绪论
推动本科高校向应用型转变,是教育领域人才供给侧结构性改革的重要内容。高校通过人才培养方案和课程体系改革等方面积极改革探索,使得应用型人才培养模式更符合产业需求,受到学生、用人单位好评[1]。应用型人才培养要求学生在学习专业理论知识时,通过适当的实践教学活动培养形式化描述能力、抽象思维、逻辑思维能力和基本设计能力,在此基础上进行问题求解、参与工程设计与实践,通过实践加强对理论的理解与掌握[2]。在教育部大力推动一批本科院校向应用性大学转型的前提下,课程建设的目标也应随之转型。在此背景下,本文就“面向对象程序设计”课程以如何面向能力培养为目标进行了教学改革的探索。
2 “面向对象程序设计”课程教学现状分析
“面向对象程序设计”是计算机类专业本科生必修的一门专业课程,该课程学习的是Java面向对象编程语言,是当前及未来一段时间的主流编程语言,是能够直接拿来进行软件开发的工具,是把所学的专业知识转化为应用的桥梁,是学生就业所需的关键技术,所以该课程在整个教学体系中占据非常重要的地位。
对于《面向对象程序设计》课程的教学改革的研究,多数集中在理论教学内容、教学方法、教学手段等方面的研究。理论教学内容方面的研究相对成熟,教学内容的体系也比较完整。但是,如何真正以“面向能力培养”为目标进行教学改革探究还较少见。目前,该课程在教学过程中仍存在很多问题。一方面许多同学感觉课程概念太多,抽象难以理解,产生了畏难情绪,基本的知识点无法掌握,更谈不上创新能力的培养;另一方面学生的实践环节薄弱,导致所学的知识点孤立、片面无法有效的组织应用在一起,从而无法完成从课堂知识到实际项目开发的自然过渡。本文针对以上两个典型问题着手进行实践教学改革,着重在充实“面向对象程序设计”实践教学内容和加强课程实践内容考核方面进行探索。
3 面向能力培养的“面向对象程序设计”课程教学改革
3.1 利用在線开放课程平台,加强引导型教学
为了让学生能更好地利用课下时间学习Java课程知识,课程团队建设了“面向对象程序设计”在线开放课程,在线开放课程的内容安排上,以构建新的多维度的实践教学内容体系为准则;在知识点的讲解设计方面,遵循以下思路:提出概念→开发平台验证语法规则→进一步拓展,复习旧的知识点或引出下一个知识点。利用在线开放课程平台,学生可以将学习基础知识部分放在课下完成,在线课程平台中除了视频、讨论区外,每周都有一些测验、作业以加深对基础知识的掌握。而在课堂上,教师的作用更多的是解决学生在学习在线课程的过程中遇到的问题,讲解遇到问题时如何解决的思路和方法。从根本上改变了传统“灌输式”教学中学习者被动学习、缺乏创新等问题,实现个性化主动教学,为加强学生的自学能力提供了良好的平台。
3.2 实践教学的改革
在“面向能力训练”原则的指引下,课程力图构建新的多维度的实践教学内容体系。在与课程同步进行的上机实践阶段,在原有的以验证性基础实验为主的实验内容上进行改进,增加设计性实验、综合性实验;在课程设计阶段,贯穿基础性实验、设计性实验、综合性实验这三种实验,注重设计内容的整体性、完整性、独立性、功能性,强调应用的背景,结合实际的项目,应用面向对象程序设计技术解决实际问题。
“面向对象程序设计”课程的实践教学包括两个阶段:第一阶段是课程进行中的上机实践,一般是16周内完成(教学学时内);第二阶段是课程结束后的“面向对象程序设计课程设计”,一般是2—3周。
第一阶段,在课程进行中根据教学内容安排上机实践,主要目的是配合课堂教学更好地消化和理解课堂讲授的内容。实践题目围绕教学内容,难度适中,让每位同学在课程教学后都能在模仿的过程中完成任务,加深对课堂内容的理解。教师适时在已完成的实验基础上提出新的问题,让学生加以创新和改造。学生在小小的成功鼓励下,充满信心不断深入学习下去。学生对每一阶段的内容及时消化理解,基础扎实,为后面的综合实验或课程设计做准备。
第二阶段,在课程结束后的课程设计环节,主要是提高学生的综合实践能力。每个学生在这个阶段都会完成一个综合性的设计题目,课程设计这一实践环节提高学生综合运用所学的基础知识和专业知识的能力,为他们的毕业设计及从事软件开发工作做必要的能力准备。课程设计阶段鼓励学生形成开发小组,针对每组的设计题目,共同研究解决方案,互相借鉴好的设计思路应用于自己的题目中,培养学生良好的团队精神。
通过以上两个阶段,可以逐步解决学生刚刚接触面向对象编程所带来的不适应,符合由浅入深,由易到难,循序渐进的教学方法。经过实践教学的改革后,学生在系统开发方面的能力有了较大提高,在此基础上,鼓励学生积极参加专业技能竞赛,近几年学生在各项学科专业竞赛中都取得了良好的成绩。
3.3 课程考核方式改革
考核评价是教学过程的指挥棒,对于教学目标的达成和教学效果的提高起着关键的作用[3]。应当以学生的能力水平为核心,采取多元化的评价体系,实行多阶段、多形式、多内容组合的评价体系,从偏重知识考核转变为知识和能力考核并重。
“面向对象程序设计”是实践性很强的课程,但很多高校的主要考核方式都是重理论而不重实践,期末考核以闭卷笔试为主。在这种考核方式下,学生实践动手能力的好坏对成绩的影响不明显。这样很可能会抑制学生锻炼动手能力的兴趣,无助于培养学生程序设计能力、独立思维能力、创造性解决问题的能力。
因此,课程团队近三年采用了以实践为导向的考核方式,提高实践教学环节在总成绩中的比重。总成绩应由平时成绩(20%)、上机实践(40%)、期末大作业(40%)这三部分组成,从整体上对学生做一个综合素质和水平的衡量。其中,期末大作业要求学生完成一个简单的Java应用,大作业题目自定。要求必须覆盖以下知识要点中3个以上的知识点:Java GUI、集合、继承(或接口)、异常、设计模式、重载、连接数据库、输入输出流。Java应用最终应能完成打包、运行,并按大作业模板要求书写与Java应用配套的档,说明应用背景、设计思路、相关类图、主要人机交互事件等。整体考核思路完全以实践考核为主线,在学生能力提升方面取得了良好的效果。
3.4 善用“错误”资源,提高解决问题的能力
在教学过程中,还存在一个比较突出的现象,是一部分同学遇到编码错误就束手无策,不知道如何处理各种类型的错误提示信息。那么这个现象反映出的是学生没有具备足够的解决问题的能力。由此反思教学,就是教师在教学过程中,讲授的都是正确的编码步骤是什么,而没有呈现出太多错误的编码会出现什么样的错误提示。因此,如何根据错误提示信息找错误原因,恰恰就是学生提升编码实践能力道路中的一个短板。
在教学中教师应该认真对待和善于利用这些“错误”,如果能够有效地利用这些“错误”,就可以引起学生足够的注意、留下深刻的印象,能够提高编程思维和解决问题的能力[4]。因此,课程组成员开始有意识地去设计一些初学者比较爱掉的坑,设计一些常见错误的编码示例,并且按照“读懂错误提示—找出错误原因—给出解决办法”的三段论,去不断训练、强化、提升学生的编码调试水平,完成在错误认知中主动构建知识的过程。
由此得到的经验是,教师不仅要教授正确的知识,也要重视错误的处理,只有教给学生解决问题的方法,才能真正培养学生独立思考、提高学生独立解决问题的能力,真正将知识内化。
4 结语
“面向对象程序设计”课程教学改革是一项长期的改革工作,在实施过程中,要根据学生的学习效果进行不断调整,包括教学资源的丰富、技术变化带来的实践教学内容的调整、实践部分的考核方式及考核比例的调整等等。课程团队要以学生的学习效果最优化为终极目标,不断调整教学模式和教学内容。
根据这几年的课程改革实施经验,仍需在以下几方面进行深入探索:
(1)加强设计性实验、综合性实验的比例,加强学生对每一个重点和难点内容的消化理解,打好扎实的基础,重视自学能力的培养,解决学生分析问题和解决问题的能力弱,自信心不足的问题;
(2)在课程设计阶段,目前仍然存在学生组建的项目组中,能力差的同學依赖能力强的同学,部分同学综合实践能力较差的问题通过课程设计没有得到明显的提高;
(3)以实践能力为主的课程考核方式,如何解决开放式题目就存在抄袭的问题、封闭式的题目就存在上机时间较短的问题,尚需找到更有效的解决办法。
参考文献:
[1]国务院.国家职业教育改革实施方案.2019(2).
[2]张荣国,李富萍,张素兰,胡静.高校计算机专业核心课程群建设研究[J].计算机教育,2015(9).
[3]林姗,李浩.基于工程教育专业认证的数字逻辑课程改革[J].计算机教育,2018(7):58-60,64.
[4]周兴腾.充分利用“错误”资源 提高课堂教学效率[J].新课程-教师,2014,5.