算法与程序设计模块教学策略探究

2021-10-16 20:29刘淀梅
广西教育·B版 2021年5期
关键词:程序设计教学探究算法

【摘 要】本文针对高中信息技术课程的算法与程序设计模块教学难的问题,论述算法与程序设计模块教学策略:根据教学内容因材施教,采用任务驱动教学法;充分利用第一节课,加强算法思维训练;与其他学科融合,夯实程序设计语言基础;对知识进行拓展延伸,提高学生的综合实践能力。

【关键词】算法 程序设计 教学探究

【中图分类号】G  【文献标识码】A

【文章编号】0450-9889(2021)18-0140-02

高中信息技术课程的算法与程序设计模块,一直以来都是教学的重难点,程序设计的概念和思维方式对学生来说基本都是全新的,比较难理解,学生不知道如何运用这种思维来分析解决问题,而教师采用传统的讲授法教学效果不佳。高中算法与程序设计课程的教学目标是让学生在学习过程中,运用计算机思维与方法解决生活和学习的实际问题,鼓励学生将所学的知识积极地应用到各项实践活动中,在实践中创新,在创新中实践;对算法和程序设计的作用和地位有清晰的认识,进一步体验算法思维;掌握使用一种程序设计语言编制程序的能力。因此,在算法与程序设计的教学中,最重要的是进行基本方法的教学,加强学生的算法思维。本文基于笔者对算法与程序设计模块教学的思考,提出相关教学策略,以便和同行交流与探讨。

一、根据教学内容因材施教,采用任务驱动教学法

为了激发学生的学习主动性,调动学生的学习激情和内在潜力,在教学过程中,教师可采用基于“任务驱动”的小组协作学习的教学方法。任务驱动教学法是一种建立在建构主义学习理论基础上的多维互动式教学法,在学生完成任务的过程中,以学生为主体,是一种探究式的学习模式,教师可以根据学生的实际设计任务,使学生处于积极的学习状态,学会运用已有的知识提出方案、解决问题,从中体验成就感和优越感,从而增强自信心。这种方法能够很好地培养学生的自学能力、合作与创新精神,极大地提高学生的动手能力。

例如,在“运算符与表达式”课程中,对重难点内容“算术运算符和表达式”采用讲与练结合、分组讨论、练习抢答等多种教学形式,学生参与度高,能较好地掌握该内容;对“逻辑运算符和表达式”亦采用讲练结合方法,加强学生的理解;对“关系运算符和关系表达式”的教学内容采用问题驱动式,让学生带着问题自主学习,通过练习检验学习效果;对“表达式的执行顺序”,通过讲练结合、学生分组讨论进行学习。“运算符与表达式”课程根据知识点的难易程度及重要程度的不同,可分别采取不同的教法、學法。通过巩固练习、师生交流检验教学效果,笔者发现学生基本都能较好理解和掌握本节课内容,教学效果良好,也为后续语句的学习打下坚实的基础。

二、充分利用第一节课,加强算法思维训练

在第一节课里,教师可以从生活实例出发,激发学生的学习兴趣,慢慢渗入计算机算法思维,让零基础的学生了解并掌握计算机解决问题的方法与步骤,认识到算法的重要性,从而深刻体会算法是程序设计的灵魂。

例如,第一节课《如何用计算机解决问题》,以“韩信点兵”这个例子作为主线,分三步走,第一步和第二步先了解是如何解决“韩信点兵”这个问题,让学生从不同的角度思考,并寻求解决问题的途径和答案;第三步引入算法的概念,掌握用计算机解决问题的方法与步骤。

第一步,方程式解法。学生想到的方法一般是这种方法。设S为满足要求的一个数,S满足条件为被3除余2,被5除余3,被7除余2,这样的数即为所求的一个数。得出议程方程式“S=A*3+2,S=B*5+3,S=C*7+2”,往往此时学生发现无法求解。

第二步,介绍明朝数学家程大位《算法统宗》的口诀,“三人同行七十(70)稀,五树梅花二一(21)枝。七子团圆正半月(15),除百零五(105)便得知”。即用3的余数乘70,5的余数乘21,7的余数乘15,三者相加,若超过105,就减掉105,一直减到得数比105小为止。这样,所得的数就是最小解。最小解加上105的正整数倍都是解。学生可以根据口诀直接算出答案。

第三步,着重导入算法的概念、特征、描述方法,并且采用算法的三种方法来描述“韩信点兵”的解题步骤,也就是描述算法。

