1. 引言:C语言教学中的AI使用困境与思政融合挑战
如今走进理工科的课堂,一个有趣又令人担忧的矛盾景象正在发生:一边是功能日益强大的生成式AI工具(如GitHub Copilot、通义灵码等),它们能瞬间生成学生苦思冥想的代码;另一边,是教师们努力将思想政治教育(“课程思政”)融入专业教学的种种尝试,但有时效果却不尽如人意,常被学生视为“生硬的植入”[1]。在《C语言程序设计》这类基础课程中,这一矛盾尤为突出。C语言因其接近硬件、概念抽象、调试复杂的特点,本就是教学难点。现在,学生极易利用AI进行“拍照搜题”式的代码获取,这虽然解决了眼前的作业问题,却悄然剥夺了他们通过“犯错–调试–反思”这一核心过程来构建计算思维和解决问题能力的机会,导致了深层次的“思维惰性”[2]。与此同时,传统的课程思政方法,如将“红船精神”与循环次数简单类比,虽然用心良苦,却常因与复杂的技术语境存在隔阂,而难以引发学生的深度认同,形成了专业知识与价值教育“两张皮”的现象[3]。
这两个挑战共同迫使我们思考:在AI工具已成为不可逆趋势的今天,教学究竟该如何转型?是简单地禁止使用,还是更智慧地引导和融合?本文认为,关键在于实现两种“转向”:一是将AI从替代思考的“答题机”,转变为激发元认知的“思维训练伙伴”;二是将课程思政从附加的、标签式的政治宣讲,深化为内嵌于工程实践脉络的伦理自觉与职业责任教育。基于这一认识,本研究以高校中广泛应用的超星学习通平台为实践主阵地,在C语言课程中进行的一次系统性的教学改革探索。
2. 核心理念:构建“伦理为魂,AI为用”的教学新范式
基于对上述困境的剖析,本文提出了本次教学改革的三个核心理念,旨在重塑教学中的技术观与价值观。
首先,重新定义AI的角色:从“代劳者”到“诤友”。本文不再将AI视为需要防范的“作弊工具”,而是尝试将其设计为教学过程中的“苏格拉底式诤友”。通过结构化的任务设计,引导学生不是向AI索要答案,而是与AI进行有来有回的批判性对话,例如,要求AI评估一段代码的安全风险,或解释其优化建议背后的权衡。这个过程本身,就是对学生逻辑思维和批判性思维的高强度训练[4]。
其次,重构思政的内涵:从“外部映射”到“内在生长”。本文彻底摒弃了将抽象政治概念与编程语法进行机械类比的旧思路。取而代之的,是深入挖掘C语言知识体系本身蕴含的工程伦理意蕴。例如,讲解“指针”时,焦点不再是比喻为“指引方向的旗帜”,而是深入探讨“野指针”可能引发的系统崩溃灾难,从而引出软件工程师对系统稳定性和安全的不可推卸的责任;讲解“内存管理”时,则关联到计算资源的有限性与“可持续发展”的宏观议题。这种思政教育,因其与专业知识的强关联性和真实性,更容易被学生理解和内化[5]。
最后,融合双路径:方法论与价值论的统一。本文将上述理念具体化为两条并行且相互支撑的实施路径:一是“AI深度交互脚手架”,解决“如何更聪明地使用工具来学习”的方法论问题;二是“工程伦理案例库”,解决“为何要遵循规范、心怀责任”的价值论问题。两者在超星学习通平台上有机整合,贯穿于课前、课中、课后全流程。
3. 实践蓝图:“脚手架”与“案例库”的双轨设计
理论需要落地为可操作的方案。文本在超星学习通平台上,搭建了如图1所示的双路径教学模式,确保每一项改革理念都有具体的教学环节作为支撑。
Figure 1. Diagram of the dual path teaching mode combining “engineering ethics case repository” and “AI deep interaction scaffold”
图1. “工程伦理案例库”与“AI深度交互脚手架”双路径教学模式图
3.1. 路径一:让伦理在代码中显现——工程伦理案例库建设
本文开发了一套全新的案例库,其核心特征是所有案例都源于或模拟真实的软件开发场景与困境(见表1)。例如,在讲解“数组越界”时,不再仅仅将其作为一个语法错误,而是引入历史上因数组边界检查缺失导致重大安全事故的著名案例(如某些航天器或医疗设备事故的简化分析),让学生直观感受到一行代码的疏忽可能意味着什么。
Table 1. Sample design integrating c language key concepts with engineering ethics foci
表1. C语言知识点与工程伦理焦点融合设计示例
知识点
模块 |
聚焦的工程
伦理/职业素养 |
教学案例 |
育人目标 |
指针与
内存管理 |
责任意识、
系统安全 |
分析一段可能导致“缓冲区溢出”攻击的
脆弱代码,讨论其社会危害。 |
使学生理解,写出安全的代码是程序员的
基本职业操守和社会责任。 |
程序调试
与异常处理 |
工匠精神、
严谨求证 |
提供一份存在隐蔽逻辑错误(如条件边界
处理不当)的“遗留代码”,让学生扮演
维护工程师进行诊断和修复。 |
培养学生像工匠一样追求极致、不放过
任何细节的调试态度和解决问题的能力。 |
函数设计
与模块化 |
协同规范、
可维护性 |
开展小组项目,并引入“代码互审”环节,
用清单检查接口设计的清晰度和注释的
完整性。 |
让学生切身感受到,良好的代码风格和
文档不是为了应付老师,而是为了团队
高效协作和项目的长期生命。 |
算法效率 |
工程最优
与资源权衡 |
对比同一问题的暴力枚举算法和高效算法,
计算在大数据量下的时间/能源消耗差异。 |
引导学生建立“效率即资源”的工程
经济思维,理解优化算法也是对计算
资源的一种节约。 |
3.2. 路径二:与AI进行高质量对话——深度交互脚手架设计
为了让学生不只是“用”AI,而是“对话”AI,本文设计了进阶式的交互训练:
第一阶段:结构化提问训练。提供了针对C语言学习痛点的“提问模板”,例如,在调试时要求学生必须按“我遇到了XX错误→我怀疑是XX原因→我尝试了XX方法但结果XX→请问我的思路哪里可能存在盲区?”的格式向AI提问。这训练了他们精准定位问题和进行元认知思考的能力。
第二阶段:AI辅助代码审查(核心创新环节)。这是本文将伦理教育与AI互动深度结合的关键尝试。
教师准备“问题代码”:教师有意编写或使用AI生成一些包含典型缺陷(如内存泄漏、潜在的整型溢出、不良的命名规范)的代码片段,上传至超星平台作为任务。
学生化身“安全审计员”:学生需首先独立审查代码,找出问题,然后使用特定指令(如:“假设这段代码将用于一个在线支付系统,请从安全性、可靠性和可维护性三个维度进行评审,并给出修改优先级建议”)与AI对话,获取一个更系统、更专业的风险分析视角。
撰写综合性审查报告:学生最终需要提交一份报告,对比自己的初判与AI的分析,阐述哪些风险是自己忽略的,以及最终的修复方案。这个过程极大地强化了他们的工程风险意识和批判性评估能力。
4. 教学成效评估体系
参照教育实验研究的方法[6],设计并实施了一轮对比教学。
实验设计:本文在2025年秋季学期,选择了两个在入学成绩和前期计算机基础无显著差异的平行班(各60人)。通过抽签,随机将一个班确定为实验班,实施上述双路径教学;另一个班作为对照班,采用传统的“讲授 + 练习”模式,允许学生自由使用AI辅助学习,但不做任何结构化引导。两个班使用相同的超星平台课程空间、由同一位教师授课,以尽可能控制无关变量。
多维度的评估工具:本文构建了一个“混合式”评估体系,收集多源数据:
1) 编程能力与工程素养:在超星平台的章节测试和期末大作业中,加入了考察代码健壮性、安全性和风格规范的评分项。同时,记录了学生在完成复杂指针操作题目时的平均调试时长和提交次数。
2) 工程伦理认知水平:借鉴心理学中的情境判断测试(Situational Judgment Test, SJT)方法[7],自主设计了一套选择题。题目描绘了学生在课程项目或未来工作中可能遇到的伦理困境(例如:“在团队项目中,你发现组长为了赶进度提交了一段存在内存泄漏风险的代码,你会如何处理?”),以此评估学生的伦理决策倾向。
3) AI交互与学习过程:对实验班学生提交的所有AI协作日志和代码审查报告,进行文本分析,使用编码表统计其中体现“分析”、“评估”、“反思”等高阶思维活动的关键词频次。同时,利用超星平台的后台数据,对比两班学生对教学视频的重复观看率和在讨论区发起深度技术讨论的频次。
5. 实施效果初步分析
经过一学期的实践,通过对收集到的数据进行分析,本文观察到了一些鼓舞人心且具有统计意义的差异(主要对比结果归纳于表2)。
Table 2. Comparison of key indicators of teaching effectiveness between experimental and control classes
表2. 实验班与对照班教学效果关键指标对比
评估维度 |
具体观测指标 |
实验班情况 |
对照班情况 |
解读 |
工程实践质量 |
期末大作业中“代码
安全性”子项平均分 |
86.5分 |
72.3分 |
实验班学生明显更注重编写安全、可靠的
代码,而不仅是功能实现。 |
伦理决策能力 |
情境判断测试(SJT)
平均得分 |
82.7分 |
70.1分 |
系统的伦理案例讨论,有效提升了学生在
复杂情境中做出负责任判断的能力。 |
AI交互思维
层次 |
后期AI日志中“分析
评估类”问题占比 |
提升至61% |
维持在30%左右 |
“提问脚手架”和“代码审查”任务,成功
引导学生与AI进行了更深度的思维碰撞。 |
学习投入度 |
平台案例视频平均
观看时长(倍速调整后) |
超出规定
时长35% |
基本与规定
时长持平 |
真实的工程案例更能激发学生的学习
兴趣和探究欲。 |
具体而言,在期末一个模拟“小型车辆管理系统”的项目中,实验班超过80%的学生在代码中主动加入了输入验证和异常处理,而对照班这一比例不足50%。在SJT测试中,面对“是否使用未经验证的第三方代码库以加速开发”的dilemma,实验班学生更多选择了“先进行安全评估”或“寻找替代方案”等更审慎的选项。这些差异表明,本文的改革不仅在技能层面,更在认知模式和职业态度层面对学生产生了积极影响。
6. 反思与未来之路
回顾整个改革过程,有收获,也清晰地看到了不足与前进的方向。本次实践最深刻的体会是:价值引领必须与专业知识“共生”。当“责任”、“安全”、“规范”这些词不再是空洞的说教,而是与指针错误导致的系统崩溃、内存泄漏隐喻的资源浪费具体联系在一起时,学生眼中的光芒是不同的。这种“内生性”的思政教育,其力量远大于外部灌输。
同时,将AI工具“教学化”是一项精细的工作。单纯的放任会导致滥用,单纯的禁止则无异于因噎废食。文本设计的“结构化提问”和“代码审查”环节,相当于给学生的AI使用安装了一个“思维导航”,迫使学生在便捷性与思考深度之间寻找平衡。学生反馈也证实,经过训练后,他们感觉自己“更会提问了”,并且“开始习惯性地审视AI给出的答案”。
当然,本研究仍存在局限。首先,受限于单一学期的周期,文本未能追踪这种教学模式对学生长期职业发展的影响。其次,情境判断测试等工具的效度仍有待更多样本的检验。展望未来,未来计划:第一,开发更轻量化的智能分析插件,能对学生在超星平台上的代码提交进行实时的风格与安全风险提示,让反馈更即时;第二,启动纵向追踪研究,对本期实验班学生进行为期一年的跟踪,观察其后续专业课程学习表现;第三,构建跨校联盟,与兄弟院校共享“工程伦理案例库”,并在不同学校情境下验证和优化这一教学模式,使其更具普适性和生命力[8]。