Java教学实践与编程思维培养
2009-12-30叶恒舟牛秦洲
叶恒舟 牛秦洲
摘要:Java教学实践既是知识的传授与学习过程,也是编程思维的培养过程。本文结合教学实践经验,从激发兴趣、启发式教学、习惯培养、强化动手能力等几个方面探讨了在Java教学实践中培养学生编程思维,提升动手能力的方式方法。
关键词:Java;编程思维;教学实践
中图分类号:G642文献标识码:A
1引言
俄国的达维多夫说过:“要解决现代学校教育的根本任务,归根结底要通过教学目标、教学内容和教学方式的设计而改变思维类型。”可见现代教育的目标决非停留在仅仅掌握基础知识和基本操作技能上,而应着眼于培养学生分析问题、解决问题的能力,发展学生的思维品质,提升学生的创新意识。程序设计具有抽象性、系统性和逻辑性,编程思维是学习程序设计的重要基础,也是“软件蓝领”的必备能力,在程序设计的教学实践过程中尤为重要。
Java语言具有面向对象,与平台无关,安全、稳定和多线程等优点,实践性强、知识面广,是目前软件设计中最具生命力的计算机编程语言之一。学好Java语言,培养良好的思维品质,能有效促进学生的知识、能力和人格的全面发展,提升学生的就业、创业能力。
2Java实践教学探索
近几年来,我们在Java编程初步教学实践中为全面提高、培养学生的编程思维能力,实现素质教育目标,进行了一些有益探索与试验,取得了良好的效果。
2.1激发学生的兴趣,调动学生学习的积极性
夸美纽斯说过:“兴趣是最好的老师,是学好一切的前提”;爱因斯坦也认为“兴趣是最好的老师”。教师是教学主体,可通过创设一定的学习环境展现课程的趣味性和社会实践意义,以唤起学生的学习欲望,激发学生的创造潜能,达到事半功倍的效果。我们在实践教学过程中,除了强调该课程知识对于后续课程学习以及就业、创业的重要意义之外,还结合具体课程知识,有针对性地设计实现一些有意义、有趣味的小程序。比如在学习完三种程序结构之后,实现了一个简单的自动考试系统,可以随机生成一些四则运算题,让学生作答,之后可以自动评分。通过这个小程序,学生会对Java语言的社会实践意义有更具体的认识,吸引他们的注意力,激发学习兴趣。再如,以夫妻双方对家庭收入的不同管理方式为例,介绍面向对象程序设计与结构化程序设计的区别,显得直观而有趣味,很能吸引学生的眼球。
2.2巧设疑问,营造创新氛围
亚里士多德说:“思维自惊奇和疑问开始”。问题是开启思维和发表思维的源泉;创新意识是一种发现问题、积极探求的心理取向。在程序设计的任务驱动式和讨论式教学中,由于问题具有可操作性与多解性,为学生的主动参与创造条件,有利于转“师生关系”为“朋友关系”,发挥学生的学习主体作用。在程序设计教学实践过程中,大多都会引入程序实例,并通过实例的讲解加深相关知识点的理解与运用,这是很好的。但如果只是展示相关代码,再逐条解释,会显得枯燥无味,学生也往往只是把握了一些知识点,而不能提升思维能力,达不到灵活运用的目的。在教学实践中,我们往往会有针对性地引入教材中没有的程序,带着疑问来讲解、实现这些例子。一般是先给出程序要达到的目的,与学生一起进行功能探讨与分析,划分成几个子问题,然后逐个实现;实现中也主要进行思路上的引导,比如需要用到什么程序结构、需要使用哪些关键变量等,并适时、适量提出一些典型问题,让学生亲临其境,真正活学活用。
对于教师提出的问题,学生的想法有时并不正确,却具有一定的代表性。这时,我们会尊重学生的想法,并按照学生的想法继续推演,直到发现问题,然后再进行分析归纳,指出问题所在。在这种交互的过程中,学生不仅学会了知识,锻炼了思维,师生关系也更为融洽。
2.3言传身教,养成良好编程习惯
未来对软件质量的要求高于对性能和功能的要求,特别是一些涉及人身财产安全方面的软件。然而时至今日,软件质量问题依然不容乐观,由软件质量问题导致的人身财产损失数不胜数。良好的编程习惯可以大大提高软件开发的速度与质量,减少人为错误。
编程习惯是指编程者在程序设计过程中共同遵守的一些规则或者约定,目前并没有一个完整的定义,但很多业内人士总结了一些优良的Java编程风格,如命名、缩进格式、注释、空格使用等。尽管这些风格并不难理解,但初学者所接触的软件比较简单,往往体会不出这些编程风格的好处,反而觉得是一种束缚,并不重视。在教学实践中,我们采取了多种方式强化良好编程习惯。一是适当列举一些软件质量轶事,强调编程风格、软件质量的重要性;二是身体力行,在教学过程中严格遵守一些好的编程习惯,如果确实因为板书或时间的原因不能遵守,则专门作出说明,指出这些地方做得不好;三是通过实例分析比较,强调良好的编程习惯的优势;四是在实践教学环境中及时发现并纠正学生的不良编程习惯。
2.4加强实践教学,提升动手能力
实践教学的贯彻落实,是关系到专业和课程设置的目标能否实现的重要一环。我们在Java程序设计实践教学中采取以下措施:
(1) 选择合适的开发平台
Java有最基础的开发平台,即J2SDK,简称JDK。另外还有许多集成开发环境( IDE),例如JBuilder、NetBeans,也可以直接使用DOS环境。前者隐藏了很多Java处理机制,不利于初学者对Java语言本身的理解;后者需要学生熟悉DOS控制台,开发环境的设置会给学生带来一些困惑。经过比较,我们选择使用免费的、较为简单的BlueJ作为开发工具。BlueJ提供了语法敏感的编辑环境,不需要配置环境,并带有很强的软件测试与调试功能,它并不提供可视化控件,所有代码仍需要手工编写,是前两者很好的折中方法,很适合Java初学者。
(2) 由浅入深,设定实践任务
采用“三段过程”实验教学方法,即模仿过程实验、完善过程实验、综合过程实验这三种类型实验形式,由浅入深分级设定实践任务,并制定基本目标与扩展目标,以适应不同层次的学生。受实践指导时间的限制,扩展目标可以留给学生自己实践,教师及时把握相关反馈信息,加强师生互动。在实践过程中,我们认为不宜给出源代码;主动发现并指导学生实践中出现的过程;对共性问题,要分析产生的原因,知其所以然,而不是简单给出正确方法。
(3) 课程设计过程的规范化训练
课程设计是培养学生综合利用所学知识、分析和解决实际问题,锻炼创造能力的重要实践环节。为此,我们精心设计、下发了课程设计任务书和课程设计指导书,提出了课程设计目的与任务、内容与要求、时间与学时分配、撰写课程设计报告及要求和格式、考核及成绩评定。
2.5积极引导,培养学生的自学能力
常言道:“授之以鱼,不如授之以渔”。Java语言涉及知识面广泛,而教学课时有限,引导、培养学生的自学能力是Java程序设计教学的重要内容。在教学实践过程中,除了强调自学能力的重要性之外,还采取了如下措施:
(1) 引导学生学习使用Java API文档
毫无疑问,Java API文档是最为重要的参考资料,是提升学生自学能力的重要手段,但很多教材中并不重视,也往往被广大教师与学生忽视。教学实践中,我们在介绍类String、ArrayList、GUI编程时介绍Java API文档的使用方法,示范其功效,强调其作用,引导、鼓励学生使用它。
(2) 引导学生学习使用调试工具,掌握一些调试方法
在授课过程中,教师所举的程序只需要正确编译就可以正确执行,从而对学生产生了一些误导,忽略了调试工作,甚至根本不知道调试方法。在教学实践中,我们采用RAD设计方法,由简单到复杂,通过逐步调试、测试、改进,达到最终效果。在此过程中,既介绍了处理问题的方法,又强化了思维过程,也教授了一些调试、测试方法。
(3) 引导学生利用网络平台
网络已经走进了千家万户,学生机房、宿舍也大多开通了网络,而Java作为一种开源语言,拥有无数的网络资源,引导学生充分利用网络平台获取资源,也是提升他们自学能力的重要手段。
3结束语
程序设计的整个过程始终贯穿着思维的过程。思维指导着程序的设计,反过来,设计的程序能否解决实际的问题,又检验着思维的正确性。将优秀的教育教学理念与实践相结合,运用于Java教学实践之中,能够极大地激发和培养学生的思维能力、创新能力,促进他们的知识、能力与人格的全面发展,提升他们的就业、创业能力。
参考文献:
[1] 卢锡红. 启发式教学模式与化学思维能力的培养[J]. 文教资料,2005(17).
[2] 印旻. Java语言与面向对象程序设计[M]. 北京:清华大学出版社,2002.
Java Teaching Practice and Program Thinking Cultivation
YE Heng-zhou, NIU Qin-zhou
(Guilin University of Technology, Guilin 541004, China)
Abstract: Java teaching practice is both the process of knowledge teaching and learning and the process of program thinking culturing. This thesis combined with the experience of teaching practice, through stimulating interests, using heuristic teaching, training habits and strengthening the practice capacity, discusses some methods to culture students program thinking and enhance their practice ability in Java teaching practice.
Key words: Java; program thinking; teaching practice