APP下载

面向新工科人才能力培养的计算机程序设计课程改革

2023-08-27秦琳琳

高教学刊 2023年24期
关键词:程序设计编程实验

王 雷,秦琳琳,王 嵩

(中国科学技术大学 信息科学技术学院,合肥 230027)

新时代需要新思想、新理念、新发展。在当前国际形势与科技产业变革背景下,我国提出并大力推进新工科建设,形成了“复旦共识”“天大行动”“北京指南”,发布了《教育部高等教育司关于开展新工科研究与实践的通知》[1]《教育部办公厅关于推荐新工科研究与实践项目的通知》[2],明确提出对新工科人才培养的需求。与此同时,国际上也开展了对工程教育的新一轮系统性反思和变革。以MIT 的“新工程教育转型”(New Engineering Education Transformation,简称NEET)计划为代表,变革的重点集中在学生的学习方式及学习内容,目标是培养能够引领未来产业界和社会发展的领导型工程人才[3]。

现代教育强调对学习者知识、能力与素质的全面培养。2018 年的全国教育大会提出“教育引导学生培养综合能力”[4],2020 年中共中央、国务院印发《深化新时代教育评价改革总体方案》,要求树立科学成才观念,坚持以德为先、能力为重的人才培养思想[5]。

中国科学技术大学(以下简称“我校”)信息学院自动化系是教育部第一批“新工科”建设项目核心单位。计算机程序设计作为面向全校所有专业开设的通修课,属于重点建设的课程,2018 年获批省级示范基层教研室。教研室很早就把培养学生的计算机应用能力和计算思维能力作为教学目标[6]。2020 年我校发布《中国科学技术大学“一流本科教育质量提升计划”行动纲领》,在本科生培养框架中将计算思维列为与思政、数理同等地位的通修内容(图1),进一步明确“培养学生利用计算思维解决复杂问题的综合素养”。

图1 本科生培养体系框架图

传统的教学模式以教为中心,侧重知识传授,强调对学生进行基于学科知识的认知能力的训练,忽视能力素质的培养。计算机程序设计课程(以下简称“本课程”)从能力培养的问题出发,进行了课程设计、教学内容、教学模式及实践平台等方面的改革,取得了具有推广价值的成果。

本文首先介绍计算机程序设计课程的能力模型,再阐述针对教学现状中存在的问题的改革思路,接着进行面向能力培养的教学设计,最后进行改革成效的分析。

一 课程能力模型

本课程的能力模型[7]如图2 所示,揭示了编程实践能力、计算思维能力与自主学习能力之间的关系。

图2 课程能力模型

最底层的编程实践是基础能力。作为面向所有专业的通修课,本课程首先要完成培养学生编程实践能力的任务。计算思维概念虽然起源于计算机科学,却是一种面向问题求解与系统设计的一般性科学思维方法。在计算思维的引导下,学生能更深入地理解与掌握程序设计思想,因此是本课程拟培养的核心能力。最上层的自主学习能力,需要学生通过独立地分析、探索、实践、质疑与创造等方法来实现学习目标。一门课的时间和知识是有限的,学生只有拥有自主的学习能力,树立终身学习的观念,才能获得持续的发展。

二 教学改革思路

基于上述课程能力模型,教研室针对新工科人才能力培养中存在的问题进行了课程教学改革的尝试,问题分析与改革思路如下。

(一)基础差异问题

针对我校新生的调研表明,20%以上的学生学习过C 语言或C++,其中相当比例的学生参加过信息类竞赛,而14%的学生极少使用计算机。如此巨大的基础差异,不仅使得教学安排存在困难,对学生的学习兴趣也有很大的影响。同一课堂中,同样的教学内容与教学方法,基础非常好的学生会觉得索然无味,而基础薄弱的学生却常常跟不上进度,课堂氛围较为沉闷,教学效果大打折扣。更重要的是,长此以往会使得学生逐渐丧失学习兴趣,难以达成教学目标。为此,首先根据新生入学计算机测试成绩,结合学生的意愿实施了分层教学,将课堂划分为进阶班、普通班与基础班,再通过引导学生通过自主学习缩小基础和进度差距。

