夏辉丽
(郑州经贸学院 大数据与人工智能学院,河南 郑州 451191)
《教育部高等教育司关于开展新工科研究与实践的通知》(教高司函〔2017〕6号)指出,新工科研究和实践要围绕工程教育改革的新理念、新结构、新模式、新质量和新体系开展。吴岩司长在关于《深化“四新”建设,走好人才自主培养之路》的专题报告中提到,要全面深化新工科建设,切实做好抓理论、抓专业、改课程、变结构、促融合。因此,新工科背景下的人才培养模式应该本着“学生中心、产出导向、持续改进”的教育理念,积极推进启发式、任务驱动式和线上线下混合式教学,使学生能够通过学习不断提高自己的实践应用能力和工程创新能力,成长为适应经济社会发展的高质量工程技术人才[1]。
“程序设计基础”课程的实践性很强,授课对象多数是大一学生。他们的计算机应用水平参差不齐,没有编程基础,缺少专业技术知识和解决问题的经验。高校教师在“程序设计基础”课程教学中,应该重点介绍C语言程序设计的基础知识、思想和方法,培养学生的逻辑思维能力和利用编程求解问题的能力,为学生学习“数据结构”“操作系统”等后续专业课程奠定扎实的编程基础。
C语言具有算法描述能力强、目标程序运行效率高、通用性好等特点,广泛应用于图像处理、软件工程、人工智能等方面[2-3]。利用C语言求解问题具有较高的抽象性和复杂度,因此,在传统教学中采用“教师起主导作用,学生起辅助作用”的单一模式对发挥学生的学习积极性、创新精神造成了一定的阻碍,主要表现在:①学生学习兴趣低,自主学习能力弱,自驱力不足;②学生偏向于理论认知,思维固化,实践训练不足;③实践体系和能力目标的达成度不高;④工科课程与思政育人割裂;⑤评价标准单一、考核结果不客观;⑥理论和实践脱节,部分学生依靠死记语法规则、硬背例题代码来应对作业和考试[4]。
在转型发展背景下,切实增强学生的创新精神、创业意识和创新创业能力,是全面提高学校人才培养质量和增强服务地方经济社会文化发展能力的重要途径[5-6]。推进教学改革,务必使改革内容匹配能力培养目标,改变课程考核方式,注重终结性评价与形成性评价相结合,实施以能力为导向的多元化评价,加快信息技术在教与学中的运用,构建线上线下相结合的数字化学习体系,在专业课程中广泛使用计算机仿真教学、数字化实训、远程实时教育等技术。
基于成果导向教育(Outcome-based Education,OBE)理念,确定“程序设计基础”课程的教学目标:使学生熟练掌握C语言语法、结构化程序设计思想及计算机工程基础知识;提升学生的分析抽象问题能力、算法设计能力与建模能力;培养学生的规范化编程、工程应用与创新能力。此外,围绕学生毕业时所要达到的知识、能力、素质、价值目标开展课程体系重构,实现培养应用型人才的最终目标。落实以学生为中心”的教学理念,增强学生自主学习能力,使得“程序设计基础”课程的教学内容呈现高阶性,教学模式及教学方法体现创新性,课程考核具备一定的挑战度。
坚持实践育人、多元协同,共建开放式的创新教学模式。在专业建设环节,夯实基础教育、通识教育、专业教育组成的创新创业教育梯级专业课程体系;在课程教学环节,将创新创业教育与专业教育渗透融合,设置具有时代性和创新性的课程目标与内容;在课内外实践环节,提高创新创业教育要求,开拓创新实践板块,构建创新学分转换体系;在学生发展评价环节,坚持成果导向和过程性考核、能力与知识考核并重的多元化学业考核评价。
1)优化重构课程内容
以学生为中心,优化重构教学内容和教学设计,突出专业思维,联动学科体系,融入价值引导。教学内容紧跟专业发展前沿,确保课程内容的创新性。突显C语言语法理论在解决实际问题中的应用,提升学生的基础程序设计能力、批量数据处理能力、复杂问题求解能力、初阶综合应用能力和高阶实践创新能力的“五个维度”能力,并将线上线下混合式教学内容进行分解,将计算思维与算法、课程思政元素融入其中[7]。“程序设计基础”课程内容重构见表1。
表1 “程序设计基础”课程内容重构
2)采用线上线下混合式教学模式
混合式教学模式如图1所示。混合式教学模式以学生为主体,使学生在自主学习和编程练习中理解知识,在师生和小组互动中解决问题,在案例分析和拓展训练中深化难度和持续创新。教学团队采用线上线下融合、课内课外贯通的混合式教学模式组织教学[8]。同时,将学生划分为3~5人的C语言学习小组,在“优学院”教学平台上组建线上教学资源,包括视频、文档、测试、作业、专题讨论等。
图1 混合式教学模式
课前,教师根据教学计划向学生发布学习任务和预习测试,学生以组内监督的形式开展线上资源学习,完成预习测评,并在专题讨论区或课程群开展互动答疑、实时交互。教师根据测评和答疑情况进行课前学情分析,了解学生初步掌握知识的情况。
课中,教师采用任务驱动的方式,以典型案例为引领,对重难点知识进行解析,并发布课堂讨论主题,学生以小组为单位开展讨论和编程实践。同时,教师在强化语法知识的同时,鼓励学生一题多解,引导学生扩展解题思路,指定小组代表分享解题算法,激发其积极探索和思考,并通过性能比较探究最优解。教师根据学习效果和讨论情况进行总结和归纳,深化知识难度。
课后,教师针对学生的基础差异布置不同的任务内容,对知识掌握较好的学生在完成作业的基础上进行知识拓展,鼓励其参加竞赛专题训练和综合项目开发;对知识掌握较差的学生开展组内帮扶。教师根据任务完成情况给出评价反馈,并发布作业参考答案,学生通过成绩明确自己的知识掌握程度,并进行查漏补缺。
3)开展基于OJ平台的实践教学
OJ(Online Judge)是一种广泛用于大学生程序设计竞赛的在线评判系统[9]。教学团队搭建学校专属的OJ平台,并组建与课程内容相结合的在线测评题库。课内,教师选取题库中具有代表性的题目开展实践、讨论和评讲;课外,学生完成实践作业,也可以根据学习进度和掌握程度选择题库中题目进行自主练习。学生可随时随地登录OJ平台、审题编码、提交运行、查看结果,平台判题机针对一个问题的多种编程解法即时给出客观公正的判题结果,便于学生对程序进行更正和优化,也便于老师及时掌握学生的实践应用情况,并进行针对性的指导。平台会根据做题量和正确率,展示学生按天、周、月、年的排名情况,并设置不同的关卡等级。该实践方式有效提升了学生学习的积极主动性,形成了“你追我赶”的良好学习氛围。
4)推进以赛促学,培养创新人才
教学团队本着以“学生为中心”的理念因材施教,培养学生的创新能力,实现新工科教育的核心内涵。团队在每年11月至12月组织程序设计“新生周赛”和“提升班选拔赛”,并强化实践考核内容,检验课程教学效果,赛后及时发布解题文档和视频,在线为学生答疑。通过选拔,将实践能力强、综合素质高的学生编入程序设计提升班,开展竞赛专项训练,为ACM集训队和科技创新团队做好队员储备。后续面向ACM程序设计竞赛、“蓝桥杯”全国软件和信息技术专业人才大赛、中国大学生计算机设计大赛、中国大学生创业计划竞赛和中国国际“互联网+”大学生创新创业大赛等赛事开展高阶算法集训和应用性项目研发。通过以赛促学、寓教于赛,使学生不仅熟练掌握C语言程序设计工具,而且延伸至问题的抽象和建模、算法的设计和分析、工程的实践和创新。
实现课程考核的全过程、多阶段、多元化,做到过程可追溯、评价有依据,以定期开展训练赛的形式,营造良好的编程实践氛围,将OJ平台排名及阶段赛情况作为考核依据之一。同时,加大过程化考核力度,将考核划分为资源学习、作业任务、课堂讨论、平台训练、期末测试5项,平时成绩所占比例为40%,期末测试成绩所占比例为60%。期末考试以竞赛排名形式开展,重点考查学生的计算思维、基础编程能力和对算法思想的优化能力等。通过“学、练、赛、测”模式,激发学生的学习兴趣和挑战精神,提升学生的创新意识和应用能力。“程序设计基础”课程考核表见表2。
表2 “程序设计基础”课程考核表
基于教学团队的不懈努力,“程序设计基础”课程的教学改革取得了一定成效。将近3届学生的课程成绩进行对比,及格率、优良率、平均分均明显提升。学科竞赛成果丰硕,近3年共获得省级和国家级奖40余项,获奖级别和数量逐年提升,教学团队中多名教师被评为优秀指导教师。学生满意度调查结果表明,课程挑战度、资源质量、师生互动和学习效果等各项指标评价中优秀占比均超过95%,教学改革成效获得学生的广泛认可,满意度显著提升。
“程序设计基础”课程的教学改革之路任重道远,面向新工科的创新人才培养必将面临新的挑战。在教学团队管理方面,应该切实增强团队凝聚力,充分发挥骨干教师对青年教师的“传、帮、带”作用,积极探索、接纳和创新教学方法、手段和模式。在课程资源建设方面,及时补充和更新C语言视频资源,增设学科竞赛专题、思政案例专题、增量式综合案例专题等,丰富和完善课程题库,合理区分题目的难易度,为教学实践提供资源保障。在教学模式探索方面,始终以OBE教育理念为核心,基于“MOOC+SPOC+翻转课堂”的混合教学模式,最大程度地调动学生学习的积极主动性,持续提升教师的教学水平和学生的学习效果[10]。在实践能力培养方面,增加实操成果在过程化考核中所占比重,将综合案例贯穿于课程各章节实践教学中,使学生普遍达到编程基础扎实、算法分析透彻、综合应用有创新的较高水平,提高程序设计的兴趣度和成就感,实现从“要我学”到“我要学”的根本转变。
新工科背景下的人才培养旨在提升学生的创新实践能力。“程序设计基础”课程教学团队深刻领会新工科的内涵,以OBE理念为导向,优化课程教学内容,并融入课程思政;丰富在线课程资源,搭建OJ实践平台;采用线上线下混合式教学模式;积极探索“以赛促学、寓教于赛”的创新人才培养途径;改进考核方式和评价机制。近年来,经过持续的教学改革,课程教学质量和学生满意度显著提升,对专业课程群和课程组的教研实践工作起到了很好的引领示范作用,达到了教改预期效果。