1. 引言
《论语·述而篇》中描述,不愤不启,不悱不发,举一隅,不以三隅反,则不复也 [1]。即教师要让学生带着问题去逐步引导其学习。其教学理念重在引导和启发学生不断提出新问题,提高学生善于思考问题、钻研问题并解决问题的能力,在讨论、质疑中寻找问题的答案,这种提倡学生具有质疑和批判的精神,离不开教师的循循诱导。
为了提升学生课程教学质量,提升学生主动学习、独立思考、深入探索研究能力,本文提出了开小口挖深井教学模式,充分发挥教师主导、学生主体作用,激发学生的探索精神,充分挖掘学生的潜能,更好地培养学生的创新能力。通过这种教学模式希望师生在不断地学习讨论中,培养学生独立自主学习、积极探索领域知识、善于思考洞察新知识的能力。
2. 开小口挖深井教学模式
曾国藩在家书中提到:“用功譬若掘井,与其多掘数井而皆不及泉,何若老守一井,力求及泉而用之不竭乎?” [2]。即用功就像挖井一样,与其浅尝辄止般到处挖数口井,不如专注于挖一口,直到挖出井水即可取之不尽、用之不竭。简言之,我们无论做任何事情都要持之以恒才能获得成功。
同理,我们在给学生传道受业解惑过程中,也可采用该方法给学生讲授知识。简单来讲,分三步走:
一是从“点”出发,层层深入,寻找解决问题的方法。即从一个小小的问题为切入点,逐步引导学生分析问题的本质在哪里,在分析过程中又引发出一系列新的问题,随着问题的深入,逐步破解一个个小问题,进而得到解决问题的根本方法。
二是“穿针引线”,分析该方法可解决的同类问题。为避免学生“一叶障目,不见泰山”,引导学生该方法还可以解决哪些问题,应用到哪些领域。
三是“登高望远”,探索该方法在科研与学术的最新动态。跟踪当前科研学术方面最新研究状态,分析解决该类问题的其他方法,并从时间复杂度、空间复杂度、准确率等方面进行比较,继而得出该方法解决该类问题的效果。并引导学生可进一步优化方法,发扬学生勇于探索与创新的科学精神。
3. 开小口挖深井教学模式应用实例
3.1. 教学设计
以哈夫曼编码课堂教学为例,为了帮助学生理解本堂课的学习内容,首先提出图像无损压缩任务,按照“如何设计编码–什么是哈夫曼编码–分析性能–编码在其他应用领域作用–最新研究动态”的思路设计教学,以如何设计编码这个小口为切入点,进而层层深入引申到该领域的核心技术及其作用,使得学生在学习知识时,不只是见山是山,不能一叶障目,要以点带面的教学方式发扬科学探索精神。
3.2. 教学实施
3.2.1. 从点出发,层层深入,寻找解决该问题的方法
1) 如何设计编码
现有一任务,一副卫星图像从万米高空中传送到本地,考虑到带宽等问题,请设计一种方案:在不牺牲任何图像信息前提下,减小存储空间,以提高传送效率。请问如何提高传送效率?
通过这个问题,引导学生分析图像在计算机中是如何存储的。假设卫星图像都是2340*3240的24位编码,一幅图像就是10.8 Mb,在万米高空占用这么大的存储空间所需的存储硬件成本代价是非常大的;而数字传输往往还受到带宽的限制,假如带宽是2 M,一幅图像就要5秒多,这样的传输速度效率是很低的。继而引导学生,解决该问题的方法就是寻求更优的图像编码方式。即引出新的问题:如何设计编码。
a) 分析不同编码格式
定长编码:回顾之前学习的字符编码、图像编码等定长编码,计算这幅图像的编码长度。
通过前面的学习,我们知道图像是由许多像素组成,这里灰度值由8个二进制表示,取值范围是0~255之间。以一个4*4的子图为例,很多灰度值都相同,提取出来只有5种灰度值,即61,90,82,131和67,用字符ABCDE表示,每个灰度值出现的频次分别为1,1,7,3,4。
采用这种等长的编码,技术上较简单,而且不会产生歧义。但是占用的存储空间比较大。如果在此基础上,你能用什么办法让编码变短呢?
为了缩短编码长度,引出不定长编码概念。
不定长编码:例如,ABCD四个字符编码如下:A:0。B:1。C:01。D:10。那么现在有一列数0110,该怎样翻译呢?是翻译为ABBA,ABD,CBA,还是CD?那么如何消除二义性呢?解决的办法是:任何一个字符的编码不能是另一个字符编码的前缀,即前缀码特性。
通过举例分析得出,不定长编码是将使用频率越高的编码,长度越短。
但是,无论哪种编码都要遵守两个要素:一是不能有二义性,二是编码长度尽量短。
b) 分组讨论,设计不定长编码方案
一组设计不定长编码,另一组尝试译码,并评价其编码方案是否可行?进而引发出如何快速设计一种高效的二进制不定长编码。
2) 什么是哈夫曼编码
逐步引导学生,优化设计方案,重走一次哈夫曼设计编码之路,适时思政:世上无难事只怕有心人。进而讲解哈夫曼基本原理。从而为图像中每一个灰度值构造一个最短二进制码,使得整个图像编码长度最短,从而降低存储空间。
3) 分析性能
从算法设计方面,如果采用结构体数组构造哈夫曼树,图像编码是从叶子结点向上到根结点逆向扫描2n − 1个结点,时间复杂度为O(n2)。如果采用二叉链表结构,图像编码是从哈夫曼树第二层向下到叶子结点扫描,时间复杂度为O(n)。
通过这一步,教师从“如何提升传送图像速率”这个小口开始,引导学生需要对图像编码重新设计一种新方案,使得其整体编码长度变短;通过小组讨论分析得出不定长编码的定义与特点;再进一步挖出如何设计快又短的不定长编码,渐渐启发和引导学生借助树构建编码,其实也就是重走一遍哈夫曼路得出哈夫曼编码;再从理论转化到实践,用计算机实现哈夫曼编码,并分析该算法性能。这样通过“如何提升图像传送速率–如何寻找更优的图像编码方案–如何寻找最优的不定长编码–如何构造哈夫曼编码–如何实现哈夫曼编码”这一系列逐步深入的问题,其实也是逐步发现问题真相的过程。这一环节重在发现问题真相,解决问题。
3.2.2. “穿针引线”,分析该方法可解决的同类问题
哈夫曼编码不仅能解决图像压缩问题,事实上现如今许多知名压缩工具和压缩算法,如WinRAR、zip里都有哈夫曼编码的身影。即哈夫曼编码在计算机文件压缩、数据压缩传输、信息加密等领域有非常重要的作用。
这一步重在此方法还可以解决哪类问题,从一个提升图像传送速率问题,延伸到文件压缩、信息安全等领域。
3.2.3. “登高望远”,探索该方法在科研与学术的最新动态
从科研学术方面,掌握有关哈夫曼编码的最新研究动态。例如,Alistair Moffat [3] 等人对算术编码、ANS编码、哈夫曼编码进行对比分析,发现这些算法在静态编码、自适应编码、多媒体上下文操作等方面各有千秋。而Song Han [4] 等人将哈夫曼编码应用到深度学习领域,实现图像压缩目的。
这一步重在分析编码不仅有哈夫曼编码,还有其他编码也可以实现压缩等问题,但各有千秋,没有一个万能的方法解决所有问题,因此需要具体问题具体分析。并且随着跟进当前研究动态,更拓展视野明确此方法的最新方案、解决的问题领域和下一步的发现方向,从而培养学生具有永无止境的科学探索精神。
3.2.4. 总结归纳,拓展视野
通过上述分析,学生不仅掌握了哈夫曼编码的原理及应用领域,更为学生的学习深度提供了更广泛的平台。感兴趣的同学可以此为契机,作为第二课堂、毕业设计、全国计算机类大赛研究主题,深入学习相关知识。
4. 教学效果
为分析本模式教学效果,采用了问卷调查方式,问卷共计98份。从学生对教学方法满意度、综合分析能力、兴趣培养满意度、知识掌握满意度等进行了统计。教学效果显示,教学方法满意度、兴趣培养满意度均得到了较高认可,学生的综合分析能力、知识掌握满意度也得到了显著提升,这表明了开小口挖深井教学模式是有效可行的。
图1是本学期采用该教学方法与以往成绩对比分析,课程考核成绩比以往考试结果有显著提升。横坐标是学生成绩分数段,纵坐标是各分数段学生人数所占总人数的百分比。其中,90分以上的人数占13%左右,80分以上学生人数比以往多了5个点。尤其在高分数段的学生不仅在课程学习中学习能力有显著增强,并在参加全国计算机类大赛和第二课堂兴趣小组比赛中屡获佳绩。
5. 结语
本文采用开小口挖深井教学模式,将课程内容从一个小问题出发,逐步引导学员层层深入分析,进而牵引出一个个新问题,通过师生的共同分析,挖掘出问题的本质,通过理论与实践相结合的方法逐步各个击破,最终解决问题。在这个过程中,教员要注意引导学员层层分析,不急于告诉学员答案,要有试错、补救的过程,才对知识的掌握更加深入。如果有一天,真的挖出一口教育深井,那一汪井水里映现的必将是教育的整个一片天!