夜雨聆风学习资料网

ARTICLE · 1021796

国产软件进课堂优秀案例 | 以仓颉语言为桥——计算机系统结构课程国产化教学改革创新实践(青岛城市学院刘博)

国产软件进课堂优秀案例 | 以仓颉语言为桥——计算机系统结构课程国产化教学改革创新实践(青岛城市学院刘博)

案例摘要:针对《计算机系统结构》课程长期存在的教学内容抽象、软硬件割裂、实验手段陈旧等痛点,本教改项目以华为仓颉语言为桥梁,构建“语言-编译-指令集-微架构”四位一体的贯通式教学体系。通过字符串拆分、魔方模拟、分形大树三个梯度项目,将内存管理、缓存优化、浮点计算等硬件概念融入编程实践,形成“入门热身—中阶提升—综合创新”的能力培养阶梯。组织270名学生参加课程学习,结课率100%,183人提交仓颉示例代码,组织588同学参加第十届华为ICT大赛。实践表明,该模式有效提升了学生的系统级思维与性能优化能力,激发了民族自豪感与创新热情,为国产编程语言融入系统类课程提供了可复制、可推广的示范案例。

一、项目改革背景

当前,以华为为代表的国内科技企业正加速推动基础软件的自主可控。仓颉编程语言作为华为自主研发的新一代通用编程语言,集现代语言设计理念与工程实用性于一体,是国产基础软件生态建设的重要组成部分。青岛城市学院计算机工程学院长期致力于华为相关技术的使用与推广,是华为ICT学院成员、华为认证推广单位。

《计算机系统结构》作为计算机专业重要专业课程,承担着培养学生理解硬件设计、功能分配及性能优化能力的重要职责。然而,传统的《计算机系统结构》教学长期面临以下痛点:

教学内容抽象枯燥:CPU、流水线、缓存、指令集等核心概念脱离应用场景,学生普遍反映“学了不知道用在哪”;

软硬件教学割裂:硬件课程与编程语言课程相互独立,学生缺乏从软件到硬件贯通理解的视角;

实验手段陈旧:实验环节多依赖Logisim仿真或C语言编程,与现代计算机系统实践脱节,难以激发创新兴趣;

课程内容与产业前沿脱节:教学案例多年未变,学生接触不到国产自主技术的最新成果。

为此,项目团队依托华为产学合作协同育人项目,以“仓颉语言程序设计”课程资源为载体,对《计算机系统结构》选修理论课程进行系统性改革,探索一条“语言-编译-指令集-微架构”四位一体的贯通式教学新路径。

二、课程改革思路与举措

1. 改革核心思路:打破壁垒,构建贯通式系统认知闭环

本次改革的核心理念是:以仓颉语言为“透镜”和“桥梁”,将原本孤立的软件编程与硬件结构两门学科有机融合,为学生建立“语言-编译-指令集-微架构-性能优化”的完整认知闭环。

改革打破了“硬件”与“软件”之间的传统壁垒。通过仓颉这一具体的、现代的、有深度的国产语言载体,学生得以在统一视角下理解计算机系统的全貌。教学目标从“理解硬件原理”升华为“具备系统级的设计与权衡能力”,使学生能像系统架构师一样,从软件需求出发思考硬件支持,从硬件约束反推软件优化。

2. 知识融合路径:螺旋上升的三维融合框架

1)具象化硬件概念

当学生用仓颉语言编程时,可以清晰地看到其“面向对象和内置泛型”等特性如何被编译成特定的指令,这些指令又如何被CPU的流水线、缓存系统处理。例如,讲解缓存一致性时,可以结合仓颉程序在多核环境下的数据竞争与同步机制,让这个概念不再停留在图纸上,而是可以通过代码直接触碰的活的知识。

2)深化软件理解

学生能够理解仓颉语言的某些设计(如对安全性的原生支持、内存管理模型)是如何依赖或影响底层硬件行为的,从而成为“原理的洞察者”而非“魔法的使用者”。这种认知转变是本次改革最核心的人才培养目标。

3)激发民族自豪感与前沿视野

仓颉作为我国自主研发的编程语言,引入课堂不仅极大激发了学生的兴趣和民族自豪感,更让学生提前接触可能在未来生态中扮演重要角色的语言,拓宽了技术视野,增强了就业与科研的竞争力。

3. 教学方法改革:项目驱动,螺旋递进

