基于CDIO理念的信息论与编码课程实验教学探索
2018-02-15何艳敏
甘 涛,何艳敏,汤 羽,廖 勇
(电子科技大学 信息与软件工程学院,四川 成都 610054)
CDIO(conceive-design-implement-operate)是由以美国麻省理工学院为首的几所工程技术大学联合提出的一种现代工程教学理念[1]。其中,C代表构思,D代表设计,I代表实现,O代表运作。它们是一个产品从研发到运行生命周期中的4个环节,在本文分别表示教育和实践训练4个环节,即CDIO将工程教育视为一系列的服务性工程产品制造过程,并以层次化的架构来组织师生的学习活动。它的主旨是“以人为本”,注重实用性和有效性。学习主体以学生为中心,学习过程强调“做中学”[2-3]。通过理论探索和实验教学验证,CDIO 教育模式在提高学生的实践能力、 团队合作意识等方面取得了显著的效果[4]。
目前,在CDIO模式下,我国高等院校已开展了多层次、多形式的工程教育改革,并取得了一定的成效[5-6]。实践中,在克服传统教育的“重理论轻实践”,教育方式“以教师为中心,课堂讲授为主体”等弊端的同时,面临一些新的亟待解决的问题。比如,如何针对不同专业、不同课程开展具体的实践教学?如何将实践教学与传统理论教学有机融合,以达到基础知识获取、实践能力提高与综合素质培养等方面的协调与统一等。
课程教学是高校教育的主要内容,CDIO理念需要通过各门课程的教学活动来得到具体的实施。本文就高校软件工程专业信息论与编码课程的建设和教学过程中,按照CDIO理念,结合专业培养目标,在该课程的教学内容和方式进行了一系列的改革和尝试。
1 信息论与编码课程及教改现状
信息论与编码是我国高等院校电子信息类、通信类专业的基础课程,也是信息与计算科学专业的一门重要专业课[7]。
信息论与编码具有较强理论性和实践性,这也是该课程的教学难点所在。在理论方面,该课程用概率论、数理统计、随机过程等数学方法来研究通信系统传输有效性和可靠性,涉及一些复杂抽象的数学概念,很多工科学生感到难度较大,且学习过程枯燥;在实践方面,课程所涉及的一些信源/信道编码技术已在日常生活中得到了广泛的应用,如用手机通话、用QQ或微信传输图片/视频等。但遗憾的是,这些实用技术经过一代又一代的更新而变得非常复杂,对应的程序代码量也相当庞大,以至于难以在课堂上给学生讲明白或让其在实验中去仿真实现。因为这个原因,目前该课程的实验内容多停留在对课程所授的一些基本定理和结论的验证上,距离实际的工程应用较远,学生的学习兴趣不高。
针对上述问题,各高校展开了多样化的课程改革。在理论教学方面,文献[8]提出化抽象为直观,化复杂为简单的观点,研究了如何将书本中枯燥的理论及繁杂的数学推导用直观的图解和通俗易懂的实例来阐述。从实验教学角度,文献[9]设计了基于MATLAB的通信系统等实验,以提高综合分析和设计通信系统的能力。文献[10]在上机实验、课程考核等教学环节提出了相对于传统教学的改进方法和可行性方案。近年来,出现了一些新的教学理念和模式。文献[11]将“翻转课堂”的教学模式引入到信息论与编码的课程教学中,以激发学生学习的积极性和主动性,提高学生合作交流及分析和解决问题的能力。“基于问题学习”(problem based learning,PBL)的教学模式也被引入课堂,将理论多,学生难以理解的课程内容转化为若干个具体的实际问题,以激发学生的自我学习意识,增强教学效果[12-13]。特别地,基于CDIO工程教育理念,部分高校在教学内容、方法及实践环节等方面进行了课程改革的初步探索[14-15]。
在上述多种教学改革中,尽管实践教学被提到了重要的位置,但切实反映课程背后实实在在的工程内容的实践较少。另外,从工程教育角度,旨在将理论教学与实践教学两者有机统一以提高学生综合能力的探索并不多见。
2 基于CDIO的信息论与编码课程改革
电子科技大学是教育部“卓越工程师教育培养计划”第二批试点高校,信息与软件工程学院全面实施了该计划,进行了工程类高层次、复合型软件人才培养的探索实践。信息论与编码课程是学院软件工程专业信息处理方向的一门专业核心课程。相对于通信专业的同名课程,其课程目标更强调信息工程领域中软件开发能力的培养。
根据人才培养目标以及专业特点,本课题小组提出了基于CDIO教育理念的信息论与编码课程的改革措施,试图弥补当前教育存在的缺点,积极探索有利于促进知识体系构建和综合能力培养的新教学模式,以迎合卓越工程师教育培养计划,提升人才培养质量。
本文从课程知识体系和能力培养目标出发,提出相应理论与实践结合的教学提案,并以一个具体实施方案为例进行说明。
2.1 课程知识体系
就知识部分而言,科学知识、技术知识和工程知识构成了工程人才的完整知识体系,这些知识也是形成解决实际工程问题能力所依赖的基础。
就本专业的信息论与编码课程而言,教学内容可分为信息论、信源编码和信道编码三个部分。信息论主要包括信息熵的概念及其性质,该部分涉及信息的度量,是其他部分的基础;信源编码主要包括信源编码的概念和典型方法,该部分涉及香农的两大定理,即无失真信源编码定理(香农第一定理)和限失真信源编码定理(香农第三定理);信道编码主要包括信道容量的概念和典型信道编码方法,该部分涉及信道编码定理(香农第二定理)。如图1所示,给出了课程理论知识体系结构。其中,“一个概念”和“三个定理”,即信息熵概念和香农三大定理,构成了课程的知识主线。
图1 课程理论知识体系结构图
就技术知识而言,在信源和信道编码部分,学生会接触到各类编码技术,包括无失真信源编码(香农编码、费诺编码、霍夫曼编码、游程编码)、限失真信源编码(标量量化、矢量量化、变换编码)和信道编码(线性分组码、循环码、卷积码)等。此外,课程内容具有很强的工程应用背景,上述的理论和技术均可映射到现实的物理通信系统中。
正如文献[16]所指出的,以上技术知识和工程知识是需要学生在具体工程实践过程中才能得以掌握。
2.2 能力培养目标
就能力而言,本课程旨在培养包括思维能力、沟通能力、学习能力和计算机软件编程能力在内的多种能力。在这些能力中,思维能力是核心。它可具体细化为逻辑思维(判断是非)、系统思维(构建事物之间的整体关系)、求同与求异思维(处理主观意念与客观事物之间的关系),以及归纳与演绎思维(处理客观事物之间的关系)等[16]。以上各种能力在实践锻炼中会得到实质性的提升,综合表现为解决实际工程问题的能力。
2.3 实验教学方案
从前面的分析得知,知识的获取和能力的培养都离不开实践,这也与CDIO的工程教育理念相符合。CDIO理念强调让学生以主动的、实践的、课程之间有机联系的方式来学习知识,提高实践能力。在这个思想的指导下,本文课程改革的重心放到实践环节上,下面主要围绕课程的实践教学展开阐述。
首先从教学方式上,将原纯理论教学方式改为理论和实验混合教学方式。其中,理论教学的学时数占总学时的2/3,实验教学占1/3。为此对教学内容进行了删减和调整。如去掉繁琐的公式推导和抽象证明,代之以物理意义的解释及其应用价值的阐述;减少连续信源与连续信道部分的内容介绍,而将侧重点放在离散信源和离散信道部分等。
本文方案提出,用一个“主项目”来贯穿课程教学的始终,即项目在课程开始时启动,直到课程结束后终止。主项目可分解成若干“子项目”,每个子项目分别对应一定的教学单元。教学单元学习(理论教学)与对应的子项目(实验教学)是先后交替执行的。
对于子项目任务,按照 CDIO 的教学要求,分解为以下4个阶段执行。
1)任务构思(conceive)阶段。教师根据当前教学单元特点,设立合适的实验任务。任务是按组为单位给出的。同组任务仅在运行环境或目标上有细微差异,体现从简单的“理想情况”逐渐过渡到复杂的“实际环境”的演变。学生在得到任务后进行学习与调研,对其提出各自的意见和思路。在此过程中,教师给予指导和意见。
2)方案设计(design)阶段。依据上一阶段的研讨和分析,小组成员明确分工,制定实施方案。在此阶段,教师参与方案的讨论,并提醒学生注意方案实施的可行性。
3)任务实现(implement)阶段。学生按照小组分工,自主开展工作,完成相应的任务。在此期间,教师可以根据学生需要提供相应的帮助。
4)运作展示(operate)阶段。学生自主进行成果展示,包括方案陈述、效果演示、交流体会等。在此阶段,教师引导学生对所选的方案进行性能分析和评估。
上述4个步骤作为一轮的CDIO实施。在本轮的运作展示阶段,若发现当前方案的不足或需改进的地方,学生和教师将带着新的问题进入下一轮的设计。这种迭代的设计不是简单地重复劳动,而是进入经验和知识的迭代积累过程。每一次循环获得的经验和知识将会被用来作为下一次循环的初始值。
2.4 方案特点
区别于已往的实验教学,本实施方案具有如下3个主要特点。
1)系统综合性。
以往的教学实验,通常是针对课程特定的知识内容而定身制作,各个实验之间相对独立,缺乏联系;另外实验目标也往往局限于对本门课程知识的掌握,较少涉及跨课程、跨学科知识的应用。这里采用一个综合性的项目来激活整个课程教学。以项目为主线,系统化地组织各个知识单元的教学,并加以综合应用。在项目执行过程中,也涉及对其他课程知识的应用以及对思维能力、沟通能力、学习能力和操作能力等多种能力的训练和培养。
2)教师指引性。
教师与学生一起参与实验的全过程,只是其角色由传统教学的“主导”变为“指导”,最后成为“引导”。虽然角色改变,但教师在教学中所起的作用是同样重要的。在构思阶段,教师需对项目目标和任务进行精心设计;在运作阶段,教师将引导学生在总结本轮实验的知识和经验的基础上,进行新一轮更高层次的实践。
3)工程回归性。
实验项目所涉及的问题是对工程应用的抽象或简化,具有很强的工程性,学生可以从中体会到知识系统各组成单元的实际工程意义。而且,在实施过程中,通过完成从简单“理想情况”到复杂“实际环境”的一系列的任务,学生可逐渐形成与实际工程应用相结合进行系统分析设计的思维和习惯。
3 实验教学实例
以具体课程实验项目为例,对提出的方案进行说明,并分析该项目的实施在学生知识获取和综合能力培养方面所起的作用。
3.1 项目立题
题目:数字图像压缩传输
任务:设计一数字通信系统,完成将一幅原始图像(信源)经压缩编码后传输、恢复,最终为接收方(信宿)接收的过程。
要求:根据如图2所示的通信系统模型,用MATLAB/Simulink工具设计通信系统并对其进行仿真。
图2 通信系统实验模型
所用知识:数字信号处理、通信原理、信息论与编码、计算机编程。
3.2 项目实施
根据图2给出的实验模型,可将主项目分解成包含信源编/解码和信道编/解码两个子项目。下面以信源编/解码为例进行详细说明。
实验分两轮迭代进行。第一轮,设定待传输的图像是一幅8×8的黑白二值图像,并按如下步骤进行。
1)任务构思阶段。
设定如下一组任务。
任务1:将图像的单个像素视为一单符号离散信源(即假设图像像素间相对独立),用香农编码、费诺编码、霍夫曼编码方法,对输入图像进行无失真编/解码。
任务2:将图像的一行视为一多符号离散信源(即假设图像同行像素间相关),用任务1采用的3种编码方法,对输入图像进行无失真编/解码。
任务3:将图像的一行视为一多符号离散信源,用游程+霍夫曼编码方法(即先用游程编码,对其结果再用霍夫曼编码),对输入图像进行无失真编/解码。
2)方案设计阶段。
小组讨论,按照不同的编码方法进行分工。对同一种编码方法,将编码和解码任务分配到不同的个人。在制定实施方案中,教师提出如何统计图像信源符号的概率,在任务3的游程编码中编码方如何统计游程长度的概率,如何传输“换行信息”到解码方等关键问题。
3)任务实现阶段。
教师向学生灌输先进的编程思想,引导其养成规范的编程习惯,并针对编程和调试中碰到的问题给学生以指导和帮助。
4)运作阶段。
教师审查学生的实验结果,并与其一起进行性能的分析比较。在此期间,教师提出如下引导性的问题。
问题1:计算从任务1(无记忆信源)至任务3(有记忆信源)各种编码方法的编码效率。对同一任务,香农编码、费诺编码、霍夫曼编码3种编码方法的编码效率有何不同?在不同任务间,为什么从任务1~任务3,编码效率得到逐渐提高?
问题2:计算信息熵H及任务2和任务3的平均码长K2和K3。比较K2、K3与H三者的大小关系,验证是否好的编码方法其平均码长更接近信息熵的结论?根据无失真信源编码定理,推断是否有比任务3中方法更好的编码方法的存在?
问题3:调研由ITU(国际电信联盟)颁布的传真数据压缩标准方法,考察其中的MH(modified Huffman)编码方法与任务3中的方法有何异同?
问题4:本轮实验的输入为黑白二值图像,如果改为256阶的灰度图像,任务的执行情况又会怎样,当前的结论是否还成立?
带着问题4,进入第二轮的设计。在第二轮中,设定待传输的图像是一幅8×8的256阶的灰度图像。第二轮的执行过程与第一轮大体相似,但在任务拟定和讨论的问题上有所不同。
在任务构思阶段,学生发现任务2与任务3都会出现新的问题:由于信源符号集合过大,计算信源符号的概率变得困难;另外,对细节丰富的图像,游程编码的效率急剧下降。针对这些问题,讨论其解决办法,并引入如下新的设计任务。
任务4:用DCT(离散余弦变换)+游程+霍夫曼编码方法(即先将图像经过DCT变换,对其结果再用前轮任务3的“游程+霍夫曼编码”的方法),对输入图像进行无失真编/解码。
任务5:用DCT+量化+游程+霍夫曼编码方法(即在任务4的DCT与游程编码之间引入量化环节),对输入图像进行有失真编/解码。
在最后运作阶段的问题讨论中,除了分析比较任务4与任务5的编码效率外,教师应引导学生去调研当前图像压缩编码的流行方法——JPEG,并将其与当前任务5中使用的方法进行比较。
3.3 作用分析
以上两轮实验,在学生知识和能力方面可起到如下3个方面的作用。
1)迭代式的学习和实践将加深学生对多门课程所学知识的理解,使其进一步掌握基本概念、基本理论和基本方法。如数字信号处理课程中的数据变换,通信原理课程中的通信系统组成,信息论与编码课程中的无记忆信源和有记忆信源、无失真信源编码定理及实践指导意义(第一轮实验)、有失真编码和无失真编码(第二轮实验),计算机编程课程中的程序设计方法等。
2)在具有工程背景的项目设计中,学生从理论走到了工程实践,从而积累了难以从书本上得到的工程知识和经验。比如前述两轮实验的最后任务所用到的方法都非常接近于现行的行业标准方法,如ITU的传真数据压缩标准和JPEG静态图像压缩标准等。学生通过实验,对其有了一定的了解。
3)通过迭代式的CDIO四阶段实践,学生综合能力将得到提高。在以学生为主体的实践中,学生的主观能动性得到调动,自主学习能力得到的培养。交替的项目构思、设计、实现、运作过程,可锻炼学生思维能力、沟通能力和操作能力等。
4 教学效果
在2016~2017年第一学期的课程教学中,组织了一个60人的实验班,并将上述新方案在该班进行了实施。为考察实验教学在帮助学生掌握知识方面的所起的成效,将该实验班的期末考试成绩与另一个按传统方式教学的非实验班的成绩进行了对比分析。
本文仅对信源编码这个知识单元进行说明。在期末考试题目中,涉及信源编码部分的主要有两个大题。其中A题考察学生对香农和费诺两种基本编码方法的掌握情况,B题则考察对霍夫曼编码的掌握情况。若每道题的得分按百分制来计算,对A题,实验班和非实验班学生的平均得分分别是82.85和70.37;对B题,两个班的平均得分分别是82.67和76.13。可见,实验班的得分均高于非实验班,尤其在A题上,其差距是显著的。
下面对成绩分数段的比例分布作进一步分析。如图3所示,给出了两种班级的学生在A题上的得分分布情况。
图3 A题得分分布图
一方面,在90~100分段(优秀段),实验班学生的人数比例(59.32%)几乎是非实验班人数比例(29.63%)的2倍;而80~90分段(良好段)的人数比例大致反了过来。这说明在知识掌握上,前述项目实践过程对良好段的学生来说是非常有益的,可帮助他们从良好向优秀转变。在另一方面,实验班学生成绩小于60分(不及格段)的人数比例也明显少于非实验班,这表明实践过程对后进学生的知识学习同样是有帮助的。如图4所示,给出了两种班级的学生在B题的得分分布情况,其现象与前面类似。为此,可以得出下面的结论:本实验教学对理论教学起到了明显的促进作用。
图4 第6题得分分布图
此外,实践中发现,实验班学生的学习积极性和主动性都得到明显的提高。特别是在实践环节,学生不再仅仅是被动地接受知识,而更多的是主动运用所学的知识去解决实际问题。在此过程中,学生的软件编程能力得到了很好的锻炼,解决工程问题的能力得到了提高。
5 结束语
CDIO工程教育理念强调理论与实践的统一。本文基于信息论与编码课程,在如何促进知识体系构建和综合能力培养,如何将理论教学与实践教学有机结合等问题上进行了有益的探索,一些做法和取得的经验可供今后工作参考。