根据算法描述从自然语言到流程图,到伪代码,让学生逐步靠近计算机语言,最后把伪代码修改完善成一个可以到VB上运行的源代码程序(如图1所示),从而得到“韩信点兵”的解,和第二步的解是相一致的。让学生感叹古人智慧的同时,也认识算法在程序设计里的关键作用,并掌握描述算法的三种方法。这样的学习过程,让学生对计算机语言不再感到陌生和神秘,并逐渐形成计算机思维,为计算机程序设计的相关知识学习做好铺垫。

三、与其他学科相融合,夯实程序设计语言基础

(一)与数学学科相融合

算法知识的讲解可以和数学里的算法内容进行融合教学。在程序设计里,数据的表示与处理的知识中有关常量变量、数据类型、运算符与表达式、函数等内容,都与数学有着千丝万缕的联系。结合学生已有的数学基础知识来讲解程序设计知识,能让学生快速掌握程序设计里相应的知识点。

例如,在“运算符与表达式”讲解过程中,算术运算符里只有“加减”两种符号与数学里的符号表达一样,其他运算符号不一样,而且还增加了求余和整除两种运算符,但运算级别与数学是一致的。通过对比学习,可以让学生在原有的数学基础上更好更快地掌握这部分的内容(见表1),同时通过实例来加深学生的记忆。同理,关系表达式、逻辑表达式等VB常用表达式,都可以用与数学融合教学的方法来进行讲解,强调对比学习。表达式是代码的重要组成部分,对编程的理解和掌握起到关键性的作用。

(二)与英语学科相融合

在开始算法与程序设计教学之初,教师往往会举一些代码实例,即使进行大量的注释,仍让学生们倍感迷茫。但是,这些代码来自英语词汇,此时可以引导学生学习代码阅读,与英语学科进行融合。VB常用窗体(Form)、命令按钮(Command Button)、文本(Text)、标签(Label)控件里的属性、方法与事件的讲解,可以结合英文单词进行理解。程序的三个基本结构中,选择结构语句if...then...else、循环结构语句for...to...next和do...while等,及一些常用的语句print、end和函数left()、mid()等,都可以采用这种方式。在程序结构讲解时,可以让学生根据实例及内容难易程度,对语句模块、程序的三种结构模块进行阅读,并且逐步深入,掌握重难点。这三大内容在算法与程序设计模块中占主体位置,其中,程序结构模块的循环结构是重点难点,针对该内容采取多讲多练的方法,一步步剖析循环结构的执行流程,反复讲解典型例子。通过分模块进行不同层次的学习,逐一突破重难点,学生能更好地掌握算法与程序设计选修模块的内容。

四、对知识进行拓展延伸,提高学生的综合运用能力

拓展延伸教学是教师从基本的知识点出发,通过经典案例对知识进行延伸与扩展,培养学生的发散思维,提高学生的创造力以及综合运用能力,营造良好的课堂氛围。

例如,对累加的编程问题,s=1+2+3+…+100,在循环语句的执行过程中,有一个累加的公式:s=s+i,可以对增量step进行适当变化,step为2时就是s=1+3+5+……+99的公式,再对循环变量i进行变通,变成s=s-i,s=s+1/i等此类型的题目;再把加减变成乘法得出阶乘公式s=s*i(注意:s初值不能为0)。在此案例教学中,有时候代码模板就相当于巨人的肩膀,学生可以在此基础上通过补充修改程序模板中的关键代码,逐步认识此类问题并找出规律性,归纳出一般格式加以变通。

算法与程序设计的课程教学,需要教师有极高的教学水平和综合的教学艺术。只有不断学习、不断总结、不断创新,教师才能提高自身的教育教学水平,达到理想的教学效果。

【参考文献】

[1]高士娟,曹恒来.算法与程序设计[J].教学探析教与学,2013(11).

[2]于晓强,赵秀岩,闫丕涛.计算机程序设计课程中计算思维能力的培养[J].计算机教育,2011(13).

[3]吴斌.高中信息技术选修模块《算法与程序设计》教学探究[J].中小学电教,2006(10).

【作者简介】刘淀梅(1971— ),女,壮族,广西贵港人,硕士研究生,一级教师,研究方向为信息技术。

(责编 苏 羽)

猜你喜欢
程序设计教学探究算法
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
Travellng thg World Full—time for Rree
学习算法的“三种境界”
算法框图的补全
算法初步知识盘点
任务驱动教学法在高中作文教学中的几点尝试