Education Research Frontier June 2013, Volume 3, Issue 2, PP.60-64
Investigation on the undergraduate course teaching of "Information Theory and Coding" for the Major of Computer Science Xiaopeng Tao School of Computer Science, Fudan University, Shanghai, 201203 E-mail: xptao@fudan.edu.cn
Abstract Based on our teaching experience of course “Information Theory and Coding" in Fudan University for 5 years, we discuss the teaching methods of this undergraduate course in eight aspects: course name, textbook, depth and breadth, display method, exam type, rigorous and interesting, abstract and pragmatic, experiment. We explain the advantages and disadvantages of many different methods in detail, and present our choices. Our methods have shown some positive effects on the students' learning of this course in these years. Keywords: Information Theory; Coding; Undergraduate Education; Teaching Reform
面向计算机专业的《信息论与编码》课程的教学 探讨* 陶晓鹏 复旦大学计算机学院,上海市 201203 摘
要:本文结合我们多年的教学实践,从八个方面讨论了《信息论与编码》课程的教学方法,即课程命名、教材、内
容深度和广度、教学方式、考核方式、内容的严谨性和趣味性、内容的抽象性和实用性、实验设置。本文分析各种方法 的利弊,提出了我们的做法。这些做法在近 5 年的教学实践中取得了一定的实效。 关键词:信息论;编码;本科教学;教学改革。
前言 现实世界中的各类信息符号,比如声音、文字、图像、视频、股市行情等等,可以被统一表示成一个 抽象的概念——信息。研究信息这个抽象概念的一般规律则构成了信息科学(或信息论)的基本内容,包 括信息的定义、信息的度量、信息的存储、信息的传输、信息的接收、信息的理解等等。特别地,研究信 息的传输的一般规律构成了编码的基本内容。《信息论与编码》就是讲授这些内容的一门课程。计算机科 学是利用计算机处理信息的科学,或者说计算机越来越成为信息处理的通用工具,因此《信息论与编码》 这门课程在计算机专业学生的培养中有重要的、基础性的地位,但是这门课在计算机专业的课程体系中有 很强的独特性,比如特别抽象,也特别独立,已经有很多论文探讨这门课的教学方法,比如[2, 6, 3, 4, 9, 5, 10, 7, 11, 8, 1],本文结合我们多年的教学实践对如下一些问题进行探讨。
*本文得到复旦大学课程建设经费的支持,特此致谢。
- 60 www.erfrontier.org
1
课程命名 通常这门课有如下几种命名 1)信息论 2)信息论与编码理论 3)编码概论 4)信息论与编码 这些命名说明了如下的问题: 信息论的内容和编码内容可以大致分开,甚至可以分别单独开设课程。反过来,信息论的内容和编 码内容又密切相关,因此常常合并形成一个课程。 2)和 4)的区别是什么?据我了解,还没有人分析过,我的理解是,它们主要的区别在对编码部分 的处理。编码的内容可以分成两大部分:编码理论和编码方法。2 把讲授重点放在编码理论上,4 则是两个部分都要涉及,尽管通常是把重点放在编码方法上。另外,它们有各自对应的英文名称, 2)对应“Theory of Information and Coding”,4)对应“Information Theory and Coding”(有些课 程用的英文词是 Code,我们认为 Coding 更合适)。 4)强调信息论与编码之间的关系,即强调信息论就是编码的理论基础,编码理论是信息论的延伸; 2)强调信息论与编码的独立性,编码理论虽然基于信息论,但是与信息论有很大的不同。 我们认为作为计算机专业的本科课程,课程命名选择 4)更合适,这是因为:首先,没有必要单独 开设信息论和编码理论两门课程;其次,没有必要讲授太多编码理论,而将重点放在编码算法的设 计和性能分析之上。
2
国内教材和国际教材 我们没有选择国内出版的书籍作为教材,原因是:1)国内书籍基本上都是为电子和通信专业编写的,
大量涉及具体的通信的物理特性,需要一定的物理学知识,不适合计算机专业的特点;2)国内书籍内容相 对老化,内容配置不合理、不均衡,对国际发展趋势把握不准;3)国内书籍大都是国外书籍的翻译、编 写,有很多是编辑自二手、甚至三手资料,出现翻译混乱,内容整体性差。因此,我们选择了国外教材, 特别是 Cover 和 Thomas 撰写的《Element of Information Theory》已经成为信息论方面的国际权威教材,目 前已经更新到第二版。这本书的风格是内容选取适当,语言规范,讲解清晰,没有错误(各种错误:作者 笔误,印刷错误等),前后逻辑结构严谨,初学者只要具备了基本的概率论知识,就可以通过反复研读, 自学大部分内容。特别地,Cover 本人是这方面的权威,也非常重视这本书的写作,这本书是他和他的团队 长期努力的结果,书中很多关键概念和重要定理的解释都包含着他们独有的研究心得和见解,常令人有豁 然开朗的感觉,也启发读者做更深入的思考。 但是 Cover 的书籍没有编码的内容,我们还需要为编码选择一本教材,可惜编码方面的书籍基本处于各 有所长,群雄相争的局面。我们选择了 McEliece 的《The Theory of Information and Coding》,这本书的特 点是:1)强调信息论和编码的联系;2)除了独立讲解各个知识点,还专门有章节从宏观上讲解各个知识 点之间的关系。缺点是内容安排有些凌乱,讲解不够清晰,有时感觉把简单问题讲复杂了。书中内容也不 是自成体系,读者需要补充相当多的高等代数和抽象代数的知识才能顺利阅读。
3
课程内容的深度和广度 总课时确定的情况下,课程内容必须在广度和深度两个方面进行取舍。一般而言,广度容易确定,深
度不易把握。广度可以根据教材的目录提纲进行选择,而深度必须根据教材每个知识点的具体内容和学生 的接受能力进行选择。我们认为广度可以适当小一些,深度可以适当深一些。深度上如果处理太浅,比如 如果只介绍一些定理的结论和定理的用途,而不理解定理的证明,学生学习完后,获得的是“鱼”,而不 - 61 www.erfrontier.org
是“渔”,无法让学生真正掌握这门课的精髓,无法得到原创性知识的启迪。但是也不宜太深,否则学生 感觉陷入细枝末节的泥潭,缺乏课程知识的全局把握,也容易迷失学习的目标,丧失学习的兴趣。深度确 定的基本原则是,将学生希望刨根究底的问题讲透,而学生心领神会的问题点到为止。因此,了解学生, 因材施教很重要。复旦学生的特点是具有坚实的数理基础,希望思考现象背后的原理,具备举一反三的能 力,具备高水准的英语能力。 因此,我们选择最基本的内容,要求学生不是浮光掠影,而是深挖细掘式的学习。总体而言,要让学 生体会到数学式的严格定义和推导证明,而不是讲座式的笼统叙述。学生通过在某一点上的深入学习,学 会在其他知识点上的类似学习方法。以信息论为例,具体做法是,仅仅选择 Cover《Element of Information Theory》中的最基本的五章内容: 第 2 章 Entropy, Relative Entropy, and Mutual Information. 第 3 章 Asymptotic Equipartition Property. 第 4 章 Entropy Rates of a Stochastic Process. 第 5 章 Data Compression. 第 7 章 Channel Capacity. 要求学生能够逐字逐句阅读并理解这些章节的所有细节,能够将这些章节的内容融会贯通,构建基本 的信息论知识体系。
4
教学方式 当前课堂(包括小学、中学、大学)的教学方式主要有两种:1)传统的粉笔板书;2)现代化的电子
文档投影。经过多年实践、比较,我们认为本课程宜于选择粉笔板书的方式。原因如下: 板书更接近学生学习过程中的自然形式,类似自己在稿子上用笔书写演算; 板书能够更好地展示知识的过程,知识不是静止的,知识是动态的,是有形成过程的。比如一个定 理的证明,有一个复杂的步骤,有知识的准备,有难点的攻克,有结论的导出,如果像电子文稿一 下子全部同时呈现,学生难以体会到这个过程; 板书内容更灵活,黑板的空间远大于一页文稿,因此板书可以在更大的空间上施展,可以临时添 加、修改内容,还可以做前后内容的呼应; 板书利于深挖细掘式的讲解,随时可以停顿部分内容的展示,也可以通省略等记号跳跃内容,便于 教授变换授课节奏,使得课堂气氛张弛有序,让学生始终保持注意力; 板书文字更鲜活、生动,更有个性,而电子文稿的文字界面都是千篇一律,看多了令人疲劳。打个 比喻,电子文稿犹如肯德基、麦当劳式的标准化快餐;而粉笔板书犹如个人烹制的私家菜肴; 好的板书,是书法艺术和版面布局艺术的结合,还能带来美的享受。当然板书应该遵循一定的规 范,参见[2]。
5
考核方式 我们的考核方式以书面试卷为主,其中题型大致分为三类:计算、证明、算法设计,尤其以证明为
主。这样安排的原因是,本课程的核心任务是给学生建立新的知识体系,而一个知识体系主要由两部分组 成:概念和概念之间的逻辑关系。前者主要体现在定义中,后者主要体现在定理中,而定理的证明则是学 生理解这个知识体系的关键。特别地,信息论的内容相当抽象,它的最基础的概念—熵—就很抽象,基于 下层的概念,新概念不断被定义出来,因此,所有概念有很明显的层次关系,直到很多层以后,定义出了 信道容量,并给出了信道容量定理,我们才开始感觉到信息论的实践意义,它的抽象性才有所减退。证明 也是培养这种抽象思维能力的关键。 我们的考核题目主要有三个来源:书中内容、书后习题、著名大学放在网上的练习题和考试题。选择 - 62 www.erfrontier.org
书中内容的目的是促使学生精读教材,对重要内容要求完全理解,如果实在不能理解,也必须记住(随着 将来知识阅历增加,再逐渐理解);选择书后习题的目的是促进学生认真思考教材的习题,因为教材给出 的习题都是经过千锤百炼的经典题目,紧扣教材内容,对学生掌握和拓展教材内容有很大帮助。第三个来 源是我们的主要来源,因为前两个来源都是有限的,学生预先可以准备的,只有第三个来源的题目才是开 放的,才能真正测试出学生灵活应用知识的能力;而且这些题目来自国际著名大学,能够促使我们的教学 和我们的学生水准向国际一流看齐。
6
课程内容的严谨性和趣味性 相当多的教学论文[2, 9, 5, 10, 7, 11]都要增强课程的趣味性,我们认为过分强调本课程的趣味性是不正
确的。给小学生上课强调趣味性没有错,但是给复旦大学的理科大学生上课强调趣味性就值得质疑了。不 是所有的知识都是简单容易的,总有一些学科是艰深困难的,无论如何引入趣味,都无法改变其抽象晦涩 的本质,学生不能寄希望在嘻嘻哈哈的轻松环境中学习到这样的知识,而且每个国家每种社会总得有人学 习这样的知识。因此,我们在课程开始就告知学生必须做好刻苦攻坚的思想准备,只有历经艰辛攀登上了 常人达不到的高度,才能体会到科学知识学习的乐趣。
7
课程内容的抽象性和实用性 相当多的教学论文还强调增强课程的实用性,我们认为这也可能导致课程品质的降低。一所大学,不
可能像中专、职业技术学校那样强调学习的实用性,有的时候、有的学科、有的课程、有的阶段需要提倡 为学问而学问、为钻研而钻研。为三年级理科大学生开设的本课程就应该提倡这样的风气。这并不是说 《信息论与编码》的课程内容不实用,相反它的来源完全来自实践遇到的问题,是为解决实际问题而创立 的学问。但是应该认识到这种知识抽象的重要性,没有这种抽象就无法完全揭示和理解实践中的本质规 律。而且本课程的抽象性是多重抽象的结果,即往往是在抽象的基础上再抽象的结果,因此与实践经验单 薄的本科生拥有的实用性有较大的距离,因此此时过分强调实用性很可能破坏对抽象性的完整把握。 更辩证地说,知识的实用性和抽象性,既是互为矛盾,也是互为因果。实用性知识积累到一定程度必 然被提炼深化为更有普遍意义的抽象知识;而抽象性知识积累到一定程度必然与具体实践结合,转化成实 用知识。学习一门知识的实用性和抽象性是可以分阶段分别学习的,不必强求同时进行。大的方面而言, 我们认为大学生本科阶段主要应该学习知识的抽象性;小的方面而言,本课程正是面向计算机专业知识体 系中抽象性的那一部分。本课程可以涉及少量实用性,更多的实用性应该在与本课程配套的其他课程(比 如网络通信、密码学、程序设计等)中体现。
8
课程实验的设置 我们认为本课程重在理论学习,但是从计算机专业的特点出发,应该设置适当的计算机程序设计实
验。特别是编码部分,涉及到大量算法,由于支撑这些算法的基础理论很复杂,算法自身的设计思路也很 复杂,因此算法的程序实现难度较大,但是能够让学生得到多方面的锻炼。目前程序设计实验主要有两种 平台:一是 Matlab[9, 4, 5, 1],二是一般的高级程序设计语言,比如 C 和 C++。我们主张采用后者,因为 Matlab 这类系统提供了大量现成的工具,实验者基本不用了解工具的实现过程,仅仅学会如何调用,因此 实验完成后,仍然是“知其然不知其所有然”。而且 Matlab 这类系统安装复杂,使用中涉及大量与本课程 不相关的软件应用知识,实验中很可能干扰主要内容的学习。
9
总结 本文从八个方面讨论了《信息论与编码》课程的教学,即课程命名、教材、内容深度和广度、教学方
式、考核方式、内容的严谨性和趣味性、内容的抽象性和实用性、实验设置,提出了我们的做法,分析了 这些做法的原因。经过近 5 年的实践,我们认为这些做法取得了一些实效,可以验证的事实是:1)在本课 - 63 www.erfrontier.org
程获得较好成绩的学生,在本科毕业时的全年级学业综合排名中,往往也是成绩较好的学生。其中有两 年,本课程的排名与一年后的毕业总排名非常吻合(前 5 名完全吻合)。这说明我们的课程内容、教学结果 真实地反映了学生的能力。2)尽管授课老师没有采取任何监管措施,但是每年学生的出勤率都较高(一般 全班 30 人左右,出勤人数基本都在 20 人以上),而且每年都有 5 名左右学生在课堂上积极参与与老师的互 动活动(另有部分同学参与程度一般)。 我们考虑将来需要改进的地方是:1)引入国外公开课的资料。现在国际著名大学纷纷将它们的本科授 课实况和相关资料放在互联网上,即所谓的网络公开课。与《信息论与编码》相关的公开课也有一些,比 如 ocw.mit.edu 的“Information and Entropy”[12]和“Principles of Digital Communications”[13]。我们可以在 课堂上播放一些公开课的视频片段,比如国外老师讲解“信道容量定理”的片段;也可以组织学生讨论公 开课的一些补充材料。这样能够促进本课程的教学水准保持国际一流的水平。2)本课程需要强化信息论和 编码两部分的联系。特别地,要讲授完每种编码的原理和实现方法后,要用信息论的定理来审视,首先考 察它是否验证了定理的正确性,其次考察能否基于定理的证明思路改进它。
REFERENCES [1] 张云飞. 关于信息与计算专业开设信息论与编码的体会. 大学数学, 3, 2005 [2] 王春生, 姚云飞. 信息论教学实践的探究. 大学数学, 2, 2007 [3] 姜楠. “信息论”课程本科教学探索与实践. 计算机教育, 24, 2007 [4] 姜楠, 王健. “信息论与编码”课程实验设计. 计算机教育, 2, 2008 [5] 刘忆宁. 信息论教学中的程序设计. 桂林电子科技大学学报, 4, 2008 [6] 慈庆玉. 信息论与编码技术课程教学探讨. 大众科技, 4, 2009 [7] 李如玮, 鲍长春, 窦慧晶. “信息理论与编码”课程建设与教学改革. 电气电子教学学报, 3, 2009 [8] 余林琛, 王茂才, 宋军, 杨帆. 关于信息安全专业开设信息论与编码课程的探讨. 信息网络安全, 4, 2010 [9] 姜楠, 王健, 蔡永泉. 信息论与编码理论教学实验系统. 实验室研究与探索, 3 [10] 张小峰, 逄珊, 邹海林. 信息论与编码的教学改革探讨. 计算机教育, 13, 2011 [11] 燕善俊. 信息论与编码课程教学探讨. 高等函授学报(自然科学版), 2, 2011 [12] http://ocw. mit. edu/courses/electrical-engineering-and-computer-science/6-050j-information-and-entropy-spring-2008/videoshomework-and-readings/ [13] http://ocw. mit. edu/courses/electrical-engineering-and-computer-science/6-450-principles-of-digital-communications-i-fall-2006/
【作者简介】 陶晓鹏(1970- ),男,汉族,副教授,博士。研究方向是自然语言处理、计算语言学。获得北京大学学 士和硕士学位,获得复旦大学博士学位。 E-mail: xptao@fudan.edu.cn。
- 64 www.erfrontier.org