导航菜单

基于计算思维能力培养的程序设计基础课程教学新模式

吴蕾,钦明皖,杨勇

(安徽大学 大学计算机教学部,安徽 合肥 230601)

摘要:介绍在大学计算机程序设计基础课程中引入项目化教学模式的方法,将常用的计算思维方法贯穿于整个学习过程中,为计算思维能力的培养奠定基础。

教育期刊网 http://www.jyqkw.com
关键词 :程序设计;计算思维;项目化教学模式

基金项目:教育部高等教育司2012年大学计算机课程改革项目(2-3-ZXM-06);安徽省质量工程项目(2013gxk015);安徽大学校级教育教学改革项目(J01001789)。

第一作者简介:吴蕾,女,讲师,研究方向为软件测试、云工作流,wuleijsj@ahu.edu.cn。

1 背景

程序设计基础课程作为大学非计算机专业学生的基础课,对培养学生运用计算机解决生活中各类问题的能力具有极其重要的意义。然而,目前大部分高校在程序设计基础教学中多以知识点层级为体系,学生对知识的应用缺乏整体感,不利于拓展思路并进行思维能力训练。在大学计算机程序设计基础教学中如何培养学生计算思维(computational thinking)能力已成为当前计算机教育重点研究的一项重要课题。

2006 年,美国卡内基·梅隆大学的周以真(Jeannette M Wing)教授给出了计算思维的定义[1]。2010年11月,陈国良院士第一次正式提出了将“计算思维能力培养”作为计算机基础课程教学改革切入点的倡议[2]。2010 年7 月,全国9所“985 工程”建设高等学校发表了联合声明,声明的核心是必须正确认识大学计算机基础教学的重要地位,把培养学生的“计算思维”能力作为计算机基础教学的核心任务[3]。2012年7月,教育部高等学校计算机基础课程教学指导委员会与文科计算机基础教学指导委员会在《关于申报大学计算机课程改革项目的通知》中指出,大学计算机的教学总体目标是“普及计算机文化,培养专业应用能力,训练计算思维能力”。课程明确把计算思维和计算工具并列起来,“训练计算思维能力”被看成是大学计算机教学目标要求的第3个层次;强调“以培养计算思维能力为主线”进行教学改革,解决计算思维从学术研究“落地”到教学过程中出现的一系列关键问题[4]。

由此可见,在高校计算机教学中培养学生的计算思维能力仍然处在一个摸索阶段。笔者尝试将项目化教学模式引入程序设计基础课程教学过程,师生共同完成一个完整的项目,学生不但能够学到课程的主要知识,也完成了一个真实的项目设计,极大地激发学习兴趣,在学到知识的同时掌握用计算机分析问题、解决问题的实践能力,从而训练思维技巧,为计算思维能力的培养奠定坚实的基础。

2 程序设计基础课程教学现状

在传统的程序设计基础课程教学模式中,教师按照教材把程序设计语言的代码基础、程序基本结构、数组、过程、常用控件、文件读写、数据库等需要掌握的知识点按部就班地灌输给学生,然后带领学生上机巩固所学的知识点。这种模式貌似很符合人的认知规律,但是在实际的教学过程中收到的效果很不理想:学生在学的过程中叫苦不迭,甚至一些学生在付出了大量时间和精力之后依然不得要领。通过与学生及老师的交流,我们认为传统的教学模式主要存在以下缺陷。

(1)知识点联系不够紧密,对知识应用缺乏整体感,不利于学生拓展思路。教材中的例子往往是为了说明某个知识点,而例子与例子之间没有联系,如果教师只是照本宣科,布置给学生的实验也是一个个孤立的程序段,那么可以想象学生很难将所学到的知识点串联起来并解决实际问题。

