田 露,徐 湛,职如昕
(北京信息科技大学信息与通信工程学院,北京 100101)
教育部于2020年5月印发《高等学校课程思政建设指导纲要》(以下简称《纲要》),《纲要》指出,不同学科的性质特点不同,思政元素也有所侧重。《纲要》中明确指出,“理学、工学类专业课程要提高学生正确认识问题、分析问题和解决问题的能力……注重科学思维方法的训练……培养学生精益求精的大国工匠精神,激发学生科技报国的家国情怀和使命担当。”
程序设计类课程作为通信工程专业的基础课程,应与时俱进,顺应《纲要》文件精神要求,深入推进程序设计类课程教学改革,结合程序设计类课程特色和育人目标,深度挖掘和提炼程序设计类知识体系中所蕴含的思想价值和精神内涵,从科学思维、科技报国、工匠精神等多角度,授课、试验等多形式的将思想政治教育贯穿至通信专业人才培养过程中。
程序设计编程语言一般由字母、数字、标点等组成,对语言的逻辑性和规范性要求较高,且编程语言本身具有一定的枯燥性,导致学生对学习程序设计类课程存在畏难情绪。当前大多数授课老师仍采用“重语法、轻思维”的传统教学方法,单纯的按照教材中的知识点去授课,使得学生学习兴趣和学习主动性下降、效率降低,进而导致学生上课睡觉或玩手机,下课作业不会做。传统的授课方法不重视培养学生理解问题、解决问题的求解性思维,使得大多数学生在面对实际问题时候束手无策,一定程度上限制学生科学思维的发展。此外,目前程序设计课程考核偏重于语法的规范性和准确性,未将学生分析、解决问题的能力纳入考核范围之内,直接导致学生对知识点死记硬背,而忽视科学思维能力培养。在传统授课模式下学生专业课程学习效果不佳,思想政治教育也未很好的渗透融合,未能形成正向协同效应,未能落实落细课程思政建设“立德树人”的根本任务各项要求。
在笔者《信息类程序设计基础》课程目标达成的调查问卷中,针对“能用应用计算思维方法进行分析和解决实际问题”这一项,达成情况为68.3%,远低于其他课程目标。因此为提高学生正确认识、分析和解决问题的能力,有必要对程序设计类课程进行教学改革,在教学过程中融入价值塑造、知识传授和能力培养等方面内容,不断提高通信专业人才培养质量。
卡内基梅隆大学计算机科学系周以真教授于2006年3月正式提出了“计算思维”的概念,指的是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动[2]。为便于理解,周以真又进一步定义为是利用启发式推理需求解答,也即在不确定情况下的规划、学习和调度的思维方法[3]。
近年来国内相关学者对计算思维进行研究探讨,并应用至教学领域,2013年教育部高等学校大学计算机课程教学指导委员会发布《计算思维教学改革白皮书(征求意见稿)》[4],周平红等人将计算思维的概念与实践融入STEM工程设计的各个环节,能显著提升学生的STEM态度和计算思维能力,并且STEM态度对计算思维具有预测作用[5]。宋颖认为在计算思维视域下计算机信息技术教学改革的路径包括突出学生的主体地位,高效融合相关专业和内容,优化教学速度,精准定位教学应用[6]。姚珺认为加强学生计算思维的培养是提高教学质量和学生能力的重要手段,可明显提高学生应用计算机知识分析、解决问题的能力[7]。由此可见计算思维的核心思想和方法嵌入到课程设计类课程教学实践将明显改变当前现状。
案例驱动教学法在程序设计课程中得到了广泛应用,通过设计案例、分析案例、引导学生围绕案例解决工程实践过程中遇到的问题,达到提高学生参与学习活动积极性和主动性的目的。为更好发挥课程的育人作用,提高高校人才培养质量,提出基于计算思维模式下的案例驱动教学方法,通过体系化的方法设计案例,层次化的试验难度设计、结构化的能力评估体系,实现计算思维训练,并将价值塑造、知识传授、能力培养等目标贯穿程序设计教学全过程。
以体系化的案例为载体,引导学生思考解决问题的方法,激发学生的思考,启发学生的思维风暴,让课堂教学目的更加明确,重点突出。针对北斗短报文通信的实际需求,结合各教学章节核心内容,设计教学引例,形成前后联系紧密的理论教学,如图1所示。在课程初期即建立学生顶层化、体系化思维,将北斗短报文通信的核心环节拆分为不同章节教学案例的主体内容,培养学生递归的逆向思维。通过“引例提出问题-学生思维引导-理论知识学习-实验实践应用-课后延伸拓展”的方式,引导学生采用计算机科学视角考虑解决问题,并形成抽象化、形式化、构造化、自动化的计算思维。
图1 教学案例设计
本项目开发的北斗短报文通信教学案例属于综合的教学案例,通过模块化学习,最终合理地组成更大的程序,实现体系化教学。在程序语言语法规则部分,将各类知识点融入精心组织的项目案例中,在案例中学习掌握各类知识点,一定程度上避免了学生因程序设计语言枯燥、烦琐而产生的厌倦情绪,增强学生的文化认同感,提高学习的积极性与兴趣性,锻炼了学生计算思维能力,使其可以愿意学、主动学、快乐学、有效学。
在体系化的教学案例基础上,面向北斗系统工程实践需求,实验内容在理论教学的综合案例基础之上,还融合了通信专业知识、工程实际应用,丰富完善实验内容结构,可进一步加深学生对知识的理解和应用能力。
另外一方面考虑学生学习能力的差异性,另一方面考虑培养学生精益求精的钻研精神,有必要优化实验难度要求,以计算思维核心方法为指导,建立了入门、提高、精通分级递进的实验难度要求体系,进而分层次教学,如表1所示(P195)。
表1 难度分级递进的实验设计
入门为实验难度的最低要求,对学生能力要求不高,学生可以使用已经掌握的程序设计规则解决工程实践中遇到的简单问题即可。提高为实验难度要求的第二层次,要求学生在掌握基本计算思维方法、基本策略或算法的基础之上进行变通,进而解决类似问题。实验难度的最高层次为精通,拟培养学生解决综合问题的能力,学生可以对一些综合性或复杂性较高的问题进行分析与思考,将所学到的知识融会贯通,采用正确的方法解决问题。
学生通过三个层次的实验训练后,可输出一套完整的北斗短报文通信的收发程序,以层层递进的难度培养了学生精益求精的大国工匠精神,实现“科—产—教”融合,将科技、产业和教育在课堂内外串珠成链。
传统的考核评价体系一般以结果为导向,认为程序设计结果满足功能要求即达到考核要求,而并未关注其设计过程,学生思维能力锻炼程度未能在评价结果中体现,因此需把学生计算思维能力考核纳入评价体系中。计算思维的特征主要包括构造性和简洁性两方面,因此在程序设计类课程考核评价体系中要充分考虑构造性和简洁性,建立以计算思维为导向的考核测评框架,即通过平时题目测试和实验作品分析的方式进行思维考核。
在此基础上构建以计算思维培养为导向的综合评价体系,其中一级指标包括准确性、构造性、简洁性。一级指标又可进一步细化。
3.3.1 准确性
平时题目测试准确性和实验结果准确性。
3.3.2 构造性
方法形式化:采用约定的格式、文字或语法等形式化的方法准确、无歧义的表达所要实现的功能。
过程关联化:每个计算过程都是有机相关的,不同操作过程实现不同的功能。
3.3.3 简洁性
基本操作简单化:将复杂操作简化为简单操作,这样可以快速完成复杂的功能。
表达方式简洁化:程序设计要使用逻辑结构,简洁明了,使得表达方式容易理解和修改。
在此基础上建立“计算思维培养导向的程序设计综合评价体系”,并且引入量化考核,分别给予各级指标权重系数,并制定评分标准,以便系统实现评价自动化、科学化、系统化等目标,通过多维度的考核评价,正确了解学生计算思维锻炼水平,进而更好的有针对性地开展教学工作。
程序设计课程案例驱动教学改革实施,将计算思维训练作为程序设计类课程的重点目标,体系化设计教学案例和实验内容,建立思维培养导向的综合考核方式,引导学生正确认识问题、分析问题和解决问题,培养有思想、有情怀、创新能力强的“新工科”人才。培养学生掌握编程语言、编程工具等方面的基本理论和方法的同时,兼具丰富的实践经验及创新能力,能够综合运用所学软件知识解决实际工程问题,促进“科—产—教”融合。