有时间在下一篇博文里,我就谈谈一个普通教师是如何给本科生上课的。
本来想周末把这篇博文写完,但吃完午饭上科学网发现上篇文章被加精了,而且看到蒋永华老师的留言:
课没有讲,掌声先响起。执法有选择性,连编辑加精都有点选择性。
蒋老师的留言让我感到鸭梨山大,今天就花点时间赶紧把自己的作业上交吧
先做个声明,我虽然在一所985大学工作,但我们学校属于行业院校,严格来说既不属于综合性大学,也不属于理工科院校,尽管现在学校的专业设置和综合性大学差别不大。
我们学校最强的领域是生命科学,在国内应该排在前列,前十应该没问题。但学校的信息领域专业属于最弱的专业之一,虽然在行业领域里实力应该还行,但比起国内的重点理工科大学,整体差距还是很大,也就属于2、3流吧。我就说说我这个普通的三流老师是如何上本科生课的,以我给大二学生教的一门课《计算机图形学》为例吧。
1、教学目标和教材选取
本课程教学目标:“以应用为背景、以理论为主线、以算法为核心、以合理先进的教学方法为手段、以提高学习兴趣和创新能力的培养为目标”。说的直白一点,就是培养学生能像计算机工程师那样去思考和解决问题。
教材毕竟是人类知识的结晶,好的教材可以影响几代人,比如物理大师朗道的《理论物理学教程》影响了全世界几代物理学人。那些认为上课不给学生教材的观点值得商榷。当然了,钱学森、华罗庚这些大师(也包括科学网一些大师)可以不给教材,但我等这些普通人水平差得太远,还是要给学生指定一些参考教材。
另外,核心基础课和专业课的教材一定要和国内外一流大学相同专业的教材接轨。我反对一些老师把自己东拼西凑编写的教材推销给学生,除非你本人就是这个领域的国内大牛,你编写的教材就是国内这个专业的圣经。否则,就老老实实用这个领域公认的最好的教材作为主要教科书。此外,在教材的选取上,我也不局限于一本教材,而是选用国内外较有影响的几本教材推荐给学生作为参考书。
2、突出讲授图形算法中蕴含的思想
计算机图形学课程的主要内容就是讲授图形生成、显示、处理的算法。那么,一个普通、常规的图形算法是如何通过改进和完善变成一个优秀算法的?
例如,直线生成算法是计算机图形学较底层的一个算法。该算法的性能严重决定着图形生成的效率。因为当完成一个动画算法或真实感图形算法时,直线算法可能被几十万、上百万次地反复调用,因此这种算法要求效率要高。在加、减、乘除、开方、三角函数等运算中,加法是最快的运算,其中整数加法又快于浮点加法。因此像画直线这种底层算法,能够减少一个乘法都是一个了不起的事情。
一步步给学生展示了一个开始需要一个乘法和一个加法的普通直线算法,是如何通过改进和完善其性能,把乘法演变一个浮点运算加法,又把浮点加法变成整数加法的一个精彩过程。计算机科学问题的核心就是算法。
在讲授其他一些图形算法如多边形的扫描转换和区域填充、裁剪算法、消隐算法等时,并不强调学生掌握和实现算法的具体细节,更重要的是阐述这些算法所蕴涵的一些创新思想,像增量思想、编码思想、图形连贯性思想、分而治之思想等。这些思想不仅用在图形学算法中,而且还用在了数据挖掘、人工智能等领域。
3、教材与专业文献阅读相结合
一门学科的内容终究是不可能在课堂上讲授完的,以“授人以渔”为己任的教师不可能也没有必要这样做。在网络时代没有绝对的老师,所有老师必须成为学生。同样,在网络时代也没有绝对的学生,所有的学生必须学会做自己的老师。
除了把教材中优秀的算法介绍给学生,还要培养学生跟踪学科前沿的文献检索、文献阅读与文献综述能力。除了从专业期刊里选出一些和计算机图形学算法有关的高质量文献以外,还搜集一些有关计算机图形具有里程碑式的经典算法和经典文献供学生阅读。
《计算机图形学》这门课里涉及的二十多个算法很多都是学术大师、著名学者提出来的。其中包括图灵奖得主、美国工程院院士、世界一流大学教授、IBM高级科学家等人。由于网络的普及,我搜集到发表这些算法的经典文献供学生课后阅读,要求每个学生在这门课程的学习期间,尽量能够阅读至少1-3篇这样的经典文献。这样既提高了学生的英语阅读能力,又使得学生能领会大师们的研究思路、逻辑推论和技术方法。
这些经典的文献犹如文学界的古典世界名著,长久不衰,他们的贡献直到今天都无可忽略!阅读学习这些经典文献不仅可以领略大师的思想,而且还能提升自己的学术品位。正如阅读文学经典名著可以提高人的文学素养和品位一样。而阅读最新文献犹如阅读现代流行小说,要与时俱进,了解计算机图形学领域的一些最新进展。
4、教学内容横向拓展以突出专业应用特色
《计算机图形学》这门课程所涉及的算法起源和应用大部分都是来源于工业、艺术领域。但是随着信息技术的广泛普及,使得计算机图形算法在各个领域都有了广泛而深入的应用。
比如在教科书里介绍了一个生成真实感图形很重要的一个算法——Phong光照模型算法。在讲完这个算法以后,又再网上找到几篇Phong光照模型在GIS领域应用的学术论文,其中有三维景观构造关键技术研究、三维GIS大数据场景的可视化研究、三维地形可视化研究等。通过和同学们一起学习讨论,不仅使学生更好地掌握算法的基本原理和实现方法,拓展了应用知识面,而且也使同学们认识到这些算法是如何应用到专业领域的。
5、教学内容纵向深入以培养学生创新能力和批判精神
《计算机图形学》这门课程介绍的图形生成算法都是有一些学术大师和知名学者提出的非常经典优秀的算法,否则也不可能写进全世界的教科书里。但这些算法不是终点,而是后人对这些算法不断改进和完善的一个起点。
比如计算机图形学之父,图灵奖获得者Sutherland博士提出的裁剪算法已经有50年了,但直到今天仍然有学者对该算法进行改进和完善。我也鼓励学有余力的学生敢于挑战教科书里的权威大师提出的算法,也试着自己提高和改进这些算法的性能,以培养学生的创新能力和批判精神。
曾经有一位学生改进了教科书上一个区域填充算法,算法填充效率提高了6-7倍。在我的鼓励下,学生还写了一篇论文发表在一个国际会议上。今年该生靠这篇文章保送到清华大学继续深造。
总之,不是简单地让学生学会某个图形算法是如何实现的,重要的是通过这些算法的讲解,让学生了解好算法的标准是什么?优秀的算法和一个平庸算法的本质区别在哪里?同一个问题也许有不同的解决算法,但为什么有的算法可以写到教科书里成为经典,可以对某个领域方向的发展起到具有里程碑式的贡献;而大多数算法平庸的算法如过眼烟云很快被人遗忘,这是因为优秀的算法里蕴含着创新的思想。世界上做互联网搜索的公司多如牛毛,但为什么谷歌成为业界翘楚,其中一个重要原因就是谷歌的搜索算法更加卓越。
另外,我在讲授课程当中也经常穿插计算机图形学领域一些大师和著名学者的科研经历和逸闻趣事,使得课堂气氛活跃,生动。用名人轶事激励学生,让学生认识到科研并不都是枯燥的,也可以是充满快乐的。
正如斯坦福大学一位计算机教授所言: 教师的战略目标是为了帮助学生们能像一个计算机工程师一样去思考。换句话说,希望赋予学生一种能力,让学生可以用计算机做他想做的任何事。
https://blog.sciencenet.cn/blog-40615-640204.html
上一篇:
大学本科生的课应该怎么上(1)下一篇:
【微博】莫言瑞典演讲《讲故事的人》全程视频