(2)教学过程没有激发学生学习兴趣,被动学习有碍计算思维能力培养。计算机程序设计课程要求学生具有一定的数学功底和较强的逻辑思维能力,而我们授课的对象是非计算机专业学生,他们中的大多数欠缺的恰恰就是这些;传统的教学过程中却不可避免地出现了很多数学问题求解,使得学生理解起来困难重重,这对于编程信心不足的学生来说无异于雪上加霜。

(3)缺乏实际应用体验,学生无法充分认识和体会计算思维方式的优势。程序设计的学习如果只是停留在知识点掌握以及例题练习的层面上,没有与实际应用相结合,学习者无法感受到所学知识在实际工作中的作用和地位,将会抑制学生的积极性,影响学习效果。

3 培养计算思维能力的教学新模式

3.1 计算思维能力培养

计算思维是一种思维方式,也是一种解决问题的思考过程。从现实角度来说,计算思维就是问题抽象、模型建立、算法设计和实现以及问题引申的过程,也就是将未知问题归纳成若干已知问题从而求解的过程。现如今计算思维已不仅仅运用在计算机学科上,也广泛应用在其他自然学科甚至是人文学科中,它不是一个单独的、与其他思维方法毫无关联的孤立方法。计算思维产生于计算机科学,而与计算机科学联系最紧密的思维方法是数学思维、逻辑思维和工程思维,我们可以将计算思维看做是计算机科学与数学思维、逻辑思维和工程思维的交集,而它们也代表了计算思维的不同层次要求[3]。计算思维有以下几个主要特征[5]。

(1)计算思维采用抽象和分解来执行庞杂的任务或者设计巨大复杂的系统。

(2)计算思维利用启发式推理来寻求解答,在不确定的情况下规划、学习和调度。

(3)计算思维是数学思维和工程思维的互补和融合。

(4)计算思维是概念化,不是程序化,不只是为计算机编程,还要求在抽象的多个层次上思维。

过去我们常说,学生学习数学课程、物理课程并不是要他们成为数学家或者物理学家,而是通过这些课程的训练养成科学思维的素质和能力,现在这种认识也同样适用于计算机课程。对大多数非计算机专业的学生而言,学习程序设计的目的不是成为程序员,而是学习计算机分析和解决问题的过程和思路,也就是培养计算思维能力。计算思维能力在海量信息处理分析、复杂装置与系统设计、大型工程组织、自然现象与人类社会行为模拟等方面具有重要的意义和作用[6]。

3.2 项目化教学模式

项目化教学模式是师生通过共同实施一个完整的项目工作而进行的教学活动,它是“行为导向”教学法的一种。项目是计划好的,有固定的开始时间和结束时间的工作,原则上项目结束后应有一件较完整的作品。为改进传统教学模式中存在的问题,进一步培养学生的计算思维能力,我们试图在程序设计基础课程教学中采用项目化教学模式。项目化教学模式的特点如下。

(1)实践性:项目的主题与真实世界密切联系,学生的学习更加具有针对性和实用性。

(2)自主性:提供学生根据自己的兴趣选择内容和展示形式的机会,学生能够自主、自由地学习,从而有效地促进创造能力的发展。

(3)发展性:长期项目与阶段项目相结合,构成实现教育目标的认知过程。

(4)综合性:具有学科交叉性,能够综合运用。

(5)开放性:学生围绕主题所展开的方式、方法和展示、评价具有多样性和选择性。

项目化教学模式能够很好地将程序设计课程的教、学、做有机结合起来,从而成为培养学生计算思维能力的有效途径。著名物理学家劳厄曾说过:“重要的不是获得知识,而是发展思维能力。”因此,思维需要接受训练。教师在项目化教学模式中以合理的项目为依托进行教学,学生不但能够学到课程的主要知识,同时也完成了一个真实的项目设计,可以极大地激发学生的学习兴趣,在学到知识的同时掌握用计算机分析问题、解决问题的实践能力,从而训练自己的思维技巧,为学生创新性能力的培养奠定坚实的基础。

3.3 基于计算思维能力培养的项目化教学模式的组织与实施