课程采用“问题驱动,螺旋上升”的教学模式,设计了三个由浅入深、层层递进的项目,每个项目均精确锚定一个或多个核心硬件概念:

项目一:基于仓颉语言的按分隔符拆分字符串程序——锚定“内存访问与动态分配模式”

让学生从最基本的操作入手,理解高级语言特性与底层内存资源管理的关联,迫使学生在仓颉语言层面思考内存的申请与释放。

具体内容: 要求学生使用仓颉语言,实现一个可接收任意字符串和分隔符参数、将字符串按规则拆分并返回子串列表的程序。核心任务包括:(1)理解仓颉的字符串类型在内存中的表示方式;(2)观察分隔后子串的动态内存分配过程;(3)完成性能对比实验——对比分隔次数不同时,内存分配频次与程序运行时间的关系曲线。学生需提交代码、运行截图及一段“内存行为分析报告”。

项目亮点: 本项目将高级语言中最日常的字符串操作,转化为窥见内存管理机制的“窗口”。区别于传统实验的Logisim静态仿真,学生操作的是真实运行的仓颉代码,内存动态分配行为是可观察、可测量的“活的”现象。对于大多数学生而言,这是他们第一次将“写代码”与“内存的申请与释放”两件事在脑海中真正建立联系。

学习情况: 本项目为课程热身阶段,参与学生270人,提交率100%。约65%的学生在初次尝试时对“子串拷贝是否产生新内存分配”存在困惑,教师据此增加了一次专项答疑,在课堂上现场演示内存地址的变化情况。经过引导后,学生普遍能够独立完成分析报告。任务整体难度适中偏低,符合“入门热身”的设计定位。

学生反馈:“之前以为字符串拆分就是几行代码的事,做完这个项目才发现,拆出来的每一个子串在内存里都有自己的‘家’,第一次真正看见了内存在动”。经过调查,89%的学生认为“该项目帮助我理解了内存分配不是抽象概念,而是每次操作都在发生的事情”;83%的学生表示“完成后对仓颉语言的学习信心明显增加”。

项目二:基于仓颉语言的魔方程序——锚定"数据结构与缓存局部性"

通过中等复杂度项目,涉及状态管理、算法和用户交互,探讨计算复杂性与实时渲染背后的系统原理,深刻揭示数据结构布局对缓存命中率的影响。

具体内容: 要求学生用仓颉语言实现一个可交互的魔方模拟程序,支持旋转操作、状态记录与复原。核心任务包括:(1)设计魔方状态的数据结构(三维数组vs展开为一维数组两种方案);(2)测试两种布局下,连续旋转操作的性能差异;(3)结合CPU缓存行大小(通常为64字节)分析为何内存连续的布局更友好;(4)撰写"数据结构选型与缓存分析报告",要求画出内存布局示意图。

项目亮点: 魔方的状态机特性天然与"缓存命中率"话题高度契合——魔方每次旋转需要频繁访问特定位置的方块数据,数据在内存中的排列方式直接决定缓存是否"预取成功"。这一项目让学生在完全真实的场景中,第一次感受到"数据结构的物理布局"如何影响程序性能,而不是停留在课本上的"缓存命中率越高越好"的说教。组内讨论中,学生自发产生了"能不能为魔方设计一种访问模式友好的新数据结构"的创新讨论,超出了预期的教学目标。

学习情况:本项目为中阶提升阶段,难度明显高于项目一。270名学生中,独立完成全部任务(含性能对比与分析报告)的学生约占61%,另有约25%的学生在小组协作下完成,约14%的学生完成了基本编程任务但报告深度不足。性能对比实验环节是难点集中区域,教师增加了一次专项指导,带领学生使用性能分析工具实测数据,并在课堂上共同解读分析结果。

学生反馈:“两种写法的代码看起来差不多,但跑起来真的差那么多!那一刻我才明白,数据结构不只是算法的事,它是硬件的事。”经过调查,91%的学生认为该项目“让我理解了数据结构选择会影响底层硬件效率”;76%的学生表示“这是我第一次在编程中主动考虑内存布局”。

项目三:基于仓颉语言的绘制分形大树程序——锚定“浮点计算与流水线效率”

通过大量数学计算的执行,深刻揭示CPU如何处理复杂计算,指令级并行对性能的影响。

