首页 > 范文大全 > 正文

面向计算思维的Java程序设计课程教学探讨

开篇:润墨网以专业的文秘视角,为您筛选了一篇面向计算思维的Java程序设计课程教学探讨范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要: Java程序设计是计算机相关专业程序设计的重要课程。针对其教学现状,以计算思维为切入点,给出了Java程序设计教学改革思路,在教学体系的构建、教学方法的运用、教学实例的选用等方面,做了详细的讨论,并提出了解决方案。

关键词: 计算思维; Java程序设计; 教学改革; 教学方法

中图分类号:G642 文献标志码:A 文章编号:1006-8228(2015)11-87-03

Abstract: Java programming is an important course in computer related specialties,aiming at the present situation of the teaching, taking the computational thinking as the breakthrough point, the Java programming teaching reform idea is given in this paper. The construction of the teaching system, the application of the teaching method, the selection of teaching examples, etc., are discussed in detail, and the solutions are proposed.

Key words: computational thinking; Java programming; teaching reform; teaching method

0 引言

在Java面世短短的十来年间,Java以其简单易学、安全可靠、面向对象、多线程及平立性等许多特点[1-2],被越来越多地推广和使用,它已成为Internet上最受欢迎的开发语言之一[3]。

目前,许多高校将Java程序设计列为程序设计的核心课程之一,肯定了它在培养计算机开发类人才中的地位和作用[4]。

然而,传统的教学模式以层次递进式讲授理论知识、语法细节,然后通过课后习题和验证型的实验进行巩固。实践证明,这样的教学效果大多不理想,很多学生在学完该课后,仅停留在通过期末考试对理论知识的掌握上,普遍缺乏对知识的运用能力;再则,对程序设计有着浓厚兴趣的学生而言,不利于激发他们的学习热情,不能做到因材施教,不利于培养创新型计算机人才[5-6]。改革传统教学模式迫在眉捷。

计算思维是指运用计算机科学的基本概念去求解问题、设计系统和理解人类的行为,并用最有效的办法实现问题求解[7]。学会计算思维,是在信息社会中创新的需要。要培养出创造性人才,教育在思想和方法上必须摆脱传统教学的偏见,培养学生的知识运用能力,让学生学会用高效的思维去思考。计算思维能力的培养是提高学生知识应用能力和创新能力的重要内容。

本文针对java程序设计课程,探讨实施计算思维的教学过程和改革教学内容,以期与同仁形成交流。

1 教学实施的过程和内容

1.1 分析社会需求,明确课程定位,提出课程改革的目标

在很长一段时期内,Java程序设计课程教学普遍注重理论知识的传授和编程技能的培养,学生学到的是有关计算机的一些概念及通用计算手段的应用。但是当今社会处于急需各种创新人才的高科技时代,学生仅仅具备这些能力是不够的。高速发展的信息社会要求计算机专业学生未来应具备的计算能力是掌握支持各学科研究创新的新型计算手段并应用计算手段进行各学科的研究与创新,因此,大学Java程序设计课程应定位于以计算思维为核心,以编程知识为背景,使学生理解典型的计算思维,掌握基于计算技术/计算机的问题求解思路与方法,提高学生的计算机应用能力,培养学生应用计算思维和计算工具分析和处理专业领域实际问题的能力,为今后的创新活动奠定坚实基础。

1.2 构建将计算思维灵活地融入Java程序设计系列课程的新知识体系

以计算思维能力培养为核心的Java程序设计系列课程教学改革并不意味着一定要将现有的课程教学内容“推倒重来”,而是在原有教学内容的基础上,以计算思维为主线,重新组织教学内容,适当增加新的能体现计算思维的知识点,删除一些陈旧的知识或技术细节,大幅度调整课程内容的结构,最终构建一个与计算思维相融合的新的课程知识体系。

⑴ 分析研究计算思维的内涵和特征

在明确课程定位后,我们应首先仔细分析计算思维的内涵,研究计算思维的基本组成部分,这些基本组成部分的特征和表现是什么,确定在课程知识体系中涉及计算思维的哪些概念;然后将知识体系分解为知识单元和知识点,研究这些知识点如何与计算思维的典型特征有机融合。

