基于体验式教学支持下的编程教育实践研究*
2018-05-02王冠楠
王冠楠
(福建省厦门第一中学,福建 厦门 361001)
一、技术的成熟发展
1.时代发展要求
社会对人才的要求决定我们的教育培养怎样的人,马克思主义哲学指出:人是一切社会关系的总和,人的社会属性是其本质属性。[1]因此人除了通过学习使自己的素质得到提升,还应该承担相应的社会责任。当今的信息技术超速发展,深刻地改变着人类的社会生活。2017年7月8日,国务院关于印发《新一代人工智能发展规划》,指出实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广。[2]我们在信息技术课程讲授的过程中要让学生理解信息技术对社会发展的影响,明确其社会成员应承担的责任,形成与信息化社会相适应的价值观。[3]
2.技术发展基础
硬件方面,我国高速发展的经济为教育信息化提供了强有力的物质保障。全国基本已经完成了计算机相关的基础设施建设,均开设信息技术常规课程;软件方面,随着多年来成熟的教育技术师范教育,培养了大批专业的信息技术教师,为普及编程教育提供了师资保障。
厦门一中是一所完全中学,教师为一体化教学,在一定程度上打破了信息技术课程的跳跃性特点,使该校的信息技术课程教学具有了连续性,初中阶段即开始教授Scratch软件,打下了编程基础。另外厦门部分学校在小学阶段即开始学习logo编程。
二、编程支持下的体验式教学促进学科素养的发展
高中学生信息技术核心素养主要有三大方面,分别是:文化基础、自主发展、社会参与。[4]因此信息课程的开展要以国家传统文化为主线,学生自主发展为目标,社会力量积极参与为基石,建立立体式全方位的教育格局。
1.文化基础
多年来对信息技术课程的探索,笔者发现信息技术课有区别于其他学科,其知识具有独特的特点:第一,知识链的多发性,即知识体系具有不连续性和跳跃性的特点;[5]要打破这种特性,在教学过程中,采用支架式和任务驱动相结合的教学方式,教师通过提供学习脚手架,能很好地让学生将自己的已有经验充分融入到编程。脚手架的作用就是将学生的知识体系联系起来,在进行任务的时候,一定采取从易到难这种循序渐进的方式,充分考虑学生已有经验。而终极任务就是撤掉所有的支架,由学生自己进行知识建构。第二,知识的实践性,即一般课程是从技术层到应用层,而信息技术课程是从应用层到技术层;[6]信息技术课相对于其他课程来说,最大的特点就是其实践性,尤其是编程教育。故在进行编程教育的首要方式就是以完成特定的作品为主,将每一个知识点都融入到作品中。所编即所见,所见即所得,否则枯燥的编程很能激发学生持续学习的动力。编程之美在于体验创造,从这个层面上来看,编程教育的可推广性完胜其他学科。第三,知识的高速发展性,要求学习者要有较强的自主性,[7]层出不穷的编程语言,感到眼花缭乱不仅是学生还有教师,但是对于中小学阶段,我们的编程教育应该做的就是通过编程去培养学生的逻辑思维和信息素养以及解决问题的能力,为他们将来的发展做铺垫。例如在英国国家教学大纲中规定5到7岁的学生需要通过计算机课程掌握:理解什么是算法、以及算法如何以程序的形式在电子设备上运行;创建和调试简单程序;用逻辑推理预测简单程序的执行结果。[8]因此,在编程教育中,切忌贪多图快,好高骛远,要顺应时代的发展,符合社会需求。并且教授学生的编程技能已不单是为了应对社会信息产业对信息专业人才的需求,而将是所有现代产业的基本要求;现代产业需要的也不仅是软件专业人才,而是具有基本编程能力的产业人才。
2.社会参与
大数据时代充满机遇与挑战,在大数据时代,信息免费、服务付费、学习知识免费、能力培养付费,其直观表现就是数据量大、速度快、类型多、价值密度低。未来的生活中,人们必须要使用数字化设备和软件处理工作。要让孩子应对这样的变化,在将来的世界中游刃有余,必须对计算机逻辑有更深的理解,要具备与计算机相近的“计算思维”(computational thinking),并具备与之关联的能力。因此对于信息素养的教育应当从中小学阶段就开始进行培养,让其具有敏锐的信息意识和信息思考力、熟练的信息基本技能和正确的信息道德。[9]能够根据需要选择适当的信息技术交流思想,开展合作,解决日常生活、学习中的实际问题;要面向学生的日常学习与生活,让学生在亲身体验中培养信息素养。[10]
3.自主发展
今天我们生活在用技术支撑起来的高度发达社会,我们的孩子伴着数字设备和计算机长大,天生就熟悉一些应用机制,但还需对应用背后的计算逻辑有更深的认识。因此,通过编程教育能够很好的培养学生的逻辑思维。相对于其他学科,编程教育的独特性在于程序本身就是逻辑演绎的抽象体现,是更纯粹的逻辑训练过程。逻辑思维的发展能够让学生的计算思维得以顺利建立,能够让学生很好地理解计算机工作原理和内部程序运行机制,还能够提升学生的数据计算、网络通信、地理定位等一系列知识和能力。让学生了解计算机和智能设备的运行原理和程序机制是深入使用,乃至创造计算机设备和软件的基础。培养学生进行数据化思考,这种思考方式有别于传统的经验式思考方法,使学生具备利用计算机强大的数据处理能力,借助计算机得以通过数据来理解、分析和解决问题。另外编程学习还涉及算法、自动化、设计模式、数据结构、框架与引擎设计,数据存储等更多知识。还能够促进学生建立其他的思维,如系统工程思维,在现实生活中,学生要面对的是一个复杂的世界,碰到的问题也是千奇百怪,如何快速有效的解决这些问题,如何选出最合适的,就需要系统的思考和判断,这种找到最优方案的思维能力就是系统工程思维。
三、课堂实践研究案例
本文的编程教学是以“支架式”教学为框架、体验式教学为血肉,构建基于项目的并且以学生为实践主体的教学模式,将教学任务分割,学生利用教师提供的支架不断从小的成功走向最终胜利。下文就以闽南地区中秋传统游戏博饼为案例进行说明,博饼是闽南地区特有的中秋传统风俗,以此传统文化为载体,将编程教育与文化进行融合。
1.分解知识,搭建支架
(1)IF 语句
通过前面课程的学习,学生能够熟练运用IF语句的单分支结构和双分支结构。
格式一单分支结构:If 条件 Then 语句
格式二双分支结构:If 条件 Then 语句组1 Else语句组2
(2)For语句
通过前面课程的学习,学生能够熟练运用For语句。
格式:For循环变量=初始值To结束值Step步长循环语句
Next循环变量
(3)随机函数
产生1-10的随机整数:a=fix(rnd()*10)+1
(4)图片载入
第一步:图片命名 1.jpg、2.jpg、3.jpg
第二步:随机产生图片名
第三步:加载图片,效果如图1。
Image1.Picture=loadpicture(a& “.jpg”)
图1 加载图片
图2 博饼游戏初级版
2.明确目标,体验成功
分步任务:同学根据自己的能力编写不同的等级博饼程序。
(1)博饼游戏初级版:只需要产生随机数即可,效果如图2。
Private Sub Command1_Click()
Dim a(6)As Integer
Randomize
For i=1 To 6 Step 1
a(i)=Fix(Rnd()*6)+1//产生随机数
Label1(i-1).Caption=a(i)
Next i
End Sub
(2)博饼游戏加强版:监控一秀、二举、三红,效果如图3。
知识点:增加一个计数器
Private Sub Command1_Click()
Dim a(6)As Integer
Randomize
sum4=0//计数器初始化
For i=1 To 6 Step 1
a(i)=Fix(Rnd()*6)+1//产生随机数
If a(i)=4 Then sum4=sum4+1//计数器计数
Label1(i-1).Caption=a(i)
Next i
If sum4=1 Then Label2.Caption="一秀"
If sum4=2 Then Label2.Caption="二举"
If sum4=3 Then Label2.Caption="三红"
If sum4<>1 And sum4<>2 And sum4<>3 Then Label2.Caption=""
End Sub
图3 博饼游戏加强版
图4 博饼游戏终极版
(3)博饼游戏终极版:带有图片的博饼,效果如图4。
Private Sub Command1_Click()
Dim a(6)As Integer
Dim n(6)As Integer
Randomize
For i=1 To 6 Step 1
n(i)=0 //计数器初始化
Next i
Label1.Caption="不好意思啥都没有"
For i=1 To 6 Step 1
a(i)=Fix(Rnd()*6)+1 //产生随机数
Image1(i-1).Picture=LoadPicture("A"&a(i)&".jpg")//加载图片
For j=1 To 6 Step 1
If a(i)=j Then n(j)=n(j)+1//计数器计数
Next j
Next i
If n(4)=1 Then Label1.Caption="一秀"
If n(4)=2 Then Label1.Caption="二举"
If n(4)=3 Then Label1.Caption="三红"
If n(4)=4 Then
dai=n(1)*1+n(2)*2+n(3)*3+n(5)*5+n(6)*6
Label1.Caption="状元带"&dai
If n(1)=2 Then Label1.Caption="状元插金花"
End If
If n(4)=5 Then
dai=n(1)*1+n(2)*2+n(3)*3+n(5)*5+n(6)*6
Label1.Caption="五皇带"&dai
End If
If n(4)=6 Then Label1.Caption="六博红"
End Sub
3.优秀作品展示
树立榜样、宣扬典型。处于青少年时期的学生充满斗志,在课堂上展示好的学生作品,能够激发其他学生的竞争性。对制作作品优胜的同学进行公开宣传、组织典型与非典型的交流,让典型在不同的场合发言、举行仪式,让典型获得应得的荣誉。
四、结论
1.激发创新意识
学以致用,激发学生的创新精神。学生分层分步地完成了课堂实践目标,除了加深对知识的把握,同时能够很好地将生活中遇到的相关问题进行分解,利用所学知识逐步解决。比如,班级开辩论会需要设计一个计时器;为了增加元旦晚会的气氛,需要设计一个抽奖器。这些都是学生通过学习了随机函数random之后自己设计出来的生活作品。因此,体验式教学可以让学生将知识迁移到真实的实践活动中,激发了学生的创新意识。
2.盘活课堂气氛
将知识进行娱乐化传递。[11]通过生活案例让课本中的知识活起来,既可以让学生学以致用又不失生活情趣。知识的娱乐化并不是要抛弃课堂的严谨性,丧失知识的科学性,而是将知识传递的过程娱乐化。在这个过程中教师的课堂主导地位可以有效避免出现课堂涣散和知识随意情况的出现,这种学习过程的娱乐化能够让学生体验到要完成一个作品或者一个小游戏,首先需要具备严谨的知识体系和缜密的思维逻辑,其次在实现过程中还应该胆大心细。同时还要考虑界面的美观,用户的舒适度。这会一步步将对学生信息素养的培养落到实处。
3.体验创造、积累经验
知识来源于实践,并反过来指导实践。任务驱动基于目标的教学就是让学生直接面对实际问题进行实践,在完成目标的过程中学生体验到创造所带来的美好感觉。在模仿过程中积累经验,在历史经验中总结规律,在规律指导下创新。
参考文献:
[1]刘彪.和谐社会进程中的大学生思想道德教育探讨[J].科技信息(学术研究),2006(10):252-253.
[2]朱敬一.国务院:中小学应设置人工智能课程,推广编程教育[EB/OL].http://edu.cnr.cn/list/20170828/t20170828_523921544.shtml,2017-08-28.
[3]艾红.渗透学科教学的高中信息技术教学实践[J].新课程研究,2011(9):98-100.
[4]解月光,杨鑫,付海东.高中学生信息技术学科核心素养的描述与分级[J].中国电化教育,2017(5):8.
[5][6][7]张新军.基于问题的学习在信息技术学科教学中的实践[J].教师,2013(3):81-83.
[8]梁俊敏.英国信息技术课程的变革与启示[J].广西教育,2014(24):49-50.
[9]张家军,张兰.国外中小学信息素养课程设置及启示[J].基础教育,2009(9):58-62.
[10]陈志艳.以生为本构建信息技术和谐课堂[J].科学大众(科学教育),2012(11):58-58.
[11]王冠楠.社交网络促进农村中小学教师教学胜任力的模型构建[D].长春:东北师范大学,2016(14).