具体内容: 要求学生用仓颉语言实现基于递归与三角函数的分形大树可视化程序,通过调整分支角度、深度、随机扰动等参数,生成美观的分形图形。核心任务包括:(1)实现分形递归算法,观察递归深度与计算量的指数增长关系;(2)分析浮点运算(sin/cos等)在CPU流水线中的延迟特性;(3)尝试将部分重复计算预存,对比优化前后的性能差异;(4)提交最终作品截图(含可运行程序)与"浮点计算与流水线效率分析报告"

项目亮点: 分形树的视觉美感极大激发了学生的完成动力——这是三个项目中学生自主优化与"卷起来"现象最明显的一个。在完成基础任务后,多名学生主动思考如何通过算法优化让动态效果更流畅。这种内生动力下的深度探究,正是"浮点计算与流水线"话题最好的学习土壤——学生是为了让"自己的树更好看"而主动去优化性能,而不是为了完成作业而被动理解知识点。

学生学习情况: 本项目为综合创新阶段,是三个项目中学生投入时间最长的一个。183名提交认证代码的学生均完成了本项目的基础任务;约20%的学生进行了超出要求的功能扩展或深度性能优化探索。课程在该项目环节中,抽出时间安排了一次"成果展示",学生分组展示各自的分形树程序,现场氛围热烈,部分作品引发了全班对算法设计思路的自发讨论。

学生反馈:“分形树是我大学第一个真正'想让它变得更好'的程序,不是为了交作业,是因为自己喜欢。”经过调查,94%的学生认为该项目"让我首次将浮点计算与CPU性能联系起来"88%的学生表示"项目完成后对性能优化产生了浓厚兴趣"68%的学生在课后自发阅读了更多关于指令级并行的资料。

三个项目形成了"入门热身中阶提升综合创新"的完整能力培养阶梯,每一阶段完成后,学生既掌握了仓颉编程技能,又深化了对对应硬件原理的理解。

4. 特色教学举措

1)开展"性能分析"讨论

带领学生完成软件实验的过程中,引导学生分析硬件性能提升的方法。并给出基于硬件原理的优化解释,强制学生进行"透过现象看本质"的深度思考。

2"架构师角色扮演"课堂研讨

组织课堂研讨会,让学生分组扮演"CPU设计师""语言编译器开发者""应用程序员",围绕某个特性(如新增一条指令)进行辩论,深刻理解系统设计中的权衡与取舍。这一举措打破了传统单向灌输的教学模式,极大提升了学生的主动参与度。

3"对比实验"

鼓励学生将仓颉实现与C等语言实现进行对比,从差异中更深刻地理解不同语言设计哲学对硬件的影响,培养学生的批判性思维和跨语言系统设计能力。

4"仓颉快速上手"实验手册

为降低仓颉语言的入门门槛,项目团队专门编写了针对性的实验手册,配套有针对性、可运行代码示例,并将学习曲线前置,在课程初期设置简单的热身练习,帮助学生快速建立语言使用信心。

5. 团队协作与工作推进

本项目由刘博负责人主导,协同10位教师共同推进,团队分工明确、协作高效:

知识培训与课程组织(霍家亮、李瑞改、冯金香、刘丽丽):负责仓颉语言知识培训、组织学生参与各类学习任务及竞赛活动;

信息收集与材料整理(张鸿、崔新宇、张玉、郜宁):负责学生学习数据的收集、课程改革材料的整理与归档;

硬件环境搭建(张敬初、刘文):负责教学环境的技术配置与维护,确保仓颉语言编程实验环境的稳定运行。

团队全体成员在本次项目中均获得了"优秀""良好"的工作成绩认定,切实保障了项目的高质量完成。

三、课程改革成果和创新

1. 核心指标完成情况

《计算机系统结构》课程在青岛城市学院计算机工程学院面向本科生全面推广应用。本轮改革共覆盖学生270人,结课率达100%,其中183名学生向GitCode社区提交了仓颉示例代码,任务完成率达67.8%2位教师参加了华为仓颉相关师资培训,进一步提升了师资队伍的新技术掌握能力。

2. 附加指标完成情况

项目实施期间,课程团队积极组织学生拓展学习,168名学生在华为平台上自主学习了其他非立项课程资源,取得了良好的学习延伸效果。

课程团队积极组织学生参加华为ICT大赛,第十届华为ICT大赛参赛人数达588人,充分展现了课程改革在激发学生实践热情、提升竞争能力方面的积极成效。

