中职编程类课程教学策略探究

2019-12-05 08:39温李芳
现代职业教育·高职高专 2019年9期
关键词:语句编程程序

温李芳

[摘           要]  大部分中职学生的英语和数学基础差,普遍感觉编程类课程难学,但作为计算机网络专业的学生还是不可避免地要学习一定的编程知识、掌握相应的程序设计技能。目前,广州市财经职业学校计算机类专业仅有计算机网络技术专业,开设的编程类课程包括App Inventor和Java程序设计等。因此,如何构建中职编程类课程有效课堂的策略是中职计算机专业教师必须思考与面对的问题。结合教学实践,谈谈对中职编程类课程教学策略的探究。

[关    键   词]  中职;编程类课程;教学策略

[中图分类号]  TP313                 [文献标志码]  A                    [文章编号]  2096-0603(2019)25-0280-02

一、中职编程类教学应该把抽象问题具体化、形象化

类与对象是面向对象程序设计中比较抽象的问题,在授课过程中,为讲清楚类与对象的概念以及两者之间的不同,我通过建立“学生类”把抽象问题具体化。

类表示类型,描述某一类事物的共性,Student表示学生类,所有的Student都有name,age和id属性。而对象,则表示类的一个具体实例,如通过“Student s1”创建类的对象s1。

为帮助学生理解类与对象,我在对象下面写了两个语句,如图1所示,并阐述语句Student.name="xiaowang";出错的原因在于我们不可以说所有的学生(即类)的名字叫"xiaowang",只能说某学生(对象)的名字叫"xiaowang"。

又如,在Java课程中学习for循环语句时,要求使用for循环求出1至100的和,学生无法理解程序,我把这个累加的过程类比为往存钱罐存钱的过程。sum=0表示一开始存储罐是空的,for(int i=1;i<=100;i++){sum=sum+i;}表示第1趟存1元、第2趟存入2元……第100趟存入100元,然后跳出循环语句。但还是有部分学生无法理解,然后我再通过在循环体内添加System.out.println("i="+i+",sum="+sum);这样的语句,促使学生理解for循环语句的执行过程。最后再把循环终止条件i=100改为i=5,通过完成表1里的i值和sum值的计算,进一步巩固for循环。

这样把抽象问题具体化、形象化的做法,能较好地帮助学生理解抽象概念,掌握知识。

二、中职编程类课程应增强知识与技能学习的趣味性与应用性

苏霍姆林斯基说过:我的学生学习时绝不是死记硬背,而是在游戏、故事、美、音乐、幻想和创造的世界中进行朝气蓬勃的智力活动。因此,教学中创建情境通过趣味性的案例展示,激发学生的学习兴趣与动力,从而再进行朝气蓬勃的探索,达到从老师要我学到我想学的转换。

中职编程类课程的老师经常会听到学生这样反馈:“老师,你的课我听懂了,但我就是不会写程序”。确实,听懂≠会做。“产生”远比“授受”难。在中职编程课堂上,听懂是老师引领学生通过书写每一句程序,边写边讲,学生动脑的地方不多。此时,老师类似司机,学生相当于乘客。会做是学生根据题目要求进行分析、画程序流程图并上机实践的过程。学生会暴露出许多他自己都没有想到的问题,如单词拼错、该大写的写成了小写等。还有一些学生,讲明白了,但一看密密麻麻的英文单词,就选择说,我不会英文,肯定学不会。因此,编程课,不仅仅需要讲明白原理,还需要帮助学习克服见英文如见老虎的恐惧心理,趣味性案例将增强学生克服困难的动力。

为此,在备课时注意准备一些与当前知识点有关的趣味案例,如给学生展示抖音上的表白小程序视频,较好地激发了学生的兴趣,也激发了学生克服困难的动力,在兴趣引领下,学生对相应知识点的理解也就更为透彻、掌握更为牢固。

华盛顿认为“读书若未加以应用,所读的书等于废纸”,这也强调了学以致用的重要意义,在编程类课程上,我们必须体现应用意识,强调学以致用,在教学实践中,必须注意所学的知识与实际应用之间的联系。例如,在App Inventor课程里,完成基础知识、简单案例的学习后,我会综合所学的知识点,引导学生为家里的老人制作相片通讯录、为小朋友制作诗歌学习APP、为自己制作GPS计步器和打地鼠等有实用价值的APP。

