APP下载

启发式教学设计:开启编程学习的钥匙

2020-11-16陈英

中学教学参考·文综版 2020年10期
关键词:启发式编程教学设计

陈英

[摘要]《普通高中信息技术课程标准(2017年版)》指出,高中信息技术课程要以学科核心素养为导向,着力培养学生的计算思维和数字化学习与创新素养。文章以高中编程教学中的循环结构应用教学为例,谈编程教学中的启发式教学设计策略。

[关键词]启发式;教学设计;编程

[中图分类号]G633.67 [文献标识码]A

[文章编号]1674-6058(2020)30-0020-02

启发式教学是指教师在教学过程中根据教学任务和学习的客观规律,从学生的实际出发,采用多种方式,以启发学生的思维为核心,引导学生主动、积极、自觉地掌握知识的一种有效教学方法。其宗旨是启发思维、提升能力,基本策略是联系生活、抛出问题,启发铺路、分析问题,思维可视、深究问题,八仙过海、解决问题,总结提炼、多元归一(见图1)。

下面以高中编程教学中的循环结构应用教学为例,谈启发式教学设计策略。

一、联系生活、抛出问题(启发式教学的起点环节)

信息技术的学科价值可精要地表述为“技术服务生活”。其内涵有二:1.教学内容源于生活;2.教学终点是解决问题。陶行知先生提出了“生活即教育”“教学做合一”“行是知之始”的理念。生活中的案例是教育、教学最鲜活的素材,最容易激发学生的学习兴趣,引发认知冲突。教学活动就是要提供“生活问题”——“科学认知”——“服务生活”的思维发展机会。

在学习循环结构应用时,教师选择的问题素材要有浓浓的“生活气息”:设计一个程序,输入候选人编号进行投票,最后统计候选人的得票数(如图2)。

以生活中的问题为学习素材,激发学生的探究意识,建构启发式教学的起点环节。

二、启发铺路、分析问题(启发式教学的助力环节)

编程学习,最重要的是编程思维,通俗地说就是要给出解决问题的算法。教师要注重提升学生的计算思维和信息素养,为学生“自主发现”铺路搭桥。“何时搭”,这是时机问题;“搭多少”,这是程度问题。

例如,接着上面的选举票数统计问题情境,下面简要呈现启发式教学片断:

师:同学们,解决这个问题的大体思路是什么?

生:一个一个比对。

师:怎么比?简要说一下过程。

生:先取出文本框1中的第1个字符与文本框2中的字符进行比对,一致,则统计加1,再取第2个字符,再同样处理,直到最后一个字符。

师:说得很好,那这个例子中,一共需要比对多少次?

生:9次。

师:那么,如果文本框1中的内容变成“1155665”,这时候需要比对多少次?

生:7次。

师:看来,比对次数是不固定的。你能說说比对次数是由什么决定的吗?

生:文本框1中字符串的长度。

师:非常好!那么,在VB中怎么求字符串的长度呢?请同学们看一下下发的VB常用函数文档,思考如何求文本框1中字符串的长度。

生:查到了!Len(textl.text)。

师:第一个问题解决了,再来看第二个问题:如何从文本框1中取一个字符?请同学们再查VB常用函数文档,思考如何取出文本框l中的第1个字符。

生:好像Mid()可以!Mid(textl.text,1,1)。

师:是的,我们可以用Mid函数将文本框1中的字符逐个取出。假设当前要取的位置是i,那么,取第i个字符可以表示为——?

生:Mid(textl.text.i,1).

师:太棒了!我们已经成功解决了两个核心问题,下面,我们尝试把我们的算法用VB语言表达出来。对于“重复劳动”,我们可以用什么语句?对于字符比对,我们可以用什么语句?

生:For+If。

通过一步步的剖析和追问,在“问与答”的过程中,解决问题的思路水到渠成地“水落石出”。

三、思维可视、深究问题(启发式教学的核心环节)

至此,算法已然清晰,但是如何利用计算机解决问题的方法,将问题形式化、抽象化?这是编程学习的难点所在。

可以利用自制教具模拟问题解决的完整过程。一则,教具可将思维可视化,可以帮助学生更好地理解和解决问题。二则,教具可对算法进行模拟验算,从而验证算法的正确性和有效性。三则,学生在和教师一起模拟验算的过程中,能获得新的体验和启发。

此环节,教师更多的是启发学生如何将思维可视化,如何用合适的方法模拟和验证解决问题的算法(如图3)。

通过教具模拟,使学生编程思维更加清晰,算法的正确性和有效性也得到了进一步的验证,学生对编程思维的理解更加深刻,在编程学习方法方面也得到了更多的体验和启迪。

四、八仙过海、解决问题(启发式教学的实践环节)

在厘清了算法后,学生会迫不及待地进入实践环节进行验证。此环节,教师的作用在于帮助学生在错误纠正中得到实践启发和思维提升。具体策略有二:一是点对点的答疑,二是一对多的典型错误精准解释。

1.语法错误——点对点答疑

For i=1 To Len(Text1.Text)

If Mid(Text1.Text,i,1)=Text2.Text

Then

k=k+1

Next

Text3.Text=k

【思维点拨】斜体字部分有语法错误,同学们可以参考一下If语句的语法规则。

2.思维错误——一对多精准解释

For i=l To Len(Text1.Text)

k=0

If Mid(TextI.Text,i,1)=Text2.Text Then k=k+1

Next

Text3.Text=k

【思维点拨】

师:同学们思考一下,某同学的代码为什么不能得到正确结果?问题出在哪里?

生:好像k=0有点怪!

师:怪在哪里?

生:说不出来,就是感觉不太对!

师:我们一起来把程序走一遍,看看k=0有何怪异。

生:哇,发现了!每次比对前,k都变成了0,前面的比对结果丢失。

师:非常好!那怎么改呢?

生:把k=0移动到For的外面!

学生通过上述两种途径,在纠正错误(语法错误和思维错误)的过程中,编程思维得到了培养。

五、总结提炼、多元归一(启发式教学的提升环节)

学生掌握知识的目的是运用和迁移。迁移的好坏,主要在于学生能否在类似情境中,自觉、主动地运用相关知识和策略解决问题。在编程学习中,总结提炼、多元归一,能够更好地帮助学生提升编程思维,掌握编程思想方法。

在总结提升环节,可以借助思维导图工具,帮助学生提炼解决本类问题的编程思想方法(如图5)。

总之,编程学习的关键有二:一是“抽象”,二是“顿悟”。编程学习的本质特征决定了启发式教学在编程学习中的重要性。在教学实践中,教师可以采用上述启发式教学设计策略激发学生学习编程的内驱力,让学生通过自身的主动发现、探究和教师的启发、引导,掌握编程思维和编程思想方法,最终促进学生核心素养的落地生根。

[参考文献]

任友群.普通高中信息技术课程标准(2017年版)解读[M].北京:高等教育出版社,2018.

(责任编辑 周侯辰)

猜你喜欢

启发式编程教学设计
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
高中英语课堂教学案例陈美琴
启发式教学在《数据库技术应用》课程中的应用
高中数学一元二次含参不等式的解法探讨
“仿真物理实验室” 在微课制作中的应用
翻转课堂在高职公共英语教学中的应用现状分析及改善建议
提高课堂教学有效性的研究