应用型高校非计算机专业高级语言程序设计教改探索
2021-07-25蔡莉莉侯珂珂张洁
蔡莉莉 侯珂珂 张洁
摘要:为了探索解决应用型高校非计算机专业高级语言程序设计课程教学中存在的问题,提升教学质量,从教学目标、教学模式、习题设计、考核评价等方面进行了改革与探索实践,改革思路着力于发挥学生的主观能动性,提升其自主学习能力。课堂实践证明了改革方案能够促进学生学习的积极性,改善教学效果。
关键词:高级语言程序设计;非计算机专业;课程教学;教学改革
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2021)16-0077-02
开放科学(资源服务)标识码(OSID):
Exploration on the Teaching Reform of Advanced Language Program Design for Non-computer Majors in Application-oriented Universities
CAI Li-li1, HOU Ke-ke2, ZHANG Jie1
(1. Xinhua College of Sun Yat-sen University School of Biomedical Engineering, Guangzhou 510520, China; 2. Xinhua College of Sun Yat-sen University School of Health Sciences, Guangzhou 510520,China)
Abstract: In order to explore and solve the problems in the teaching of advanced language programming course for non-computer majors in application-oriented universities and improve the quality of teaching, reforms and practices have been carried out in terms of teaching objectives, teaching models, exercise design, assessment and evaluation. The reform thinking focuses on giving full play to students' subjective initiative and enhancing their independent learning ability. The practice has proved that the reform plan can promote students' enthusiasm for learning and improve teaching effects.
Keywords: advanced language program design; non-computer majors; course teaching; teaching reform
1背景
高级语言程序设计是非计算机专业中的大多数工科专业必修的一门专业基础课。随着信息技术的发展,掌握一门程序设计语言对于培养复合型研发人才非常必要,同时在面对工程实际应用问题时,算法思维和程序设计更是对解决问题的效率和精度具有至关重要的作用。而该课程针对计算机专业和非计算机专业的具体要求也有所不同,如何立足于教学专业的特点进行高效教学是针对该课程教学改革的重点,同时如何改善课程的教学效果也是目前广大教师广泛研究的课题。考虑到教学专业的专业特点,课程选择应用广泛的C/C++语言进行教学。
2 C/C++语言课程教学现状
程序设计语言类课程具有理论逻辑性强和实践应用性高的特点,对该类课程的教学既要重视理论教学也要重视实践教学,该课程的教学过程普遍存在以下几个问题:
1) 教学模式单一,传统的课堂通常采用教师授课、学生被动吸收的“填鸭式教学”模式来达到教授知识的目的。但是针对C/C++语言理论知识而言,相关概念抽象而不系统,学生很难快速融入教学环境,理解理论知识的逻辑和学习理论知识的必要性,而理论课程是进行程序设计的基础,这就导致学生的上机实践效果较差。
2) 过于集中式的讲述和关注语句的语法,比如涉及运算符、数据类型等基础概念讲解琐碎且难理解。教师在讲解过程中,经常会列举出大量的细节注意事项,难以让学生理解的同时也加重学生的记忆负担。导致学生的学习仅靠死记硬背,无法深层次理解[1]。
3) 忽视程序的“设计”过程训练,现有的C语言程序设计讲解多是机械式地搬运教材上的知识点讲述,举例死板单一,脱离应用实际,并未从真正的编程思维角度去训练学生编程能力,忽视对学生编程能力的培养[2]。
4) 验证性上机例程过多,例子程序照本宣科且忽略程序调试思维的培养。上机实践环节,学生大多数按部就班抄写课堂例题程序代码然后编译运行,程序报错时无法确认报错原因,缺乏定位错误及程序调试的能力。
3 教学改革与实践
针对以上教学过程中出现的问题,秉持以学生为主体的思想,对本课程进行以下4个方面的教学改革与探索。
3.1结合专业定位,优化教学目标
C/C++語言程序设计在内容划分上包含两大基本编程思想:面向过程的程序设计和面对对象的程序设计。面向过程的程序设计属于程序设计的基础理论,与计算机专业类型学生相比,生物医学工程专业学生在学习这门课程之前还未接受过系统的编程课程训练,且后续的专业课程如单片机原理及应用、嵌入式系统课程所依据的编程技术也是主要基于面向过程的程序设计思想。因此针对该专业学生教学目标调整为:培养学生面向过程的程序设计思想,掌握结构化程序设计方法。教学内容围绕面向过程程序设计进行授课,在夯实编程基础之后,为学生介绍面向对象程序设计的基本思想,学生可进行自学完成。
3.2引入线上线下混合式教学策略,优化教学模式
传统的线下教学模式较为单一,主要是以教师讲课,学生被动听课为主,无法发挥学生的教学主体作用。在当下“互联网+”的教学背景下,线上线下混合式的教学模式更是被大家广泛接受,且实践下来,学生反响良好[3]。针对本课程,线上线下混合式教学实践主要分为以下两个阶段:
1)线上教学阶段:线上教学平台繁多,雨课堂、腾讯课堂、学习通、QQ微信等多种媒介各有利弊。考虑到泛雅平台学习通为本校主流的线上教学平台,因此本课程的线上教学实践也主要是基于学习通进行展开。程序设计语言的前两章通常是介绍一些语法基础,变量和数据类型等非常琐碎的概念,这些理论知识繁杂,线下课堂教学往往要花费大量的课时讲解,且学生抓不住重点,教学效果也较差。因此课前会针对性录制一些课程导读及重要知识点的微课视频,提供给学生预习使用,同时会在泛雅平台发布本次课程的学习任务,如图1所示,可帮助学生系统化梳理庞杂的理论知识,构建自己的知识体系。
2)线下教学阶段:线上教学摆脱了时空的局限性,但是完全依赖线上教学并不能保障学生的学习效果。线下教学在教学过程中仍然发挥其不可替代作用,面对面的交流增加了与学生之间的沟通亲切感,同时针对学生提出的问题可做出即时响应,是线上教学有力地完善与补充。针对学生线上学习过程中遇到的疑难点,教师有针对性地进行讲解。同时结合已学知识定期发布课题任务,学生分组合作进行讨论、实现,这个过程仍然侧重发挥学生的主观能动性,教师不必面面俱到讲述所有的编程细节,学生在充分的课题实践中逐步探索发现,在培养沟通合作能力的同时也加深了对理论知识的理解。
3.3创设趣味题目,培养“编程”思维
教材中的例题设计一般多考虑数学类的应用,举例也偏数学化语言,缺乏一定的趣味性。这使得学生学习过程中,觉得枯燥乏味,难以激发学生的学习兴趣。因此在课程选择例题和习题方面,既要紧密结合实践考虑实用性,同时兼具趣味性。针对该要求,本课程在授课过程中,为了激发学生的兴趣,培养学生的编程思维,在例题和习题的选择上引入游戏类和生活类题目,如讲述循环时,以“猜数”游戏启发学生思考,让学生先自己尝试实现,这个过程学生的“头脑风暴”帮助学生巩固理论,锻炼编程思维;然后对学生编写代码进行点评,指出其漏洞,学生往往有种茅塞顿开、醍醐灌顶的感觉,学习过程是愉悦和充满斗志的。此外,像鸡兔同笼,韩信点兵等趣味题目也经常会用作习题,增加学生做题过程中的趣味性。为了提高学生定位错误的能力,培养学生的调试思维,在初学者常常容易犯错的点,如变量初始化错误、死循环与死语句与0比较问题、复杂情形的关系判断问题、遗漏边界条件测试、类型溢出等方面针对性地布置习题,有意识地让学生“踩坑”,锻炼他们调试程序的能力,加深对理论细节的掌握。
3.4多元化考核评价机制优化评价体系
以往针对学生的成绩考核,主要包含三大板块,即平时出勤、上机和期末考试成绩,分别占比10%、20%、70%。这样的评分机制,导致期末占比过高,使得学生平时积极性不高、仅到快期末时才开始突击,且最终分数反倒与平时表现突出的学生相差很小,考核评价不具科学性[4]。因此,针对本课程的考核引入多元化的评价机制,增加线上学习视频、平时问题讨论,创新实验完成情况、小组合作评分等考评方式,加大平时教学过程的评价占比。优化后的成绩考核为平时成绩占比30%,其中平时成绩除包含出勤外,还增加了上述几项的考核占比,此外,上机占比为20%,期末考试占比50%,从而激发学生平时学习的动力,提高评价科学性。
4 结束语
编程语言设计类课程的理论逻辑性强,实践性要求高,对于学生的学习自主性具有较高需求。通过以上教学改革措施,致力于发挥学生的教学主体作用,激发学生的学习积极性和提高其自主学习能力。在接下来的教学实践中还将进一步深化教学改革,完善教学方法,提高教学质量。
参考文献:
[1] 梁锐,余波.以学生为中心的C语言课程教学改革初探[J].现代计算机,2019(35):74-76.
[2] 严仍荣.新工科背景下“C程序設计”课程思政教学研究与实践[J].计算机时代,2020(12):76-78,81.
[3] 赵厚宝,付剑锋,李琥.《高级语言程序设计》课程教学改革的研究[J].高教学刊,2020(9):137-139.
[4] 兰聪花,何辉.“C语言程序设计”课程教学改革与实践[J].工业和信息化教育,2020(4):29-32.
【通联编辑:代影】