对计算思维内涵的解读有很多。2010年,Peter J. Denning在ACM关于“什么是计算”的研讨会上指出:计算思维是一种解决问题的思维方法,这种方法将问题表示为关于某个计算模型(该模型必须被发明或发现)的信息处理过程,并寻求一种算法上的解决方案。2012年,李廉教授指出:“计算思维是人类科学思维中,以抽象化和自动化,或者说以形式化、程序化和机械化为特征的思维形式。计算思维的标志是有限性、确定性和机械性。计算思维的结论应该是构造性的、可操作的、能行的”。

战德臣教授提出的“计算之树”很好地描绘出融入计算思维后的计算机所面对的知识空间,即“核心”的计算思维,主要有“计算之树”的树根―计算技术与计算系统的奠基性思维:0和1、程序、递归;“计算之树”的树干―通用计算环境的进化思维:冯・ 诺依曼机、个人计算机、并行与分布计算环境、云计算环境;“计算之树”的树枝―计算与(社会/ 自然)环境的融合思维;“计算之树”的双色枝杈―交替促进与共同进化的问题求解思维:算法与系统。

计算思维是一种形式规整的、问题求解的和人机共存的思维。典型的计算思维包括一系列广泛的计算机科学的思维方法:递归、抽象和分解、保护、冗余、容错、纠错和恢复等,是利用启发式推理来寻求解答,即在不确定情况下的规划、学习和调度。

⑵ 选取典型的计算思维,构建新的课程内容体系

选取学生需要掌握的典型计算思维,对现有的教学内容进行重新审视和定位,适当裁剪和增删;围绕问题的分析解决思路组织相关知识,设计课程教学内容,最终构建一个与计算思维有机融合的新的课程知识体系。

我们在2013年和2014年,对Java程序设计进行了教学改革,初步构建了课程知识体系,在实施过程取得了一些教学效果。接下来,我们还将要对C++面向对象程序设计、C#程序设计实施教学改革。

以“计算思维”为主线,我们将Java程序设计课程分为11个教学单元:计算思维概述、函数思维和抽象思维―方法和类、计算机系统思维―程序结构、分解思维―复杂对象及对象之间的联系、抽象思维―对类的进一步讨论、复用思维―继承、执行思维―多态、抽象思维―泛型、重用思维―异常和类库、并发思维―线程、对象思维―高级知识。要求在每个教学单元的教学内容中,描述清楚理论知识背后蕴含的计算思维是什么。受限于篇幅,表1仅给出第8单元(抽象思维――泛型)的知识点及其蕴含的计算思维。

⑶ 改革教学方法,促进学生计算思维能力的养成

恰当的教学方法才能展现计算思维的魅力和基本思想方法。过去以讲授知识点为主线的教学方法必须改变,转为以讲授认识和应用计算机的思维过程为主线,使知识随着思维的展开而介绍,思维随着知识的贯通而形成,能力随着思维的理解而提高,这样循序渐进地促进学生计算思维能力的养成。

一方面,在课堂教学中采取基于计算思维的探究教学模式。探究教学是将科学问题作为探究过程来讲授,让学生像科学家一样在探究过程中发现科学概念和规律,掌握科学方法,培养学生的探究能力和科学精神。在课堂教学中,教师提出基于计算思维的探究性问题,引导学生运用计算思维的一系列方法探索和发现问题的本质,通过简化、转换、递归、抽象、分解、建模等计算思维的基本方法,将一个复杂问题转换成许多简单的子问题并构建求解模型,进而充分利用计算机的运算能力实现问题求解。当学生掌握这种思维方法以后,教师再启发学生运用所学方法自主探究并解决更深层次的问题,从而达到知识巩固、迁移和内化为能力的目的。

另一方面,在实验教学中采取任务驱动的实验教学模式。教师只给出实验任务,要求学生自主完成一个系统或一个解决方案从设计到实现的全过程。学生主动思考,自主梳理知识,构建学习模式,规划解决方案,运用计算思维的方法自主设计和独立完成实验任务。基于计算思维的任务驱动实验教学模式将有利于培养学生自我建构知识、计算思维和创新的能力。

