华南师范大学计算机学院图灵班工作计划--2017年
作者:斌头老师
单位:华南师范大学计算机学院
时间:2017年10月
版本:0.99
引言
2017年秋季,华南师范大学计算机学院图灵班将会迎来其第三批学员。本文旨在更客观务实地完成以下任务:明确教学目标、策略,制定更详细的工作计划和教学计划。同时,希望本文可成为图灵班学习、工作指南。
图灵班的目标
- 读几本核心的教材;
- 培养正确的学习方法,建设优秀的学习团队;
- 为未来的发展寻找方向;
图灵班的策略
- 图灵班鼓励学有余力的同学利用“课余时间”进行更多的课程学习、学术攻关;
- 图灵班的学习各种“利益”脱勾,能在学习上有所收获就是最大的利益;
- 图灵班的学习围绕学院的核心课程,在进度难度上有所提高。
课程计划
教学计划主要分为:先修课程、初级课程、进阶课程及科研课程等若干阶段,有些部分可并行展开,比如:进阶课程与科研课程的学习就可以并行开展。
先修课程及遴选
设定图灵班先修班的目标旨在选拔优秀学员,避免使用以往的一般课程考核的方式,提高学生的区分度。同时,通过先修班也让学员知道图灵班教学的模式及体会相应的学习强度、压力。让进入图灵班的同学是真正喜欢学习、愿意学习的同学。
- 课程网站:ketangpai.com,邀请码:2YA2UT。
- 课程论坛
作为敲门砖,特选两门与正常教学计划相对应的课程。首先是:
- How to Think Like a Computer Scientist: C version(简记为HTCS-C)和How to Think Like a Computer Scientist: C++ Version(简记为HTCS-C++)。
HTCS这门课对应大一的“程序设计语言”,所以,不会进行过多的授课,学生以自学为主。在开学一个月之内,提交一份HTCS-C阅读报告、入图灵班的申请,并通过面试者可参加第一学期的学习讨论。初步计划,入班人数为20人以内。(注,我作为指导老师,最欢迎有大志者进班学习。为什么需要“大志”?请看"志闲而少欲"!)
第一学期的学习内容
第一学期的内容主要包括:
- 程序设计
- 数据结构与算法
- MIT:Linear Algebra, 网易公开课上对应的视频
- 计算机系统入门
程序设计
程序设计主要是针对大一新生ACM竞赛做辅导,以HTCS-C++为基础,辅助教材包括:
- Pointers on C.
线性代数
《线性代数》是大一主干课程之一,这里使用了完全不同的教材--MIT的GSLA,讲解方式、内容也大相径庭。特别是,针对这一门入门数学课,要求学生完成若干程序项目,不让数学课脱离工程实践。
先修课程中学员的表现作为学员遴选的重要指标。到第一学期期末,以这两门课内容为主进行一次选拔考核。最终遴选出优秀学员成为图灵班学员,进入下一阶段的教学。
数据结构与算法入门
主要内容包括CLRS的前12章,可忽略大部分的证明与概率分析。建议专题如下:
- 二分查找法、中间值查找
- 排序算法:插入排序、归并排序、快速排序
- 数据结构相关:队列、堆栈、二叉树
- 堆与堆排序
- Hash表
- 二叉查找树
计算机系统入门
主要内部包括CSAPP的前两章。阅读为主。
注,目前已经完成学员招收工作,初步入班人数11人,女生一名。2017年10月7日
初级课程
初级课程在大一寒假开始进行,主要是一门课:
虽然是初级课程,但是,我们将这两门课程视为图灵班的核心课程,是重要的“敲门砖”也是课程建设的重点。
首先,安排学生在寒假期间进行自学,老师给出相应的学习指导。其次,在新的学期开始之后,再安排具体的学习计划。需要强调,图灵班的授课一定不会是目前的老师满堂灌的形式。
学期末,再次考核,决定学员是否继续图灵班的学习。当然,学员也可根据自己的需要退出。
进阶课程
进阶课程学习安排在大一结束之后的暑假开始。主要包括以下课程:
- 深入理解计算机系统(CSAPP)(第三版),机械工业出版社,R.E. Bryant
- 计算理论导引,ITOC,M. Sipser
- 概率与计算,Michael Mitzenmacher
- 数论概论 (FINT),J.H. Silverman
- 代数,Michael Artin
进阶课程分为几个阶段,而且也不仅限以上书目。首先开始的是CSAPPv3 。其他内容根据实际情况再做调整。为配合学术研究,图灵班还开设以下课程(讲座):
- 科研导引
- 科技论文阅读写作
科研学术课程
待定!
实践教学计划
待定!
结束语
本文归纳总结图灵班的建设目标与策略,制订了初步的开展计划。过去两年的经验告诉我,这个计划具有比较高的可执行度。这个计划最妙之处还在于其不完善,一切皆有可能,每一次行动都是一次完善的过程。如何改进,这是一个问题......
附录A. 初级核心课程书目
- 微积分,James Stewart
- How to Think like a Computer Scientist
- 线性代数导论[MIT],G. Strang,
- 算法导论(CLRS)
- 深入理解计算机系统(CSAPP) 或 A practical introduction to computer architecture,Daniel Page
- 计算机程序的构造与解释(SICP)
- 概率与计算,Michael Mitzenmacher
- 数论概论 (FINT),J.H. Silverman
附录B. 进阶核心课程书目
- 计算理论导引,ITOC,M. Sipser
- Logic in Computer Science:modelling and reasoning about systems,Michael Huth and Mark Ryan
- 具体数学,GKP
- 代数,Michael Artin
附录C. 没有列入核心书目的好书
- Algorithms
- 挑战程序设计竞赛(第二版),人民邮电出版社,巫俊泽等译.
- 编译原理:技术与工具 (Dragon Book),Addison-Wesley.
- Introduction to Automata Theory, Languages, and Computation(IALC).
- 计算机程序设计艺术(TAOCP)