“Java语言程序设计”课学生能力的培养

时间:2022-05-30 05:35:25

“Java语言程序设计”课学生能力的培养

摘要:本文针对Java语言程序设计课学生的动手能力和自学能力薄弱的问题,结合近年来的教学经验,从课堂教学、阶段性实验、总结性实验、测评和延伸课堂教学五个方面进行了实践探索。

关键词:Java;动手能力;自学能力

中图分类号:G64 文献标识码:A

文章编号:1672-5913 (2007) 15-0031-03

Trained student’s ability in Java programming language

Abstract:In view the problem that students are short of the Practical ability and Self-learning ability,We explored solutions from five sides that are classroom teaching、 stage practice 、complex practice 、testing and the extension of the classroom teaching.

Key words:Java;practical ability;self-learning ability

“Java语言程序设计”课被安排在大二第一学期,作为C语言之后的第二门编程语言,教学目的有二:一是让学生建立起面向对象的编程思想,二是熟练掌握Java的基本语法。但是以往的教学经验表明,很多学生学完这门课程之后并没有达到预期的教学目的。在期末笔试中可以考80多分的同学不能发现和改正一个常见的语法错误,能对教材中“方法重载”概念倒背如流的同学不能识别编程中的两个同名方法是否属于重载,项目实习中的大部分同学搞不清新创建的对象和对已有对象引用二者间的区别,对于课上授课时老师没有涉及到的工具类不知如何使用。

透过这些怪现象可以发现一个共性的问题,就是在讲授“Java语言程序设计”时对学生的若干能力的培养没有到位。首先是动手能力的培养没有到位,以至于部分同学对Java语言的学习还停留在“纸上谈兵”的阶段。其次是自主学习能力的培养没有到位,以至于涉及到讲授范围之外的知识就不知从何入手。计算机专业作为实践性很强的一个专业,良好的动手能力不仅是未来职位竞争的一个重要砝码,也是社会对人才需求的一个标尺。计算机技术的发展日新月异,如果没有自主学习的能力,无论在学校里学习的技术有多么流行,也很难保证在明天能找到工作或是在未来的工作中不被淘汰。

在这样的背景下,我们对“Java语言程序设计”课进行了一系列的改革,力求在达到教学目的前提下培养学生的多种能力。首先就是将该课从64学时增加到96学时,本着精讲多练的原则,充分利用我校学生人手一个笔记本电脑的优势,将实践课时定位到整个课时量的2/3。同时采用“任务驱动”的课堂教学模式、阶段性实验教学、总结性实验教学及课外丰富网络资源相结合来加强对学生各种能力的培养。

1 “任务驱动”课堂教学

1.1任务展示,激发兴趣

每节课上课前教师要把下节课的任务上载到校园网上,上课时还要把本节课的任务写到黑板上或是以课件的形式展现给学生,同时在课堂教学过程中时时和教学任务相对应,让学生对本次课的任务心中有数。

把复习旧知识的教学环节设计为新旧知识连接的桥梁。即让学生通过调试程序在回顾旧知识的过程中发现新问题从而引出本节课的主要任务。通过教师精心设计的“引例”引出新问题激发学生思考的兴趣,以解决问题的心态驱动学生的学习欲望并自始至终维持浓厚的兴趣。

1.2自主探索任务,注重能力培养

这是一个全开放的教学环节,目的就是让学生在自主探索的过程中完成对新知识的练习和巩固。计算机科学与技术学科是一门实践性极强的学科,而以往的教学往往因为学时的原因对动手能力的培养不足。有一句关于实践的谚语是这么说的:“我听到的会忘掉,我看到的能记住,我做过的才真正明白”,讲的就是理论作为实践的支撑不是死记硬背背会的。让学生亲自动手实践,编辑调试程序,要比听老师讲、看老师做记忆深刻,同时还能明确知道自己到底哪个地方不会,特别是编译中出现的错误往往让学生印象更深刻。

