APP下载

基于算法设计的计算思维培养研究

2018-10-20韩杰冯浩

数码设计 2018年7期

韩杰 冯浩

摘要:计算思维的培养研究是当前教育领域的一个重要热点课题,它对信息时代的科技创新和人才创新有着至关重要的作用。现阶段,计算思维的培养主要落脚于高等教育领域中的计算机学科。因此,如何从计算机课程培养大学生的计算思维能力得到了广泛的关注。文章以算法设计的角度出发,结合在校大学生的实际情况,探讨如何在算法设计教学中培养计算思维能力。对大学生特别是非计算机专业的学生有着非常重要的实践意义。

关键词:思维背景;算法设计;思维视角

中图分类号:TP301.6 文献标识码:A 文章编号:1672-9129(2018)07-0019-02

Abstract: The study of the cultivation of computational thinking is an important hot topic in the field of education. It plays a crucial role in technological innovation and talent innovation in the information age. At this stage, the cultivation of computing thinking is mainly focused on computer science in the field of higher education. Therefore, how to train students' computing thinking ability from computer courses has received extensive attention. From the point of view of algorithm design, the article combines the actual situation of college students and discusses how to train computing thinking ability in algorithm design teaching. It is of great practical significance to college students, especially those who are not computer majors.

Keywords: thinking background algorithm design thinking perspective

1 計算思维背景

随着时代的快速发展,信息数字化已成为当今社会的基本形态特征,深刻影响着人们的日常生活方式和思维过程。回顾一下,十几年的学习生涯中,学生学到了很多的专业知识,而在真正的生活和工作中,需要用到这些思维方式的场景却少之又少,取而代之的是与计算机打交道。由于计算机强大的计算能力,人类应该学会利用这种力量去解决更多的问题。举个例子,老师布置了一个任务,需要将各自纸质版的作业登记到电脑中,有的学生会逐字逐句地将作业内容敲到电脑里面;有的学生会通过对纸质版的内容拍照,使用小程序“传图识字”(算法设计衍生的产物)对照片进行自动识别,转化为文字上传到电脑上;更有甚者,部分学生会通过自己设计相应的图像处理算法,对纸质版的内容进行批量处理,一劳永逸。当今社会计算机无处不在,很明显后面两种自动化的方法更加符合当前大数据时代的特征。因此,计算思维能力的培养对人类生活和科技发展的关键意义不言而喻。为了让学生紧跟时代的步伐,让学生了解计算机是如何思维变得至关重要。计算思维的定义最初由美国卡内基·梅隆大学主任Wing教授于2006年3月在美国计算机权威期刊上给出[1]。她指出在2l世纪,计算思维将不仅仅是计算机专家才具备的能力,而是全民都应该具有的必备技能。随后,计算思维的培养研究逐渐引起了很多国内外的专家学者的重视。国际学者Curzon等人认为计算思维已经成为K-12课程计划、大学通识教育和交叉学科研究与技术转让的基础,可更加精确、深入和广泛地解释计算的本质[2]。Astrachan等人概述了计算思维的概念及其相关的活动和项目,展望了计算思维在教育界的未来发展[3]。国内为了紧跟国际学术的研究步伐,加紧更新传统的教学理念,开展了多次计算思维的专题研讨会,参会团体包括全国各高等学校计算机教育研究组织等。2010年9月发表的九校联盟计算机基础教学发展战略联合声明指出:把“计算思维能力的培养”作为计算机基础教学的核心任务。为此,国内学者郁等人提出基于可视化编程的计算思维培养模式,将项目问题的逻辑组织从拆解转变为叠加关注到每个学生的思维发展,并运用可视化编程工具App Inventor开展该模式的教学实践[4]。这些都表明了计算思维能力已成为当今复合型创新人才不可或缺的基本素质。培养计算思维能力是大学生综合素质教育的重要内容,也是高等学校质量工程建设的要求

2 算法设计

算法是为解决问题而采取的方法与步骤。随着计算机的出现,算法广泛地应用于计算机的问题求解中,是程序设计的精髓。很多基本的算法设计方法已经广泛适用于许多不同的领域。由于实际问题求解的需求以及算法的广泛应用,算法研究领域包括传统的排序、查询、图算法、数值计算等和目前的信息处理、工程计算与模拟、金融分析、生物计算、量子计算,大数据分析等。当然,对于特定的问题,大部分情况下算法不是唯一的。也就是说,同一个问题可以有多种解决问题的算法,但好的算法还是存在的。因此,在特定问题和条件下,设计合适的算法对解决问题有很大的帮助。由于算法设计在计算机学科中的重要地位,其基本内容已经成为计算机相关学科的一门专业必修课程。它的教学方式、内容和质量必须要能够确保培养学生的学习兴趣,以提高学生的专业能力和综合能力为目的,为学生高水平、高层次的应用和发展提供保障。

3 算法设计教学的计算思维视角

计算思维涵盖了信息技术领域蓬勃发展过程中所形成的思维模式。这些思维模式具有一定的普适性。将计算思维的方法与算法设计的步骤相结合,围绕计算思维对教学内容进行重构。在算法设计的教学过程中,教师必须要将计算思维的培养融入到教学当中,在教学中不能局限于知识的传授,而应该注重培养学生的计算思维,以提高学生的创新能力。通过对教与学的过程进行系统化设计,可以最终形成有效的基于算法设计的计算思维培养解决方案。具体在教学中应该注意如下五点[5]:

