APP下载

基于新工科人才培养的C语言程序设计教学改革研究

2020-04-01张宁李敬辉

发明与创新·职业教育 2020年1期
关键词:计算思维程序设计案例教学

张宁 李敬辉

摘 要:在新工科背景下,针对传统C语言程序设计教学过程中存在的问题,以能力培养为目标,结合专业应用需求,提出了基于案例教学、改革教学模式、建立多维评测机制等方法,旨在提高学生的计算思维能力和解决复杂问题的能力,能够应用程序设计解决专业问题,为学科交叉融合打下基础。

关键词:程序设计;计算思维;案例教学

引言

为适应新经济发展和国家发展战略,2017年教育部在新时代全国高等学校本科教育工作会议上,强调了发展新兴工科专业、改造升级传统工科专业的规划[1],并于 2 月 18 日、4 月 8 日和 6 月 9 日分别在复旦大学、天津大学和北京相继组织召开了高等工程教育发展战略研讨会、新工科建设研讨会、新工科研究与实践专家组成立暨第一次工作会议,分别形成了“复旦共识—新工科建设”、“天大行动—新工科建设行动路线”、“北京指南—新工科研究与实践项目指南”[2]。新工科建设的提出和实施加快了高等学校专业建设改革的步伐,进一步推动了新的教学理念、新的教学手段和新的教学模式在教学中的尝试和完善。

新工科的人才培养目标中指出,要培养创新能力强、工程实践能力强且具备国际竞争力的高素质复合型人才。C语言程序设计作为工科类专业的实践应用型课程,在人才培养中有非常重要的地位。C语言程序设计不仅有利于培养学生分析问题、解决问题的工程设计能力,还可以与专业应用相结合,提高学生的工程实践能力和创新能力。在新工科的人才培养目标下,课程要适应人才培养的需要,更新教学理念和方法。为此,本文提出了基于新工科人才培养的C语言程序设计教学改革,从分析教学对象入手,探索适合学生和人才培养需求的教学新方法、新模式。

一、教学对象分析

C语言程序设计授课对象多为大学一年级新生,尽管随着教育水平的提升和信息技术产品的普及,新生对计算机的认识和应用能力较以往有明显提高,但对于计算机的基本工作原理、信息的数字化表达认知基础仍然比较薄弱,这对程序设计构成了很大的障碍。学生难以理解计算机执行程序的基本原理和程序设计的基本思想,因此,学生出现的问题是,能够看懂例题,但不会动手设计程序,看到题目无从下手,造成入门难,学习兴趣缺失,逐渐形成恶性循环,导致学习状态不好,影响后续专业课程的学习,甚至影响学习态度。

程序设计语言的语法知识较多,学生刚开始学习对于琐碎的语法规则不熟,语法错误频出。常见的问题例如:花括号或圆括号不匹配,关键字书写错误(例如main写成mian),中英文标点符号错误(例如“:”写成“;”),输入输出语句格式错误屡见不鲜,一个程序多个main函数等。尽管都是简单的语法错误,但学生实践少,对语法生疏,难以自行发现错误所在,导致上机调试程序编译通不过,程序执行不了,浪费大量时间,学生受挫。

学生对知识的灵活运用能力不够娴熟,例如,学生编写程序总是习惯把所有的功能写入主函数,而不是将各功能独立编写成函数,形成模块化的程序设计,对函数的理解不透彻,不清楚为什么要使用函数,怎样自己设计函数;另外,对于同一类题目,如数组中数的逆序存储与回文的判断,尽管求解方法类似,但学生缺乏举一反三的能力。究其原因在于,学生对知识的理解不够深入,没有理解知识的本质。因此,授课目标不仅在于使学生学习一门程序设计语言,更重要的在于使学生理解语法的本质、计算机执行程序的基本原理以及程序设计的基本思想。培养学生分析问题、解决问题、灵活应用知识的能力。

二、案例教学

传统的教学方法更多关注语法规则,学生面对繁多的语法规则感到枯燥乏味,极易丧失学习情趣,计算思维和编程思想的培养也无从谈起。而案例教学能较好地解决这些问题,通过精心总结和设计,利用生活中常见的问题,将知识贯穿于问题中。课程不再以枯燥的语法为主线,而是以案例为牵引,通过提出问题、分析问题、解决问题传授解决问题的方法,培养学生分析问题、解决问题的能力。语法知识穿插于问题求解过程中,使得语法不再单调、枯燥,也突出了课程的重点是学生能力的培养。

