以“建立面向对象思想”为中心的Java程序设计基础课程教学改革探索

2013-04-29 14:36徐颖
考试周刊 2013年51期
关键词:课程教学改革应用能力

徐颖

摘 要: 本文针对Java程序设计基础课程教学中存在的问题,提出了以“建立面向对象思想”为中心的课程教学改革方案,分别从教学内容、教学方法、教学运行组织和考核标准四方面进行改革探索,旨在培养学生面向对象的思维方式和扎实的基础编程能力。实践表明,改革对提高学生的Java应用能力起到了积极作用。

关键词: 面向对象思想 课程教学改革 应用能力

一、引言

应用型本科计算机科学与技术专业软件服务外包方向的教学目标之一是培养学生熟练的编程能力,而这种能力是建立在扎实的专业课学习的基础上的。Java程序设计基础作为该方向的专业基础课,其作用举足轻重。该课程设置主要是为激发学生编程兴趣,建立面向对象的程序设计思路和编程思想,锻炼独立分析问题、解决问题的能力。实践表明,构建清晰的面向对象程序设计思想是培养专业化编程素质的重要基础。

本文根据软件服务外包专业课程建设现状,提出以“建立面向对象思想”为中心的Java程序设计基础课程教学改革方案,对该课程的整个教学过程进行思考和探索。实践表明,改革对学生建立面向对象思想和掌握扎实的专业基础知识起到了积极作用。

二、目前教学中存在的主要问题

Java程序设计基础作为软件服务外包方向的专业基础课,已在长期的教学实践中积累了丰富的教学资源,取得了一定的教学成果。但不可否认,该课程在内容设置、理论和实践教学过程中存在一些问题,具体表现如下。

1.课堂教学多以教师讲授为主,教学方式单一,整体授课思路仍为面向过程的思想。

绝大多数Java教材以面向过程的思路编排和组织内容。教师重视学生对语法的理解和掌握,需要半学期的时间专门讲授语法,程序的功能主要在主函数中完成,直到后半学期才开始讲授面向对象思想。这样导致学生在程序设计时重视模块的功能实现、缺乏对类和对象的整体设计思路,仍是以面向过程的方法解决问题,不善于运用面向对象的思想思考和分析问题。

2.课外学习量严重不足。

在以往的教学环节中,设置了必要的实践课作为提高学生实践能力的手段,但仅仅完成实践课的任务,对于学深、学精一门语言来说是远远不够的。在布置和检查学生课外学习任务方面,缺少必要和有效的方法手段,学生自主学习能力较弱。

3.Java课程群建设不完善,专业课之间的衔接不紧密。

在教学过程中发现很多学生能够扎实地掌握单独一门专业课,但在以后的新开课或综合设计中却力不从心,原因:一是大部分学生不注重平时知识的积累,处理问题不能灵活应用。二是在新课开设之前要经过漫长的假期,而学生对前一课程知识点的遗忘率很高,后续课程中又无法给予相应的教学安排和时间,这导致课程之间前后脱节,影响到学生应用能力的提高。

4.考核手段单一。

目前对学生的考核主要以期末成绩和平时实践表现为主,这就使考核的重点集中在检测基础语法知识和简单算法等方面,忽视学生在自学能力、提出问题、独立分析和解决问题、专业合作精神方面的考核,而这些综合素质不论对后续课程的学习还是工作岗位实战都是必不可少的,因此需要建立多层次、多方位的考核评价指标,从专业技能、综合能力等多维度考核学生。

三、课程教学改革方案

本文从教学内容、教学方式方法、教学运行组织三方面进行教学改革探索。

1.教学内容。

Java程序设计基础课程教学计划为理论和实践各32课时。在整个教学内容的组织上,将紧密围绕以“建立面向对象思想”为中心的教学体系,具体课程教学内容安排如下。

(1)Java工作方式及运行环境。理论和实践各2课时。主要对Java运行环境进行简要介绍,讲解环境变量的作用并能够正确配置。使学生理解Java“一次编译、到处运行”的工作特点。

