在Python的教学中,我会发现孩子们可以轻易的理解变量、循环、判断、缩进与嵌套、列表、元组、字典,甚至较为基础的一些算法:贪心算法都可以很轻易的理解和掌握,但是他们的问题出现在了应用与代码实战上
对于我们搞代码的,纸上谈兵无疑是最忌讳的事情!
只会理论是远远不够的,尽管理论是我们的基础,但是当要完成一个小小的项目:猜数字小游戏、学生管理系统的增删改查等等诸如此类的小功能,他们完全无从下手,比如学生管理系统,无非就是增删改查和一个输入输出罢了,但是他们很难将学到的知识联系到一起。
我认为的青少年编程教育最重要也是最难的点,就出现在了这里:学以致用,将所学知识点进行整合,应用到代码实战上!
那么想要让学生学会将所学知识点进行整合实战,我有以下方案,在日常教研工作中足以应对大多数情况
谋定而后动,知止而有得,这句话其实适用所有从事开发行业的各位兄弟姐妹,同时也是青少年编程教育中对青少年编程教育必须要掌握的技能:
当我们想要将一个想法以代码的形式实现的时候,往往离不开两大工具:思维导图和流程图。
总体上来说,对于青少年,亦是如此。
当课堂目标是一个项目的时候,我们必须要进行思维导图的梳理,首先让学生理解我们本堂课的目标,以及我们拆分出来的各个小目标分别以怎样的形式实现,这个时候我们可以以板书或书面的形式进行对需要调用的代码、函数、方法等总结。
当建构完了思维导图之后,接下来就是将它实现:
那么我们就需要流程图来进行代码顺序的梳理,这个时候就离不开流程图对代码的整合与顺序上的建构
1.定义空列表
2.定义死循环
3.询问要进行的操作
4.对列表进行对应的操作
这就是简单的概念梳理
那么接下来就是代码的书写部分:充分利用流程图与思维导图进行逐步分解:
student = [] #定义空列表
while True:
a = int(input("请输入你要进行的操作\n1.增加一个学生\n2.删除一个学生\n3.修改、替换一个学生\n4.查询全部学生\n清除所有学生"))
if a == 1: #添加一个学生的操作
student_name_append = input("请输入你要添加的学生")
student.append(student_name_append)
elif a == 2: #删除一个学生的操作
student_name_delete = input("请输入你要删除的学生")
if student_name_delete in student: #审查
student.remove(student_name_delete)
else:
print("您要删除的学生不存在,请重新选择您的操作")
elif a == 3:#修改
student_name_replace = input("请输入您要替换的学生")
if student_name_replace in student: #审查
student.replaced = input("请输入你要新替换的学生")
student[student.index(student.replce)] = student_name_replaced #下标索引值
else:
print("您要替换的对象不存在请重新选择您的操作")
elif a == 4:
print(student)
elif a == 5:#删除
bool_ = input("警告!你将清除所有学生!")
if bool_ == "确定":#预警
student.clear()
else:
print("已成功取消,请重新选择操作")
这是其一,第二个也是一个必经之路:
那就是刷题!
倒也不至于像力扣上那么难的题,诸如考级的卷子或者简单的计算题,也可以让学生逐渐掌握对代码的综合应用能力