重磅推荐
【编辑推荐】

这是一本以解决问题为核心、按能力体系编排的编程入门书,弱化语法,强化算法,在情境中引出新知,循序渐进,由浅入深,逐步系统化,有习题,有课件,易学易会。学会编程,未来你将拥有更多的机会与可能。


【内容简介】

这是一本基于小学生认知水平和学习发展规律的教材,创设贴近小学生学习、生活的情境,在解决问题的实践中引出新知,由浅入深,由易到难,循序渐进,逐步系统化,为培养小学生编程能力和用算法解决问题的意识提供了一套较优的方案。本书设计的案例有层次、有梯度,利用类似于代码的自然语言描述解决问题的过程与步骤,让思维活动可视化,为提升小学生的思考力提供了有力的抓手。每课、每单元均设计具有反馈、巩固学习效果的检测作业,为激发小学生学习兴趣、保持学习动力、体验编程的快乐提供了可靠的保障。 本书适合小学四年级及以上学生阅读使用,可作为小学信息科技学科的教辅材料,也可作为信息科技教师学习Python语言的参考读物。


【作者简介】

潘洪波,高级教师,曾获浙江省小学信息技术优质课一等奖,编写的教材《小学生C 趣味编程》《小学生C 趣味编程训练营》由清华大学出版社出版,编写的《智能机器人WeDo 2.0(小学版)》被评为浙江省第六届精品课程。


【目录】

人物介绍 000 第1单元走进Python的世界001第1课 换个视角看世界—认识Python 002 第2课 键盘指法—输出函数print( ) 007 第3课 重要的话说三遍—变量与赋值 014 第4课 寄语—输入函数input( ) 019 第5课 生日礼物—类型转换 023 第6课 工厂的时钟—取模运算符 029 第7课 小棒总根数—字符串split( )方法 033 第8课 身份证号码—有序序列的正向索引与切片 038 第9课 取盘子—有序序列的反向索引与切片 044 第10课 “星”运算—多态 051 单元检测 055 第2单元分支结构059第11课 健康监测—单分支结构if 060 第12课 变量名—双分支结构if?else 067 第13课 作业等级—多分支结构if?else语句的嵌套 074 第14课 再谈作业等级—多分支结构if?elif?elif 081 第15课 自然数的判定—逻辑运算符 087 单元检测 094 第3单元循环结构099第16课 青蛙跳水—遍历循环for 100 第17课 再谈青蛙跳水—range( )生成器 105 第18课 储蓄计划—累加求和 111 第19课 再谈储蓄计划—sum( )函数 116 第20课 扫描识别—线性搜索 121 第21课 再谈扫描识别—列表的“可变”性 126 第22课 素数问题—break语句 131 第23课 幸运数字—continue语句 137 第24课 声控灯—永远循环while 143 第25课 验证码—随机模块 148 第26课 每天进步一点—两种循环的比较 156 第27课 百钱买百鸡—循环嵌套 160 单元检测 164 第4单元函数167第28课 洗衣机—函数的定义与参数 168 第29课 温差—函数的返回值 173 第30课 废钢回运—变量作用域 178 第31课 跑出气质—函数的副作用与纯函数 184 第32课 回文数—函数与方法 192 第33课 神奇的兔子数列—递推与递归 198 单元检测 204 第5单元库207第34课 会画图的小海龟—turtle模块 208 第35课 糖葫芦—画笔控制函数 212 第36课 海龟赛跑—绘图坐标系统 216 第37课 以生态视角看世界—模块编程 220 单元检测 224 参考文献 228 参考答案及配套资源下载 229 附录231附录A 代码格式说明 232 附录B Thonny的程序调试功能 233 附录C 字符集 235 附录D 奖励积分卡—比特童币 236


【前言】

