郑妍 葛冬梅 陆上
[摘 要]随着现代大学生计算机应用水平的普遍提高,高校计算机基础课程原有的教学内容急需改变,不能仅着眼于软件工具的使用,而应更加强调思维方法和能力的培养。对计算机的认知能力和应用计算机的问题求解能力是计算机基础教学培养目标中最主要的两个学科专业能力。将计算思维能力的培养作为计算机基础教学能力培养的核心极大的丰富了教学内容。改革是一个长期,累积的过程,需要广大教育者不断的探索和实践。
[关键词]计算思维 计算机基础课程 问题求解框架 算法
[中图分类号] G423.07 [文献标识码] A [文章编号] 2095-3437(2015)05-0142-02
2006年Jeannette M.Wing提出“计算思维”的概念,其定义是:运用计算机科学的基础概念去求解问题、设计系统和理解人类行为。2010年《九校联盟(C9)计算机基础教学发展战略联合声明》(以下简称“C9联合声明”)也强调“需要把培养学生的‘计算思维能力作为计算机基础教学的核心任务”。在此背景下,“在大学计算机基础教学中增强计算思维培养”已经成为共识。自2012年7月举办“第一届计算思维与大学计算机课程教学改革研讨会”以来,许多从事大学计算机基础教学的老师展示了不同角度的研究成果。但是,如何使学生学会用计算思维去思考问题和解决问题,进而提高学生运用计算机知识抽象分析问题的能力,仍是一个挑战。
一、计算机基础课程发展过程与现状
自20世纪90年代以来,大学普遍开设非计算机专业第一门计算机课程,在这二十几年的发展过程中为适应人才培养需求,不断调整,共经过两大变革。
1997年教育部高教司发布了《加强非计算机专业计算机基础教学工作的几点意见》(即155号文件),标志着计算机基础课程的第一次重大改革。此次改革确立了计算机基础教学的“计算机文化基础-计算机技术基础-计算机应用基础”3个层次的课程体系,对课程体系作了规范化研究,并且确立了计算机基础课程的地位。
第二次改革开始于2004年。在《关于进一步加强高等学校计算机基础教学的意见暨计算机基础课程教学基本要求》中,明确了计算机基础教学“4领域×3层次”的内容知识结构总体构架,构建了“1+X”的课程方案,并将“大学计算机基础”作为大学生接触计算机技术的第一门课程。此项改革促进了计算机基础教学向规范、科学、成熟的方向发展。
计算机基础教学的这两次重大改革中有成功的经验,但随着经济社会的不断进步,一些新的问题逐渐凸现出来。首先,如何培养应用型人才的教学目标不明确。其次,课程体系与专业脱节,设置比较单一,难以满足学生的个性需求。最后,教学手段和教学方法不够多样化,导致教学效果不理想,学生的学习兴趣不高。此时,“C9联合声明”为计算机基础教学的改革指明了新的方向。
二、计算思维与计算基础课程结合的误区
基于计算思维的教学改革问题在我国已被提到议事日程,但目前还缺乏完全成功的可被复制的案例模型。围绕着“怎样将计算机思维融入计算基础教学?衡量改革成功的标准是什么?”等问题讨论激烈,观点颇多。其中,也易走入一些误区。
(一)重点讲授计算思维的概念
早期,在计算机还没有普及的时候,计算机基础课程的教学主要是围绕计算机使用而展开的。然而,自20世纪末开始,随着计算机普及,高中阶段计算机基础教学普及率逐渐提高,许多学生大一时已经具备了一定的使用计算机和应用程序的能力,于是有作者指出计算机使用能力的培养应该从大学计算机教学体系中移除,重点讲计算思维的概念。这种观点过于简单粗暴。由于地区差别、城乡差别,大学新生的计算机基础和计算机应用能力参差不齐,作为教育者,应该本着“因材施教”的态度为学生找到准确定位,而不能鲁莽的“一视同仁”。 “计算思维”绝不能脱离具体的应用,否则很难引起学生共鸣。
(二)引进某种语言,就是计算思维
为了更形象化的展示“程序自动化”,“迭代”等思维的实现,需要选择一个让学生能接受的算法描述方法,例如语法简单的高级语言Python、Ruby,专门设计的教学语言Logo等。但是,在课程改革的浪潮下,有些人简单的认为“思维”就是“算法”,引进了某种语言就是改革。然而,会编程序并不等同于掌握了计算思维。思维是由一系列知识所构成的完整的解决问题的思路,它包括:“0和1”代表的数据抽象思维,由计算机工作原理延伸出的自动化思维,“算法”引领层次化、结构化、对象化求解问题的思维,以及“数据化和网络化”的新型思维模式。如果没有思维的培养,那么学生只是学会了操作软件,对学科的研究和创新并无助益。所以,一定要明确语言实现是为思维培养而服务的。
(三)1-2门课程就想达到培养计算思维的目标
不同人的计算思维处于不同层次,但可以转化。计算思维的培养应本着分级、分层的观点进行培养和训练,而且是一个渐进的、累积的过程,不能仅仅针对一门大学计算机课程进行改革,未取得实效就轻易下结论。笔者认为要想达到培养的目标需要三个阶段:首先是思维模式的建立,其次是知识及技能的训练,最后是知识及技能的扩展,进而转换成实际应用能力。所以,整个培养过程应该贯穿于本科和研究生的学习生活中。
三、计算基础课程与计算思维结合的探索
在计算机基础课程的教学实践阶段,我们对学生计算思维的培养进行了一些尝试,以大学计算机课程为例,主要表现在以下几个方面。
(一)计算系统的基本思维
以往的计算机基础教学注重的是知识的普及,比如第一堂课会按部就班的讲授计算机发展历史,各个部件的名称等,学生的参与度低,学习积极性不高。其实,对历史的回顾不是要记住某个历史事件及人物,而是要观察技术的发展路线,观察其带给我们的思想性的启示。要透过“0和1”的抽象,冯.诺依曼计算机、现代计算机和不同抽象层次计算机的介绍,使学生能够递进的理解计算系统的工作原理。之后可以组织学生讨论、总结计算机发展中不变的本质规律,展望未来计算机的发展方向,培养学生对未来的前瞻性和未知领域的好奇心。
(二)简单的数学抽象及建模
EXCEL模拟分析是对计算思维中存储、自动执行、抽象、转化、仿真、建模、数据计算和启发式推理等概念的一个精彩展示。在讲授到OFFICE办公软件应用时,可以引进一些案例。例如,在教学过程中,先给学生展示一张0~2岁男童和女童按月龄写下的标准身高体重信息表,之后利用散点图、趋势线和线性拟合得出结论:2岁内儿童身高与体重呈线性生长;男童的身高增长速度略快于女童。通过图和表的对比,数据与模型的转化,让学生更直观的了解到如何利用计算手段进行创新和研究。
(三)问题求解框架和算法
算法思维是典型的计算思维,也是教学中最需加强的环节。可以通过排序、递归等精选算法问题的讨论和探索,使学生建立起算法的思维方式和基本研究方法。如递归算法,主要培养的是“构造”的能力,即用有限的语句来定义对象的无限集合。考虑到大一新生编程基础大多为零,在讲解时可以忽略具体语言的语法或书写规则,而仅介绍其构造思想。需要指出的是,除了算法类问题求解框架,系统类问题求解框架的建立也很重要,因为结构化建模与面向对象建模的基本思维是现代程序设计语言的基本组成要素,是为后续程序类课程奠定基础的。
(四)数据抽象、设计思维的建立
数据已经渗透到每个行业和业务领域,与人们的生活密切相关。数据聚集的核心手段是数据管理和数据库,数据分析与利用的核心手段是数据仓库和数据挖掘。为了让学生更易接受,可以采取案例化教学手段,通过型关系数据库,逐步指导学生了解数据库的构成、关系操作、查询语言等。在讲到联机数据分析和数据挖掘时,可以以超市数据库为例讲解,再以微博数据为例组织讨论。授课时,要重点使学生建立起以数据的获取、管理、分析与挖掘利用的思维方式,进而理解计算学科的基本研究方法——抽象、理论与设计。
(五)网络化社会的网络化思维
随着国际互联网的不断发展,互联网体现的虚拟网络也在不断发展,与现实生活中的网络不断交融,网络社会需要网络化的思维。授课时在书本原有的教学内容上可以继续扩展,除了让学生理解网络基本通信原理之外,还可以“图”作为抽象手段,引入一些网络的基本计算问题。例如网络的路径与连通性问题,网络的距离问题,网络流量问题,网络的分布与并发利用问题等。通过师生间的讨论和探讨,使学生理解网络化环境的基本研究方法。
据研究,对计算机的认知能力和应用计算机的问题求解能力是计算机基础教学培养目标中最主要的两个学科专业能力。将计算思维能力的培养作为计算机基础教学能力培养的核心极大的丰富了教学内容。改革是一个长期,累积的过程,需要广大教育者不断的探索和实践。
[ 参 考 文 献 ]
[1] Wing J M.Computational Thinking[J].Communications of the ACM,2006(3):33-35.
[2] 九校联盟(C9)计算机基础教学发展战略联合声明[J].中国大学教学,2010.
[3] 朱鸣华,赵铭伟等.计算机基础教学中计算思维能力培养的探讨[J].中国大学教育,2011.
[4] 战德臣,聂兰顺,徐晓飞.计算之树——一种表述计算思维知识体系的多维框架[J].工业和信息化教育,2013(6).
[责任编辑:钟 岚]