三、编程类课程应注重培养学生的发散思维

发散思维是指大脑在思考时呈现的一种扩散状态的思维模式,发散思维促使人从不同的角度去思考问题、探索多种可能的答案。在编程课程中,我常常通过刨根追底、一题多解等方式来激发学生的发散思维。例如,在学习for循环后,我向学生讲演了使用数组输出26个大写字母,主要编程思想如图2所示。要求学生在理解程序的基础上,尝试自行编写程序。

当学生完成该程序后,我又要求他们尝试使用其他方法实现。有些做得快的学生跃跃欲试,通过老师的思想引导或者网络搜索,最后,他们还写出了如图3至图5所示的三类程序。

通過这样举一反三的训练,学生较好地掌握了一维数组、for循环以及强制数据类型转换。

又如在App Inventor课程中,讲到功能与for循环一致的循环控制时(如图6所示),我先要求学生求出1至10的和,在学生完全理解的基础上,我提出了如何求1至10之间的奇数和与偶数和。为了更好地引导学生思考,在后续的课程中,我又引导学生探索如何求从1至N(N>1,由用户输入)的和?如何求1至N的积?最后还引导学生完成如图7所示的加法乘法器。

通过这样的层层追问,引导学生从多角度思考问题,培养其发散思維。

四、编程类课程应设置差异化的、分层次的上机任务与评分办法

计算机类实操课程的任课老师时常有这样的困惑:同样的任务,有些学生仅用10分钟就完成了,但有些学生用了40分钟都难以理解。因此,一节课完成后有学生感叹:“太简单了,都学不到东西”,与此同时,又有学生发愁“实在太难了,怎么努力都做不出来”。面对来自同一班级学生的不同呼声,如何满足不同层次学生的个性化要求呢?差异化的、分层次的上机任务是一种不错的选择,能较好地满足绝大多数学生的要求。

华国栋教授认为:“差异教学是指在班集体教学中立足学生、满足学生个别的需要,以促进学生在原有基础上得到充分发展的教学。”而维果茨基认为目标的设置必须符合“跳一跳,摘桃子”这样贴近学生“最近发展区”的任务。学生的基础与学习能力的不同决定了必须实施差异化教学。在编程基础课程中,讲到if语句时,我设置了如表2所示的新手、能手和高手闯关任务这样三个层次的任务。我要求学生根据自身的实际情况选择新手闯关任务或能手闯关任务完成,轻松完成能手闯关任务的学生可继续完成高手闯关任务。课堂成绩的计算也根据学生完成的不同情况采用如表3所示的分层计分法。完成新手闯关任务保障了课程的合格,能手闯关任务满足了基础好、学习力较强的学生需求,而高手闯关任务则激发了学生的斗志。另外,有些学生由于课堂玩手机或开小差被扣了课堂纪律分,课余时间还可以通过完成能手闯关任务,甚至高手闯关任务来得到较高的平时成绩。

以上是根据难易程度设置类似的题目。

另外,还可以通过类似以下的方式设置同一程序设计题的A、B、C、D四个等级的分层任务。如表4所示,要求根据输入成绩输出成绩等级,同一程序题,设置四个不同难度分层任务。

除了以上所阐述的四点,中职编程类课堂的教学还应注重精益求精的工匠精神的培养,同时还必须及时反馈,最好是通过微信等电子手段一对一指出学生在编程中的问题,针对性地指出错误所在,如果实在没有时间做到这一点,也应该在下一次课上展示作业成绩以及问题所在,从而帮助学生更好地学好编程类课程。

参考文献:

[1]华国栋.差异教学论[M].北京:教育科学出版社,2001-04.

[2]董国荣.如何培养学生的发散思维[J].读与写(教育教学刊),2011(7).

[3]刘君亮.基于计算思维的混合式学习模型研究[D].北京:北京交通大学,2014.

编辑 赵瑞峰

猜你喜欢
语句编程程序
玩游戏学编程,Blockly Games上手玩
给Windows添加程序快速切换栏
纺织机上诞生的编程
简化化学平衡移动教学程序探索
编程屋完成数百元万天使轮融资
学编程,先画画
“程序猿”的生活什么样
英国与欧盟正式启动“离婚”程序程序
基本算法语句
我喜欢