基于《大学计算机基础》课程的计算思维教学设计
2022-08-02宁矿凤
□宁矿凤 彭 浩
一、引言
2011年,周以真[1]教授提出“计算思维”是一种能够清晰、抽象地将问题和解决方案用信息处理代理所能有效执行的方式描述从而解决问题的思维过程。2017年,我国教育部指出“计算思维”是发展学生信息素养的核心素养之一。国内外研究者普遍认为,计算思维本质上是人类如何解决问题的思维和能力体现的一种过程,也是一股推动学生信息素养发展的创新动力,主要包括六个方面的子能力[2]:形式化问题、抽象问题,建立模型、组织和分析数据、建立问题解决方案并优化、解决方案系统化和问题迁移。随着科学技术的发展,K-12阶段计算思维的教育价值将越来越突出,以适应新世纪对人才技能的新要求。总的来说,计算思维是一种规范化、系统化的问题解决过程,也是人的一种内在思维品质。
本文将PBL问题引导模式和计算思维培养相结合组织课堂教学,分阶段有目标地逐步完成学习任务,实现教学目标。以“问题”为出发点,注重小组自主探究学习,任务分配,问题解决设计与实施,可以提高学生解析问题能力和创新能力,帮助学生形成计算思维并应用在实际生活中。
二、PBL问题引导模式和计算思维培养相结合组织课堂教学
计算思维的概念对于大一新生来说是比较抽象的。基于“计算思维”的大学计算机基础课程改革成败的关键在于如何以恰当的方式传授给学生,且计算思维不仅需要培养学生编写程序的思维,更重要的是培养学生分析解决综合问题的能力,而这种综合问题解决能力的培养,需要真实的问题情境、多元的学科知识储备以及必要的工具方法支持。PBL教学法,是一套设计学习情境的教学方法,笔者结合多年教学经验将PBL问题引导模式和计算思维相结合的组织形式引入“大学计算机基础课程教学”中,设计贴近真实生活的问题,用简单的案例讲授复杂、高深的学生难以理解的原理。教学过程一般是围绕问题求解的基本过程,即通过问题的引入,探寻解决问题的方法,故设计的教学案例尽可能地将计算思维的核心教学目标“埋在”教学中,这种做法开拓了计算思维的课程设计思路。
三、基于计算思维培养的算法教学改革及实践
在计算机实际应用中,经常会对数据序列排序,如按字母,日期,数字进行有序的顺序排列,即便在高速的计算机上运行,如果使用排序方法不恰当,也可能需要很长的时间来完成排序。一个优秀的算法尤其是在大量数据的处理方面可以节省大量的资源。排序算法在日常生活中应用非常广泛,生活中几乎处处用到。在《大学计算机基础》课程教学改革中,排序算法是一个很好的培养学生计算思维的案例,学生会遇到不同的排序方法,如何引导学生创造或学会一个有效的排序方法并运用在生活中解决问题是笔者实践的要点,算法学习也是一种学习和提高思维能力的过程。
(一)选取通俗易懂的案例。在现实生活中广泛存在着排序问题,现在假设要给考试的试卷按照学号排序,几百份的试卷!用什么排序算法?生活中很多类似的问题:班级名册、电话簿中的姓名、字典、图书索引、图书馆或书架上的书、计算机中的文件列表等。简单地说,我们希望在排序时花费的时间要短,占用的资源要尽量少,因此要解决以下问题:一是从序列的初始状态到经过排序算法的变换移位等操作变到最终排序好的结果状态的过程所花费的时间要尽量短。二是从序列的初始状态经过排序移位变换的过程一直到最终的状态所花费的空间开销要尽量小。三是稳定性:要保证排序前和排序后,2个相等的数其在序列的前后位置顺序相同。
(二)以问题为驱动引导学生主动思考,加强计算思维培养。项目组在多年的《大学计算机基础》教学中,结合学生专业特点设计一系列具有层次渐进关系的问题,在教学设计中引导学生结合生活场景深入思考,进而找出并描述解决问题的步骤。
1.学生们联系生活讨论并说出哪些场合排序是非常重要的?同时思考如果没有排序这些场合可能会出现哪些问题?(最常见的问题:无序时人们需要花费大量时间来查找目标,费时费力)。指出排序能够使我们快速进行查找,提高工作效率!提出计算科学中排序的意义。
2.讨论:1)先用“插入排序”,发现如果只有10份试卷,排的还挺快的,但是随着已排序试卷数量的增多,想要把新的试卷插入到已排序试卷集合的合适位置则会越来越慢了。
2)插入排序看起来简单易行,但是试卷多达至上千份时,该如何处理?那先把所有的试卷按照学号分成10堆,比如学号50以下的放在A堆上,学号50~100的放到B堆上,以此类推。每一堆用插入排序进行排序,因为试卷份数比较少,所以用插入比较快。然后按照A-E堆的顺序进行合并,也就排好了。
3.学生分小组模拟以上场景,先在一个集合中排序,即每个人随机从老师手上抽到一个数字,抽完后展示出来,是一个无序的状态,如图1所示。
图1 学生随机在老师手中抽取的数字
4.学生开始分组讨论如何快速有效地将小组的无序数字进行从小到大的有序排序,并整理方法和步骤。
5.几分钟后,让小组学生演示排序过程,并总结排序方法;(学生有可能想到的是插入排序类似于扑克牌游戏摸牌时的方法,游戏人摸起一张牌时,要和手上现有的牌进行一个个比较,直到插入正确位置(按牌面大小),以便手中的牌以一定的次序排列。)
6.小结一下:插入排序是一种较为简单的排序算法,其算法思想是将一个待排序的数字按其关键字的大小插入到前面已经排好序的子序列中的适当位置,依次如此,直到全部记录插入完为止。
7.播放网上下载的国外用真人跳舞表现的动态排序算法步骤视频,如图2所示,让学生更深入体会计算机科学中排序的步骤。
图2 动态插入排序算法视频
8.让学生分组讨论还有没有其它的方法,只要和前一种方法不同即可;或者让学生尝试用“冒泡排序”来演示排序的整个过程(冒泡排序是一种简单直观的“交换式”排序方法,基本思想就是从左至右让相近的两个数字作比较,小的往上冒,排到前面,大的往下沉,排在后面,按照这个规则从左向右比较,重复遍历整个队列,最大的数就被换到了数组尾。(这里指升序))
9.可根据课堂学生情况,是否重复第3步。
10.比较以上排序算法,整理步骤。哪一种方法更优,引导学生计算出整个遍历过程中排序需要比较的次数,并说明原因。
(对于冒泡排序:要找出n个数的最大值,需要比较n-1次。例如,要找出8个数中最大的那个数,第一趟需要比较7次,要找出剩下的7个中最大数,需要比较6次,依次类推……总共需要比较7+6+5+4+3+2+1=28次)。
11.在学生有一定的算法基础上进行拓展,可根据学生专业特点尽可能尝试其他的排序方法,引导学生去思考,如选择排序、希尔排序等,并总结其算法思想。
12.总结:在这些排序算法中,冒泡排序和插入排序是最基础的,各种排序方法中,没有哪一种是绝对最优的,因此,在实际应用中通常是根据不同的问题适当选用合适的算法,甚至可以多种算法结合起来使用。
四、结语
基于PBL问题情境的学习是一种有效促进“学习者”转变为“知识建构者”的新型学习方式。在这种教学模式中,问题的设计是教学设计中的重要环节,教学中通过提出问题和解决问题来实现知识经验的建构,本教学案例以PBL真实问题情境作为切入点为学生提供了较强的生活实景,有效地将学科知识和技能联系起来。此外,教师根据实际问题,引导学生进行算法优化,逐步产生计算机辅助下的问题解决方案,形成问题解决的仿真模型也是对学生能力的一种提高。
课程组在“大学计算机基础”课程的改革中推行以计算思维与PBL为导向的《大学计算机基础》教学实践项目,通过多年的教学实践,积累了一定的经验和方法,并获得省级教学改革项目一项,校级改革项目多项。