公益志愿者招募啦|编程教育解读与微项目1“探究用程序加工数据的过程”

admin 发表于 2019-03-22 10:59

编程一、教材强化编程教育与人工智能教育的背景与依据


国家在义务教育阶段出台了编程教育、人工智能教育的相关文件,人工智能教育的普及和推广逐渐形成了低龄化的态势。

2017年7月,国务院颁布《新一代人工智能发展规划》,将青少年编程作为国家级战略推进,倡导在基础教育阶段开展少儿编程教育。

2017年9月25日教育部印发《中小学综合实践活动课程指导纲要》,的对信息技术活动建议中针对7-9年级确定了代码编程活动:“了解程序设计的基本过程和方法;熟悉程序设计语言的用法,掌握常量、变量、函数等基本概念,理解程序的三种基本结构,知道人与计算机解决问题方法的异同,尝试编写、调试程序。激发编程的兴趣,培养逻辑思维能力,进一步理解计算思维的内涵,提高数字化学习与创新素养,增强信息意识和信息社会责任。”

2018年1月,教育部发布《普通高中课程方案和语文等学科课程标准(2017年版)》,其中《高中信息技术课程标准》中指出:“计算思维是指个体运用计算机科学领域的思想方法,在形成问题解决实施方案的过程中产生的一系列思维活动。”

2019年1月23日,为深入贯彻落实国务院《关于印发新一代人工智能发展规划的通知》(国发〔2017〕35号)等文件精神,切实保障人工智能教育的普及和推广,建立健全创新型人才培养体系,根据省委省政府实施新旧动能转换、发展人工智能的战略要求,进一步提供人工智能产业发展的人才保障和智力支持,加强对人工智能教育工作的组织领导,经厅长办公会研究决定,成立山东省人工智能教育领导小组。

2019年2月28日,山东省教育厅公布了首批人工智能教育试点市、县(市、区)和试点学校,确定济南市、青岛市、淄博市、临沂市为人工智能教育试点市,潍坊市奎文区等15个县(市、区)为人工智能教育试点县(市、区),济南市青龙街小学等721所学校为首批试点学校(小学359所)。

二、编程教育在教材中的编排思路


针对信息意识、计算思维、数字化学习与创新、信息社会责任的学科核心素养,本套教材进行了整体设计。

1.进一步增强落实立德树人的根本任务。

第一册学习项目为“研学旅行”,提高实践能力;第二册的学习项目为“书写人生智慧”,加强人文素养和编程、人工智能新时代教育;第三册的学习项目“青春演讲”增强了“人生规划”“爱国教育”;第四册的学习项目是“创作精美的数字作品”,以朗读、校园MV、动漫创作增强中华文化传统文化教育;第五册的学习项目是“数字化生活、学习与创新”,提高学生的数字化学习与创新能力,树立良好的网络道德和信息社会责任感;第六册的学习项目是“创客成长”,培养学生的创新意义与国家核心技术创新的主人公责任感。

2.进一步落实学科核心素养的课程目标。

在第一册增加一个单元作为基础编程教育,引导学生“探究如何用计算机解决问题”,提升计算思维的学科核心素养;第二册增强算法与程序设计,加大高级算法启蒙教育内容,以Python算法与程序设计为国家核心竞争力做好人才教育;第五册数字化学习、3D创意设计内容进行重新编写,对数字化生活、学习与创新进行整体教育;第六册以创客教育为主体进行创新人才培养。

3.充分体现国家发展新时代和山东区域发展传统特色与新机遇。

领导人在考察山东时提出发展海洋经济、加强历史知识学习等时代课题。如,第一册利用互联网规划研学旅行,以刘公岛为例,针对信息搜索、电子地图、全景地图、导航定位、远程视频会议等进行新的设计与更新。如,第二册通过古诗朗读、古诗作曲、水墨动画设计等提升中华传统文化教育。如,第三册的PPT动画部分,采用对刘公岛研学报告作为范例,增进爱国教育。

