新工科背景下面向过程编程课程改革与建设

2021-06-16 11:31解绍词
科教导刊·电子版 2021年10期
关键词:工科编程过程

马 创 刘 俊 解绍词

(重庆邮电大学软件工程学院 重庆 400065)

1 背景

2018年,在成都举办的全国高等学校本科教育工作会议上,教育部进一步强调要发展新兴工科、改造传统工科,统一部署了新工科的建设方案。随着新工科建设方案的实施,许多新的教学理论、方法与模式在高校本科教学过程中得到了研究与实施。《编程基础(1)面向过程》是软件工程学课本科培养方案中重要一门课程,该课程入门简单,但实践性要求高,很多知识点学生只能记忆,不易理解,该课程不仅要求学生针对现实问题进行抽象和编码、能独立排查程序错误,且对计算机硬件相关知识需要基本了解。同时,本课程也是软件工程学科和计算机相关学科的一门基础课程,它不仅是计算机原理、操作系统、数据结构等其它课程的必要先修课,而且对于学生掌握程序设计一般方法和技术,熟悉上机操作和程序调试技术都有重要作用。

目前,从学生就业和相关课程教学反馈回来的信息,直接指出了课程在培养学生独立运用程序解决实际问题时的能力欠缺。由于受学时和传统教学方式的限制,教师只能在课堂上教授浅表层的知识点,没有时间进行深入学习。因此,要想彻底改变这一格局,教育者要意识到,课堂教学活动中最宝贵的资源是师生面对面相处的有限时间,这些时间应该被用于实现深层次的学习。在大量优质的MOOC、SPOC出现以后,学生完全可以借助新的教学手段在课前进行浅表层学习,老师则负责指导学习在课堂上进行基于问题、基于案例的深度学习,这种学习可以以实验、研讨、报告、辩论等形式展开,教师在整个教学活动中,只是一个引导者、组织者。

2 存在的问题

传统教学方法存在一定的优势,如:学生可充分利用课堂时间完成相应教学内容的学习、需要掌握的知识点清晰明了等。但是传统方法在激发学生积极性、创造性方面存在不足。新工科提倡创新性、应用型人才的培养,以创新性思维推动应用型人才改革,因此传统教学方法难以适应学科发展的必然趋势。目前《编程基础(1)面向过程》课程教学存在的主要问题有:

2.1 教学过程对实践部分强化不够

任何工程学科教育都离不开理论与实践相结合的教学理念,理论学习是实践的基础,实践是理论学习的最终目标。目前,我校在面向过程程序课程设计与教学的过程中对实验实践的教学仍停留在依靠实验指导书的阶段,使实验课程难以达到培养学生解决实际问题能力的目的,禁锢学生的思维,这与新工科概念中创新人才培养的核心理论相悖。学生脱离了实际问题的环境,对所学知识的理解和掌握仅仅停留在知识点的程度,如何将实际问题抽象为计算问题,进一步表达为编程语句这一过程,难以做到融会贯通。

2.2 考评环节形式单一

新工科意义下的创新人才应具备更高的综合素质,因此需要更加完善的考评机制作为衡量标准。现有的面向过程编程课程期末考试区分度不高,考试形式与往年较为相似,导致学生平时上课仅仅学习相关理论和书本知识,而忽略实际动手能力的培养,也可以顺利通过考试。与此同时,除了考试考核的内容与方式需要进行适当调整外,实验实践过程中的打分环节也需进一步细致化、科学化和全面化。

2.3 “教学软件”个性化体现不强

教学软件是一个包含教学计划、内容与方法等多方面的概念。传统工科教学常常囿于教学计划的约束在固定的课时里进行“填鸭”式教学。以面向过程编程课程为例,教师们把课堂教学重点放在对语法、语义掌握与注意事项等方面而不重视结合具体程序进行讲解;在编程实践中将教学重点放在编程技巧和程序调试上而没有结合生活实际去引导学生接触与时俱进的新硬件、新程序。另一方面,传统工科班级体量较大,大班教学的优势在于方便教师控制教学进度、课堂管理以及考核评定,但是缺点同样明显。面向全体学生的集中授课很难对每一位学生提出有针对性的指导,无法在教学过程中进行针对性施教。

针对上述存在的问题,本文结合实践经验,从教学的方法、手段、内容等方面进行阐述,以培养学生实际问题解决能力为核心,构建面向过程程序设计教学改革与建设新的参考方案。

3 改革方式

结合新工科背景的要求与现代教学的实际情况,传统工科的课程改革方法应该紧扣上述的几个共性问题,以问题树立风向标,为课程改革之路指引正确的方向。同时,由于问题存在于多个方面,故其对应的解决方法也应是多角度的,依此提出“多角度融合式课程教学改革框架”。

3.1 多样化教学模式