授课案例可以是生活中的实际问题,例如出租车分段计费、空气污染指数计算、物品价格查询等;也可以是C语言的经典有趣案例,如兔子繁殖问题、水仙花数、素数判断等;当学生有了一定基础后,还可以采用综合性的案例,如学生成绩信息管理系统,将所学的知识贯穿起来。通过解决实际问题,学生不仅对课程产生浓厚的学习兴趣,还可以深刻感受和体会到程序设计的用途。

案例讲解要注重学生思维能力的培养,关注问题的求解思路和步骤,使学生学会解决问题的方法,而不仅仅是一个具体问题的求解。例如,判断输入的任意整数n是否为素数,是则输出“YES”,否则,输出“NO” 。对于该问题,应首先分析问题的求解思路,然后一步步求解,初始的大体步驟如下:

通过一步步分析问题,建立起问题的解决步骤,通过程序设计语言将步骤加以实现。这个过程中,更注重学生思维能力的培养,使学生掌握分析问题、解决问题的方法,达到“授之于渔”,而不是“授之于鱼”。

三、线上线下结合的教学模式

程序设计课程入门难,内容多,要达到掌握程序设计方法并能够灵活运用的教学目标,仅仅靠课内学时远远不够。而MOOC和SPOC的新型教学模式为以上问题的解决提供了可能。C语言的语法知识和每一章节的基础知识难度较小,学生通过自学可以自行掌握,因此,这部分内容可以借助网上的MOOC资源由学生独立完成。课上的学时则用来对基础知识进行归纳,并在此基础上扩展延伸。通过案例将基础知识加以应用,同时开展翻转课堂,给学生更多参与课堂的机会,针对相同的问题提出不同的见解,拓宽了思路,通过思维的碰撞,对问题认识更加深刻。学生课下完成任务的方式,不仅需要学生对知识查阅、整理和归纳,还需要团队沟通合作,既能够锻炼学生解决问题的能力,也能培养学生的团队合作精神。

程序设计能力的提高离不开实践,除了课内的实践环节,还应为学生提供课下练习的平台,通过程序设计在线评判系统(OJ)在线布置和提交作业,学生的程序代码通过OJ系统在线评判,使得学生的作业能够及时得到反馈,知道对错,从而能够及时分析解决,从而不必单纯地依靠老师来检查、指导。作为老师,则通过OJ系统可以实时查看学生的作业完成情况,了解学生的掌握情况和薄弱环节,从而有针对性、有重点地讲解。

四、建立多维评价机制

传统的教学评价模式以期末考核为主,学生的学习过程不能充分体现,仅凭期末一次考试无法衡量学生学习情况。为客观衡量学生的学习效果,应注重学习过程,为此,引入多维评价机制,多角度地评价学生的学习效果,促使学生把功夫下在平时,切实保证学习效果,达到人才培养的目标。

课程的综合成绩包含以下几部分:

(1)出勤:占5%。

(2)作业(10%):分为书面基础知识练习作业和OJ在线编程作业。

(3)上机限时实验(10%):上机课上作业,需要在课上规定时间内完成。

(4)阶段测验(25%):共有以下阶段测验:流程控制结构、函数、数组和指针、结构体和文件。

(5)期末(50%):理论测验+编程测验。

五、结语

通过基于新工科人才培养的C语言程序设计的创新型教学改革研究,对C语言程序设计的课程教学模式进行了实践探索。将以教师讲授为核心的传统课堂教学活动组织形式,变为以学生的自主学习为主导,极大地提高了学生学习的自主性,并且将教师从繁重的课堂教学中解放出来,更多地去关注C语言程序设计课程的教学方法以及教学资源的优化、组织和管理,提高教学效果。今后,我们将进一步结合我院学生的特点,完善教学内容、方法和手段,提升学生的专业实践应用能力和综合创新能力,满足社会、企业对新工科人才的需求。

参考文献

[1] 杨业娟,郑棣,史汶泽,等.基于新工科人才培养的C语言程序设计创新型教学改革研究[J].计算机时代,2019(10):80-82.

[2] 乔加新,梁后军,魏苏林.构建全方位分层程序设计类课程创新教学体系:基于新工科理念的计算机专业[J].黑龙江工业学院学报(综合版),2019,19(9):20-24.

猜你喜欢

计算思维程序设计案例教学
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究
算法的案例教学探析
浅谈艺术专业学生计算思维能力的培养
案例教学在机械创新设计课程中的应用
马克思主义基本原理概论课案例教学的几点思考