APP下载

兴趣驱动的程序设计课程教学方法探索与实践

2022-11-21李第秋

科教导刊·电子版 2022年28期
关键词:运算符初学者代码

李第秋

(广西机电职业技术学院,广西 南宁 530007)

1 高职程序设计基础课程现状

1.1 程序设计基础课程的学制设置

高职计算机类相关专业都会在一年级开设一门基础编程课,作为学习编程的入门课,为后续的其他课程打基础。不同的专业可能选择不同的编程语言(C/C++、JAVA、C#),一般安排48-64课时的理实一体课及30课时的综合实训课。作为大学阶段的第一门编程课,即便学习最基本的语法知识,掌握最简单的编程技能,对于一个刚踏入大学的新生来说,仅仅依靠有限的课堂时间掌握一门语言是不现实的,必须调动学生的积极性,发挥学生学习的主动性,让他们喜欢学习,自觉学习,从而挖掘其他空闲时间学习,弥补课堂时间的不足。

1.2 教材内容追求大而全

教材作为面向全国公开发行的刊物,适合一般意义上的读者,很难满足特定学校特定水平的学生需求,没有针对性。教材基本按照语法顺序展开,中间穿插一定的语法应用案例,为了体现科学性和严谨性,应用举例只能用科学严谨的术语来描述,形象性生动性不足,不能贴近生活,抽象乏味缺乏吸引力。过度突出对于初学者不易理解和掌握的技巧。为了体现科学性和完美性,会把教学案例设计得功能强大逻辑严密,必然导致数量可观的代码,大量的代码往往让初学者分不清主次,分不清主干代码和附加功能的代码,弄不清代码因果逻辑关系,上机操作时只能机械地按照教材罗列的代码从头到尾逐行敲入并运行。书本的代码是经过修改完善的代码,是在实现基本功能后不断添加代码实现附加功能,最后形成的尽善尽美无懈可击的案例,书本鲜有展示案例功能由简单到复杂的开发过程,也鲜有展示代码由少到多的动态开发过程,教材的代码是“死”代码,只有通过动态案例教学方法,把完美的案例分解为难度按阶梯递增系列案例,然后从简单的案例开始学习,让学生看到从简单到复杂整个开发的流程,使案例活起来,从而激发学生的学习兴趣。

1.3 新生质量逐年下降

中国大学连年扩招,招生数量逐年增多,招生比例也逐年增大,录取比例从 1977年的 4.74%到 2020年的81.05%,尤其是2019年的百万扩展之后,录取比例达到了前所未有顶峰。高职录取是在本科录取之后,高职招生质量逐年下降成为必然趋势。2019前高职学生主要是从高考统考中录取,学生基础知识、学习能力相差不大,思想单纯方便管理。但在扩招之后,放开了中职生的招生比例限制,同时面向复员退伍军人、农民工、下岗失业的社会人员招收高职学生,多种生源的学生混杂在一起,知识水平参差补齐,学习态度千差万别。扩招后,学生的数学基础差,逻辑思维能力比较薄弱,外语水平偏低,面对英文界面的开发工具和英文代码,普遍感到信心不足,甚至恐惧。学习态度方面,由于没有奋斗目标,学习的积极性不高,自我管理能力差,把学习当成任务,提不起学习的兴趣[1-2]。

2 兴趣驱动教学法的探索

为了解决高职编程入门教学中存在的问题,作者尝试了各种各样的方法。在多年的教学实践中发现:单靠改革课程设置、改革教材内容、改革教学方法等这些外部因素很难收到理想的教学效果。必须改变学习的主体——学生的学习态度和学习积极性。只有学习态度端正、兴趣高涨才能有好的学习效果。正如教育家卢梭的名言:“问题不在于教他各种学问,而在于培养他爱好学问的兴趣,而且在这种兴趣充分增长起来的时候,教他以增长学问的方法”[3]。

针对课时间少,内容多任务重,学生基础薄弱,学习积极性低的问题,作者进行了多年的改革和尝试,改革授课内容,对教材内容进行重新组合,按照零基础初学者的认知规律组织教学内容。改革教学方法,摒弃一成不变、守旧僵化的教学模式,根据不同的教学内容采取灵活的教学方法,尽可能激发学生的学习兴趣。

2.1 良好的开端是成功的一半

俗话说:良好的开端是成功的一半。各项工作如此,教学也不例外。德国教育家第斯多惠指出:“教学的艺术不在于传授本领,而在于激励、唤醒、鼓舞”。一门课有个好的开端,像一场戏有一个引人入胜的序幕。教师巧妙地导入新课,可激发学生的学习兴趣,扣住学生的心弦,点燃学生思维的火花,引发学生强烈的参与欲,促使学生以最佳心理状态进入新课的学习[4]。

上好第一次课。人与人交流的第一印象很重要,第一堂课是师生第一次见面,对课程的后续教学有极奇重要影响。学生对一门新课多少都抱有好奇心,对老师也有好奇心,所以第一次课就要锁定学生的兴趣,第一次课的内容安排就显得十分重要,要通俗易懂、妙趣横生、互动性强。许多教材开篇就是语言介绍、开发工具、语法知识、简单入门例子等,对于一个初学者,很容易就被这些抽象、高深莫测、似懂非懂的知识概念弄糊涂,过多的语言特征、语法知识介绍对于一个初学者来说是虚无缥缈的,没法落到实处,没有得到真实的体验。开发工具对于语言的学习是很重要的,但许多教材把开发工具的所有菜单及功能详细介绍了一遍,有点像软件使用说明书。对于没有学习过任何编程语言的新生,过多过细的介绍语法或工具都只会产生厌烦,消耗最初的好奇心和积极性,只会让初学者云里雾里没头绪。笔者的做法是选择一个简单的动画案例——“移动的按钮”作为C#程序设计第一节的题材,以案例为载体,对用到的语法知识、工具的功能进行有选择地介绍,摒弃传统的总体介绍,开发工具详细讲解,小小的动画案例把学生引入编程的殿堂,学习积极性高,学习热情高涨。

每次课的开头也很重要。每门课的开头很重要,每次课的开头同样重要。课堂一开始,笔者首先演示本次课要完成的动画效果,让学生带着目标学习,在完成目标编程的过程中学习预先设计的知识和语法,学以致用,边学边用,避免学用脱节,避免一味学习语法知识造成的枯燥乏味。这里实际上就是运用了目标导向教学法,教为主导,学为主体,训练为主线的教学原则。教学过程是师生共同参与的过程,并且应时刻把学生放在主体地位,即学生是演员,教师是导演,按教案剧本进行演练。

2.2 知识迁移教学法

所谓知识迁移法就是利用新旧知识间的联系,启发学生进行新旧知识对照,由旧知识去思考、领会新知识,学会学习的方法。作者在讲解数据类型和运算符时就采用知识迁移教学法,计算机与数学有着天然联系,为了讲解C#中的运算符,先回顾了数学中的数据类型,高中阶段的数据比较单一,就是阿拉伯数字组成的数,运算符有加减乘除等,编程世界里除了数学中的数值计算,更多是进行信息处理,增加了字符数据、字符串数据和布尔型数据,数据类型增多,必然导致运算符的增加,引导学生思考布尔型数据的运算符、运算规则和运算的结果,从而认识逻辑运算符及逻辑运算的结果。数学中的数值有大小关系,在编程世界中的字符及字符串也有前后关系,从而引导学生掌握比较运算符。通过这样引导,学生不但掌握了逻辑运算符和关系运算符的运算规则,更明白逻辑运算符和关系运算符产生的背景,明白了运算符与数据类型之间的联系,避免纯粹讲解逻辑运算符的运算规则的枯燥,培养了学生自主探索精神,激发学生探索未知世界的浓厚兴趣,从而较好地帮助学生从已有的知识过渡到新的知识。

2.3 类比教学法

各种编程语言都有许多抽象的知识、概念和算法。纯粹从定义的文字不好理解,通过转换成学生熟悉的身边的事物,帮助学生理解抽象的描述,把抽象复杂的知识简单化、形象化、趣味化,从而达到事半功倍的教学效果[5]。例如变量的讲解,把变量类比成容器,容器有功能、形状和大小的区别,容器是有类型的,同样变量也是有类型的;交换两个变量X1、X2的值,初学者很容易犯这样的错误:X1=X2,X2=X1,笔者让同学们思考如何调换两个相同大小容器里不同颜色的液体,就会想到借助第三个容器进行交换,从而明白交换两个变量的值可以借助第三个变量实现,在此基础上抛出一个课外思考题:不借助第三个变量怎么交换两个变量的值?其中一种算法是:X1=X1+X2,X2=X1-X2,X1=X1-X2,引导学生深入思考,激发学生的学习积极性和强烈的求知欲。讲解类与对象时,通过图纸与房屋进行类比,从而理解类与对象的关系。在编程教学过程中,作者尝试把许多的概念、算法都可以用类比法进行讲解,用学生熟悉的东西类比新的知识,从而深刻理解新的知识,帮助学生记忆和理解,活跃课题气氛,激发了学习的兴趣,收到了很好的效果。

2.4 渐进式动态案例教学法[6]

渐进式动态案例教学法就是根据学生的基础知识和思维能力,把一个复杂较难的案例分解成难度或复杂度上形成阶梯变化的系列案例,案例间难度适合学生的实际情况。老师引导学生从最简单的案例做起,掌握了最简单的案例后再做稍微复杂的案例,逐步深入,挑战自我,最后把完整的案例吃透。学生每完成一个阶梯案例都有成就感,有战胜下一个困难的胆量和勇气,大大地激发了学生的求知欲和学习兴趣,形成了学习的正反馈,达到了学习的最佳境界。

案例:黑底白字的字幕屏幕保护程序(以C#编程为例),运行效果是有一行白色的文字在黑色屏幕里自由移动。这是一个动画程序,涉及控件的属性、事件、条件语句等大部分基础编程知识,对于初学者来说,有一定的难度,但把案例分解成若干个从简单到复杂的版本,每个版本增加一个知识点或添加一个功能,从低版本的案例开始学习,逐渐过渡到最后的高版本,由于这些版本设置了合理的梯度,大大地降低了学习的难度和复杂度,在老师的引导下轻松完成每个阶梯案例,每完成一个阶梯案例都增加了自信心和成就感,拿下整个案例就是顺理成章的事情。幕屏字幕保护程序的分解如表1:

表1 字幕保护程序的分解表

3 结语

兴趣是最好的老师,根据学生的基础知识、学习能力、逻辑思维能力,对不同的内容采用合适的教学方法激发学生的编程兴趣从而调动学习的积极性,把被动学习转变为主动学习,把枯燥的知识趣味化,把抽象的概念形象化,把复杂的编程过程简单化,把僵死的代码动态化。根据学生的情况对案例进行分解,把案例按难度分解成若干个阶梯案例,从简单到复杂演变学习,实现案例的活化学习。精心设计与学习内容、学习进度密切相关的有趣且有用的动画案例让学生演练,挑选了屏幕保护程序、液晶屏幕坏点测试程序、龟兔赛跑游戏、石头剪子布游戏作为学习案例,学生感觉非常有趣,学生成功地完成了这些实用的案例后,体会到编程的乐趣,认识到编程的用处,极大地增强了学生的自信心和成就感,激发了学生的学习热情。在整个学期的学习过程中,成功开发了许多实用的工具和小游戏:五子棋游戏、贪吃蛇游戏、专注力训练软件。通过课堂调查发现,经过一个学期的学习之后,打算从事与编程相关工作的学生大幅度增加,兴趣驱动教学法起到了十分有效的作用。

猜你喜欢

运算符初学者代码
老祖传授基本运算符
初学者,赶紧看过来
创世代码
创世代码
创世代码
创世代码
浅谈如何提高初学者的钢琴演奏能力
初学者如何临写《九成宫醴泉路》
给会计初学者的几点实用性建议
C++运算符重载剖析