计算思维与计算机教育
大学阶段各相关专业培养对计算机的要求越来越高,同时不同专业之间对计算机教育的直接需求和依赖程度又存在较大差异,同时考虑到在计算机教育不断普及的今天,学生入学时的计算机水平也在不断地变化,由于地区以及个人的差异,学生入学时的计算机基础存在着较大的差异,为促进大学计算机教育的开展,需要进一步开展大学计算机教育的教学研究和实践。
随着计算机日益广泛而深刻的运用,计算机早已经深入到干家万户,同时计算这个原本专门的数学概念正在渗透到自然科学以及社会科学等诸多领域,已经泛化到了人类的整个知识领域,并上升为一种极为普适的科学概念,成为人们认识事物、研究问题的一种新视角、新观念和新方法。可以说我们处在计算无处不在的计算新时代,什么都要“计算”,在理论研究、试验科学之外,计算科学正在成为基础科学研究的“第三维”。
2006年3月,美国卡内基·梅隆大学计算机科学系主任周以真(Jeannette M.Wing)教授在美国计算机权威期:rU{Communications of the ACM}}杂志上给出,并定义了计算思维(Computationa]Thinking)。周教授认为:计算思维是运用计算机科学的基础概念进行问题求解、系统设计、以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。
计算思维代表着一种普遍的认识和一类普适的技能,每一个人,不仅仅是计算机科学家,都应热心于它的学习和运用。计算机科学不是计算机编程。像计算机科学家那样去思维意味着远远不止能为计算机编程,它要求能够在抽象的多个层次上思维。
大学的计算机对后续其他课程的学习影响最大,在计算机教育不断普及的今天,学生入学时f’J~-I‘算机水平也在不断地变化,越来越多的大学新生的计算机基础水平摆脱“零起点”,但由于地区以及个人的差异,学生入学时的计算机基础存在着较大的差异。大家已经普遍认为学生的计算机水平有了很大程度的提高,但从实际情况看,这种提高主要体现在学生的计算机使用水平上,而不使用基于计算思维能力的计算机水平的提高。
针对学生入学时的计算机基础存在着较大的差异,以及不同专业之问对计算机基础教育的直接需求和依赖程度又存在较大差异,目前我们已经在学校的非计算机专业基本实现了类分层次的教学实践,并取得了一定的成果。为了使人学计算机基础课程发挥其基础作用,就要很好地与专业课程相结合,我们根据各专业的特点和学生的情况,进行分类分层次教学。但同时应以“计算思维”为核心进行计算机基础教育,这样才能适应专业培养的需要。
计算思维是目前大学计算机基础教学研究的热点课题之一,应在计算机基础教学中以培养大学生计算思维能力出发,对大学的计算机课程教学改革进行一些探讨和研究,将思维训练融入教学的各环节中,以期进一步提升大学生的综合素质和能力,挖掘大学生的学习潜能。
计算思维是人类求解问题的一条途径,但决非试图使人类像计算机那样地思考。计算思维是建立在计算过程的能力和限制之上的,不管这些过程是由人还是由机器执行的。计算方法利模型使我们可以去处理那些原本无法由任何个人独自完成的问题求解和系统设计。许多人将计算机科学等同于计算机编程,计算思维可以给我们打开宽阔的视野,学生可以j 修计算机科学,接着从事医学、法律、商业、政治,以及任何类型的科学和工程,甚至艺术工作。
计算具有复杂性,当求解一个特定的问题时,我们需要考虑:解决这个问题有多困难?怎样才是最佳的解决之道?需要我们运用计算思维的观点准确地回答这些问题,考虑机器的指令系统、它的资源约束和它的操作环境。
而为了有效地求解,需要进一步问:一个近似解是否就足够了,以及允许的误差。计算思维就是把一个看来困难的问题重新阐述成一个我们知道怎样解的问题,如通过约简、嵌入、转化和仿真的方法。
计算思维采用了抽象和分解来处理浩大复杂的任务或者设计巨大复杂的系统。通过进行分离,选择合适方式去陈述,或者是选择合适的方式对问题的相关方面建模使其易于处理。它是利用不变量简明扼要且表述性地刻画系统的行为。计算思维利用启发式推理来寻求解答,它在不确定情况下的规划、学习和调度。计算思维是利用海量的数据来加快计算,它就是在时问和空问之间,存处理能力和存储容量之间的权衡。
计算不但已经成为人们认识自然、生命、思维和社会的一种普遍方法,而且正在试图成为‘种伞新的世界观。
计算机科学在本质上源自数学思维,因为像所有的科学一样,它的形式化解析基础筑于数学之 。计算机科学又从本质上源自工程思维,基本计算设备的限制迫使计算机学家必须计算性地思考,不能只是数学性地思考。计算思维构建了计算机教育与专业培养之间的桥梁。
随着人们对计算能力要求的不断提高,但是终端设备却无泫满足这种要求的增长,于是云计算技术出现了Goog]e于2007年正式在IT行业内提出了“云计算”的概念,并成功地引发了产业界对于云计算的极大关注。云计算是一种基于互联网的大众参与的计算模式,其计算资源(包括计算能力、存储能力、交互能力)是动态的、ⅡJ伸缩的、被虚拟化的,而且是服务的方式提供。
计算能力以服务的方式供消费者使用,这就好比是从古老的单台发电机模式转向了电厂集中供电的模式。它意味着计算能力也i-j一以作为一种商品进行流通,就像煤气、水电,取用方便,费用低廉。最大的不同在于,它是通过互联 进行传输的。云计算技术催牛了计算的泛化。
云计算将为公司节省大量蚍勾置硬件设备所需的资金。云计算时代,计算已经成为一种公共服务,我们无需购置昂贵的巨型计算机。而且,通过向计算供应商租用计算,也省却了维护费用。节省下来的巨大开支及人力可使公司更加专注于自己的核心业务。
此外,云计算特别适用于复杂多变的经济环境。当公司业务量激增时,公司只需租用更多I,I勺计算即可,当业务因某种危机而出现萎缩时,公司只要少租用一一些计算,即可使自己的损失降到最低。
而随着数据量的不断扩展,我们进入了大数据时代,人数据(big data)是指数据海量(包捅数据量大、产生速度快)、计算复杂(包括类型复杂、处理复杂)的数据集合,所涉及的资料量 巨大到无法透过目前主流软件工具,在合理时问内进行有效的采集、管理和分析。大数据的出现,意味着处理规模更大,要处理的数据更为集中,用户的数据被保存得更加完备更加集中,使得用户隐私暴露的风险更大。各种各样的大数据技术出现了,大数据技术正成为科学研究的第四范式——强推。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce一样的框架来向数十、数百或甚至数干的电脑分配工作。
随着计算的泛化,计算思维成为使用计算机科学分析和解决问题的方法,计算机教育已经由粗放式、经验式教学向精细化、计算思维能力培养转型。计算机教育的内容既有各专业基本都要涉及到的通识教育内容,也有与专业联系比较密切的内容。因此,计算机教育需要针对不同类别的专业,在课程体系、教学内容、实践内容等方面应进行分类的教学模式。随着信计算机教育的普及,绝大部分的学生都是非零起点。
为此,可以针对不同专业类别和不同起点的新生采用不同的教学内容,其内容的广度、深度都可以有所的区别,计算机教育的重点不再是知识的传授,而是计算机思维能力的培养,这种思维应该成为学生的技能组合。普在计算是己变为今日之现实的昨日之梦,而对于计算机教育来说,计算思维培养在于今日,结果在于明日之现实。