林亦贞
摘 要:在核心素养影响下,信息技术学科的核心素养可界定为信息意识、计算思维、数字化实践力和信息社会责任。《算法与程序设计》是高中信息技术课程选修模块之一,教学重视从计算机语言层面上了解计算机能做什么,是如何工作的。这种计算思维对大部分学生来说较难学。
关键词:visual basic;循环结构;核心素养;自主学习;编程教学;计算思维
一、分析计算思维的渐进过程
1.在进行循环结构for...next语句的教學设计中,我们依然是以书本的“希望工程”程序为例,对其进行更贴合实际的改进,设计成“日常存钱”程序。“假设你从今天开始,第一天存1元钱,第二天存2元钱,第三天存入3元钱……依次类推,一个月31天后,你将存入多少钱?”教师提问:如何让电脑计算你一个月存了多少钱?教师首先用自然语言分析该问题:
假设n为天数,s为累加量,s=0:第1天:n=1,n<=31条件成立,s=s+n,即s=0+1;第2天:n=2,n<=31条件成立,s=s+n,即s=1+2;第3天:n=3,n<=31条件成立,s=s+n,即s=3+3……第31天:n=31,n<=31,s=s+n,即s=465+31;第32天:n=32,n<=31条件不成立,不再累计。同时提问学生两个问题:①在这个问题中,被不断重复的语句是什么?②结束重复的条件是什么?学生觉得这两个问题符合他们的数学思维,很好回答。
2.如何用计算机来解决“日常存钱”问题?要解决这个问题,就要引导学生思考计算机能做什么?计算机具有哪些能力?学生根据实际的使用计算机的经验,可以得到计算机具有基本的输入能力,基本的输出能力,有计算能力。在教师的引导下,能得出计算机具有逻辑判断能力。那我们用计算机来解决问题,就要在计算机的这四大能力之内给计算机布置任务。拿我们的“日常存钱”程序为例,根据之前自然语言分析的结果,我们要在问题二“结束重复的条件”这里给计算机一个逻辑判断。具体要怎么做呢?要跟计算机沟通,就要掌握计算机语言。像这种某些工作要反复多次执行的情况,可以用循环结构里的for...next语句来实现。教师展示for循环结构的语法形式,并指出该循环结构是确定次数的循环,并让学生关注语法里的两个关键点:一是被重复的语句块,二是语句块的循环次数由谁决定?第二个关键点也是本节课的难点。我们可以用打印“*”程序来帮助同学们理解和思考。
二、自主解决问题的有效策略
设计项目任务时要以学生自主学习为主,让学生从已有知识出发,在理解了计算机思维方式后,能自主分析不同层次的任务,并解决问题。比如上面提到的“循环结构for练习”项目块,我设计的项目任务是在解决了“日常存钱”的问题后,要求学生思考以下四个问题,并自主在程序中实现:①计算1+2+3+……+100=?②计算1~100之间所有偶数的和?③计算1*2*3*……*10=?④计算1~1000之间能被7整除的数的个数?这四个程序设计都给半成品,即设计好了界面和定义变量输入输出,留下for语句里的部分空格让学生填写,这样即节省了时间,又能准确的掌握关键知识点。此项目任务的设计充分调动了学生的学习积极性。理解了for语句的两个关键知识点,即被循环体和循环次数的确定,学生都能应对项目任务中的四个问题。在解决项目任务的过程中,学生也会因为不确定而卡住,这时候教师就可以适时地从旁指点,通过传统的讲授方式帮助学生掌握相关的知识与技能,学生的探索欲被调动起来,都会非常认真听讲并且容易记住,学到之后立刻就能用来解决实际问题,更让人印象深刻。学生的思维被调动起来,整个课堂气氛安静,只听到学生敲击键盘的声音热烈又充满了思考。有些同学联想之前的分支选择结构,用循环结构与分支结构的嵌套来完成第四个问题。
三、计算思维的表达
学生完成了“循环结构for练习”项目块后,在下课之前,空出时间让学生有机会阐述自己的编程代码和编程思维。教师用局域网里的学生演示功能,让学生在自己电脑上演示代码,运行程序,这样可以节省时间,让上课节奏更紧凑。例如,分别请三名同学运用for...next语句编写程序,解决:①计算1+2+3+……+100=?②计算1~100之间所有偶数的和?③计算1*2*3*……*10=?这三个问题。学生在运行程序时如果出错,学生自己及时排查代码中的错误,比较典型的有语法书写格式错误,变量类型溢出,循环初值和步长错误等,学生修改过后,重新运行程序,成功运行。整个程序编写过程由学生自行表达,其他学生聆听并观看代码编写过程,这比直接由教师讲解程序更能调动学生的注意力,碰到同样的错误还能让学生及时自我反思,增强自己的计算思维。
第四个问题“计算1~1000之间能被7整除的数的个数”难度略高,可以让已经解决这个问题的学生来分享他们的思考。一位同学利用初值和步长值来解决for i=7 to 1000 step 7,另一位同学利用循环结构与分支结构的嵌套if i mod 7=0 then s=s+1,学生在演示的过程中,边打代码边解释自己的代码,周围响起一些恍然大悟之声,项目表达之后,及时小结并留一些时间让学生对自己的代码进行完善和修改,让代码更简洁更有逻辑性。
四、结语
核心素养下的循环结构课堂教学是一次实践,也是一次尝试,学生的课堂表现和精神状态比讲练结合的教学方式要好很多,教师点到即止,学生有更多的时间思考,对自己计算思维的提升也有帮助。经过一个项目任务的过程,学生基本上触摸到了计算思维,并能根据自己对计算机语言的理解和计算思维的不同,用不同的代码解决同一个问题,不再是千篇一律的模仿教师的代码。
学习语法很重要,而更重要的是掌握计算思维。正如《算法与程序设计》前言里说的,能从计算机语言层面上了解计算机能做什么,是如何工作的。学习看似简单的基础知识时不要掉以轻心,因为如果您真正掌握了思维方式,解决问题,就是在和计算机聊天,解决看似困难的问题,有时也就是多掌握一点聊天的技巧。