加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

上海交通大学暑假学校,讲授《AlgorithmsAndAnalysis》(2)

(2021-07-17 19:03:34)
在上海交通大学暑假学校的讲课,已经3周,也就是一个字:“累”。

此前,主讲夏令营和冬令营,每次两个星期,上午讲课,下午则是将上午讲课的内容设置为比赛,学生在测试数据、解析和带注解的程序支持下,进行解题。两周后,学生疲劳;而我,也非常累。所以,对于这次上海交大暑期学校的授课,此前,除了学术上的准备,在体能上,也进行了储备。

上海交通大学暑假学校,讲授《AlgorithmsAndAnalysis》(2)
穿着台湾大学的T恤,在复旦大学校园里跑圈,为上海交通大学暑期学校的授课,进行体能储备。

一方面,上海进入酷热盛夏,每天从复旦到交大,讲课两小时,再回复旦;另一方面,由于我的中文版著作新版已经脱胎换骨,同学们要求双语版授课;所以,对于体力,消耗极大。

本周的讲课和解题实验,基于《Algorithm Design Practice for Collegiate Programming Contests and Education》的第2章、第5章和第6章。

周一,讲授模拟,在讲授了直叙式模拟,筛选法模拟,构造法模拟的思想,阐述了相关的实验试题及其解析之后,讲授试题“Robocode”,这样的试题,规则复杂,要求读题的时候,非常清晰地将复杂的规则组织好;然后,将规则转化为长段代码,在写代码的过程中,不能有任何遗漏;在读题和写代码的过程中,任何小的疏漏都会导致未来debug的庞大的工作量。如果要参加程序设计竞赛,这样的试题,就要在假期训练中,进行磨炼,犹如体育中的体能训练。
上海交通大学暑假学校,讲授《AlgorithmsAndAnalysis》(2)
试题“Robocode”中的坦克态势图。

周二和周三,讲授贪心算法(Greedy algorithm,又称贪婪算法)的实验范例。

周二的课程,全面回顾数据结构中的贪心算法及其实现:首先,讲授优先队列、小根堆及其算法实现;然后,回顾哈夫曼树以及哈夫曼算法,一方面,体会贪心思想,另一方面,论述基于小根堆的哈夫曼算法实现;最后,讲授实验试题“Fence Repair”。然后,同样的方法,回顾并查集的算法实现,回顾Kruskal算法,体会贪心思想,论述基于并查集的Kruskal算法实现;最后,论述实验试题。等等。

周三的课程,从经典问题,讲授贪心。
上海交通大学暑假学校,讲授《AlgorithmsAndAnalysis》(2)
我讲这道试题“Tian Ji —— The Horse Racing”,很是感慨,复旦大学的老师,在上海交大,用自己的教材中,上海交大出的题目,给来自澳洲和北美的同学讲课。

周四和周五,讲授动态规划。从经典的问题入手,让同学们体会动态规划:阶段、状态、状态转移方程、最优化。

上海交通大学暑假学校,讲授《AlgorithmsAndAnalysis》(2)
我的动态规划的讲课,就是从这张图开始。

Facebook提醒,七年前的现在,我是在台湾交通大学讲课;而现在,我是在上海交通大学讲课。此情此景,我想到台湾纪录片《疾风魅影》的主题歌《飞将在》的歌词:“你真的飞过,五岳三江雄关要塞;可你却飞不过,人生许多的意外。”

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有