非计算机专业学生计算思维的培养
——以Python 语言为例

2020-09-16 07:14田文武
呼伦贝尔学院学报 2020年4期
关键词:程序设计计算机语言

田文武 塔 娜

(呼伦贝尔学院 内蒙古 海拉尔区 021008)

引言

目前所有本科高校都将大学公共计算机课程作为学生必修的科学文化基础课程。该课程的学习目标可以分为两个层面,一是学会如何有效使用计算机,提高学习、工作效率;二是培养计算思维,为后续的专业课程学习和将来职业发展打好基础。计算思维是运用计算机学科的基本理论去分析求解问题、设计规划系统及指导人们行为的一系列思维活动。随着信息技术的广泛应用,计算思维已渗透到我们每个人的生活之中,良好的计算思维不仅可使人们具有更好社会适应能力和更强的创造力。也对促进我国经济社会的发展,迎接第四次的科技革命具有重要的意义。

一、公共计算机课程存在的问题

近年来互联网、大数据、人工智能这些新概念广泛的应用在人类社会的许多领域,使人们对于计算机技术的认识有了极大的改变。电子商务、微信、智慧城市等应用已经成为人们日常工作和生活的一部分,逐步成为改造传统行业和经济发展方式、重构社会组织和人际交往方式的重要工具。在信息技术无处不在、计算强度日益增强的今天,能够理解和掌握计算思维对于灵活运用这些技术和工具来帮助人类完成各项活动是十分必要的。但是就目前情况看,还有一部分高校的公共计算机基础教育滞后于社会发展的需求,不能够充分起到该课程的基础和支撑作用。在中小学信息技术教育逐渐铺开的情况下,还将计算机基础课程教学目标侧重于软件操作的培训,这将不能满足信息社会对大学生的基本要求。因此,大学计算机课程的教学需要综合考虑应用技能训练、学科知识传授和计算思维能力培养三者之间的关系。目前,呼伦贝尔学院的公共计算机基础课主要培养学生使用计算机的能力。教育部评估专家在2018年本科教育合格评估时针对呼伦贝尔学院公共计算机课程指出:“其一大学计算机学习不应是微软产品使用介绍,其二理工科应当学习程序设计,文理工科分类教学势在必行,量大面广的公共课教学需要重点推进改革并逐步实施,不能一成不变。学校多学科各自设置程序设计课程,建议教务处顶层规划,纳入公共课分类教学范围,通过公共课程建设项目,推动提升基础课教学质量”。这为呼伦贝尔学院的公共计算机课程教学改革指明了方向。

二、如何培养计算思维

计算思维是在人类利用计算机强大计算能力解决问题的过程中形成的一种思维模式,它与实证思维、逻辑思维一样,是人类认识和改造世界的一条新途径。计算思维的本质是对事物进行抽象和将处理过程自动化,它融合了求解一般问题的数学思维方法和设计评估复杂系统的工程思维方法,采用把一个复杂的问题重新阐释,转换成能够解决的一些问题来处理。通常用计算机解决问题的步骤是把一个要解决的问题进行分析抽象并建模,采用自顶向下或面向对象的设计方法进行分解和转化,再选择合适的计算机通过循环、递归等方法进行自动处理,将输入数据转换成输出结果的过程。同时对问题的时间效率和空间效率进行评估,通过在处理能力和存储容量之间的权衡来满足问题求解的要求。大学计算机基础课程可以通过程序设计把这些计算思维的核心思想如抽象、设计、自动化、计算、通信、评估等融入到教学中。在程序设计过程中注意培养学生运用抽象和自动化将需求转化为计算机解题步骤。以计算圆周率为例,圆周率是在理工学科广泛应用的一个常数,它无法用任何精确的公式表示,曾是数学历史上一直难以解决的问题之一。计算机之父冯·诺伊曼提出的蒙特卡罗方法给出了一种解决此类问题的统计模拟方法。已知半径R的圆面积公式为πR2,其外切正方形的面积为(2R)2,可得圆与外切正方形的面积之比就为π/4。若在此正方形区域随机洒落大量点的话,按概率均匀分布落在圆内的点和总点数之比也就是π/4,由此可以计算出π。考虑到圆的对称性,为减少计算量只需要统计1/4的区域,取半径R为单位进行统计,如图1所示。测试次数与计算精度、计算时间的情况,如表1所示。

图1 圆周率计算

表1 测试点数与计算精度、时间关系

通过这一例子可以看出,首先用数学的方法把圆周率的计算抽象为古典概率模型。随后用计算机模拟计算出圆周率的值。结果要对计算的精度和计算时间进行评估分析。在程序的设计中用到了输入输出语句、分支、循环结构,实现在学生学习计算机技能的同时培养学生抽象、设计、计算和评估能力,通过循序渐进训练会使计算思维逐步成为学生的一种思维习惯。

三、Python语言的特点