(2)类的结构及特点。理论和实践各4课时。根据现实生活中存在的事物引入对象的概念,再从具有相同或相似属性的客观对象中抽象出类别的概念,将其归为一类来研究。使学生沿着从对象到类这样直观的感性认识建立对象和类的基本概念。再引导学生学习和思考Java语言是如何描述对象和类的。这样可以使学生沿着从类到对象的理性分析进行类的设计,从而为学生搭建好Java编程的基础结构。

(3)程序的三大结构。理论和实践各20课时。在顺序、选择和循环结构的讲授中,传统的编程方式是将代码放在主函数中,其体现的是面向过程的编程思路,不利于学生面向对象编程思想的培养。因此,对三大结构的讲授,在注重语法细节的同时,重点是将面向对象的思想渗透于三种结构中。针对实际案例,首先要引导学生进行类的设计,分析成员变量的构成和方法的功能,再实现具体的逻辑功能。这样,通过大量的案例分析、课堂讨论和课下练习,使学生能够透彻理解并正确运用面向对象思想分析和解决问题。

(4)Java常用类的使用。理论和实践各6课时。介绍简单而实用的常用类。使学生能够使用JDK帮助文件实现较复杂的程序功能,从中学习和欣赏Java专家设计和编写类的思路和技术,提高面向对象的编程能力。

2.教学方式方法。

良好的教学方式方法会强化教学效果,提高教学质量[1]。因此,针对不同的教学内容并结合学生实际情况,所采用的教学方法应丰富多彩,不拘一格。

在教师讲授环节以案例分析式授课方法为主,教师要根据授课内容,精心设计趣味案例,再根据本堂课知识的特点,辅助以任务驱动式和实物类比化等授课方法。尽量将抽象的概念转化为易于学生联想和对比的事物,强化理解。

课堂讨论是对传统理论教学的有效补充,是促进学生主动学习的有效手段[2][3]。在讨论课上,以问题导向式和小组讨论式方法为主。教师需要精心设计问题,确保题目难易适中,激发学生兴趣。预设的问题深入浅出,使知识点新颖别致。对于较大的问题,可以引导学生将其拆分为小问题,再逐一攻破。课堂上适时将问题抛给学生,将题目及相关背景描述清楚,给学生适量的讨论时间。讨论结束后每组提交算法思路或解题方案,再由教师进行总结,对积极思考和有创新点的学生给予肯定和鼓励。学生在独立思考问题的基础上获得新知识,必然会加深理解,从中体会到解决问题带来的喜悦,进而提高学习的主动性。

Java程序设计基础课程的实践环节分为两方面:一是课堂实践,即和每次理论教学相配套的上机训练。目的是通过有针对性的练习,巩固和加深对所学理论知识的理解。二是项目实践,是对所学知识的综合训练。目的是通过完成一个完整的小型项目,使学生全面掌握类的设计,理清类之间的关系,能够灵活应用所学知识。

3.教学运行组织

针对不同特点的教学情景,采取配套的组织方式,具体实施办法如下。

(1)课堂讲授。对于具体的知识点或语法的讲授,可以采用任务驱动和案例分析方法。由教师提出任务或案例,可以先采用非编程方式解决,再引入Java中解决此问题的新知识点,进行剖析后解决问题,使学生体会Java语言在解决此类问题中的优势,这样不仅使学生初步掌握了具体知识,还对知识的应用环境有所了解。比如讲解静态变量的特点时,可以提出一个分苹果的游戏,假设人民公社拥有若干苹果,个人有一些苹果,给定苹果的分配规则后,个人要依据分配规则决定是交出自己的一些苹果给公社或是从公社中获取苹果。在准确描述游戏后,启发学生思考能否利用已学知识同时表示公社苹果数和个人苹果数,从而引入静态变量的概念。另外,在讲授过程中,教师可故意设置一些错误,引导学生发现和纠正,使学生在错误中学习、成长。

