青少年编程教育体系研究与实践

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

作者简介:张阳(1986—),男,硕士,助教。研究方向:计算机应用技术,人工智能。青少年编程教育体系研究与实践张阳(吉林工业职业技术学院经管与艺术学院,吉林吉林132013)摘要:关键词:中图分类号:G633.67;TP18文献标识码:A随着国务院《新一代人工智能发展规划》的发布实施,人工智能上升为国家发展战略。青少年编程和人工智能教育已成为基础教育的必要组成部分。当前青少年编程与机器人教育机构繁芜纷杂,良莠不齐。部分省市的中小学虽然已开设编程必修课,但是都处在探索阶段,结合学生年龄特点和青少年人工智能教育市场现状,设计出一套青少年编程教育体系,并应用于教学实践。人工智能;青少年编程;编程思维;教育体系1引言人工智能时代带来的新兴技术、新事物为我们的日常生活提供许多便利,例如:电子支付、无人驾驶、机器人、人脸识别和语音识别等,这些新技术的应用都与编程密不可分。青少年编程教育并非只是学习如何写代码、编制应用程序,而是通过编程游戏启蒙、可视化图形编程等课程,培养青少年的计算思维和创新解难能力。科学研究表明,人的大脑在3岁可以发育到60%,5~10岁正是孩子大脑发育的黄金阶段,此时,孩子的环境感知将会转变为逻辑连接[1]。8~18岁左右亦是孩子抽象逻辑思维形成期。在这个阶段让孩子学习编程,一方面新知识吸收较快,另一方面也掌握了新技术,为青少年未来的学习和职业生涯夯实基础。无论青少年将来是否从事编程行业,编程的逻辑思维、算法思维的培养将会使他们终生受益。相关研究表明,少儿编程在美国的渗透率达到44.8%,在中国目前只有0.96%[2]。苹果创始人乔布斯建议:“每个人都应该学习编程,因为它教会你如何思考”。比尔·盖茨和扎克伯格都建议青少年学习编程,甚至于美国前总统奥巴马也呼吁每个美国人都学习编程。2编程与青少年编程区别编程是利用计算机为人类解决某个问题,人类必须将需要解决的问题思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务[3]。青少年编程是通过游戏启蒙、积木式图形化编程等寓教于乐的方式培养他们的计算思维和创造力,以适应人工智能时代教育的与时俱进。一般是针对6周岁以上18周岁以下青少年设计的编程学习类产品。青少年编程的核心理念是培养他们的思维能力、分析问题和解决问题等综合能力为目标,而传统编程以专注技术应用、就业创业为目标。3国内外现状国内青少年编程起步相对国外较晚,表1和表2统计了最近五年国内外青少年编程的推广情况。第33卷第2期圆园员9年第2期Vol.33No.2NO.2.2019技术与教育TECHNIQUE&EDUCATION4青少年学习编程的必要性近年来,国内外青少年教育掀起了学习编程的大潮。欧美国家将计算机编程能力作为与写作、阅读、算术能力并列的基本技能。STEAM教育理念融合了科学、技术、工程、艺术和数学等多个学科,着重培养青少年综合运用多学科知识解决问题的能力。青少年编程作为STEAM教育实现载体,在我国得到了国家教育部门的政策支持,全国中小学也陆续开展一系列课程,纵观国内外教育形式,青少年学习编程的必要性已显现出来。(1)锻炼青少年逻辑思维能力编程最重要的就是如何把大问题不断分割成小问题的过程,在这个过程中青少年必须思考如何把程序中的代码合理编排使程序能够顺畅的处理输入、计算、输出,这个过程对青少年的逻辑思维分析能力得到锻炼提升。(2)培养青少年专注力青少年阶段是专注力培养的关键时期,青少年学习编程可以很好的培养他们的注意力。编程对语法要求极为严格,有时少打一个逗号或者多打一个分号都会导致程序出现错误,所以青少年在编程过程中必须全神贯注。(3)训练青少年创新能力青少年编程是素质教育的实现形式,是以培养其创新精神和实践能力为首要出发点。学习编程是一个思辨的过程,不断探索优化、丰富、充实自己的思维,潜移默化地提高青少年创新能力。(4)培育人工智能时代的创新人才。人工智能时代已经到来,计算机编程是其核心组成部分。编程将成为与阅读、写作、口才等同等重要的必备基本技能。学习语文是为了与国人进行交流,学习英语是为了与全世界进行交流,学习编程是为了与机器人进行交流。(5)促进其他学科的学习表1国外青少年编程推广情况国家英国美国新加坡韩国日本具体措施2014年,将编程纳入5-16周岁中小学生必修科目,5岁起学习Scratch2016年,投资40亿美元推广编程教育,为全美K12阶段学生提供完整优质的电脑科学教育2017年,在中小学考试中加入编程科目从2018年起全面推广中学编程课程从2020年开始施行编程教学表2国内青少年编程推广情况时间2017年7月2017年政策《国务院关于印发新一代人工智能发展规划的通知》(国发〔2017〕35号)提出:“实施全民智能教育项目,在中小学阶段设置人工智能相关课程,逐步推广编程教育,鼓励社会力量参与寓教于乐的编程教学软件、游戏的开发和推广。”[4]教育部关于印发《义务教育小学科学课程标准》的通知(教基二〔2017〕2号)提出:“为进一步加强小学科学教育,根据立德树人工作总体部署,我部组织专家对小学科学课程标准进行了修订完善,现正式印发,于2017年秋季开始执行。”“小学科学课程起始年级调整为一年级。”[5]教育部关于印发《普通高中课程方案和语文等学科课程标准(2017年版)》的通知(教材〔2017〕7号)中以附件形式发布的《普通高中信息技术课程标准(2017年版)》大幅度提升了信息技术学科在编程、计算思维、算法方面的思维要求,以及人工智能、开源硬件、网络空间安全等知识面要求[6]从2017年起,浙江高考除了要考语文、数学、外语之外,还可从政治、历史、地理、物理、化学、生物、信息技术这7门学科中任选3门参加高考,其中信息技术就包含编程,从2018年起编程语言从VB更换为Python2017年9月2017年12月张阳青少年编程教育体系研究与实践25在学习编程的过程中,会激发学科内容的学习动力。父母不用再逼着青少年学习数学,因为编写程序控制按钮、人物、方向等都需要数学方面的知识。除此之外,还可以提高英文读写能力,让学习英语成为顺其自然的事情。其他学科如物理、音乐、艺术等都可以运用在写程序的过程中。5青少年编程教育体系设计目前比较流行的编程语言有Scratch、Python、C++、Java、R等,而适合中小学生学习的主要是图形化编程Scratch和Python、以及面向信息学奥赛的C++语言。Scratch这款由美国麻省理工研发的图形化编程平台,对于零基础、年满7周岁的孩子,是最好的学习工具。其具有图形化界面、简单、有趣、易上手等特点,让孩子在玩中学,学中做。Python的设计哲学是“优雅、明确、简单”。它的语言方式与自然语言很接近,具有很好的可阅读性,更容易让人亲近,而且其功能强大。目前我国也正在逐步将其纳入教学体系,山东省已将其作为小学六年级的信息学教材。C++作为C语言的继承,它既可以进行C语言过程化程序设计,还可以进行以继承和多态为特点的面向对象程序设计。五大学科竞赛之一的信息学奥赛官方指定语言为C++。(1)第一阶段:Scratch启蒙。了解简单编程概念,熟悉Scratch界面基本操作;培养逻辑思维能力,理解游戏设计机制,培养创造力。(2)第二阶段:Scratch基础。学会使用Scratch进行顺序、判断、循环等程序编写,了解常见的数据类型;培养编程思维能力,增强创新潜力。(3)第三阶段:Scratch进阶。熟练掌握Scratch,了解复杂设计,了解简单算法原理和实现方法,能够将实际问题抽象成数学模型,编程操作机器人完成指定任务;培养工程思维和计算思维能力,激发创新潜质。(4)第四阶段:Python初级。了解代码编程特点,熟悉Python语言基础语法知识,适应从图形化编程到代码编程的转变;培养思维转化能力。(5)第五阶段:Python中级。掌握Python基本数据类型,语句结构和函数的使用;培养抽象思维能力,挖掘创新潜力。(6)第六阶段:Python高级。掌握常用算法(如查找,排序等),并且能够编程实现,对实际问题可以抽象出数学模型并解决,编程与人工智能硬件结合,控制智能硬件完成算法规定功能。培养抽象思维能力,创新解难能力。(7)第七阶段:信息学奥赛C++入门。熟悉C++编程语法,掌握面向过程思想,练习信息学竞赛试题;抓住试题规律,夯实解决问题水平。(8)第八阶段:信息学奥赛C++提高。理解面向对象思想,熟练解决优化竞赛试题;培养创新创造和规划能力,提高升学竞争力。6青少年编程教学方法研究青少年编程教学方法形式多样,既有传统知识讲授法、讨论法,也有新式教学方法,通过分析目前青少年编程教学领域,常用教学方式主要有:融合学科渐进式教学法、游戏化教学法和PBL(Project-BasedLearning)项目式教学法三种[7]。6.1融合学科渐进式教学法图1思维能力培养和升学竞赛方向Level1Level2Level3Level4Level5Level6Level7Level8Scratch启蒙6-8岁Scratch基础7-10岁Scratch进阶8-12岁Python初级8-18岁Python中级10-18岁Python高级12-18岁信息学奥赛C++入门12-18岁信息学奥赛C++提高14-18岁26技术与教育青少年编程不仅培养他们的计算思维和逻辑思维能力,同时再与学科知识融合激发了学习兴趣。编程和数学具有天然联系,计算机的发明初衷是为了数学计算。数学历来给学生的感觉是枯燥抽象的,但借助编程来学习可以让其可实验、可视化、可感知,提升学习了数学的乐趣。题目:打印输出九九乘法口诀表(Python编程语言)第1步分析:输出结果=两个数乘积,因此需要两个变量m,n以及取值函数range(),这是一个循环嵌套问题,考查for循环和range()函数使用。第1步代码:forminrange(1,10):forninrange(1,10):print(“%s*%s=%s”%(m,n,m*n))第1步结果:1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=92*1=2……第2步分析:第1步输出结果成1列,因为print()语句每执行一次都会换行。因此,我们在print()里加上end=“”,使输出连续。第2步代码:forminrange(1,10):forninrange(1,10):print(“%s*%s=%s”%(m,n,m*n),end=“”)第2步结果:1*1=11*2=21*3=31*4=41*5=51*6=61*7=71*8=81*9=92*1=22*2=42*3=62*4=82*5=102*6=122*7=142*8=162*9=183*1=3……第3步分析:存在重复计算情况,如1*2=2,2*1=2……,而且输出结果成一行。解决方法:n的取值上限不大于m,内循环结束后输出print()换行。第3步代码:forminrange(1,10):forninrange(1,m+1):print(“%s*%s=%s”%(m,n,m*n),end=“”)print()第3步结果:1*1=12*1=22*2=43*1=33*2=63*3=94*1=44*2=84*3=124*4=165*1=55*2=105*3=155*4=205*5=256*1=66*2=126*3=186*4=246*5=306*6=36……第4步分析:存在不对齐情况,行数列数与标准不一致。解决方法:用\t对齐,行数列数互换。第4步代代码:forminrange(1,10):forninrange(1,m+1):print(“%s*%s=%s\t”%(n,m,m*n),end=“”)print()第4步结果:1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=161*5=52*5=103*5=154*5=205*5=251*6=62*6=123*6=184*6=245*6=30

1 / 6
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功