4.加强创新人才的培养,为发展国家核心竞争力奠定教育基础

第一册、第二册以Python开源编程教育、人工智能教育为主提高编程技术能力;第五册增加3D创意设计与呈现,第六册增加手机编程与开源硬件设计;根据省评审专家团队的意见,全册共超过三分之一的编程内容促进创新人才的从小培养。

5.编程教育、人工智能教育设置时间的考虑

根据国家发展与山东省发展的有关精神,编程教育是国家教育发展的重要方向之。各地在小学,甚至幼儿园,都在陆续开展编程教育、人工智能教育。

编程教育有相对独立的知识体系,从图形化编程开始就对变量、表达式、计算、判断、循环有相当的知识学习,在概念上代码编程可继承。如果图形化编程没有学习,也不妨碍代码编程使用变量、数据类型体验编程,因为可以通过实例、比喻、实验等方式学习技术。

技术学习与数学学习不一样,主要是在实验中进行体验式探究,而不是概念的推理。编程教育非常重要,甚至已经成为技术教育的核心内容,从初一开始是可以的,也是必要的,这时候学生学习心理比较稳定。如果放在初三,以前有过放在初三学习的经验,受升学影响开课会不理想,对山东省的编程教育会大为影响,甚至影响到高中、大学人才的培养。 

初中编程难度也要分层,每一节的科学探究、技术探索是为学有余力的学生准备;递归、分治算法这类难度稍大的内容也是为学习进程快、编程教育需要高的地区的准备。并不要求全学全会,这与其他学科的内容难度处理方法是类似的。

6.选择Python编程的原因

Python是目前最接近自然语言的通用编程语言,聚焦于计算问题求解,适合的教学对象是需要利用计算机解决各类计算问题的群体;VB诠释了“计算机视窗”时代的计算思维,聚焦于程序的所见即所得,适合的教学对象是需要编写视窗应用的群体。Python的编程语法比VB更为简洁,入门更为容易,并且国家高中课程从2019年起,必修1、必修2全部是Python编程。选择性必修模块1“数据与数据结构”、选修模块1“算法初步”全都是基于Python设计。

因此,初中另外学习其他语言,不利于学生成长,也不符合现在的技术发展方向。学习Python,在初中只是从计算思维的角度,并不要求全面、细致掌握语法、技巧,只是需要了解、体验、尝试、理解层次的关于基础算法的学习,能够形成使用代码编程的计算思维的学科核心素养。

三、第一册编程内容说明


1.设计意图

在第2单元引导学生“探究如何用计算机解决问题”,提升计算思维的学科核心素养;第二册增强算法与程序设计,加大高级算法启蒙教育内容,Python算法与程序设计为国家核心竞争力做好人才教育。

2.教学要求 

(1)能够利用基本程序代码进行数据的输入、计算、选择和自动化加工,理解用计算机程序解决问题的基本过程,学会设计基本的顺序、选择、循环结构程序分析、解决问题。

(2)能够利用输入、输出、赋值语句设计程序,了解不同类型的数据与变量的应用方法,体验利用顺序结构程序进行基本的数据输入、计算与输出。

(3)能够利用if、else等基础的选择语句和and、or等逻辑关系设计程序,了解不同条件、情况下的数据处理方式,体验利用选择结构程序进行基本的情况判断与逻辑推理。

(4)能够利用for、while等基础的循环语句用循环嵌套设计程序,体验自动化数据处理的原理,了解如何利用循环结构程序进行基本的数据加工与统计。

(5)能够在程序设计中初步形成计算思维,提高逻辑推理能力,关心时代发展,增进科学、人文素养。

3.教学建议

微项目1:探究用程序加工数据的过程


 

(1)编写数据加工的程序

能够利用输入、输出、赋值语句设计程序,了解不同类型的数据与变量的应用方法,体验利用顺序结构程序进行基本的数据输入、计算与输出。