现在有一种流行的说法:Python语言最接近自然语言,语法简洁、清晰、易懂,拥有众多的第三方库,非常适合编程初学者学习使用。 如果初学者是成年人,这种说法完全正确。如果初学者是小学生,这种说法就值得商榷了。 Python语言最接近自然语言,这个“自然语言”是指汉语吗?不是,而是英语。对于我国的小学生来说,英语是一门外语,不是母语,按照公布的《义务教育课程方案(2022年版)》的课程设置,小学中高年级才开始开设英语课。如果按照正常的教学进度,小学五、六年级的孩子英语刚入门,他们可以把学会的简单的英文单词、语法迁移到Python语言中,但想以“最接近自然语言”为突破口来学习Python语言,是不现实的。 Python语言的语法是简洁、清晰的,但对小学生来说是不是易懂的呢?简洁的语法,有时是会增加学习难度的。例如,赋值语句tot =2中使用了由“ ”“=”构成的增强赋值运算符“ =”,这样的语句很简洁、清晰,但孩子们在学习时,需要“转个弯”,先转换成烦琐一点的普通赋值语句tot=tot 2,才能更容易消化、理解。同时,计算机高级语言的语法结构和汉语的语法结构是不一致的,编程时,要从母语的表述方式转换成用计算机语言来描述,这涉及思维方式的转换,对初学者而言特别不容易。 拥有众多的第三方库,对于项目应用的开发者来说,可以提高工作效率,但也容易让人迷失在库的海洋里。对于一个人来说,时间是一个常量,更何况是小学生,各门学科都有各自的学习任务,可支配的时间有限,以“众多的第三方库”作为学习内容,也是值得探讨的。 因此,我们要树立一个观点:对于小学生来说,想要学会Python语言是不容易的。 一方面,这种“不容易”提醒所有的教育者要正确面对现实,认识到存在的困难,只有基于现实进行思考,才能找到正确的解决方法;另一方面,这种“不容易”也激励着教育者,只要方法正确,路径有效,对于一般的小学生来说,学习Python语言也并非一件难事。 如何才能让“不容易”变得“容易”呢?编写一本基于小学生认知规律和学习发展规律的教材是重要的一环。 首先,编写小学生Python教材时,要明白成人与小学生学习Python语言的目的是不同的。成人往往是为工作而学,为开发某个具体的项目或应用程序而学,侧重于应用性。而小学生是为成长而学,以Python语言为载体进行思维的完整性和逻辑性训练,掌握利用计算机解决问题的方法,培养思考力,激发兴趣,侧重于基础性。 其次,编写的教材要做到对、好、趣、高。 对。就是教材编写的内容要正确,这是最基本的要求。但由于Python语言的独特性,做到“对”并不简单。例如,一般程序设计高级语言中的变量是“箱子”,赋值是把某个表达式的值装入“箱子”的过程;而Python语言中的变量,是对象的标签,是对象的引用,赋值是把变量指向某个具体对象的过程。只有基于“指向”“引用”的认识时,孩子们才能理解多变量同时指向同一个组合类型对象时,修改某个变量指向的对象元素后,其他变量的值也会发生变化。因此,不能把Python语言中的变量比喻成“箱子”。 又如,一般程序设计高级语言中for循环是计数循环,而Python语言中的for循环是遍历循环,遍历循环可以实现计数功能,但它不是计数循环,只有从“遍历”的角度去理解,才能让孩子们明白遍历循环的循环体中对循环变量的重新赋值修改不会影响循环次数,不能把遍历循环简单处理为计数循环。 好。这个“好”一方面体现在编排顺序上,要循序渐进,不能把知识点简单地堆砌起来。对于有基础的成人,选用将各种语法知识集中呈现的教材能快速全面地掌握Python语言。但是知识点集中呈现的教材对于编程零基础的孩子来说是不适合的,犹如把各种字、词集中整理在一起的字典不能作为孩子学习语文的教材。在案例中,循序渐进地学习各个知识点或许是小学生学习编程的可行路径。在解决问题的实践中,引出新知,适可而止,由浅入深,由易到难,不求概念化,逐步系统化,实现从以语法为核心的知识体系的教学编排转向以解决问题为核心的能力体系的教学编排。 “好”的另一方面体现编排内容上,要做到因材施教。Python语言是一种生态语言,生态语言关注的不再是每个具体算法的逻辑功能和设计,而是尽可能利用第三方库进行代码复用,像搭积木一样编写程序,提高开发工作的效率。对于成人,从计算生态的角度学习Python是因材施教。如果小学生也是从计算生态的角度学习Python,那么要记住内置函数、对象的方法及各种库的调用语法,才能编写程序。但这样大脑就会进入记单词阶段,缺少思维活动会让学习变成记忆,不利于孩子的成长。因此,小学生应从算法的角度学习Python,注重基础性,弱化应用性,关注思维活动。数据、算法、算力是人工智能的三要素。选择算法作为学习内容,也符合时代发展的趋势。那么,选择怎样的内容才算是从算法角度编排的呢?例如,已知某一个数字列表中各个元素的值,求出该列表中所有元素的和。从计算生态的角度出发,直接学习内置求和函数sum()的调用方法,代码简洁,编程的效率高。从算法角度出发,应学习计算机高级语言累加求和的一般方法(先将累加器清零,再遍历列表中的每一个元素,依次累加各个元素的值,最后输出累加器的值)。这种求和方法的代码长,编程效率低,却能让小学生明白累加的一般过程,学会思考。站在一般程序设计语言的视角选择学习Python语言的内容,既要关注Python语言个性化的内容,也要关注程序设计语言的共性知识,两者有机结合,通盘考虑,适当地从语言细节上解放出来,才能更有利于孩子的成长。 趣。就是编写的教材要让孩子感到有趣。“趣”是有层次的。第一层次是精美的画面,以图吸引孩子。对于小学低年级学生,这个显得特别重要。对于从形象思维过渡到抽象思维的小学高年级学生,图对他们有吸引力,但引发的兴趣不持久,因学习而体验成功的快乐、因学习而实现自我价值引发的兴趣才是最持久的、最可贵的,这便是第二层次的“趣”。因此,编写的教材一方面要有插图,吸引孩子兴趣;另一方面要设计有梯度、有层次的问题,在解决问题的过程中利用自然语言、流程图或伪代码语言等方式,呈现解决问题的过程与步骤,让思维活动可视化,同时设计习题,举一反三,为孩子体验编程的快乐、实现自我价值、保持学习动力提供可能。 高。就是编写教材的指导思想要高。跳出学科看问题,跳出技术看问题,要从人的发展、培养人的角度来考虑。从人的发展角度看,多数孩子将来不会成为程序员或计算机科学家,因此,不能把编程看作一种狭隘的技术,而是把它当成一种解决问题的方法,让孩子学会问题的分解、抽象、建模、设计算法的能力,并能将这种能力迁移、应用到解决其他学习、生活中的问题中。从培养人的角度看,编程只是学习的载体,不是学习的目的,学习的目的是能让孩子在学习编程的过程中得到成长,关注孩子思维完整性和逻辑性方面的训练,培养孩子的理解力、思考力、创造力,为孩子的未来助力。不要只把编程当成筛选人才的工具,而是应该把编程作为培养人才的利器,因此,在编写教材时,应在科学的、发展的人才观、成才观、教育观的视角下组织教学内容,让编程成为一种素养。 本书基于以上认识和多年一线的编程教学实践编写而成。在编写的过程中,得到金华市婺城区教研室郑理新、金华市第五中学陈洪棋、金华市青春中学陈旭平、浙江师范大学熊继平等老师的指导与帮助。因编者水平有限,书中难免存在不妥或错误之处,欢迎读者批评指正,可以发送邮件至电子邮箱4878747@qq.com,更希望读者对本书提出建设性意见,以便修订、再版时改进。 潘洪波 2023年4月


返回顶部