培养学生计算思维的基本途径是将其融入计算机程序设计类课程。过去很多高校程序设计采用C、Java等编程语言进行教学,这些程序设计语言往往为了兼顾计算性能而采用较为复杂的语法,制约了计算机作为普及计算工具在各学科专业的深入应用。随着互联网的飞速发展,计算机语言也随之进步,简洁高效通用的程序设计语言是计算机程序设计语言的一种发展方向。从各编程语言生态性考虑,一种风格清晰、易读易维护的Python语言逐渐受到人们的欢迎,它作为轻语法程序设计的典型代表具有极佳的适用性。Python语言作为一门通用的脚本语言,历经近30年的发展,目前已经成为仅次于C语言的重要程序设计语言。将该语言为载体来训练学生理解并实践计算思维具有很多优势。

(一)Python语言更侧重问题求解,符合计算思维的时代性。目前Python最接近自然语言的程序设计语言,适合在云计算、移动互联网、大数据等重大技术和应用需求下完成功能开发。

(二)已形成了针对Python程序设计语言的最大开源社区,该开放体系的社区中拥有几乎覆盖所有计算领域的第三方库,如:Web开发、科学计算、电子商务、自然语言处理、机器人等等。可以利用这些库所提供的功能模块作为基础,采用搭积木方式解决复杂问题,培养学生集成创新能力。

(三)语言遵循“简单、优雅、明确”的设计理念,可将学生彻底从复杂的语法学习中解脱出来,语言高效高产,且实现周期较短。非计算机专业选择Python替代C语言等将会是一个趋势。由于Python作为解释性语言在运行速度低于C和Java。它适合解决对运算性能要求不高的一般计算问题。但由于现在电脑硬件配置普遍较高,因此对实时性不强的程序基本没有影响,对实时性强的处理,则可以通过嵌入C程序的方法提高速度。以我们常见的统计分析文章的高频词汇为例:

* 需求:统计“国家主席习近平发表二〇二〇年新年贺词”词汇出现频率。

* 输入:用第三方库requests和BeautifulSoup4从相关网页爬取要分析文章。

* 处理:用中文分词库jieba对文本进行分词,去掉虚词和标点符号,并利用Counter类,将词汇转化为字典,字典键值既是词汇出现的次数。

* 输出:用第三方的词云展示库wordcloud、图像处理库PIL和绘图库matplotlib生成图像。如图2所示。

图2 词汇统计显示

在这个Python程序中,爬取网页、中文分词、词云生成、图像展示等等重要工作都是调用第三方库完成的,程序员不需要了解模块内部的工作细节。这相对于其他语言来说,降低了处理问题的难度,有助于解决复杂的实际问题。

四、Python语言课程设置的建议

呼伦贝尔学院的非计算机专业包含着文、理、工、农、经济、教育等多个专业方向。它们不仅与计算机专业的特点不同,不同专业之间的差别也非常大。为此如何做好适应各专业的Python语言课程内容设计就显得尤为重要。根据该课程的特点和不同专业的需求,可以将Python的教学内容分成必修和选修两部分内容。必修部分包括:Python语言环境配置、基本数据结构、程序流程控制、函数和模块、python文件和数据处理等。这部分内容作为Python语言的基础是必须要学的,因此可以作为不同专业学生的Python课程公共部分。目标是了解Python的特点和环境,学习基本的程序设计方法,训练学生理解计算问题求解过程,培养学生建立抽象、自动化、程序、算法等计算思维的概念,如表2所示。选修部分可根据各专业课程的特点和专业需求来选取相关的应用内容,训练学生从实际问题求解的高度丰富计算思维的内涵和外延。如理工类可以选取:NumPy、SciPy、matplotlib等工具包来进行高等数学、信号处理、统计分析等的计算和绘图;人文、社科类可以选取对自然语言处理的NLTK、Jieba、TextBlob等工具包进行统计分析、情感推理、机器翻译等;经管类可以选取statsmodels进行统计建模和计量分析,使用alipay、django-shop工具包等进行仿真电子商务系统。除此之外Python还对Web开发、爬虫、云计算、人工智能、金融分析和游戏开发等提供全方位的支持,可供不同的专业需求进行选择。通过选修内容将专业知识与python程序设计有机结合,不仅可以进一步加深对编程的理解和学习、使学生的计算思维获得进一步提高,也有助于学生加深专业知识的掌握和运用,进而提升他们的就业能力。

表2 必修课程设置参考(32课时)

结语

在物联网、大数据、人工智能和云服务等新一代计算机技术突飞猛进发展的今天。计算思维在社会生活中的应用越来越广泛,这对我们公共计算机课程的教学内容和方法的改革提出了新的要求。接近自然语言且比较容易学习的Python为我们的程序设计教学提供了一个新选择,它侧重问题求解,且具有庞大开源工具包,有助于提高学生集成创新能力。通过对Python语言的学习,不仅给熟悉Python语言的学生提供了良好的就业前景和社会竞争力,也可以培养学生的计算机思维,形成逻辑思考和计算机应用能力,为未来学习发展奠定坚实的基础。

猜你喜欢
程序设计计算机语言
计算机操作系统
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
语言是刀
基于计算机自然语言处理的机器翻译技术应用与简介
计算机多媒体技术应用初探
从细节入手,谈PLC程序设计技巧
让语言描写摇曳多姿
信息系统审计中计算机审计的应用
高职高专院校C语言程序设计教学改革探索