采用单一的期末考试作为考核评价手段,往往出现临时抱佛脚的学习行为。本课程组对教学环节进行了改革,课程考核更加重视过程性考核。理论课的具体考核如下:(1)出勤及课堂表现:10%;(2)课外编程作业:20%;(3)章节平均测验成绩:30%;(4)期末考试40%。实践课程的具体考核方式如下:(1)出勤及表现:10%;(2)实验完成情况和实验报告:30%;(3)实践项目成绩:30%;(4)期末考试成绩:30%。其中实践项目分配采用分组方式,按小组分配实验项目任务,引导学生进行团队协作,通过团队合作完成项目结果验收,由教师综合面向对象程序设计能力、系统分析能力、创新能力及自主学习能力给出小组成绩,具体各项指标比例如表1所示。通过考核方式的改革,提高学生的工程能力、创新能力和团队协作能力,以适应新工科对计算机类人才的要求。

表1:考核参考评分

为了提高学生的学习兴趣,课程组每次上课中都会播放一段其他知名高校的名师授课视频,课后和同学们交流,引导同学提出建设性意见,包括:课程内容,授课方式等,老师通过收集信息来不断改进教学方式。

本课程组将顺应全球教育改革趋势,将线上学习引入全校理工科类的《编程基础(1)面向过程》课堂,要求学生初步适应线上、线下的混合学习模式,并且对于学习情况定期考核。这在一定程度上,增强了学生自主学习的能力,为想要学习的学生提供了非常好的课下自学的途径。

3.2 实现教学全过程积极互动

师生互动现象在课堂教学中是客观存在的,贯穿课堂教学的全过程。根据其产生效果的不同,可以把师生互动分为正互动和负互动。正互动就是指能取得积极效果的互动方式,即有效的师生互动;负互动是指不能取得积极效果,甚至是负面效果的互动方式,即无效或影响教学效果的师生互动。

寻找“兴趣点”,以趣引动。兴趣是“最好的学习助推器”。教学中,教师要善于抓住符合学生身心特征的“兴趣点”,以学生喜爱的方式开展教学活动,激起学生参与互动的欲望,达到提高师生互动有效性的目的。如在学习《数组》内容时,结合电子游戏《英雄联盟》的人物属性数值存储方式,所需变量数量等展开介绍,引导学生积极主动对不同的数据组织存储方式展开探索。

创造“思维点”,以思引动。数学思维的训练始终是编程语言教学的核心任务之一。然而,由于学生的个体差异和教学内容的区别,有些知识中的思维过程比较难以把握。此时,教师可以有意识地参与学生的讨论,帮助学生学会用数学的方法思考问题,把握学生学习过程中的“思维点”。在学习《函数》时,对比编程函数和数学中计算函数的异同,让学生理解函数产生的逻辑过程,函数的本质作用以及如何将逻辑推理过程转化为计算机语言表示,以树立面向过程编程的思维模式,把握以外在编程语言形式培养内在编程思维的目的。

3.3 个性化、差异化培养模式

做到学生课外自主学习、单元测试、课堂表现、课后作业、实验环节的全过程积极互动,既能督促学生平均分配学力,又能助于教师根据学生实际学习情况,适时调整课堂上课的内容、进度、深度、广度。

整个教学过程有个人完成环节和团队完成环节,例如:单元测试、课后最低练习数量及期末测试,都是个人完成环节,保障了每个人能够达到学习要求,避免了“混水摸鱼”和“滥竽充数”的情况。而课前的资料查询、PPT制作,课堂上的给老师和同学们上课以及课后习题讲解,每个团队甚至每个成员可以根据兴趣以及天赋差别进行不同层次的深入学习,实现了因材施教、个性化、差异化教学。

面向毕业要求的程序设计课程应同时注重学生个人编程、调试能力的培养,也应注重学生团队协作、沟通能力、创新能力的培养。课程组利用每次课前的团队题目、课堂的讲述及讨论环节,给学生提供了两条并行的能力锻炼线路,有助于学生能力的全面培养。

4 结语

随着计算机软件技术的快速发展,越来越多的高级编程语言成为软件工作者需要掌握的必备语言。但是面向过程编程一直以来都是编程入门语言之一,学好面向过程编程,有助于面向对象高级语言的学习和面向对象思维的形成,通过面向过程编程的学习,培养学生在编程过程中的计算思维,有助于学生深刻领会把握程序语言与逻辑思维之间的关系,对学生快速学习其他高级编程语言的能力起到促进作用,为学生提供学习编程语言更高的视角。同时,教学目标的调整、教学内容的优化、新的教学方法和手段的运用、考核机制的完善等措施顺应我国当前高校人才培养的目标,为学生提供了更加个性化的广阔选择空间。

猜你喜欢
工科编程过程
编程,是一种态度
编程小能手
纺织机上诞生的编程
描写具体 再现过程
临终是个怎样的过程
在这个学习的过程中收获最大的是哪些,为什么?
工科研究生教学模式的思考与创新