通过体验输入、计算、输出数据,认识程序的作用。探究、思考数据加工基本过程用到哪些程序语句。

【程序范例】“利息计算”。

x=int(input("金额:"))

y=x*1.5/100*1

print("利息是:",y)

 

【技术体验】

① Python的启动、编辑、运行。

②赋值语句      

如:x=123  y=x*2  z=”你好”

③输入          

如:c=input( "请输入姓名:")

④取整          

如:int("2" )       

int(2.5 )

⑤输出          

如:print( "结果是:",y)

【知识了解】

变量,*(乘号),/(除号),赋值格式:变量=表达式 。

#!/usr/bin/python3 是跨平台应用,在Windows下编程可以省略。

【学习指导】

①可以把计算机比作数据加工工厂,原材料(数据)通过input( )这样的输入函数作为数据传送带,把数据送到库房(内存)中去。

②内存中存储数据的器具有很多种,变量就像是一个有名称的容器,用字母(可跟数字)表示;如A、C2等。

③数据在CPU的运算器中完成计算后,可以把表达式计算的值再赋给其他变量。

【程序实验】

可修改题意,进行练习,目的是体验输入数据、计算数据、输出数据,尤其是能够简单地修改运算表达式。

通过两种难度的程序实验,在体验本节技术的基础上,深入体验数据类型的不同。

基础难度题:“求三个人的平均年龄”(结果为整数)

a1=int(input ("请输入第1个同学的年龄:"))

a2=int(input ("请输入第2个同学的年龄:"))

a3=int(input ("请输入第3个同学的年龄:"))

p=int((a1+a2+a3)/3)

print("平均年龄是:",p)

 

★★拓展难度题:“求三科成绩的平均值”(结果为浮点数)

a1=float(input ("请输入第1学科成绩:"))

a2=float(input ("请输入第2学科成绩:"))

a3=float(input ("请输入第3学科成绩:"))

p=float((a1+a2+a3)/3)

print("平均成绩是:",p)

 

(2)探究数据的存储方式

 

【学习目标】尝试在变量、列表中存储数据,了解数据的存储方法。思考变量的类型与用途有何关联。

【学习范例】“优良品质列表”。

m=['爱国','坚毅','乐观']

print("你的品质:",m)

m.append('努力')

m.append('细致')

print("你的品质:",m)

print("第一品质:",m[0])

 

【技术体验】体验列表中的赋值、追加、显示功能。