对于面向对象思想和应用的讲授,可以采用实物类比化方法。任何事物都是对象,面向对象的思想从现实生活中来,在讲授时要回到现实事物中去,这样可加深学生的理解。例如在讲授类的设计、对象的创建和对象的使用时,可以类比汽车图纸(类的设计)、宝马汽车(创建对象)、宝马加速减速暂停(对象的使用),类比语文中“主、谓、宾”的句子结构。只是在Java中将对象作为主语、函数作为谓语、函数参数作为宾语,引导学生将日常思维通过编程语言来表达,比如“宝马要加速”这句话,用Java编程实现就是宝马对象调用加速方法,结果是修改宝马的成员变量:速度。这样可以使学生体会到Java的生动性和实用性,而并非枯燥难懂,从而提高学习兴趣。

(2)课堂讨论。在以小组讨论或学生演讲为主的课程教学环节,主要采用问题导向式方法。一学期安排至少5次的讨论和演讲教学。讨论或演讲内容包括:①现实中的事物到程序中类的转化思路。②具有选择结构和循环结构的问题特征及相关算法讨论。③实际问题中的对象状态变化展示(学生演示为主)。④学生成绩管理系统设计思路。⑤现实生活中的各种异常和处理方法。所讨论问题没有标准答案,多以面向对象思想分析问题构成和描述解决思路。比如学生成绩管理系统的设计,讨论过程中要求学生详细描述需要设计哪些类,每个类的作用,具体用到的成员变量和成员方法的解释说明,讨论或演讲时间控制在20分钟。在讨论过程中,要求学生及时记录分析思路、过程收获,最后以报告形式提交。教师要认真批阅学生的过程报告,对其中独特的解决思路给予表扬,对分析能力逐渐增强、表达日益通顺的学生给予充分肯定,开发学生的学习潜能。

(3)实践环节。CDIO教育理念倡导“做中学”,让学生以主动的、实践的方式学习工程[4]。本课程在整个实践教学的各个环节以此为导向,切实提高学生的动手能力和应用能力。

在课堂实践环节中,教师要选定合适的练习题目,这些题目不仅要起到巩固、熟练基础知识的作用,更重要的是要启发学生思考,使学生通过模拟、类比等多种方式主动学习,尽量从自己理解的角度说明一些基本概念的作用,而非只是重复书中给出的定义,力求使学生给出的答案是经过自身思考并总结的结果。例如定义一个变量存储百分制数学成绩,要求变量占用尽量少的内存空间,该变量定义成何种数据类型。列举现实生活中具有选择结构、循环结构特征的问题。对于一些实际问题,需要逐步引导学生分步解决。例如对于实现“统计一行字符串中有多少个单词,每个单词之间用空格分隔”这个功能,需要提示学生设置一个计数器来统计单词个数,初值为0。遍历该字符串的每个字符,当遇到新单词的首字母时,计数器加1。再启发学生将字符串中的所有字符分为三类,要求学生用自然语言描述出三类字符的各自特征及对每类字符所作的处理,直到讲授完循环结构,要求学生编程实现此功能。另外,教师可鼓励学生自己提出练习题目,将常见的数学问题通过计算机算法解决,并将部分优秀的习题提供给其他学生分享。

项目实践在学期末进行。以小组的形式完成整个项目,每组4人,项目题目要由所有组员反复讨论,保证题目的实用性,确保实践内容能够涵盖所有重要知识点。题目最终要经过指导教师的审核。在实训过程中各位组员合理分工,分别完成对项目的需求分析、模块功能划分、类的设计及算法实现。指导教师要定期参与其中,提供必要的指导和交流,检查项目进度。实训结束后,要求每组提交项目代码,个人总结一篇,小组报告一篇,并进行小组答辩。由指导教师评定并给出改进意见。

(4)课外学习。

