陈孟臻 何立功
【摘 要】中职升本学生普遍存在外语、数理等基础知识较为薄弱的问题,在学习C程序设计过程中受到单词、算法等因素影响增加了学习的难度。引入图形化编程方法可直观了解程序的结构及运算过程中变量的变化,降低了学习门槛,有利于辅助和引导学生学习C程序设计。
【关键词】图形化;程序设计;中职;本科
1.中职升本政策及中职升本学生的特点
为全面落实《教育部关于推进中等和高等职业教育协调发展的指导意见》,建立中职、高职、本科多层次衔接的职业教育体系,教育部在部分省市、自治区进行试点,辖区内普通高校可以对口中职招收毕业生,此类学生称为“中职升本生”。这类学生在中职阶段基本属于学习成绩优秀、综合素质最好的学生,他们珍惜读本科的机会,学习欲望比较强烈。但是因中职培养的目标和定位,学生学习实用技能的时间较多,用于理论学习的时间仅有1年左右,导致他们在外语、数理等理论知识上基础较弱。
2.中职升本学生学习C程序设计普遍存在的问题
我国高校大部分在大一期间开设C程序设计课程。大量英文和代码增加了中职升本学生学习C程序设计的难度,加上数理知识较为薄弱,使他们难以理解代码所表述的编程思想,使得这部分学生普遍觉得C语言难学。上机操作时常出现实验项目稍有改动就无从下手的情况。
3.国内外图形化编程发展概述
2003年美国麻省理工学院开发了Scracth图形化编程软件,使用者只需要将指令方框进行组合,即可创作出多媒体程序,趣味游戏,并能进行算法推演。2014年深圳创客工场科技有限公司推出基于Scratch的图形化编程软件——慧编程(mBlock),目前版本为mBlock5.0。2019年该公司推出基于H5技术的在线编辑器,用户进行在线编程。2020年受新冠病毒影响,使用信息化技术进行网络教学开始得到普及,同时在线图形化编程也得到受到越来越多学生的关注。
4.图形化编程在程序设计教学中的举例
针对中职升本学生在学习程序设计存在的问题,引入图形化编程的教学方法,有利于学生直观的理解代码,理清思路,建立算法思维。本文案例使用的图形化编程软件是mBlock5.0。
案例1:求和:1+2+3+....+100=5050。
做为学习循环语句的经典例子,数学家高斯快速求解1+2+3+..+100=5050几乎出现在各类编程教材上。C程序设计使用for循环求解代码如下:
for(i=1;i<=100;i++){sum=sum+i; }
传统教学中,教师会画出如图1所示的for循环流程图帮助学生理解程序。但是学生很难将流程图和循环结构建立起思维上的关联,大部分学生能看懂图但是看不懂代码。此时教师常常使用代入法进行演绎,即i=1的时候,变量sum等于2,当i=2的时候,变量sum等于3;不断重复如上操作,这样不利于培养学生的算法思维。
引入图形化编程的教学方法,设计如图2所示的程序,通过对比发现图2展示的图形化编程按照流程图进行结构化整合,逻辑清晰,直观明了,学生可以直观看到变量i和sum值的改变过程,有利于学生了解循环的过程,验证算法的正确性。
案例2:斐波那契数列的递归算法。
数学家斐波那契受兔子繁殖的启发,发明了著名的斐波那契数列。该算法的核心是当月份n>3时,当月兔子数等于上个月兔子数加上前个月的兔子数,即:F(n)=F(n-1)+F(n-2)。C程序设计函数定义如下:
int Fibonl(int n)
{if(n == 1 || n==2) return 1;
else return Fibonl(n - 1)+Fibonl(n - 2);}
学生常对函数自我调用感到非常困惑,使用流程图也很难表达清楚这种递归算法。而图形化编程可以直观地显示函数的自我调用过程,更有利于学生理解递归算法。斐波那契数列图形化编程程序如图3所示。
5.结束语
图灵奖得主狄克斯特拉说:“我们所使用的工具,影响着我们的思维方式和思维习惯,以及思维能力”。随着图形化编程软件的普及,大大降低了人们接触和参与编程的认知门槛,编程开始在中小学阶段普及。2017年教育部正式将编程、机器人、人工智能划入义务教育阶段“新课标”,逐步推广编程教育。可以预测,今后图形化编程软件将会得到更广泛的应用,甚至引入到大学课堂,成为广大学生学习编程和人工智能的常规工具。
参考文献
[1]林菲,马虹,龚晓君.“程序设计综合实践”六元融合实验教学改革探索[J].实验技术与管理,2020,37(01):149-154+158.
[2]彭之军.图形化编程融入程序设计教学效果分析[J].现代信息科技,2020,4(16):193-195.
[3]张猜,肖磊.C语言程序设计的课程教学改革与实践[J].教育现代化,2019,6(65):21-22.
[4]孙晓妍.C程序设计中循环结构的教学设计与探讨[J].软件,2014,35(03):219-221.
基金項目:广西职业教育教学改革研究项目——《民族地区应用型本科院校信息技术类专业中职升本人才培养模式的研究与实践》(编号:GXGZJG2017B166)。