(二)自主学习问题

自主学习是终身学习的基础。由于本课程是在大学一年级第一学期开设的基础课,新生大多延续了中学阶段应试教育的学习习惯,对课程学习的定位往往是快速正确解题,还没有形成自主学习的意识,也基本不具备自主学习能力。从教学的角度,单纯靠布置作业和思考题让学生自己完成,并不能培养出自主学习的意识与能力。为此,首先通过介绍本课程的知识体系、考核体系与能力要求,纠正学生的学习目标;再通过提供慕课等优质的课外学习资源,在合理的教学设计与实践体系下逐步引导学生培养自主学习能力。

(三)编程实践问题

传统的程序设计课程教学中,学生都是在机房集中进行编程训练。实验环境与实验内容基本只能完成语法单元的编程练习,不仅编程能力提升缓慢,且难以触及程序设计的核心思想与方法。为此,教研室建设了包含模仿练习、自主实训、产教融合实验内容的多维分级实践平台,在该平台上逐级训练与提升学生的编程实践能力[8]。

三 面向能力培养的教学设计

基于上述课程改革思路,教研室基于“雨课堂”智慧教学工具,针对课前、课中、课后、实践和考核五个环节进行了面向能力培养的课程教学设计。完整的教学过程如图3 所示。

图3 基于“雨课堂”的能力培养教学设计

(一)课前自习

课前要求学生基于慕课与教材进行预习和练习。教师在课前通过雨课堂发布预习课件,列举教学内容、提出自学的要求与预习的问题。学生通过查阅教材、观看慕课与线上答题完成预习过程,在了解知识点的基本概念与简单示例的基础上,重点学习如何针对教学内容发现并提出问题,养成带着问题学习和思考的良好学习习惯。

(二)课中引导

课中使用“雨课堂”智慧教学工具,首先针对预习内容进行小测与答案解析,然后通过问题列举和案例分析导入新课内容,接着在阐释知识点的基本概念后演示与讲解程序,教学过程中根据学生的弹幕调整演示与讲解过程,在适当针对新课内容进行课堂练习与答案解析,最后小结并布置练习与预习作业。

课中大量采用启发式教学方法,比如在分析线上答题情况时,不是简单给出正误答案,而是通过提问提示学生应该如何分析与理解问题的本质。再进一步结合案例对相关的概念进行更为深入的解析,特别是从错误的答案中提取有价值的想法与问题,培养学生质疑精神的同时训练学生的思辨能力。而在随堂练习环节,除了通过智慧教学工具实时检验学生对知识的掌握程度,还可以据此调整教学过程。最后布置开放性的课后思考作业,可以用来引导学生调研教师推荐的网络资源,并通过对比分析辨析真伪,培养科学求证精神。

(三)课后探究

课后布置非标准化的思考作业,通过雨课堂、即时通信工具QQ 以及课程群与学生交互,对学生提出的问题给出解题思路的提示,而不是直接给出答案,引导学生自己思考和探索。这种依托现代信息技术的探究式的问题引导教学过程,不仅有助于培养学生的自主学习能力,还能全程记录教学数据,用于持续的教学改革。

通过上述课前、课中和课后的混合教学过程,引导学生从发现与提出问题出发,基于自身的基础与认知特点安排学习计划、调整学习节奏、检验学习效果,在学习知识的同时获得自主学习的能力。

(四)实践环节

计算机程序设计是一门理论与实践并重的课程,实践能力的培养至关重要。教研室设计了多维实验体系(图4)[8],根据分级实践原则,将实验内容分为章节实验与综合实验,分别在C/S 架构的传统机房、B/S 架构的自主实训平台以及“鲲鹏云”平台上进行,不同基础与学习进度的学生可按需选择,逐步提升编程实践水平,培养解决复杂问题的能力。

