“代数与逻辑”课程案例 ———推理理论之侦破珠宝盗窃案案例 课程名称:代数与逻辑(AlgebraicStructuresandSymbolicLogics) 课程性质:学科基础课 所属学科门类:计算机科学与技术/0812 学分:2学分学时:36 学时 课程简介:本课程是理工科高等院校计算机专业必修的、重要的学科基础课程,与 “集合与图论”一样是以研究离散结构为对象的数学课程,与计算机科学理论、应用技术有着 密切的联系。该课程在教给学生问题建模、数学理论、计算机求解方法和技术知识的同时, 培养学生的数学抽象能力和严密的逻辑推理能力。通过本课程的学习,使学生具备综合运 用所掌握的专业相关的知识、方法和技术,以创新意识设计、实现复杂计算解决方案。 该课程不仅为后续课程(数据结构、编译原理、操作系统、人工智能、计算机网络、数据库 等)做必要的理论准备,而且可以逐步引导学生将掌握的从事本专业工作所需的数学(特别 是离散数学)、自然科学知识、学科基础和专业知识以及经济学与管理学知识,用于解决复杂 计算系统的问题;培养学生的建模能力、模型计算能力、抽象思维能力。 一、章节名称 第五章第五节推理理论 二、案例介绍 1. 育人目标及理念 通过分析珠宝盗窃案件的线索,使用推理理论找出犯罪嫌疑人,利用求真务实、开拓创 新的思路,展现创新和敬业的工匠精神,加强学生对因果的理解,不断增强创新意识和创新 能力,并将这种意识融入自身的行为,最终激发学生勤于思考、勇于探索、敢于创新。 2. 案例内容 本案例选取的是“代数与逻辑”第五章命题逻辑第五节推理理论。命题逻辑是离散数学 的重要组成部分,也是计算机科学的基础之一。命题逻辑解决的一个主要问题是如何使用 数学的方法研究判断和推理,而要想将逻辑推理的方法准确地应用到实际问题中,并在相应 的运算体系下进行正确的推理,从而获得准确的结论,首先需要对普通语言文字所描述的命 题进行正确的符号化,然后按照一定的推理规则得出结论。本案例使用珠宝盗窃案作为问 题引入,既激发了学生探索结果的好奇心,又可以引导学生在分析问题时,要本着求真务实、 73 实事求是的原则,不脱离实际、好高骛远,因此是一个非常好的思政切入点。 任何案件的线索通常都是一些自然语言描述的语句,虽然我们较易理解单个线索的含 义,但是在分析整个案情时,复杂的线索通常会使人较难厘清里面所蕴含的逻辑关系,不利 于侦破案件。命题符号化可以将线索以符号的形式表示出来,有助于克服自然语言描述的 缺点。在此基础上,利用推理理论分析线索之间的逻辑关系,找出犯罪嫌疑人。侦破案件过 程中体现出的勤于思考、勇于创新的工匠精神,可以非常好地启发学生,让学生建立求真务 实、实事求是的态度,引导学生以科学的态度去侦破案件,鼓励学生深思熟虑,反复求证。 珠宝盗窃案的线索以及侦破案件需要关注的原则如图1和图2所示。 图 1 珠宝盗窃案的线索 图 2 侦破案件需要关注的原则 3. 设计思路 首先,以“珠宝盗窃案”为例切入课程,具体如下。 某天,公安人员审查了一起重大珠宝盗窃案,获得以下线索: (1)张三或者李四盗窃了珠宝; (2)若李四的证词正确,则珠宝店午夜时灯光未灭; (3)若张三盗窃了珠宝,则作案时间不可能发生在午夜前; (4)若李四的证词不正确,则作案时间发生在午夜前; (5)午夜时珠宝店的灯光灭了。 74 天网恢恢,疏而不漏。通过以上线索,我们来推断张三和李四究竟谁该受到法律的 制裁。回 顾命题符号化的内容。命题符号化是指把自然语言表示的命题使用符号表示出来。 在表示过程中,注意找出原子命题和选择合适的逻辑连接词。 其次,引出推理理论的基本概念。 Ak , 推理理论是从前提出发,推出结论的过程。设A1,A2,… ,B都是命题公式,若对 于每组赋值,A1,A2,…,Ak 为假,或者当A1,A2,…,Ak 为真时,B也为真,则称由前提A1, A2,…,Ak 推B的推理有效或推理正确,并称B是有效的结论。 使用推理理论,可以依据现有的线索得出有效的结论。需要注意的是,这时的结论是未 知的,需要我们勇于探索、反复求证。 然后,通过分析线索侦破珠宝案的过程,引导学生实事求是,激发学生踔厉奋发,努力做 一名勇于创新的工匠。 为了侦破珠宝案,需要使用一定的方法由前提推出结论。最直观的方法是仅使用前提 (线索)之间的关系,推理最终的结论。该方法称为直接证明法。它表示为,为了证明A1, A2,…,Ak.B,只需证明若A为真,则B亦为真。即,首先假设所有的前提都为真,然后使 用前提推出结论。 使用直接证明法,可以得出结论———李四盗窃了珠宝,必须接受法律的制裁。直接证明 法只是众多证明方法的一种。在证明过程中,由于结论是未知的,因此较难建立一个明确的 目标,容易陷入局部死锁状态。引导学生回想是否还有其他的证明方法? 引出间接证明法,即反证法。使用反证法证明时,需要首先假设结论是不正确的,然后 根据结论的否定和前提(线索)进行推理,得出一个永假式。此时永假式的产生,仅是因为我 们否定了结论引起的。因此,结论是有效结论,珠宝案件被侦破。 珠宝案件的侦破,不仅依赖于求真务实、实事求是的分析,而且使用了不同方式的证明。 这就要求学生在分析问题时,勤于思考,善于发现不同线索间的关系,多方求证,这些正是勇 于创新的工匠精神的体现。 三、案例特色 (1)珠宝盗窃案的例子与教学内容高度契合,不牵强。 本案例的内容是推理理论,该过程的严谨性、简洁性、逻辑性蕴含着因果辩证关系,是开 展课程思政的契机。在本案例中,首先使用公安侦破的珠宝盗窃案为引例,给出目前已找到 的线索,培养学生求真务实、实事求是的思维;其次介绍推理理论的规则和方法,并给出使用 不同推理方法的步骤;最后课堂讨论,引出思政元素———勤于思考、勇于创新,实现教学的德 育目标。 (2)在多个环节融入思政元素,促进学生自主学习和积极研讨,引导学生勤于思考、勇 于创新,逐步引导,易于学生接受。 在讲授本案例时,使用了讲授、示范、启发、讨论等方法相结合,线上线下混合式教学模 75 式。具体来说,使用讲授法引入珠宝盗窃案的例子,提问两位嫌疑人究竟谁该受到法律的制 裁,激发学生的好奇心;使用示范法分别讲授直接证明法和间接证明法(反证法), 引导学生 要勤于思考、多方求证;使用讨论法使学生思考推理过程中的关键步骤是什么,指出线索和 结论之间的因果关系,进而展示古今因果关系的例子,使学生在惊叹于古人智慧的同时,也 发现身边的例子,比如国产大飞机C919 的“展翅高飞”,离不开千千万万人的配合和努力。 贴切的例子能够使学生产生思想的共鸣,使学生认识到任何一件事情的求证过程都不是一 劳永逸的,需要有实事求是、求真务实的态度,养成勤于思考、精益求精的习惯。 (3)思政融入方式多样,课堂氛围活泼,学生愿意接受。 本案例将现代化教学工具(如计算机、投影仪等), 学习平台(如日新学堂、学习通等), 传 统教学工具(如黑板、教材、参考书等)紧密结合,融入方式多样,使得课堂氛围活泼,学生愿 意在欢乐氛围中学习知识。具体来说,使用计算机和投影仪播放PPT,使学生能够紧跟教 学思路;同时,使用PowerPoint中的动画、强调等功能,突出重点,在课堂讨论环节,方便走 到学生中间和学生一起讨论,注意引导学生深入理解课堂内容,引出思政元素;使用日新学 堂和学习通提前发布预习PPT,使学生提前熟悉课堂内容,找出自己难以理解的内容,作为 上课听讲的重点;使用板书构建课堂内容的框架。 四、学生反馈 (1)王**:本节课的学习,我不仅学习到基本的推理知识,而且感触更深的是认识到我 们不能用自己的青春年华、人身自由去以身试法换取身外之物,感觉比之前课堂学习学到更 多的知识。 (2)温**:本节课的学习,时时吸引着我们的注意力,从开始的问题出发,究竟谁该受 到法律的制裁,到中间不同的推理方法,再到最后的讨论,不同学习阶段时时刻刻提醒我们, 要保持法制观念,不能崇尚拜金,否则最终会走上错误的道路。 (3)张**:不仅学习到推理理论的相关知识,而且再次认识到一件事情的完成不仅需 要求真务实,更重要的是要勤于思考、勇于创新,多试试不同的方法,殊途同归。我们也要遵 纪守法,一心一意听党指挥,学习好理论知识,增强实践本领,全心全意报效祖国。 (4)郝**:要树立正确的世界观、人生观、价值观。在世界观方面,要有坚定的共产主 义理想信念;在人生观方面,要有坚定的人生目标和追求,自觉警醒自己,想到“手莫伸,身手 必被捉,党和人民在监督,万目睽睽难逃脱”。 (5)林**:我们要举一反三,警钟长鸣。要自觉地充实自己,有正确的追求、健康的心 态和实在的寄托,不能误入歧途。 五、教学反思 将思政元素融入教学内容,使原本冷冰冰的理论内容形象化,有了温度,增进了与学生 的距离,使学生的课堂参与度更高。此外,从作业的完成率和正确率也可以反映出这种教学 76 方式的有效性,紧紧抓住了学生的注意力,通过求解问题、找出犯人、复盘过程等环节,让案 例的讲解不仅逻辑清晰,而且生动有趣,学生掌握程度较高。同时,由于学生课堂参与度高, 因此愿意课下尽快完成作业,最终作业完成度和正确率有所提高。 该案例虽然加入了一些思政元素,但是珠宝盗窃案的例子稍微有些陈旧。今后需要结 合当前实际设计例子,使之更贴合实际,学生更愿意接受。 撰写人:张 婷 所属单位:北京工业大学信息学部计算机科学与技术 系 “C++程序设计”课程案例 ———通过软件开发过程培养团队意识,分工协作 课程名称:C++程序设计(ProgramminginC++) 课程性质:专业选修课 所属学科门类:(参照普通高等学校本科专业目录(2020)) 学分:2学分学时:32 学时 课程简介:通过对封装、继承、多态和模板类的讲述,加强学生对面向对象编程方 法的理解和掌握,培养学生对现实世界问题采用计算机语言描述时面向对象的抽象和设计 能力,掌握面向对象的程序设计方法,学会利用C++语言编写面向对象的程序、利用调试工 具调试程序,培养学生分析问题和解决问题的能力。要求学生掌握有关方面的基本概念、基 本理论、基本方法和基本技术。具体知识包括:封装、继承、多态、运算符重载、模板类和基 础模板类的使用、文件读写、异常处理和程序调试方法,为后续数据结构等课程提供基础知 识储备。 一、章节名称 第一章第三节面向对象的软件开发 二、案例介绍 1. 育人目标及理念 通过对C++面向对象软件的开发过程的讲解,培养学生分工协作,引导学生具有责任 担当和团队意识,精益求精地将程序开发、系统运维、程序测试、需求分析及技术问题处理等 工作内容完成好,才能保证软件系统运行时正确、稳定,保证客户的需求被精确采集和纳入 软件开发计划,保证软件在运行时遇到问题能被及时解决。 2. 案例内容 古语说:势单力薄联络诸侯。也有经济学者说“实力未够,就自己做车厢,挂人家的火 车头”。可想而知合作的重要。任何大一点的事都是群体完成的,绝不是个人的能力问题。 没有汉初三杰及屠夫豪杰们的合作,刘邦不可能建立汉朝;没有桃园三结义,卖履小儿怎可 能三鼎天下;没有瓦岗排座次,何来成就褐衣公子。还有古语说:“ 一箭易折,五箭难摧”。 可见团队合作的重要性。一定要求和存异地合作,才能更好地做好业务。问题引入如图1 所示。 基于第一章第三节内容的讲述,针对面向对象软件开发过程中的软件分析、设计、编码、 78 测试和维护的不同阶段,结合未来软件开发相关的工作岗位,如程序员、软件系统运维人员、 软件测试员、售前售后服务人员等,在这些职位岗位上,要具备责任担当和工匠精神,保证软 件系统运行时正确、稳定,保证客户的需求被精确采集和纳入软件开发计划,保证软件运行 时遇到问题能被及时解决。引导学生认识到,一个人的精力毕竟有限,很难面面俱到,团队 协作必不可少。社会分工可以促进生产力的发展,同样,一个开发团队做好分工就可以很好 地完成任务,提高效率。既然是团队,就需要分工完成任务,每人独自负责一部分内容,然后 达到合作完成的目的。 《论语·学而》:“ 《诗》云:‘ 如切如磋,如琢如磨’。”朱熹集注:“ 言治骨角者,既切之而 复磋之,治玉石者,既琢之而复磨之;治之已精,而益求其精也。”PPT 配图如图2所示。 图 1 问题引入图 2 如切如磋,如琢如磨 C++语言编程需要严密的逻辑思维,程序中需要考虑各种细节与意外,而且软件开发 有许多突发事件和难以预料的情况发生。因此,在学习过程中,需要有严谨的学习态度,将 知识夯实、精技强能,精益求精,方能不出纰漏,软件运行才会令用户满意。引导学生认识 到,专注、敬业的工匠精神与责任担当、团队意识对完成软件开发工作,促进软件行业整体高 水平、优质化发展具有重要意义。相关PPT 如图3和图4所示。 图 3 引入精益求精、不断完善、工匠精神 79 图 4 培养学生的团队意识 3. 设计思路 程序设计技能是大数据与人工智能时代的计算机科学与技术专业人才不可或缺的基本 技能,是学生未来职业技能的关键保障。C++语言逻辑性强、语法繁多且枯燥无味,入门困 难,在课堂教学中通过介绍本领域成功的代表人物引发工匠精神和团队意识,并树立职业理 想,从职业理想到爱国主义教育。了解计算机前沿技术和国内外计算机科学发展现状,穿插 科技对国家发展的重要作用,体会我国与发达国家科技之间的差距,形成强烈的爱国情怀, 激发学生奋发学习、刻苦钻研的家国使命感。 课程主要采取案例驱动的教学模式,在项目开发案例中穿插思政元素,让学生切身体 会、潜移默化地接受思想政治教育,合理而深刻地引入思政元素。 对于面向对象的软件开发而言,目标是在限期内保质保量完成项目,在软件开发与测试 周期过程中就是工匠精神、大局意识、协作精神和服务精神的集中体现。“三个臭皮匠,顶个 诸葛亮”的谚语体现了团队的重要性,面向对象的软件开发,一定是团队合作的结果。必须 有团队的分工和协作,大家各做一部分,聚合起来提供服务。 教学手段中利用“课堂派”“雨课堂”“学习通”等多种手段加强学生课堂的参与度,提 高学生对知识的掌握,并充分利用现场答疑,课下微信群等进行答疑,全方位地提高教学 效果。 三、案例特色 (1)案例教学紧扣工匠精神、团队意识。 在学习面向对象的软件开发过程中,以实际开发案例引导学生认识到面(“) 向对象的软 件开发需要精益求精的工匠精神,同时,需要有他人的配合以及团队精神,团队力量胜过个 人力量”,激发学生的专业使命感,激励他们好好学习专业知识,培养将来从事软件开发相关 职业的基本素养。 80 (2)全方位融入思政元素。 使用C++语言编程,需要严密的逻辑思维,专注的学习态度。从这个课程特点就可以 引入思政内容:做人也必须脚踏实地,具有工匠精神,一步一个脚印提高自己。要想编写合 格的程序,必须精益求精,考虑各种可能的情况,不断迭代、升级,对各种情况进行全盘考虑 和测试,帮助学生培养编程时严密的思维习惯。 (3)及时收集反馈,做好改进。 通过“学习通”“课堂派”“雨课堂”等布置课后思考题,了解学习效果,做好思政教育 改进。 四、学生反馈 (1)张**:程序刚编写出来时,感觉写得非常好,但是经过多次运行和测试,以及老师 的建议,发现程序的问题还有很多,不光是程序错误的问题,还有可读性、运行效率可复用性 的改进,经过一次次的改进,发现程序看起来顺眼了很多,运行速度也加快了,真实体会到编 写程序需要精益求精,不断打磨。 (2)吴**:在这次大作业过程中,深刻体会到团队合作的重要性,分工明确,各司其职, 终于顺利完成了这次任务。 五、教学反思 该案例深挖了课程教学中C++面向对象程序设计所蕴含的思政教育元素,学生通过课 程大作业及思考题反馈了认识,实践效果较好。 撰写人:桂智 明 所属单位:北京工业大学信息学部计算机科学与技术 系 “面向对象程序设计”课程案例 ———探索国产开源项目的“中国软件开源创新大赛” 课程名称:面向对象程序设计(ObjectOrientedProgramming) 课程性质:专业课 所属学科门类:计算机类/0809 学分:2.学时:40 学时 5学分 课程简介:面向对象程序设计是计算机专业的一门重要课程,理论与实践结合度 高。目前,面向对象方法已成为软件项目开发中使用最广泛的基本方法,也是软件从业人员 必备的一种基本素质和能力。课程强化学生对面向对象基本原理和程序设计方法的掌握, 培养学生面向对象的编程思维及问题分析和描述能力。培养学生从对象、类的视角,基于可 复用、可扩展、易维护的设计原则,对复杂工程问题进行专业表述和抽象建模。同时,课程要 求学生掌握Java语言的基本语法、具备运用Java语言开发面向对象软件系统的能力。先 修课程为高级语言程序设计,后继课程为后续课程(数据结构、软件工程、+程序设计、网 络编程)做必要的准备。 C+ 一、章节名称 第一章第一节面向对象概述 二、案例介绍 1. 育人目标及理念 通过竞赛,培养学生求真务实的科学态度,坚持不懈的工匠精神。国产开源软件的开 发,可突破国外对我国软件“核心技术”的封锁,鼓励学生不畏艰难,发扬拼搏创新精神,为突 破核心技术“卡脖子”工程而不懈奋斗。 2. 案例内容 第一章介绍面向对象的产生、特点,面向对象技术的发展、未来。面向对象程序设计诞 生于20 世纪八九十年代,是因为软件危机而产生的,因此,思政的切入点可由解决软件危机 而引入。 面向对象程序设计是为解决第二次软件危机而诞生,但随着软件规模越来越大,软件生 产速度远远跟不上硬件的发展速度,也无法满足用户日益增多的软件需求,软件危机不断重 复上演。而软件开源,集全世界各软件人才的智慧于一体,将是解决软件危机的一条有效途 径。中国软件开源创新大赛是为解决我国软件产业发展问题,培养新一代国产软硬件人才, 82 倡导开源技术社区,由华为等企业牵头发起和赞助的。竞赛受到学术界、教育界、产业界的 高度重视,它们共同赞助组织,旨在鼓励对国产开源操作系统openEuler、国产开源数据库 openGaus 、开源移动操作系统Harmony等一批配套国产开源软件的使用、改进和完善,鼓 励开源社区贡献、合作。通过竞赛,提升学生对国产软件的了解,参与开源社区共建,激发科 研创新能力,培养求真务实的探索精神。 中国软件开源创新大赛由学术界、教育界、产业界共同组织。CCF软件工程、系统软件 专委会、国家基金委的专家、产业界的巨头都参与其中,华为等几十家“绿盟(绿色产业联 盟)”软硬件企业赞助,表明对我国未来的软件产业人才培养的重视,也饱含了各界对软件人 才的期望和渴求。为积极应对国外对我国芯片和操作系统等关键技术的封锁,竞赛聚焦“卡 脖子”软件领域以及人工智能、大数据等前沿技术领域的开源软件,秉承创新、国产自主研 发,大赛组委会联合华为、百度、飞腾、麒麟、长城科技、旷视科技、开放原子开源基金会等企 业单位以及多所高校共同设置赛题。因此,大赛本身就是一个生动的自强不息、顽强拼搏、 工匠精神的思政融合案例。 我们鼓励学生积极参与中国软件开源创新大赛,为国产软件做出贡献。竞赛共分三个 学生赛道,各赛道内容均涉及国产开源软件的开发。 赛道1)开源项目贡献赛 主要包括:openKylin开源项目贡献赛、openEuler开源项目贡献赛、openGaus 开源项 目贡献赛、MindSpore开源项目贡献赛。每项任务都针对我国软件领域的最前沿技术、产业 界最先进的开源项目而设置,学生积极参与,必将推动国产开源软件的更新发展。 赛道2)开源任务挑战赛 主要包括:飞桨(Paddle)框架任务挑战赛,计图(Jitor)人工智能挑战赛等。 飞桨是百度自主研发的中国首个开源开放、功能丰富的产业级深度学习平台,以百度多 年的深度学习技术研究和业务应用为基础。飞桨框架任务挑战赛聚焦飞桨框架能力建设, 鼓励开发者了解与参与深度学习开源项目,推动深度学习技术的发展和应用。 计图人工智能挑战赛是在国家自然科学基金委信息科学部指导下,由北京信息科学与 技术国家研究中心和清华大学-腾讯互联网创新技术联合实验室于2021年创办、基于清华 大学“计图”深度学习框架的人工智能算法大赛。近两年,该赛事作为中国软件开源创新大 赛中开源任务挑战赛的赛事之一开展。 赛道3)开源任务评注赛 为开源项目征集优秀的技术评注和代码注释,推动优秀开源项目代码的传播和学习范 围,加速扩大开源项目社区。 主要包括:openGaus 内核代码注释,撰写技术博客;MindSpore内核代码评注,撰写 技术博客等。2021中国软件开源创新大赛作品如图1所示。 上述竞赛赛题,每个赛道的每个任务都源自我国自主研发的开源软件项目。由此可以 看出,产业界急需开源人才,而基于国家创新发展和软件企业对开源人才提出迫切的需求, 十四五规划纲要首次将“开源”列入其中。因此,将竞赛作为对本课程的进一步延伸,不仅是 83 图 1 2021 中国软件开源创新大赛作品 对课程目标的进一步达成,而且对培养高技术人才的拼搏精神,服务国家建设意识,即“为祖 国建设培养人才”的达成具有较大的促进。 2020 年参赛选手决赛及获奖颁奖画面如图2所示。 图 2 2020 年参赛选手决赛及获奖颁奖画面 3. 设计思路 从程序设计方法的发展历史看,20 世纪60 年代以前,计算机刚刚投入实际使用,经历 了第一代面向机器的程序设计方法,这个时期主要的软件开发方式是使用机器语言或者汇 编语言在特定机器上进行软件的设计与编写。20 世纪60 年代中期开始,大容量、高速度计 算机问世,使计算机的应用范围迅速扩大,软件开发需求急剧增长。由此,第1次软件危机 84 产生,诞生了高级语言,以1972年诞生的C语言为其代表。20世纪八九十年代,软件复杂 性进一步增加,大规模软件由数百万行组成,爆发第2次软件危机,诞生了面向对象程序设 计方法,以Java和C++为代表。2005年以来,多核时代到来,软件无法在多核下发挥硬件 性能,工业界也无法提供解决方案,第3次软件危机产生。软件危机多次反复爆发,源于软 件规模的无限制扩大,软件需求越来越复杂。 通过介绍软件产业最新动态,产业界发布了“白皮书”等,让学生了解业界技术发展情 况。为突破国外封锁,国内产业界斥巨资发展国产自主知识产权核心软件,突破技术“瓶 颈”,解决“卡脖子”问题。通过引导,激发学生的爱国情怀,发扬工匠精神,求真务实,努力拼 搏,勇于担当。 教学内容: (1)引入“软件危机”,从其来源、诞生概要介绍其特点、如何解决等问题,引导学生了解 面向对象编程的优点,了解其在软件发展史上的重要性,提高学生的学习兴趣。 (2)从软件的最终发展趋势,探索解决软件危机之路,寻求未来软件发展之路。挖掘课 程中蕴含的思政元素———求真务实,探索创新。 (3)大力发展国产软硬件开源生态,国产CPU 、操作系统、数据库等,突破技术封锁和 壁垒。挖掘课程中蕴含的思政元素———敬业拼搏,工匠精神,爱国情怀。 (4)积极参加中国软件开源创新大赛,在竞赛中会遇到很多困难、技术难题,需要坚持 不懈,勇于探索,也需要有求真务实,努力拼搏,不怕挫折的精神。 教学过程中,可从讲解面向对象的诞生原因入手。20世纪60年代的第1次软件危机, 诞生了C语言,产生了软件工程学这门学科。20世纪八九十年代的第2次软件危机,诞生 了面向对象方法,产生了一批面向对象语言,如Java、C++、C#等。2005年,随着软件规模 的不断扩大,多核时代到来,并行处理软件亟需开发去替代原单核系统上的软件开发模式, 由此,第3次软件危机来临。纵观过去几十年,每一次软件危机,都因软件的发展跟不上硬 件的发展速度而产生。随着数字经济的到来,数据体量进入爆发式增长,全球进入以数据为 关键生产要素的数字经济时代。鲲鹏计算产业发展白皮书(2020年)中,预计2025年,中国 将拥有全球最大的数据圈,将成为全球计算产业增长的重要引擎,如图3所示。如何突破 数字技术发展瓶颈,解决软件危机,发展我国的数字经济,是急需解决的难题。 教学方法和教学手段:可通过启发式提问、课后探究式课题、课题讨论、小组协作形式, 增强课题教学效果。先抛出问题:如何解决软件危机这一行业难题? 通过引入软件危机概 念,探索解决软件危机的方法来激发学生的学习兴趣。也可引导学生查阅开源软件源码,解 读代码注释,以开源社区讨论等形式来学习。如2019年,华为公司发布了面向开发者的“沃 土计划2.,(”) 形成“开发体系便捷高效、开发社区完 05年投入15亿美元用于发展鲲鹏生态, 善活跃”的生态格局。可提出问题,比如让学生查找什么是“沃土计划”? 查阅沃土计划具体 实施的内容、进展,了解产业动态。又如,近几年,陆续发布了国产鲲鹏处理器、openEuler 开源操作系统、开源智能终端操作系统HarmonyOS 、openGaus 开源数据库、openLooKeng 虚拟化开源引擎等一批配套国产软硬件。这些国产软硬件均构建在开源的基础上,可引导 85 图 3 鲲鹏计算产业发展白皮书(2020 年)———全球及中国计算产业数据增长情况 学生关注并加入开源社区,了解技术发展动向、提供大赛的网址和资源,为提前介入产业界 做准备。这些都不是课本的知识,但都是产业界急需探索的领域,树立学生责任担当,勇于 探索,求真务实的工匠精神。 三、案例特色 (1)求真务实,勇于探索:通过“软件危机”产生的来源,激发学生的探索精神,在解决 问题过程中,树立责任担当意识。 (2)敬业拼搏,工匠精神:为突破技术壁垒,支持国产CPU 、操作系统、数据库,支持开 源软件社区,大力发展国产软硬件开源生态,突破软件产业技术瓶颈和壁垒,探索终结软件 危机途径,为构筑我国良好的计算生态不懈努力。 (3)爱国情怀,责任担当,勇于探索:通过引导学生积极参加中国软件开源创新大赛, 磨炼意志,在竞赛中培养学生勇于探索、积极进取的精神,通过参与自主知识产权的国产操 作系统、数据库等软件改进,激发学生的家国情怀,责任担当,培养学生的努力拼搏精神。 四、学生反馈 (1)王**:在面向对象课程中,了解了面向对象的产生、优点,与C语言的不同,同时也 了解了国产开源软件,还有大赛的一些内容,课程打开了我的思路。 (2)周**:开源创新大赛让我了解了国产移动操作系统HarmonyOS,对今后的求职就 业很有帮助,也使我解读程序的能力大大提高。 (3)孙**:大赛中同学们都很努力,团队氛围很浓,通过大赛,磨炼了意志,在参赛过程 中,解决了一个个难题,最终走到最后。在全国那么多的高校中,得奖很不容易。 86 (4)方**:开始觉得特别难,后来一步步走,一点点学习,发现自己能力提高了,在开源 社区学到很多知识。 (5)师**:作为第二届竞赛的同学,大一暑假参加竞赛,觉得自己是个小白,在学长的 带领下,一步步走过来,收获很多。这是我之后科研的一个起点,非常感谢大赛组织者。 通过三届学生参加竞赛的体验,对国产软件有了一定的了解,竞赛中同学们都勇于担 当,团结合作,求真务实,积极进取,不仅收获了奖励,而且对国产操作系统等软件也有了更 深入的了解,在民族自豪感、职业素养、文化自信方面都收获很大。 五、教学反思 从学生反馈效果看,课程开篇介绍面向对象的发展历史时引入的国产开源软件及开源 创新大赛介绍很受欢迎,学生都非常感兴趣。课程后续,很多有能力的学生积极咨询并参加 大赛。通过介绍开源软件,特别是说明了为什么国产操作系统要开源,大多数学生,对这门 课程有了更深入的了解,也能从整体上把握课程的地位和作用。参与竞赛的学生对国产开 源软件也有了深入了解,增强了学生的责任担当,民族自信心。 撰写人:杨惠 荣 所属单位:北京工业大学信息学部计算机科学与技术 系 “数字逻辑”课程案例 ———立足当下,着眼未来 课程名称:数字逻辑(DigitalLogic) 课程性质:学科基础必修课 所属学科门类:计算机科学与技术/0812 学分:3学分学时:48 学时 课程简介:本课程是计算机类的学科基础必修课,属于硬件基础课程,可划分为基 础理论、组合电路和同步时序电路三大部分。主要内容是:在引入必要的数制、码制等基础 知识的基础上,通过逻辑代数的基本定律、规则、常用公式的介绍,建立数字电路的基本概 念,进而深入学习组合电路、时序电路中典型电路的设计思想、逻辑工具、基本分析方法、基 本设计方法并掌握现代数字系统设计中的硬件描述语言建模技术。本课程具有较强的实践 性特征,通过与“数字逻辑实验”课程的紧密结合,在理论学习的基础上,借助EDA 平台和 实验平台,建立电路物理实现的真实感受,培养发现问题、分析问题、解决问题的工程素质与 能力。本门课程的先修课程是模拟电子技术。 一、章节名称 第八章第一节序列检测器 二、案例介绍 1. 育人目标及理念 培养学生实事求是、脚踏实地的学习作风,放眼未来的胸怀,能够承担起自己的社会责 任,为国家、社会建设做出贡献。 2. 案例内容 一般时序电路设计中,原始状态图的建立是关键,以序列检测器为例,常用直接状态指 定法建立原始状态转换图,即根据文字描述的设计要求,假设一个初态,从这个初态出发,每 加入一个输入,就确定其次态,该次态可能是现态本身、另一个已有状态、需新增状态。重复 上述过程,直到每个现态向次态的转换都已确定且不再产生新的状态。原始状态图的提出 以及原始状态图的绘制的PPT 截图分别如图1和图2所示。 在这一过程中,需要面向检出目标序列这一任务,基于某个现态以及输入情况,决定次 态,恰好吻合了“立足当下,着眼未来”的内涵,从而引导学生实事求是,辨析问题的当前状 况,着眼要解决的问题,做出最佳判断,体现出脚踏实地的工匠精神,放眼未来的胸怀,承担 88 图 1 原始状态图的提出 图 2 原始状态图的绘制 起应负的社会责任。 3. 设计思路 1)介绍一般同步时序电路 一般同步时序电路设计时,通常不能确定根据逻辑功能所建立的状态转换序列中的状 态个数是否最少,而状态数的多少决定着触发器的数量,即电路的规模。因此,当所设计的 同步时序电路不能确定为典型同步时序电路时,应先按照建立原始状态图→状态化简→状 态分配的过程,得到最小状态表或最简的状态转换图,再遵循典型同步时序电路的设计原则 完成设计。一般同步时序电路包括序列检测器、B码识别器和双向可逆分配器、串行加法 器、非法码检测、串行代码转换等。 89 2)序列检测器的电路功能 首先引入生活中常见的几个例子,如点名、遥控汽车开锁、自动售货机等,抽象出序列检 测器的功能,即序列检测器有固定的检测码,接受一组串行随机信号(X), 在时钟CP 的控制 下,每个CP 接受一位X的数据,当输入数据与检测码相同时,检测电路输出有效信号。 3)一般同步时序电路的设计步骤 第一步,根据要求建立原始状态转换图,并形成原始状态表; 第二步,对原始状态表进行化简,消去多余状态,求得最小状态表; 第三步,对最小状态表进行状态分配(状态编码), 形成卡诺图形式的二进制状态表; 第四步,选定触发器类型,求最简激励函数和输出函数; 第五步,画出逻辑电路图; 第六步,检查电路是否具有自启动特性,若符合设计要求,则设计完成,否则需要修改设 计,甚至重新设计。 4)建立原始状态图 以点名环节为例,放慢点名节奏,与学生互动,引导学生体会点名过程中的心理状态变 化,从而为后续序列检测器建立原始状态图提供参考;然后带领学生思考辨别可重序列检测 器和不可重序列检测器的差别,摩尔型原始状态图和米勒型原始状态图的不同;最后带领学 生建立1101 序列检测器的原始状态图。 5)思政育人 本案例在思政育人方面,把思政要素嵌入原始状态图的建立思路中,即在直接状态指定 法中,需要从某个状态出发,每加入一个输入,就确定其次态,该次态可能是现态本身、另一 个已有状态、需新增状态;次态到底是哪个状态,取决于序列检测器的目标序列、当前状态以 及当前输入;这个过程可以概括为:人生会遇到各种各样的问题,我们只需脚踏实地,着眼 未来,根据当前状态和信息做出当下的最佳反应(更新状态), 即立足当下,放眼未来;最好的 未来就是国家繁荣昌盛,社会和谐幸福,进而引导学生在国家社会建设中有责任、有担当;鼓 励学生以饱满的热情与踏实的态度追求梦想,奋力拼搏,以实际行动和丰硕成果报效祖国。 三、案例特色 (1)思政要素高度契合课程内容。 原始状态图的建立是一般时序电路分析的首要环节,次态的确定需要基于现态及输入 进行匹配,这一逻辑高度契合了思政要素:立足当下,放眼未来,此处知识点的讲解与思政 育人相辅相成,不牵强。 (2)思政要素与专业知识的双向反馈。 立足当下,着眼未来的内涵可以深入浅出地帮助学生快速、有效掌握原始状态图的建立 方法;而原始状态图的建立又反过来印证了这一思政要素的科学性、合理性,从而形成思政 要素与专业知识的双向、正面反馈。 90 四、学生反馈 (1)肖同学说:我们生活的环境无时无刻不在变化,我们也要根据需求而积极改变,这 与序列检测器的工作原理相通。 (2)张同学说:习近平总书记在党的十九大报告中指出“中国特色社会主义进入到了 新时代”,在新时代物质世界和网络世界都在飞快改变着,我们要像序列检测器那样,学会灵 活变通,根据当下的情况判断出最佳方案,为中国特色社会主义建设添砖加瓦。 五、教学反思 本案例的思政设计及融入都比较贴切,不会在授课过程中显得突兀,打断专业知识的传 授节奏,效果符合预期;同时,序列检测器属于有限状态机的一类,后续可以基于有限状态机 进一步挖掘思政要素,在拔高专业知识深度的同时,将思政育人走得更深、更实。 撰写人:王秀 娟 所属单位:北京工业大学信息学部计算机科学与技术 系