项目团队积极参与对外宣传推广,共开展2次课程改革成果宣传活动。参与组织了"仓颉校园行:华为&青软集团助力青岛城市学院点燃国产化编程教育新引擎"活动,相关新闻在河南融媒体等平台得到报道,对仓颉语言教学改革经验进行了广泛传播,为国产编程语言进课堂的示范推广贡献了青岛城市学院的实践案例。

3. 主要创新点

1)首次将仓颉语言引入《计算机系统结构》课程

在学院内率先将华为自主研发的仓颉编程语言与《计算机系统结构》核心课程深度融合,探索并验证了"国产语言赋能系统课程"的可行路径,具有重要的示范意义。

2"语言-编译-指令集-微架构"四维贯通教学范式

原创性地构建了以仓颉语言为主线的贯通式认知闭环,将原本割裂的编程语言教学与硬件体系结构教学统一在同一框架下,打破了传统软硬件教学壁垒,形成了可迁移、可复制的课程改革方案。

3)三维能力培养体系

通过三个精心设计的梯度项目,构建了"内存管理缓存优化浮点计算"三维能力培养体系,让学生的系统级思维与性能优化能力得到了系统性锻炼,而非孤立知识点的堆砌。

4. 教学成效

1)学生能力显著提升

系统思维能力:学生普遍建立了软硬件协同的全局视角,能够分析一个软件特性(如仓颉的内存模型)对硬件(如缓存一致性协议)提出的要求,反之亦然;

深度调试与性能优化能力:超越了"程序能跑通"的层面,进入了"程序为何快/"的深度探究,学会使用性能分析工具从指令数、缓存命中率等底层指标定位瓶颈;

前瞻性与创新能力:通过接触并掌握仓颉这一新兴语言,学生激发了对国产基础软件生态的兴趣与责任感,为未来相关领域的研发工作奠定了基础。

2)教师教学能力同步提升

课程设计能力飞跃:教师从知识传授者转变为系统观的引导者和学习情境的设计者,度钻研仓颉语言特性、编译原理以及与不同硬件架构的适配,实现了知识体系的与时俱进;

教学相长的良性循环:在指导学生解决开放性问题时,教师也从中获得了新的研究灵感和教学案例。

四、经验总结和展望

1. 成功关键要素

1)找准"国产语言""系统课程"的契合点

仓颉语言不是普通的应用开发工具,其设计目标本身就与计算机系统底层有深度关联。找准这一契合点,是本次课程改革成功的前提。课程改革并非生硬地"往课程里塞一门新语言",而是通过深入分析仓颉的特性(内存管理、泛型实现、安全机制等),挖掘其与CPU微架构、指令集、缓存体系的内在联系,真正做到"以软带硬、以硬促软"

2)项目设计是融合成功的关键

精心设计的项目是让抽象理论"看得见、摸得着"的关键。三个梯度项目均目标明确,每个项目都包含能直接映射到核心硬件概念的"锚点任务",确保了学生在完成编程实践的同时,必然触及并理解相应的硬件原理。

3)降低门槛,循序渐进

引入新语言时,必须配备足够"陡峭"的学习脚手架。项目团队编写专属实验手册、提供丰富代码示例、前置热身练习,有效消除了学生对新语言的畏难情绪,确保了课程的顺利推进和较高的学习完成率。

2. 下一步计划

(1)推动跨课程协作:与《数据结构》、《操作系统》等课程联动,共同设计综合性大作业,让学生体验从语言设计到系统构建的全流程;

(2)加强成果转化与推广:将优秀的课程实践(项目设计、教学案例、学生成果)整理成论文或开源项目,向全国高校推广,形成示范效应,助力国产编程语言生态和系统能力培养;

(3)建立校企长效合作机制:推动设立"仓颉与系统结构"相关的校企合作课程、师资培训和学生竞赛等,让产业前沿需求直接反哺教学。

本次改革证明,将仓颉语言融入系统结构课程是一条行之有效的创新之路。它不仅能极大提升教学质量,更能为构建我国自主信息技术的"人才底座"贡献一份关键力量。青岛城市学院的这一实践案例,期望能够为更多高校推进国产软件进课堂、深化新工科建设提供有益参考。

本文为新工科联盟"国产软件进课堂"优秀案例系列之十九。后续将持续发布更多优秀案例,敬请关注。

相关学习资料

返回首页浏览学习资料