因此,语法、知识点的讲解全部用程序说话。让学生先看例子,通过动起来的例子看到程序的运行结果,至于为什么这样,如何做到这样正是教师要讲的新知识点。例子讲完之后布置3个操作练习。第一个练习是“仿”,即完成一道和例子极其相似的程序,让学生在模仿中巩固和加深对新讲授内容的理解,同时教师巡视单独答疑,帮助学生澄清教师讲解时没有理解的内容,最后教师就共性问题予以强调。第二个练习是“改”,即对第一个例子加工,将教师在讲解时已提及而例题中未涉及到的问题交给学生,激发学生自主学习的热情。在此过程中,教师对关键性问题给出指导思想。第三个练习是“提高”,即将具有一定算法难度但语法适用于当前阶段的问题抛给学生,培养学生的算法设计能力。在此阶段教师主要起启发、引导作用,启发学生的创造性思维。

同时还可根据实际情况,设计一些查错、改错程序题,这些错误要么是学生调试中出现的共性问题,要么是需要重点注意的知识点。通过人为设计的“障碍”程序。学生见得多了就不至于出现对一个错误束手无策,等待老师解决的现象。

1.3课堂总结,呼应任务目标

每次课留出10分钟,对本节课的知识点及需要注意的问题进行总结,总结时应和课前提出的任务对应,强化学生的目标意识。同时, 肯定和表扬学生“提高练习”中创新思维。

2阶段性实验教学课――知识系统化的过程

当基础知识学到一个阶段,基本是一篇内容学完后,安排一次阶段性的实验教学课,为学生提供梳理知识和知识系统化的一个机会。

阶段实验不同于课堂教学中的三个练习,课堂练习力求短小,着重突出当次课的某个知识点,而阶段实验的题目相对稍大一些并覆盖本阶段中所涉及的绝大部分知识点,同时具有一定的算法设计思想。

在设计阶段实验时应把握如下原则:

(1) 无需特殊的领域知识。着重选择和学生的学习生活贴近的问题,避免很强或很广泛的领域知识,但应同时让学生体会到编程不是为了编程而编程,而是为了解决实际中的问题。

(2) 综合运用阶段中的关键知识点。设计阶段实验课目的主要是培养学生综合运用知识的能力,因此设计实验时应涵盖本阶段的绝大部分知识点。

(3) 适当的代码量。阶段实验的编程应具有60-100行左右的代码量,考虑到本门课的目的,在给定实验题目时应给出设计的框架。

评价标准

考虑到学生的个体能力差异,允许学生根据自身情况选择完成不同分数段的代码编写。即教师在设计题目时应对实验题目根据其所涉及到的算法难度分为基本级、中级、高难级,如可以规定完成一个基本难度的代码编写并调试通过能拿到60分,中级难度代码完成拿到70―80分,高级难度代码完成拿到80―100分,让每个学生都能获得均等的自我肯定的机会。

3总结性实验教学课――自主学习的过程

有过项目实践经验的人都认为,通过做项目能学到的东西远比听课学到的东西多,因为这是个实践和自主学习的过程。在Java语言程序设计课教学计划需讲授的内容讲授完毕后安排一个为期一周的总结性实验教学课,借助于企业办学的优势,将公司中的实际项目抽取简化,交给学生以小型项目的形式来做。在完成这个小型项目的过程中可能会涉及到一些课堂上闻所未闻的知识,利用这个机会锻炼学生搜集资料、整理资料获取知识的自主学习能力。在此阶段,教师的职责不再是教学生如何解决一个具体问题,而是告诉学生到哪里能查找到帮助解决问题的资料。

这个实验和阶段性实验的区别在于:

(1) 题目是真实项目的简化,给定明确的需求和概要设计描述。

(2) 学生分项目组进行,由组长负责分工和给定工作量权重,培养团队合作精神。

