高校学生程序学习中计算思维的培养
2020-02-02杜佳慧
杜佳慧
(山西应用科技学院 山西省太原市 040000)
1 引言
2006年3月,美国卡内基··梅隆大学计算机科学系主任周以真教授在美国计算机权威期刊杂志上首次提出了计算思维的概念。周教授认为:计算思维时运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。计算思维的概念一经提出,立刻引起了各界的关注,国内外几乎同步关注到计算思维的研究以及对大学计算机教育带来的潜在影响,如何将计算思维的理念融入到计算机教学中,培养学生的计算思维能力是计算机教学研究和改革的焦点。基于各界专家学者关于“计算思维”的研究背景,我们来探究一下在高校学生的程序学习中如何将计算思维融入其中,提高学生的分析和解决问题的能力。
2 高校学生程序学习的现状
当代的大学生们基本是出生在2000年左右的“00”后,而当时社会网络时代已经到来,信息化基本已经应用到生活的方方面面,他们从小学开始就已经在接触计算机,对于他们而言,计算机的基本知识和应用已经非常熟悉,而计算机专业中的核心课程程序学习这部分的内容需要很强的逻辑能力、抽象性较强,难以理解,对于学生而言会有些陌生。以C 语言程序设计为例,学生们在刚接触的时候,前几章的内容还比较简单,出于对新鲜事物的好奇,学生们还有极大的学习热情和学习兴趣,但随着后面几章出现函数、指针和文件操作等内容,知识难度和抽象程度越来越大,学生们的学习兴趣和热情逐渐消减,很多学生遇到难题不会尽力解决或者采取直接放弃的态度,学生的学习效率极其低。
3 计算思维和计算机程序
信息技术的不断发展和进步,计算思维在各个领域有不同的解读,计算机科学与技术领域,计算思维是指运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为,具体而言,就是指通过简约、嵌入、构造、模拟、仿真等方式,把一个复杂的问题分解为若干个子问题,从而达到解决问题的目标。计算思维是概念化的,是一种思想。计算机程序是计算机所有指令的集合,人们利用计算机解决实际生活中的问题,通过对问题进行分析,设计出解决该问题的算法,然后利用计算机能够识别的语言,编写命令以便计算机能够执行。根据其概念可知,计算思维与计算机程序有一定的相关性,计算机程序中通过算法来编写,阅读者可以通过查看程序看出其计算思维,即计算机程序是计算思维的载体。
4 程序学习中的计算思维培养
4.1 程序基本语句中的计算思维培养
任何一种语言的学习都需要先了解其规则,程序语言也是如此,在编写基本的语句之前,需要了解其语法、语义及其语句规则,以C 语言程序设计为例,学生们需了解其数据类型、关键词、运算符及其表达式等基本知识,然后根据教学目标,结合计算思维的特点,对C 语言程序设计中的语句进行设计。以简单的赋值语句为例,以计算思维的方式来进行设计:
教学内容:赋值语句
教学目标:掌握赋值语句的使用及思维方法
教学过程:
(1)提出问题:两个正整数a 和b,它们的值分别是a=6,b=9;试着交换a 和b 的值,使得a=9,b=6。
(2)问题转化:假设有若干个相同容量的瓶子,a瓶中装入酱油,b 瓶中装入醋,现需将a 瓶和b 瓶中装的东西进行置换,即a 瓶中放入醋,b 瓶中放入酱油。
(3)问题求解:在现实生活中遇到这样的问题,首先我们会准备一个空瓶,然后将a 瓶中的酱油放入空瓶中,这样a 瓶空出来后倒入b 瓶中的醋,在将空瓶中的酱油倒入b 瓶中,这样a 瓶中为醋,b 瓶中为酱油。解决问题的关键在于需要借助一个空瓶子。
(4)知识讲解:赋值语句中的“=”与数学中“=”意义不一样,赋值语句的特点是将右边的值赋值给左边的变量。
(5)求解方法:①定义变量 int a,b,c;
②给变量赋值 a=6,b=9;
③进行置换 c=a;a=b;b=c;
结合上述例子,程序设计的过程可以将其类比于我们生活中的实例,赋值语句涉及的变量其实就是我们所说的空瓶子,在这个空瓶子中不仅可以放醋,还可以放水、饮料这些东西,是可以变化的,我们称它为变量,赋值的过程其实就是将瓶子装满的过程,置换数字的过程就是生活中将瓶子中的实物进行交换的过程。学习者在解决问题的时候,首先明确了原问题和目标问题之间的联系,然后将目标问题转换为一个一个细化的小问题,逐步进行解答,这种解决问题的方式有助于提供学习者的计算思维能力,而且有助于调动课堂枯燥的学习氛围。
4.2 程序控制结构中的计算思维培养
在了解了语言的基本结构之后,我们要学会自己造句,也就是我们所说的语法,即主、谓宾、定于从句、主语从句这样的结构,对于我们程序设计语言而言,即为三种基本的控制结构,分别是选择、顺序和循环结构,程序的编写过程都是基于这三种经典的结构来设计的。以我们简单的选择结构为例,来介绍一下其中的计算思维过程。选择结构的基本思路为,遇到一个问题要根据条件进行判断,满足A 条件是要执行什么操作,不满足A 条件又会执行什么样的操作。
教学内容:选择结构
教学目的:掌握选择的结构的功能及其编写过程。
教学过程:
(1)提出问题:超市新进一批水果,超市规定当顾客所购水果小于等于5 公斤,每公斤5 元,当大于5 公斤时,每公斤打九折,问超市的收银系统该如何编程统计。
(2)问题分析:在实际的超市收费过程中,只能存在一种计费方式,如果满足小于等于5 公斤时,选择每公斤5 元的计费方式,如果满足大于5 公斤时,选择每公斤4.5 元的计费方式,重点是要分析选择的条件是什么。
(3)知识讲解:选择结构主要使用关键词if else,选择结构的书写方式为
本例是生活中的一个实例,问题的分析过程就是程序的执行过程,在分析问题时,要注意分析事物的结构性特征,学习者在分析问题的过程中能够培养计算思维结构性和秩序性等特征。
4.3 算法学习中计算思维的培养
在程序学习中了解了关键词、表达式、控制结构,要能够灵活的进行编程,还需重点了解其算法,算法是对问题解决方法的准确及完整的表述,是解决问题的清晰明确的指令,计算机运行时,输入一个初始指令,经过算法的一系列指令,最终得出所要求输出的结果。学习程序设计必须得了解各种类型的算法,如常用的有冒泡、排序、查找、迭代、递归算法等,搞清楚各种各样的算法,有助于培养学生计算思维的分析、抽象、建模的能力,以C 语言中的冒泡算法为例。
教学内容:冒泡算法
教学目的:掌握冒泡算法的原理并能够灵活运用进行排序
教学过程:
(1)提出问题:把{6,5,3,1,8,7,2,4}这个数组按从小到大进行排列
(2)分析问题:要对这数组中的几个数值进行比较,然后按从小到大的顺序进行排列,如果只是用眼睛看然后操作很容易就可以将其排序出来,当对计算机而言需有序进行比较然后在移动其位置,涉及到存储空间,不能杂乱无章的进行,基于此顾虑,最简单是进行相邻元素的比较,然后相邻元素之间交换,这样才能保证所有数值有序进行移动并且是最小”步数“的移动。
(3)问题详解:
①比较相邻元素6 和5,6>5,进行交换;
②比较相邻元素6 和3,6>3,进行交换;依此类推,相邻元素进行比较,最后会将最大的数值给排序到最末的位置;
③除去最末位置的数值,所有其它元素依次进行两两比较,第二大的数值会排到倒数第二的位置。
④持续重复以上步骤,直到没有任何一个数值需要比较为止。
(4)知识讲解:这几个数值属于一个数组当中,需定义数值a[i],需定义变量进行计数,求解过程主要是采用循环结构进行
算法的学习是个比较抽象复杂的内容,在本例中有意识地去培养学生的数据分析、迁移和建模能力,同时还有学会规律的总结,从而找出解题方法。
5 总结
程序学习是计算机学科中的核心知识点,有较强的逻辑性和严谨性,对于学生来讲学起来比较困难,一直以来学生们都是通过不断强化练习巩固所学知识点,没有形成分析问题和解决问题的能力。而采用计算思维的方式来进行程序学习,首先把程序设计问题类比到一个生活化的设计情境中,然后将计算机程序设计中抽象的概念给具象化,引导学生进行思考,搞清楚其中的思路过程,再建立起抽象的数据模型,结合程序设计中的基础知识,将数学模型转换为计算机语言的过程。这样在不断的练习中总结规律,逐步加深难度,层层深入,在思考中培养逻辑思维和解决问题的能力。其实,这也对应的是问题解决的五个阶段,分别是提出问题、明确问题、提出假设、检验假设、总结评价,在这个过程中习得知识、获得能力。