张立涓
(深圳职业技术学院 广东 深圳 518055)
高职面向对象程序设计(Java)课的教学探索与实践
张立涓
(深圳职业技术学院 广东 深圳 518055)
结合笔者多年对面向对象程序设计(Java)课程的教学实践,针对目前高职院校面向对象程序设计课程的教学所面临的问题,探索并总结出“激发兴趣,重建信心;授之以渔,事半功倍;任务牵引,循序渐进,激发成就感”为主要内容的高职教学方法。实践证明,该教学方法有利于提高学生的学习兴趣和学习信心,提高教师的教学水平和教学质量。
高职;教学方法;教学实践;学习兴趣
目前,各高职院校都开设了面向对象程序设计类的课程,通常无外乎C++或者是Java程序设计语言。而学习面向对象程序设计课程之前学生大都学习过C语言,学习面向对象基础课程后还需要学习J2ME/JSP等相关后续课程,因此这类面向对象程序设计的基础课程,具有承前启后的作用,如何帮助学生建立起面向对象的编程思想、培养学生编程兴趣、掌握编程基本方法成为这门课程的主要任务。
根据笔者多年的教学经验,由于学生在学习面向对象程序设计课程之前,都学习过C语言,对编程语言有了一定的了解,有很多学生在学习C语言的过程中已经开始对程序设计类课程开始望而却步了,甚至对编程类课程采取放弃的态度,他们觉得“C语言都没学好,Java肯定也学不好了”,这种心态严重影响了教学效果。针对这样的情况,笔者根据自己多年担任面向程序设计类课程教学的经验,探索了一些行之有效的教学方法。
笔者曾经对2007级和2008级共4个班级的学生在开始课程教学前做了一次问卷调查,调查结果如表1所示。
表1 问卷调查结果
如表1调查结果显示,大部分学生兴趣不浓,少部分学生还没有开始学习就已经采取消积放弃的态度了,综合多年的经验以及与学生的沟通,笔者分析出现上述情况的主要原因如下:
1.面向对象程序设计(Java)这门课程开设在第二学年第一学期,学生在第一学年学习了C语言程序设计这门课,一部分学生C语言没有学好,导致对编程失去兴趣和学习的信心,因此,对编程类课程也有消极抵触情绪。
2.高职院校的学生普遍存在一个问题,即逻辑思维能力相对较差,这个问题在中学阶段突出表现为数学成绩不好,到了大学编程类课程依旧要依靠逻辑思维能力。因此,在逻辑思维能力没有培养起来之前,学习编程类课程确实存在困难。
3.学生没有找到有效的学习方法,导致学习过程中连续受挫,慢慢丧失学习的兴趣和信心。
4.还有一小部分学习能力较强的学生在第二学年已经确定了学习方向,将来并不打算从事软件编程相关工作,这部分学生学习这门课程的热情也不高。
针对大部分学生学习兴趣不浓的现状,当务之急是如何激发学生学习的兴趣,从而重建自信心。“兴趣是最好的老师”,只有有了学习兴趣才能在枯燥的学习过程中体会到乐趣。为了激发学生兴趣,笔者采取了如下方法:
首先,笔者在开学的第一次课上强调“忘记C语言,一切从零开始”的观点,要求学生忘记所有关于C语言学习的不愉快的经历,尽量避免把Java语言与C语言进行比较,所有在学生都在同一个起跑线上。笔者发现,当说出这句话的时候,很多学生很轻松地笑了。
很多面向对象程序设计的教材都会把Java和C语言进行比较,很多教师讲授Java课的时候也习惯于不时地把C语言扯进来比较一下。我们先不说把两门语言进行比较是否有实际意义,殊不知,对于那些C语言本来就没有学好的学生,这个比较对他们无异于“当头一棒”,不可避免地打击了他们学习的信心。
其次,把以往学生的优秀课程设计作品进行展示,让学生清楚地看到学习这门课程之后能做些什么,也就是明确学习的目标。很多学生看了优秀作品展示后很惊讶地问:我们也能做成这样么?很显然,他们已经开始有兴趣了。
有了学习的兴趣就相当于成功了一半,但是,如果没有掌握学习方法,在学习过程中连续受挫,也会慢慢丧失学习的信心。因此,要学习好这门课程关键还要掌握正确有效的学习方法。笔者针对高职学生的特点和自己的学习经验总结出以下几点初学者学习编程语言的方法。
模仿法。回忆一个婴儿学习说话的过程,最初的嘤嘤学语不都是在模仿成人么?也许在他第一次模仿的时候并不理解某句话或者某个词语的含义,但是,当他得到对话的反馈之后慢慢就理解了其中的含义,从而学会了一句话或者一个词语。其实,编程语言也是一门语言,只不过是人和机器之间的语言。对于初学者,完全可以从简单程序的模仿开始,可以模仿教师的演示程序,可以模仿教材或者参考书的程序,当程序运行后得到了结果,再去思考为什么会有这样的结果,返回头来再看看程序,往往能恍然大悟。
拼装法。有些时候编写程序并不一定要一行行地敲,可以适当地使用“ctrl+c”、“ctrl+v”,把能完成某一特定功能的程序段“借用”到自己的程序当中来。对于初学者,能将各个不同的程序段“拼装”成一个完整的程序,并实现一定的功能,也是一个提高编程能力的过程。
记忆法。编程语言也是一门语言,因此,必须遵循一些规则,只有记住这些规则才能够正确使用这门编程语言。这里所说的记忆并不等同于死记硬背,我们不提倡对程序死记硬背,但是,基本的语法却是要铭记于心的,这样写程序的时候才不至于经常犯一些低级错误。
破坏法。笔者经常在课堂上发给学生一些程序,让他们去“破坏”,比如:修改某个变量的数据类型或者修改数组的长度等等,让学生观察“破坏”后的程序能否编译通过,或者运行结果会有什么不同,然后,再返回头来看程序,分析原因,得出结论。学生对这个方法颇有兴趣,经常把程序“破坏”得面目全非,按照他们的意愿把程序“破坏”后依然能正确地运行得到正确的结果,这个过程是笔者和学生都很享受的。尤其是一些编程基础不是很好的学生,看到这个方法马上就来了兴趣了,写程序难,破坏程序可就简单了。但是,笔者要求他们把程序破坏掉之后,要总结出一点东西,这样才能在“破坏”后得到进步。
每个知识点都尽量以具体任务开始,这样学生脑海中有个清晰的目标,学习起来不会太盲目。举个例子,在讲授Java流程控制语句这部分内容的时候,笔者以“猜数字游戏”这样一个任务贯穿始终。之所以采用“猜数字游戏”作为任务,主要因为这个游戏很有趣,很容易引起学生的兴趣,同时任务的分解和扩展更加贴近知识点。如图1所示,是整个任务的扩展过程,每次扩展都包含新的知识点。若把整个任务一次性交给学生,学生不可避免地会有无从下手的感觉。我们按照知识点把任务分解,逐步扩展,这样学生一步步地完成整个任务之后,玩自己做的游戏会非常有成就感。有了成就感之后,学习的兴趣就更浓了,这样会产生一种学习过程的良性循环。
通过对教学方法的调整,教学效果明显提高了,学生学习的兴趣也浓了。主要表现在:学生课堂上提出的问题越来越多;原来对编程类课程没兴趣的学生也被这种氛围感染了,课堂上基本能够跟着教师的思路;个别学习能力强的学生课下能够积极看书,做超前学习或者自主学习相关的课外知识,使笔者也品尝到了“教学相长”的乐趣。
[1]姜大源.当代德国职业教育主流教学思想研究[M].北京:清华大学出版社,2007.
[2]温家宝.大力发展中国特色的职业教育——在全国职业教育工作会议上的讲话[J].中国职业技术教育,2005,(34).
[3]王伟廉.高校课程体系现代化的基本特征[J].教育发展研究,1997,(4).
G712
A
1672-5727(2010)08-0080-02
张立涓(1977—),女,黑龙江海伦人,硕士,深圳职业技术学院计算机应用工程系讲师,研究方向为计算机网络软件编程。