(3) 历时时间一周,除正常课堂时间外还需学生利用部分课余时间完成。

(4) 教师主要负责需求和概要设计讲解,由学生自己完成详细设计和代码编写。

(5) 涉及到的知识点可能是课堂上没有接触过的,允许学生利用多种资源去寻找答案,培养自主学习能力和解决问题的能力。

评价标准

每个人的成绩和项目组最后的成绩挂钩,将项目组的最终成绩分成A、B、C三等,确定每个等级中小组成员的得分最高限,根据组长对组员完成工作给定的权重及最终完成情况给每个组员打分。从而让学生对个人成绩的关心转移为对整个团队成绩的关心。

4测评,尊重学生的个体差异

无论什么课程,都要涉及到考试的问题。对于一门程序设计语言来说,从卷面是不能客观评价一个学生对知识的掌握程度的。因此我们改变了以往一张卷子定分数的做法,把期末成绩拆分成两大块:平时成绩和卷面成绩,二者的比例是各占50%。

平时的成绩的50分又由阶段性测评(20分)和总结性测评(30分)构成。其中阶段性测评采用教师学生一对一测试的方式进行,在测评时充分考虑学生的个人能力差异,分层次区别对待即将测评结果根据测评内容分成三个等级。

在学生参与测评前根据自己的实际情况,自己定位自己的测评等级,教师根据学生选择的分数等级抽取一定的试题。

这种分层次的测评避免了所有学生一个标准,让学习能力稍弱的同学也能给自己一个自我肯定的机会,在某种程度上保护了学生的学习积极性。这样的阶段测评一般在一篇内容学完之后进行,一个学期每名同学应有3次的测评机会。

而总结性测评的成绩主要由阶段实验的成绩和总结性实验的成绩两部分构成。通过这种成绩给分的改革,强调学生要把精力放在平时,引起学生对平时学习的重视,在某种程度上对学生起到了督促促进作用。

5多渠道延伸课堂教学

教学质量的保证远远不是课堂45分钟的作用,我们还利用多种渠道延伸课堂教学。主要表现在以下几个方面:

(1) 充分利用网络资源。

随着网络的发展,利用网络媒介作为课堂的延伸已经成为一种必然。除了在校园网上为每位任课教师开辟教学专区使其能将课件、程序、电子教案共享外。还建立了Java的FAQ,针对以往学生在学习过程中经常会提出问题的地方加以整理,方便学生查询。同时在计算机系网站中开辟Java技术的在线讨论区,任课教师每周固定时间轮流在线答疑。

(2) 组织人员编写题库。

力求试题规范化的同时,为课上“吃不饱” 的学生提供更多的挑战自我的机会。

(3) Java语言程序设计大赛

以比赛为契机,发现Java技术方面的优秀苗子,为进一步的人才培养做准备,同时给同学一个展现自我技术才能的舞台。

5结论

通过两个学期的改革实践,“Java语言程序设计”这门课程取得了良好的教学效果,很多同学的动手能力和自学能力得到了提高,教学质量得到了一定的保证。

参考文献

[1] 郭岩,郭长勇,郭成实.程序设计语言的教学实践与探索[J].计算机时代, 2005,(11): 36-37.

[2] 于志敏.任务驱动教学法在程序设计教学中的应用探讨[J].福建高等教育,2006,(1): 76-77.

[3] 王悦悦.浅谈计算机专业实验、实习教学改革的研究与实践[J].中国科技信息,2005,(18B):228-228.

[4] 张季良.任务驱动教学法在计算机教学中的使用[J].中国科技信息,2005, (13B):P156-156.

收稿日期:2007-04-11

作者简介:王红(1974-),女,辽宁阜新人, 讲师,硕士,研究方向:网络安全,Web开发。

上一篇:独立学院专业教师履行育人职责问题的探讨 下一篇:公安院校计算机教学中存在的问题及其对策