【知识了解】列表用[ ]存储,赋值、显示都可以用列表名称(如m)或元素名称(如m(0)、m(1)表示。

【学习指导】

①单个的变量就像孤独的房间,而一系列的房间可以用列表表示。

②m.append就像是给m在后面接着增加一个房间,并放上东西。“追加”这个单词不用背诵,了解就行。

③M(2)、M(5)这样的名称是指相应房间的值。

【程序实验】

针对有分类特点的数据进行练习,目的是体验列表的赋值、追加、输入,尤其是能够简单应用下标如m(2)显示单个的列表元素,并注意第1个元素是下标是0。

基础难度题:“我喜欢的植物”“中国著名的沿海城市”等。

m=['大连','天津','青岛']

m.append('上海')

m.append('厦门')

print("山东的海边名珠:",m[2])

print("中国著名的沿海城市:",m)

 

 

★★拓展难度题:用多种类型数据列表存储一个人的信息。

n=['姓名','李杨','年龄',15,'性别','']

print(n[1],"的年龄:",n[3])

科学探究:数据类型及其运算

主要用于理解数据有不同的类型,能够区分数字、字符串即可。


   数据类型转换,是探究数据运算可如果类型不一致,有的可以通过转换类型来处理,不要求掌握转换规则。

n   =10       # 整型变量

t   =10.0      # 浮点型变量

m = "Do you know"  # 字符串变量

 

print (n)

print (t)

print (m)

print(str(n)+'T')

x=5 + 4    #加法

y= 4.3 - 2  # 减法

z= 3 * 7   # 乘法

w= 2 / 4   # 除法,得到一个浮点数

v= 2 // 4 # 整除,得到一个整数

m= 17 % 3 # 取余

n= 2 ** 5 # 乘方

str = 'My home is in Shandong'

print (str)    # 输出字符串

print (str[0:-8]) # 输出第一个到倒数第九个的所有字符

print (str[0])  # 输出字符串第一个字符

print (str[3:7]) # 输出从第四个开始到第七个的字符

注意:在以上程序中,可以修改数据进行观察结果。运算掌握程度视学生学习情况而定。重在实验观察,不重记忆与理解。

技术探索:尝试用文件存储数据

通过探索,了解数据可以存储在文件中,实现长期保存。能够修改程序中的文件名,完成存储,观察存储结果即可,不要求掌握语法规则。

文件写入程序,重在体验,可以修改文件名称、内容,进行实验。其中,n是换行的意思。

fw = open("group5.txt","w")   

#打开一个文件

fw.write("我的小组:")       

#向文件写入字符串

fw.write("五组n")            

#向文件写入字符并换行

fw.write("小组理念:n")

m = input("请输入你们小组的理念:")    

#从键盘输入一个字符串

fw.write(m+"n")  

       

fw.close()                    

#关闭打开的文件

在以上程序中,关闭文件是为了数据安全,可适当说明。

另外,对文件读取,知道能够读取即可,也不要求体验程序。

fw = open("group5.txt","r+")  

str1 = fw.read(5)

str2 = fw.readline( )

print ("读取的字符串是 : ", str1)

print ("读取的字符串是 : ", str2)

fw.close()

注意:

在以上程序中,read(5)是读5个字符。可改变数值观察结果的变化。

readline( )是读一行字符。

学习评测:按2种不同层次水平评测。

★一星难度

1.以下是属于变量的是(  )

A 12.3  B x  C “变量”  D 1+2

2.以下赋值正确的是(  )

A x=1、2、3

B y=123+“456”

C x=1,2,3

D y=1+2+3

3.以下x值等于5的是()

A x=”10/2”

B x=10/2

C x=int(10/2)

D x=”6-1”

4. 以下程序运行后,显示的结果是(      )

a1=int(input ("请输入自然数:"))

a2=int(input ("请输入自然数:"))

p=int(a1*a2)

print(p)

假如输入5和6,结果是: ______________________

5.以下程序运行后,显示的结果是_______________

m=['书法','绘画','体育']

m.append('歌唱')

m.append('舞蹈')

print(m[0])

 

参考答案:1.B  2.D 3.C 4.30 5.书法

 

★★二星难度

1.以下是属于变量的是(  )

A x+y  B xy  C x=“变量”  D x/y

2.以下赋值正确的是(  )

A x=a1+a2+a3

B y=“123”+“456”

C x=123+456

D y=123+“456”

3.以下x值等于3的是()

A x=”10/3”

B x=10/3

C x=int(10/3)

D x=”6-3”

4. 以下程序运行后,显示的结果是(      )

a1=int(input ("请输入自然数:"))

a2=int(input ("请输入自然数:"))

p=int(a1/a2+a1*a2)

print(p)

假如输入15和5,结果是: ______________________

5.以下程序运行后,显示的结果是_______________

m=['书法','绘画','体育']

m.append('歌唱')

m.append('舞蹈')

print("与体能有关的项目是:",m[2])

 

参考答案:1.B  2.D 3.C 4.78 

5.与体能有关的项目是:体育

后记,小编朋友研发了一个游戏化的少儿编程在线课程(5-12岁),游戏化教学结合scratch(一款在线少儿编程工具,类似乐高的积木拼搭),我家娃娃学了几次课,非常喜欢(超预期),16次课才200多块钱,对锻炼孩子的思维能力和动手动力很有帮助。

感兴趣的朋友可以扫描二维码,关注一下,或微信搜索“大耳猴少儿编程”

greyimg