爱因斯坦说:“人的差异在于业余时间。”强化课外学习是巩固专业知识的必然途径[5]。课堂教学只能使学生对专业知识有基本的了解,如果想要将编程语言学深、学透,则大量的工夫要花在课下。针对课程特点和本专业学生的实际情况,必须增大学生课外学习量。课外学习可以通过课程网站、习题集和项目作业来实施。教师在Java精品课程网站上建立Java学习的相关视频、Java语言发展的历史和逸事、历年Java等级考试的相关资料和学生大作业作品展示,通过这个平台,学生既可以及时获得Java学习的相关资料,又可以共享和学习其他同学的作品成果,进而提高学习兴趣。在每个学习阶段,教师需要布置和所学内容相对应的课后习题和项目作业,要求学生给出项目实现思路、实现过程和收获体会,记录项目完成时间。在方式上,可以采用个人独立完成或小组合作的形式。通过学习课程网站和完成项目作业,并进行有效考核,必将能够使学生的课外学习量大大增加。

(5)课程衔接。强化课程之间的链接机制,进一步改进实践环节。针对学生在跨假期的课程之间知识点容易遗忘的特点,可以在假期中开展一定的实践项目,加强课程之间的链接。以Java程序设计基础及其后续课程Java面向对象编程为例,可以在前序课程结束时布置假期实践作业,作业内容不仅包括类的设计,而且包括部分面向对象的高级应用,这样学生在假期中不仅复习和锻炼了前序课程的重要知识点,而且预习了后续课程,对后续课程的基本轮廓有所了解,更好地学习后续课程。

四、课程考核方案

课程考核成绩=期末成绩(40%)+平时成绩(60%)。期末考试采取闭卷笔试的方式,主要考查学生对基本知识点的掌握和面向对象编程思想的建立。平时成绩由四部分构成:一是上机课作业完成情况,体现了学生的基础实践能力,考核分为优、良、可、差四个等级,上机课作业完成情况占总考核成绩的20%。二是项目实践完成情况,体现了学生对Java语言的综合应用能力。首先由教师给出总分,然后采取小组成员自评或互评的方式,由组长分配每位成员的具体得分。考核分为优、良、可、差四个等级。项目完成情况占总考核成绩的20%。三是课堂讨论和项目演讲,考核指标主要分为设计思想、类的描述、编程实现、表达技能、团队合作五大方面,分为优、良、可、差四个等级。课堂讨论和演讲占总考核成绩的10%。四是课外资源利用率和课外作业完成情况,反映了学生的自学水平和报告写作能力。需要考核每位学生对精品课程网站的浏览次数和利用率,课外作业报告的完成质量。考核分为优、良、可、差四个等级。本项考核占总考核成绩的10%。

五、结语

本文通过探索多样的课程教学方式方法,布置课外和假期实践项目,建立多维的考核体系,旨在提高教学质量,使学生建立面向对象的编程思路,灵活设计类和使用对象解决简单的实际问题,进而增强成就感和自信心,在良性循环中提高自主学习能力。

参考文献:

[1]王文冰,李辉.以实例贯穿课堂的面向对象程序设计课程教学改革.计算机教育,2011(1).

[2]汤亚玲,秦峰.面向对象程序设计课程教学探究.安徽工业大学学报(社会科学版),2008(25):6.

[3]梁婷婷.面向对象程序设计高效课堂的探索与实践.广西民族师范学院学报,2013(30):3.

[4]张桦,温显斌,王劲松.基于CDIO模式的计算机专业教学改革.计算机教育,2010(6).

[5]张剑波,王婷.面向对象程序设计课程教学改革与实践.黑龙江教育,2008(11).

基金项目:宁波大红鹰学院教改项目,“以‘建立面向对象思想为中心的Java程序设计基础课程教学改革”。

猜你喜欢
课程教学改革应用能力
民办独立高校课程群建设中的数据结构课程教学改革的探索
浅谈如何提高经济管理类本科生的应用能力
高中数学课本教学的探索研究
基于学生能力培养的组织行为学课程教学改革探究
高等数学教学培养学生应用能力的探讨
提升信息技术实践能力,促进学生全面发展
程序设计课程中计算思维和应用能力培养问题研究
数学课堂中实施生活化教学的研究
基于PBL模式的医学免疫学课程教学改革经验
浅谈中职《模拟电子技术》课程教学改革