丛书序言
人工智能、大数据、云计算、物联网、移动互联网以及区块链等新一代信息技术及其融合发展是当代智能科技的主要体现,并形成智能时代在当前以及未来一个时期的鲜明技术特征。智能时代来临之际,面对全球范围内以智能科技为代表的新技术革命,高等教育正处于重要的变革时期。目前,全世界高等教育的改革正呈现出结构的多样化、课程内容的综合化、教育模式的学研产一体化、教育协作的国际化以及教育的终身化等趋势。在这些背景下,计算机专业教育面临着重要的挑战与变化,以新型计算技术为核心并快速发展的智能科技正在引发我国计算机专业教育的变革。
计算机专业教育既要凝练计算技术发展中的“不变要素”,也要更好地体现时代变化引发的教育内容的更新;既要突出计算机科学与技术专业的核心地位与基础作用,也需兼顾新设专业对专业知识结构所带来的影响。适应智能时代需求的计算机类高素质人才,除了应具备科学思维、创新素养、敏锐感知、协同意识、终身学习和持续发展等综合素养与能力外,还应具有深厚的数理理论基础、扎实的计算思维与系统思维、新型计算系统创新设计以及智能应用系统综合研发等专业素养和能力。
智能时代计算机类专业教育计算机类专业系统能力培养 2.0研究组在分析计算机科学技术及其应用发展特征、创新人才素养与能力需求的基础上,重构和优化了计算机类专业在数理基础、计算平台、算法与软件以及应用共性各层面的知识结构,形成了计算与系统思维、新型系统设计创新实践等能力体系,并将所提出的智能时代计算机类人才专业素养及综合能力培养融于专业教育的各个环节之中,构建了适应时代的计算机类专业教育主流模式。
自 2008 年开始,教育部计算机类专业教学指导委员会就组织专家组开展计算机系统能力培养的研究、实践和推广,以注重计算系统硬件与软件有机融合、强化系统设计与优化能力为主体,取得了很好的成效。2018年以来,为了适应智能时代计算机教育的重要变化,计算机类专业教学指导委员会及时扩充了专家组成员,继续实施和深化智能时代计算机类专业教育的研究与实践工作,并基于这些工作形成计算机类专业系统能力培养 2.0。
本系列教材就是依据智能时代计算机类专业教育研究结果而组织编写并出版的。其中的教材在智能时代计算机专业教育研究组起草的指导大纲框架下,形成不同风格,各有重点与侧重。其中多数将在已有优秀教材的基础上,依据智能时代计算机类专业教育改革与发展需求,优化结构、重组知识,既注重不变要素凝练,又体现内容适时更新;有的对现有计算机专业知识结构依据智能时代发展需求进行有机组合与重新构建;有的打破已有教材内容格局,支持更为科学合理的知识单元与知识点群,方便在有效教学时间范围内实施高效的教学;有的依据新型计算理论与技术或新型领域应用发展而新编,注重新型计算模型的变化,体现新型系统结构,强化新型软件开发方法,反映新型应用形态。
本系列教材在编写与出版过程中,十分关注计算机专业教育与新一代信息技术应用的深度融合,将实施教材出版与 MOOC模式的深度结合、教学内容与新型试验平台的有机结合,以及教学效果评价与智能教育发展的紧密结合。
本系列教材的出版,将支撑和服务智能时代我国计算机类专业教育,期望得到广大计算机教育界同人的关注与支持,恳请提出建议与意见。期望我国广大计算机教育界同人同心协力,努力培养适应智能时代的高素质创新人才,以推动我国智能科技的发展以及相关领域的综合应用,为实现教育强国和国家发展目标做出贡献。
智能时代计算机类专业教育计算机类专业系统能力培养 2.0研究组
2020 年 1 月
前言
作为人工智能的核心物质载体,智能计算系统无论对于人工智能的前沿研究还是产业发展都至关重要。业界迫切需要数以万计的智能计算系统人才。为此,我们于 2019年在中国科学院大学开设了国内第一门智能计算系统课程,并于 2020年出版了《智能计算系统》教材,该教材也是国际上第一本系统介绍当代智能计算系统软硬件技术栈原理的教材。
目前,“智能计算系统”课程和《智能计算系统》教材已经推广至国内 70余所高校。这些 学校的实际教学经验表明,学生仅通过理论学习,无法对智能计算系统知识融会贯通。“纸上得来终觉浅,绝知此事要躬行。”例如,仅仅把原理背得滚瓜烂熟,学生还是很难真正理解编程框架如何将智能任务分解成算子映射到硬件上。想要搞清楚这个过程,必须实际动手去修改编程框架。因此,学生要花 50~60 小时的课余时间动手做实验,才能进入智能计算系统全栈工程师的行列。
从这个角度看,整个智能计算系统的教学需要花三分之二的时间用于实验。但是,目 前国内外都没有比较全面、系统的智能计算系统实验教程能清楚地告诉老师和学生,到底 应该做哪些实验,每个实验具体有哪些环节,需要花费多少时间,在什么平台上做,怎么评分。这使得实验既不好教,也不好学。老师没有好的依据来指导实验教学,学生碰到实验中的“疑难杂症”也没有地方查阅。很多学校的老师和学生都向我们反映了这些困难,迫切希望我们为《智能计算系统》再编写一本配套的实验教程。
因此,我们花了一年多时间又编写了这本《智能计算系统实验教程》。这本书结合智能计算系统的软硬件技术栈设计了基于通用 CPU 平台和深度学习处理器平台的分阶段实验和综合实验。其中,分阶段实验以风格迁移作为驱动范例,包括算法实验(第 2~3 章)、编程框架实验(第 4 章)、智能编程语言实验(第 5 章)、深度学习处理器运算器设计实验(第6 章)。通过完成分阶段实验,学生可以开发出一个可完成图像风格迁移任务的智能计算系统。综合实验(第 7 章)包括目标检测、文本检测、自然语言处理等不同应用领域的实验,可以帮助学生巩固对软硬件技术栈相关知识的系统理解,让学生了解不同应用领域对智能计算系统的需求。对上述每个实验,我们都明确介绍了实验目的及相关背景知识、实验环境、实验步骤、评估标准和进阶思考。特别是,本书为每个抽象出了多个知识点(如第2 章的知识点包括全连接神经网络的正向传播、随机梯度下降法、反向传播、设计优化方法等),并以这些知识点构建了一棵智能计算系统知识树。学生每完成一个实验,便可“点树的一部分。通过遍历知识树的过程,学生可以更好地掌握各个知识点之间的有机联系,获得对整个技术栈的系统性理解。
实验设计得再完备,如果学生没有高涨的学习积极性,也很难取得好的学习效果。为此,我们为这本书设计了一款配套的游戏,利用游戏中的“稠密奖励”“即时奖励”和“体系性奖励”等机制来提升学生的学习热情。学生可以通过完成智能计算系统的各个实验,不断获取游戏中的奖励。将游戏通关后,便自然而然地完成了整个智能计算系统实验课程的学习。所以说,这本书不仅是一本实验教程,也是我们对教学的一种新尝试。这种创新的教学机制如果能够有效地提升学生的学习热情,不仅有利于培养具有系统思维的人工智能人才,还可能对很多其他工科专业课程的教学起到借鉴作用。
这本实验教程凝结了智能计算系统课程团队很多同志的心血。陈云霁设计了游戏化实验和教学的总体思路。李玲和陈云霁确定了本书的内容组织和各章节的大纲。陈云霁负责完成了本书的前言和后记,李玲和陈云霁负责完成了第 1章,张蕊和谭梓豪负责完成了第2、3 章,李威和张昊翀负责完成了第 4章,郭崎、张昊翀、程新超和张屹负责完成了第 5、7 章,李震负责完成了第 6章。李玲负责全书的统稿与审校。承书尧、吴杨洋、梁雪刚、梁旭强、姚铁生等同志参与了实验的开发。张振兴、付强等同志负责本书多幅图的美化。郭崎、杨君、董守杨、张振兴、樊哲、文渊博、郝一帆、李崇文、彭少辉、刘畅、王昱昊、张朝、钟岩青、孔维浩、王咸焯、曾雨浩、吴逍雨等同志参与了本书的校对。谭梓豪、苑民钊、赵长海、李超、王明键等同志负责自动评测系统的开发与搭建。杜文博、李翘楚、王義鹏、杜金乐、张志杰、刘靖、王超等同志负责游戏系统的开发。于淼和胡晓洁负责自动评测系统与游戏的策划及统筹、实验教程出版及实验教学的协调。在此向这些同志表示衷心的感谢。同时,我们也特别感谢 2019年课程开设至今所有参与过实验的老师们和同学们,尤其是中国科学院大学计算机学院 2018~2020级和北京大学软件与微电子学院 2019级、2020级选修“智能计算系统”课程的 600 多名学生,他们对实验做了测试并提出了很多宝贵意见。由于我们学识水平有限,书中一定还有错漏之处,恳请读者批评指正。如有任何意见和建议,欢迎发邮件至 aics@ict.ac.cn。
本书的写作受到了国家重点研发计划、国家自然科学基金、“新一代人工智能”重大项目、中国科学院先导专项、中国科学院前沿科学重点项目、中国科学院标准化研究项目、北京市自然科学基金、北京智源人工智能研究院和腾讯科学探索奖的支持。寒武纪公司为本书的部分章节提供了资料及技术支持。此外,机械工业出版社华章公司的温莉芳、游静等同志给予了我们大量的帮助。在此一并表示诚挚的谢意。
中国科学院计算技术研究所
陈云霁
2021 年 7 月 1 日于北京中关村