⑷ 设计能够体现计算思维显著特征的教学案例

教学案例是教学内容的重要载体,如果采用抽象枯燥的理论讲解方式,学生将难以理解计算思维的抽象概念,更谈不上通过学习培养计算思维能力,因此我们需要设计能够体现计算思维显著特征的教学案例。

比如,在讲授多态概念及其应用时,为了简单、生动的说明执行期间绑定的思维,设计一个既容易理解又能刻画计算思维的例子。让我们来看一个具体例子,门Door和计算机Computer都有打开和关闭的操作,但这两个对象没有相似之点,这时我们可以使用接口Action抽象出它们的公共操作,以便程序能够在执行期间显现动态多态的行为,代码如下:

当需要为一组不相关的类建立公共类型时,我们选用接口Action作为这一组类(Computer和Door)的父接口。在程序执行期间,根据引用r指向的对象,系统动态选择对象的close()方法,从而实现了执行期间的多态。我们在设计以上代码时,告诉学生应用了抽象思维和执行思维,并阐述清楚何时需要用这两个思维,不难发现,这两个思维是并存的思维,两者在应用上缺一不可。

⑸ 打破课程间的边界,突出“计算思维”主线

通过分析和研究不难发现,不同的“面向对象编程语言”有着一些相同的特征和机制。“面向对象编程语言”基本的核心内容也就是面向对象的三个特征:封装、继承和多态,这三个教学内容分别对应着抽象思维、重用思维和执行思维,因此在教学设计上可以适当复用教学内容和教学用例。

比如我们讲述继承用例,选用了由三个类(形状类Shape、圆类Circle和矩形类Rectangle)构成的继承结构,如图1所示。

不难发现,不论讲授什么语言,都可以复用上面给出的既简单又能说明如何应用抽象思维、重用思维的例子。我们需要告诉学生,选择什么语言并不重要,重要的是如何应用计算思维。在使用继承的时候,同样可以找出这样的规律,抽象思维、重用思维也是共并存的思维,两者在应用上缺一不可。原因很简单,继承是以抽象为基础的设计思维。在应用继承的时候,能进一步找出这样的规律,一般地,抽象思维(封装)、重用思维(继承)和执行思维(多态)是同时使用的。

2 结束语

程序设计课程中的计算思维训练对于计算机学科培养高素质技术人才是十分重要的,因为计算思维可以帮助学生理解计算的实现机制,还有利于他们进行实践和创新。计算思维的本质就是信息思维,也就是用计算机的方式思考问题和表达行为,这也是计算机人才必备的能力。我们不仅要在程序设计课程中强化计算思维,还要努力把它推广到更多的课程中去,真正把强化计算思维做到实处。

教学改革是一个长期的过程,我们期望通过广大计算机教育工作者的研究、探索和改革实践,训练学生计算思维的养成,培养学生运用计算思维方法解决专业领域问题的能力,提高学生创新能力,从而为国家培养大量创新型人才。

本文比较详细地讨论了我们近几年在Java程序设计课程中实施计算思维教学改革的一些做法和经验,在一定程度上提高了教学质量,对推动Java程序设计课程教学改革具有一定的借鉴意义,希望能与同仁分享与交流。接下来我们将会把计算思维引入到后续课程(数据结构、数据库原理等)的改革中去。

参考文献(References):

[1] 秦学礼,汪迎,郑淑红.Java程序设计实用教程[M].清华大学

出版社,2012.

[2] 蓝雯飞,李子茂.“Java程序设计”课程教学思考[J].计算机时

代,2013.1:37-39

[3] 印F.Java语言与面向对象程序设计(第2版)[M].清华大学出

版社,2007.

[4] 蓝雯飞,郑波尽.高级语言程序设计课程建设思路[J].计算机

教育,2012.6:30-32

[5] 吴文虎.我怎么讲好“程序设计基础”这门课[J].中国大学教

学,2011.12:10-12

[6] 李英梅,夏伟宁,丁金凤.Java程序设计语言课程群建设[J].计

算机教育,2012.7:86-89

[7] 刘晓路.基于计算思维的程序设计教学改革[J].广东技术师

范学院学报(自然科学),2013.3:108-110