在基于计算思维能力培养的项目化教学模式中,教师与学生围绕项目这根主线进行教学和学习,而与程序设计语言相关的基础知识则可通过在线学习的方式引导学生自主完成。教学者在设计项目、呈现项目、指导项目实施、检查评估的过程中运用计算思维方法展开教学;学习者在明确项目任务、制定项目计划、实施计划、归档或应用的过程中运用计算思维的方法进行学习;学习者利用高效率的计算思维去弄清项目任务、明确目标,通过实施项目探索新知识,掌握计算思维的方法和技巧。我们将这种基于计算思维能力培养的项目化教学模式归纳为图1的过程。

在程序设计基础课程中实施项目化教学模式所应用的计算思维方法可概况为“观察—联想—变换—启发”。“观察”方法是人类认识客观事物的基本途径,通过“观察”树立正确的整体与部分思想,将一个具体的项目抽象为一系列明确的子任务,从而使学生体会抽象、分解、学习等计算思维特征。“联想”是由某种对象引出其他相关对象的思维形式,通过联想,运用构造性思维、逆向思维等方法建立起多个能够简洁表达子任务本质的模型,并规划子任务实施计划;同时训练学生理解规约、并行、规划等计算思维特征。“变换”是算法设计与实现的基本手段,可以运用目标转化思想、分类与分治思想等,有目的地对问题实施“变换”,把原问题转化为一个或几个易于解决的新问题,这是项目实施的关键,也是促使学生领悟转化、仿真、递归、调度、折中、优化等计算思维特征的关键阶段。“启发”是通过对已有的资料和信息进行分析、综合、概括和比较,进而做出判断、推理、论证来指导决策的思维形式。在项目实施的最后阶段,通过教师对项目执行情况的检查评估,学生将整个项目执行过程所产生的程序和文档进行归档整理,可以有效地“启发”学生将问题引申,同时使学生对于容错、纠错、系统恢复等计算思维特征有更为深入的认识。

综上所述,将项目化教学模式引入程序设计基础课程教学中,把传统的程序语法教学转变为从问题抽象到模型建立再到算法设计与实现,最后总结引申的思维训练过程,能够有效培养学生“观察—联想—变换—启发”的计算思维能力[7]。

4 结语

培养复合型创新人才的一项重要内容就是潜移默化地使他们养成新的思维方式,即运用计算机科学的基础概念对问题进行求解、系统设计和行为理解,建立计算思维。采用项目化教学模式,在教学过程中始终贯彻“问题引导、项目驱动、讲练结合”的原则,使学生的学习过程始终围绕完成一个完整的、实际的、具体的、有形的项目,这样就把知识的学习和应用有机结合在一起,极大地激发学生的学习兴趣,使他们既学到了知识,又提高了用计算机分析问题、解决问题的能力,从而达到“建立利用计算机求解问题的基本思路”这一计算思维能力的基本要求。

教育期刊网 http://www.jyqkw.com
参考文献:

[1] Wing J M. Computational thinking[J]. Communications of ACM, 2006, 49(3): 33-35.

[2] 陈国良, 董荣胜. 计算思维与大学计算机基础教育[J]. 中国大学教学, 2011(1): 7-32.

[3] 何钦铭, 陆汉权, 冯博琴. 计算机基础教学的核心任务是计算思维能力的培养[J]. 中国大学教学, 2010(9): 5-9.

[4] 冯博琴. 对于计算思维能力培养落地问题的探讨[J].中国大学教学, 2012(9): 4-5.

[5] 臧劲松. 培养学生计算思维的程序设计课程教学[J]. 计算机教育, 2012(2): 78-80.

[6] 李廉. 计算思维: 概念与挑战[J]. 中国大学教学, 2012(1): 7-12.

[7] 蔡洁, 杨胜, 刘智明. 促进计算思维的程序设计实验教学研究[J]. 计算机教育, 2014(3): 79-82.

(编辑:孙怡铭)

下载文本