3.1 算法复杂性理论应作为教学重点内容。

计算复杂性理论是理论计算机科学和数学的一个分支,它致力于将可计算问题根据它们本身的复杂性分类,以及将这些类别联系起来。复杂性理论所研究的资源中最常见的是时间(要通过多少步演算才能解决问题)和空间(在解决问题时需要多少内存)。使用数学方法对计算中所需的各种资源的耗费作定量分析,并研究各类问题之间在计算复杂程度上的相互关系和基本性质,是算法分析的理论基础。该理论回答了一个问题到底有多复杂,并指导选择和设计解决问题的策略。而目前在教学过程中,由于教材通常将复杂性理论部分放在教材的最后章节,由于学时等因素,对复杂性理论的教学不够重视。而复杂性理论是培养计算思维及对各种算法深刻理解的必备基础。所以复杂性理论在教学中应该适当提前,并作为教学的重点内容。

3.2 算法思想应渗透在整个教学课程中。

發展层次理论认为思维是多层次的、逐步发展的过程。算法教学时应有意识地朝着这一方向努力。很多算法的提出往往都基于某一个实际的、有趣的问题。在教学过程中可以为学生设置不同的问题情境,有意识的培养学生多角度思考问题的能力。现实生活中通常问题的解决方式都不是唯一的,在教学过程中应有意识的培养学生的算法思想,引导学生用不同的解决方法面对问题。从而加深学生对算法思想的理解,提高学生的逻辑思维能力,并将这样的思维习惯迁移到日常生活中,体会到算法思想的意义和作用,真正意识到算法思想的重要性。

3.3 算法思维的教学应从最简单的程序设计语言出发。

算法虽然独立于具体的计算机和具体的程序设计语言,但算法思维是以程序设计为载体,让学生能够清楚认识到问题的起点、边界和限定范围,按部就班地完成任务或解决问题。算法思维尽管涉及程序,但也关注算法的实现。在具体教学过程中,算法的实现应尽量使用简单的语言,强调通过算法来理解计算机对预设问题的解决过程,并能清楚地分析问题解决的优劣。在问题分析的描述中应主要通过伪代码或自然语言的形式。这样的描述对学生更为直观、清晰、易懂,并使得教师的教学和学生的学习更加专注于算法的概念和计算思维的培养。

3.4 教学过程中应注重培养学生解决问题的思维能力。

在算法的具体教学过程中,教师应该更加关注学生的思维发展,所提供的解决路径只是作为引导和参考,并不限制学生的多元化解决思路。教师通过师生互动,指导学生掌握解决问题的思路与方法,而不是简单的工具讲解。教师随时引导学生对问题进行深入思考和模式迁移,并鼓励学生自己利用算法设计的方式加以实践检验,从而促进计算思维在解决问题过程中形式化、模型化到自动化发展。例如人们往往首先通过猜想,然后经过验证、证明、分析、完善等过程,最终解决一个问题。这也是我们探究真理的常见过程。在该过程中培养学生科学的分析问题、逻辑推理、抽象概括能力,往往要比单纯地讲解某一种算法有更大的意义。逻辑推理是依据一定的逻辑规则,从已知项得出未知项,或用已知项来解释未知项。这些都是解决问题、探讨概念、发现事物规律的重要基本工具,任何一个算法思想的产生都离不开推理、抽象和概括。培养和训练这些思维能力是大学计算思维和通识教育的重要组成部分。

3.5 教学过程中应该循序渐进,由浅入深。

教师应当主要将从基础的问题单元出发,一开始并不展现给定情境的完整问题域,在教学过程中,根据学生对问题的理解和加工情况逐步加以引导、叠加,拓展情境的问题域,提升任务的复杂度。由于整个问题解决的过程放权给学生自主探索,因此,最终的结果也将根据学生不同的能力和想法而呈现出不同的效果。这样一来,项目问题逻辑的组织就从教师的拆解转变为学生的叠加,需要学生更多的思维参与,而整个学习不再以预先拟定的结果为目标后,教师也能够更好地关注学生在问题解决过程中的思维培养。

4 结束语

计算思维已经和人们的生活密不可分,甚至成为了一项重要的生存能力。作为一个解决问题的有效工具,人人都应熟练掌握并学会运用。那么如何培养具有计算思维的新型人才,变成了时代向教育事业提出的课题。国家要求高校必须重视并加强大学生创新能力的开发和培养,让学生能有意识地运用计算思维思考和解决问题,为今后的学习研究打下良好的基础。为此,本文从算法设计的角度出发,提出将计算思维融入到课程教学之中,给出了一个基于算法设计教学的计算思维培养解决方案。学生的反馈信息表明这种计算思维培养模式取得了较好的效果,与之前相比,学生在碰到问题时表现出愿意思考、会思考的良好现象,具备了自我学习和独立研究的初步能力。希望我们的工作,为全国算法设计的教学建设改革探路,为国家培养拔尖创新人才做出贡献。

参考文献

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

[2]P. Curzon, J. Peckham, A. Settle,et a1.Computational thinking:on weaving it [C].In Proceeding of ITiCSE, Paris, France,2009:201-202.

[3]O. Astrachan,S. Hambrusch, J. Peckhanm,et a1.The present and future of computational thinking [C].In Proceeding of SIGGSE,Chattanooga, Tennessee, USA, 2009, 41(1):549-550.

[4]张远平, 邱丽娜. 在算法设计与分析课程教学中融入计算思维. 价值工程, 2016, 35(8):245-247.