任静静
(信息工程大学洛阳校区基础系,洛阳 471003)
计算思维自从提出以来受到了国内外教育界的高度重视。2006 年3 月,周以真教授在美国计算机权威杂志ACM 上发表了Computational Thinking一文,首次给出比较全面的有关计算思维的定义,计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类行为等涵盖计算机科学之广度的一系列思维活动[1]。
周以真教授认为计算思维能力应该是人人具备的基本技能,而不应该只属于计算机科学家,计算思维是和阅读、写作、算术一样重要的技能,计算机教育应当以培养计算思维为核心。此观点传播到我国后,引起了我国计算机教育研究者的重视,纷纷发表了对计算思维本质的探讨,同时各大高校也开展了以计算思维为核心的计算机基础课程教学改革。
为了将计算思维融入到大学计算机基础课程教学中,本文主要研究如何设计大学计算机基础课程体系、教学内容以及教学模式来体现计算思维的内涵。
其他学科的前沿研究都有可能通过计算手段得到解决,即计算技术对其他学科的发展有很大的促进作用,而大学计算机基础课程正是为其他学科培养先进计算技术人才的课程。该类课程是面向大学非计算机专业学生开设的通识类思维教育课程。
目前该类课程中存在着很多问题,面临着课程涉及什么内容以及如何组织和表现内容等具体问题。问题具体体现在:课程内容停留在计算机基本概念以及使用常用软件,教师认为课程就是教授学生怎么使用计算机,忽略了对学生计算思维能力的培养,而学生对课程认识还停留在“狭隘工具论”和“学会用即可”;课程教材五花八门,种类繁多,有的教材内容繁杂,网络、人工智能、数据库等各个领域均有涉猎,但又都不深入,课程的教学内容涉及到计算机科学的方方面面,样样都讲,样样讲不透,知识不成体系,没有一个很清晰的脉络;随着计算机技术的广泛应用,非计算机专业学生都应该掌握一定的计算技术来解决自己的专业问题,但是课程的教学模式更多的是一种以传授知识和技能为出发点,现有的教学模式与学生对计算手段能力需求之间存在巨大的差距。教学过程中以名词解释为主,解释了“是什么”,没有讲明“为什么”,教学的关注点是零散的具体的计算机科学的知识点,例如二进制、计算机工作过程以及相关编程语言的语法等。学生对计算机学科领域解决专业问题的方法和思路没有一个清晰的认识,学生只能获得知识和技能,并不能获得利用计算手段来进行各学科专业研究的能力,而这种能力恰恰是每个学生应该掌握的。
造成以上问题的原因分析如下:课程很长时间里以知识讲解及软件应用为主,使得人们对课程的定位和评价出现偏颇;还没有找到合适的手段来进行计算思维能力的培养。
根据计算思维的内涵要解决目前课程教学中存在的问题,就要以“计算思维”为核心构建课程体系、知识体系以及组织表现形式。
计算思维是现代社会每个人都应具备的一种思维方式。1998 年和2013 年的诺贝尔化学奖授予一个计算手段的研究者说明:计算思维对其他学科创新是非常重要的。计算机不再仅仅是一门工具,大学生应该具备对计算机技术深度应用的能力,这一目标正好和计算思维的培养目标契合,所以大学计算机基础课程要以计算思维的训练来展开。蕴含知识的思维教学是计算机基础教学的核心,通过思维来展开知识讲解。计算机基础课程应该满足的特点是思维性、知识和素养性、技能和实用性。
2010 年发布的《九校联盟(C9)计算机基础教学发展战略联合声明》中强调,要把培养学生计算思维能力作为计算机基础教学的一项重要的、长期的和复杂的核心任务[2]。随后以计算思维为切入点的大学计算机课程改革的研究如雨后春笋般层出不穷的出现在课程改革项目和教学会议中。
教育部高等学校计算机基础课程教指委制定的《计算机基础课程教学基本要求》中提出了“1+X”课程体系,其中的“1”即“大学计算机基础”课程,“X”一般由“程序设计基础”、“数据库技术”和“计算机网络技术应用”等若干课程组成,构成大学计算机基础课程群。基于计算思维的计算机课程新体系构建如表1 所示[3],新课程体系将计算思维的培养看成是一个系统工程,通过第一个层次的学习,掌握一定的计算机学科知识并理解计算思维;通过第二个层次的学习,进行问题求解能力的训练,达到思维向能力的提升和转变;通过第三个层次的学习,利用计算手段和专业结合形成面向各专业的计算思维和计算能力[4]。针对计算机课程新体系也可以这样理解,通过第一个层次的学习培养计算思维意识;通过第二个层次的学习训练计算思维的方法;第三个层次的学习培养计算思维的能力[5]。
表1 基于计算思维的计算机课程新体系
课程不再是单纯讲授计算机及其软件(如Office、IE 等)如何使用,既包含知识技能的应用,也包含思维方式的训练和思维能力的提高,并能将思维能力迁移到其他学科中用来解决问题。
《大学计算机基础》作为第一门入门计算机课程,主要作用是培养学生的计算思维意识和信息素养能力。该课程中包含的内容模块:计算和计算思维;Py⁃thon 基础知识;基于计算思维的问题求解;信息表示与编码、计算机系统。该课程首先从计算机发展史中得出计算和自动计算的概念,要实现计算需要解决数据的表示、存储、规则及规则自动执行。围绕数据的表示、存储和规则,引出信息表示和编码的内容,围绕规则的自动执行展开计算机系统的内容。该课程的主线是如何实现计算和自动计算,在课程中安排少量的Py⁃thon 学时,借助Python 对理论知识进行验证,培养计算思维的意识。
程序设计类和数据库技术课程可以采用和学生专业相结合的案例开展,落实教育部提出来的“四新”(新工科、新文科、新医科、新农科)的号召,让学生在解决专业问题的过程中掌握计算思维方法。
在程序设计课程中,要注重计算思维方法的训练,要避免按照章节顺序进行知识的讲解,语法知识比较枯燥,学生体会不到知识的连贯性,应该在计算思维训练的过程中将知识贯穿成一个整体,让学生既体会到了计算思维的本质又学习到了知识本身。
以Python 程序设计基础课程为例,核心内容模块包括:程序、算法及程序设计语言基础知识;基本数据类型;程序控制结构;组合数据类型;函数;文件等。
计算机网络技术课程以网络资源的获取和分析为主线,以Python 语言作为问题求解的工具,将网络知识贯穿在问题的求解中。例如可以设计“利用Python 语言爬取某大学网站往年录取分数信息并进行统计分析”的案例,在此案例中将IP 地址、URL 等知识点贯穿起来,达到知识学习和思维训练的目的。
选修课、第二课堂或者学科竞赛主要是提高学生的计算思维和创新能力。在此模块中可以根据学生兴趣开设多个选修课和第二课堂活动,鼓励学生参加竞赛,达到以赛促课的目的。
结合大学计算机基础课程培养学生计算思维的需求,将游戏化教学方法引入到课堂教学中,能对培养学生的计算思维能力起到很好的促进作用。根据大学计算机基础课程的特点和游戏化教学的特点,构建基于游戏化教学的计算思维培养的教学方案,如图1 所示,方案从教师活动和学生活动两个角度进行设计。
在游戏化教学模式中,教师首先要确定教学目标、对学生特征和教学内容进行分析,在此基础上对设置问题,通过问题来培养学生的思维能力,创造良好的教学情境,最后对知识点进行讲解。在此过程中要注意学生的反馈,让学生参与到课堂的讨论中来。学习者在自主学习时先明确学习目标,通过教师讲解熟悉游戏规则和内容,完成游戏的过程中实现了知识的内化,最后进行反馈总结和拓展迁移。
教学方案中的案例设计应该遵循原则:①设计趣味游戏化案例,激发学生的学习和内在学习动机,学生在完成游戏化案例过程中掌握相关知识点,提高学生的自主学习能力。②设计分层式的案例以便实现知识的综合学习,教师兼顾到所有学生的学习进度,并给学有余力的学生提供可以拓展的空间。③层层递进式游戏案例,激发学生的好奇心和求知欲,引导学生逐步展开知识的学习,由易到难,逐步推进,在求解游戏过程中,培养学生掌握分析问题、解决问题的方法和思路,提高学生的计算思维能力。
图1 基于游戏化教学的计算思维培养的教学方案
将枯燥的知识贯穿在游戏中学习,营造了良好的学习氛围,使得基于计算思维的计算机基础课程变得有趣。在游戏化教学模式设计过程中,可以根据实际的授课内容,采用基于技能操作式、问题探究式、虚拟协作式、仿真竞技式教学方法进行案例设计。
大学计算机基础课程的核心任务之一就是培养学生的计算思维、分析问题及解决问题的能力。本文构建了基于计算思维构建大学计算机基础课程体系和内容体系,并提出了基于游戏化的计算思维教学模式,为课程的开展提供了有价值的参考。