图4 多维实验体系架构图

计算机基础薄弱的学生从本地计算机软件的应用开始学习,同时在Dev C++等本地开发环境进行简单的语法练习;普通水平的学生直接从本地的语法练习开始,逐步过渡到在信息学院开发的自主实训平台的服务端提交较大的程序代码;有一定编程基础后,可以在计算机学院开发的课达在线测试平台检验规范化的程序设计水平,感兴趣的学生还可以在“智能基座”产教融合项目提供的华为云平台开展团队合作形式的项目导向类实验实践。

学生可以根据自己的基础和学习阶段选择不同的平台进行自主实践练习,从而达到培养规范化、有深度的编程实践能力的目标。

(五)考核体系

所有课堂置于统一的综合成绩评定框架下,期末笔试占总成绩的50%,过程考核包括:课前准备10%、课后练习10%、章节实验15%和综合实验15%。期末考试全校统一命题与阅卷,基础好的学生能展现自身优势,过程考核则交给各个课堂,不仅能督促学生加大平时的学习投入,基础差的学生通过努力也能体验获得感。综合成绩评定方式使得学生不再只专注于考试成绩,而是把更多精力放在学习过程中,逐步提升自己的能力素质。

四 改革成效分析

(一)分层教学的成效分析

基础班一方面增加了实验课时,在开始编程之前系统地进行计算机操作与常用软件的练习,另一方面加强了对慕课预习的要求,以使学生能在进入课堂前与其他班级掌握相近的知识基础。期中课堂调查表明,基础班学生能跟上甚至超过正常教学进度的比例超过80%,期末笔试卷面平均分与普通班的差距在4 分以内(百分制)。

进阶班压缩了常规教学内容,增加了软件工程、算法设计分析方面的知识与实践内容,课堂评价方面,“感觉收获较大”的比例比普通班高出12%以上。

(二)混合教学的成效分析

本课程面向我校所有专业开设,考虑到专业培养方案对程序设计教学的需求差异,优先在少年班学院、信息科学技术学院进行了混合教学的改革。由于有慕课预习的要求,为课堂授课节省了大量语法细节的讲解时间,教师更多把时间投入前沿知识与时代案例的讲解中,并大量增加了程序演示及随堂练习,激发学生更投入课堂的学习。不仅大幅加强了师生互动,也使得学生能更深入地理解课程内容,建立更完整的知识体系。

采用混合教学的课堂,学生对非标问题的解答更有广度与深度,2021 秋季学期期末笔试的优秀率比普通班高出9%,不及格率降低4%。

(三)分级实践的成效分析

通过在传统机房或个人机上的教材语法示例与课堂例题的模仿练习、自主实训平台上的单元能力实验与面向复杂问题的综合实验练习、“鲲鹏云”平台上面向前沿应用的高阶实验练习,逐步提高学生的编程实践能力。

采用分级实践后,各课堂综合实验的平均正确完成率从不足50%提高到70%以上,学生的编程实践能力有了显著提升。

五 结束语

本课程通过实施分层教学、混合教学与分级实践,在统一的教学框架、教学目标与综合评价体系下,不仅满足了计算机程序设计课堂上基础差异与学习进度不同的学生的个性化学习需求,也取得了显著的学习成效,使不同起点的学生都能体验到学习的获得感,得到能力的提升。

新工科人才的能力培养是一个长期的过程,一门课程的学习与实践只是其中的一个阶段。本课程的教学实践表明,在现代教育理念下采用现代教育技术能充分调动学习者的积极性,同时提高知识、能力与素质水平。课程的教学改革取得了一定的成效,但还有很多不足之处,需要在后续的教学过程中结合实际问题继续完善。

展开全文▼
展开全文▼

猜你喜欢

程序设计编程实验
记一次有趣的实验
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
做个怪怪长实验
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
NO与NO2相互转化实验的改进