公司动态
给A娃家长,谈一谈,我是如何带A娃,在小学毕业前达到GESP六级水平的。
教学过程是一个 ADHDA娃孩子有一定图形化编程基础从小学四年级开始系统学习 C并在小学毕业前达到 GESP 6 级水平。我先说对于A娃教学的特点我们不要把目标设计成“让孩子坐得住、刷得多、学得快”而应该设计成“让孩子愿意学、学得进去、不断获得成功感然后逐渐形成自己的学习系统”。A娃最忌讳用普通孩子的学习节奏去要求他。一、首先纠正家长一个非常重要的误区很多家长看到孩子坐不住东摸西摸上课走神作业拖拉一道题做几分钟就想玩明明会做却粗心出错老师讲的时候似乎没听一遇到困难就不想做第一反应往往是“我家孩子学习态度不认真。”实际上不能简单这么理解。ADHD 的核心困难涉及注意调节、执行功能、冲动控制等方面并不等于智商低也不能简单等同于“懒”“笨”“不努力”。恰恰相反他们的智商完全正常大多甚至头脑灵活、反应更快、创造力更强。 唯一的问题是 大脑的自控力、专注力、情绪调控能力发育滞后。所以给 A娃教 C第一个原则就是不要把“注意力表现”直接等同于“学习能力”。有些A娃会出现非常有意思的情况老师讲英语“根本听不进去。”老师讲 C“突然能连续专注很长时间。”为什么因为编程本身具有即时反馈 问题挑战 游戏感 创造性 成就感。这恰恰适合 A娃。二、GESP 6级对于小学阶段的A娃来说是一个特别高的目标这里我们要把目标拆开。如果小学毕业要达到GESP C 6级意味着孩子需要逐步建立非常完整的编程能力。大体上需要经历C基础 ↓ 程序思维 ↓ 数组 / 字符串 ↓ 函数 ↓ STL ↓ 排序 / 二分 / 前缀和 ↓ 递归 ↓ 基础数据结构 ↓ DFS / BFS ↓ 基础算法 ↓ 动态规划 ↓ 面向对象编程 ↓ GESP 6级所以真正的目标不是“小学毕业考过6级。”而应该是“小学毕业时孩子已经形成了一套可以继续向信息学竞赛发展的编程思维体系。”证书只是结果。三、A娃学C最重要的不是“多学”而是“短周期反馈”这是整个教学设计中最重要的一点。普通孩子可能可以老师讲60分钟 → 做10道题 → 总结但是对于很多注意力调节困难的孩子这种模式很容易崩掉。我推荐一个知识点 一个小任务比如今天学习if不要一上来讲条件表达式、逻辑表达式、嵌套分支、switch……而是第一个任务“输入小明的考试成绩如果 ≥60输出‘及格’。”孩子写if (score 60) cout 及格;马上运行。成功。第二个任务“如果 ≥90 输出优秀≥60 输出及格否则输出不及格。”马上运行。成功。第三个任务增加一点挑战“如果小明成绩为负数或者超过100输出‘输入错误’。”孩子开始思考。这时候孩子的大脑获得的是我发现规律 → 我写代码 → 程序运行 → 我成功了。这种即时反馈非常重要。四、我给A娃采用“15分钟一个学习单元”整节课为90分钟我设计15分钟一个小闭环。例如一节90分钟课程可以拆成010分钟 热身题 1025分钟 新知识 2540分钟 小任务 4045分钟 休息 / 活动 4560分钟 新知识 6075分钟 闯关题 7585分钟 挑战题 8590分钟 总结甚至可以进一步做到10分钟学习 5分钟实践或者15分钟学习 3分钟活动具体时间当然需要根据孩子实际状态调整。重点不是“15分钟”这个数字而是不要让孩子长时间处于“被动听课状态”。五、A娃特别适合“闯关式C”我设计的课程是不会叫第一章变量第二章运算符第三章循环我是把它设计成《C冒险岛》第一关让计算机听懂你说话学习cin cout 变量第二关让机器人学会判断学习if else第三关让机器人学会重复学习for while全部采用故事模式闯关模式这样孩子脑中的结构就不是“今天又学了一堆知识。”而是“我已经打到第几关了”这对A娃非常重要。六、千万不要一开始就疯狂刷题这是很多家长最容易踩的坑。孩子刚开始学C就买教材买题库每天10题每周考试错题本模拟卷……最后孩子会变成“我讨厌C。”这就得不偿失了。对于A娃。我建议1道题吃透搞懂 10道题刷过去例如一道求1100的和不要只是int sum 0; for(int i 1; i 100; i) sum i;做完就结束。而是要理解为什么要有sum为什么sum要初始化为0循环执行多少次第一次sum是多少最后一次sum是多少如果改成11000呢如果只加偶数呢如果只加3的倍数呢如果让用户输入n呢一题变成一个知识树。这些过程都要变成闯关让他在闯关中成长。这才是适合A娃的学习。七、尤其要重视“让孩子解释代码”这一点特别适合A娃。也就是我让学生经常采用的费曼学习法对于A娃尤其有价值。比如孩子写int sum 0; for(int i 1; i n; i) { sum i; }不要问你“会不会”因为孩子很容易回答“会。”而应该让孩子解释“你来当老师给一个完全不会C的人讲讲这段代码。”如果孩子说sum就是算总数的。我继续问“为什么一开始是0”孩子“因为还没有加东西。”很好。继续“为什么i从1开始”……这个过程其实是在给A娃训练理解 → 组织 → 表达 → 抽象。而这恰恰是未来真正做算法题需要的能力。八、A娃教学还有一个非常重要的原则允许“动”这是传统课堂特别容易犯的错误。老师认为学习 安静坐着。但实际上安静 ≠ 专注。有些孩子虽然手在动但脑子其实在思考。所以如果孩子转笔摆弄小物件站起来在白板上写走到电脑前运行程序只要没有影响别人而且仍然能够完成任务不要过度纠正。我们真正应该观察的是任务有没有完成而不是他是不是一直保持标准坐姿九、给A娃设计“低门槛、高上限”的题目这个非常关键。比如基础层输入两个数输出较大的数。孩子完成。提升层输入三个数输出最大值。挑战层输入10个数输出最大值。算法层输入n个数求最大值和出现次数。拓展层求前K大的数。这样一个知识点可以不断升级。孩子如果状态不好做基础层也算成功。孩子今天状态特别好可以继续挑战层。这就是弹性教学而不是要求孩子必须达到哪个阶段。十、我给A娃分成三个阶段目标是小学毕业达到GESP 6级我大致这样安排的。第一阶段培养编程兴趣目标让孩子喜欢上C。主要学习输入输出 变量 运算符 if for while 数组 字符串 函数这个阶段最重要的不是速度。而是建立“我能控制计算机”的感觉。第二阶段建立算法思维开始进入vector string sort pair queue stack map set以及枚举 模拟 前缀和 差分 二分 递归 DFS BFS这时候开始让孩子理解算法不是背代码而是解决问题的方法。第三阶段高级算法体系进入复杂数据结构 图 树 搜索 动态规划 贪心 数学 综合算法同时开始GESP真题 限时训练 错题分析 代码调试 独立思考十一、时间安排我安排每周2次课小班一对一。孩子开始阶段四年级年龄比较小我建议每周至少有1次完整课程可以跟小班再加至少一次一对一时间不少于一个半小时。寒假、暑假可以适当增加学习次数。重点是形成高频率、低压力、长期坚持十二、家长最需要做的一件事情不要盯着“今天做了多少题”对于A娃我建议目标不是今天做了10道题。而是项目记录今天学习了什么循环是否理解基本理解是否能独立写可以是否能解释可以今天最大的进步能自己debug今天遇到的问题循环边界明天复习什么i n你会发现学习质量比题量重要得多。十三、还有一个特别重要的问题不要把“错误”变成负面事件A娃学习编程的时候可能会出现编译错误 运行错误 答案错误 各种错误 。。。。普通孩子可以直接给他指出“这道题错了。”对于A娃我们要把它变成“你又发现一个Bug”甚至“恭喜了你今天抓到第3只Bug了。”这样孩子会慢慢形成一种非常重要的程序员思维错误不是失败而是信息。这对信息学竞赛非常重要。十四、真正需要培养的是这5种能力给A娃制定目标应该按照下述来设计能力1专注一个自己感兴趣的问题哪怕只有20分钟。能力2遇到不会的问题不马上放弃从“我不会。”变成“我先试试看。”能力3能够调试看到Wrong Answer知道“我需要找Bug。”能力4能够表达自己的思路能够说“我先枚举……”“因为这个范围很大所以不能暴力……”“我可以用数组记录……”能力5能够独立解决新问题这才是真正的信息学能力。十五、带A娃我采用这样的教学公式我把整个课程概括成一句话兴趣 → 成功 → 挑战 → 失败 → 调试 → 成功 → 总结 → 再挑战形成循环┌──────────────┐ │ 兴趣 │ └──────┬───────┘ ↓ ┌──────────────┐ │ 小任务 │ └──────┬───────┘ ↓ ┌──────────────┐ │ 获得成功 │ └──────┬───────┘ ↓ ┌──────────────┐ │ 更大挑战 │ └──────┬───────┘ ↓ ┌──────────────┐ │ 遇到Bug │ └──────┬───────┘ ↓ ┌──────────────┐ │ 学会调试 │ └──────┬───────┘ ↓ ┌──────────────┐ │ 再次成功 │ └──────┬───────┘ ↓ 成长这比讲课 → 作业 → 批评 → 再刷题有效得多。十六、最后我想分享一句对于一个A娃来说小学毕业达到GESP 6级水平作为目标这可以是与家长来沟通设计的。但千万不要把这个目标告诉孩子“你的目标是在小学毕业前拿到6级。”对于A娃我们只能鼓励最大可能的减少孩子压力。如果最后拿到了GESP 6级很好这是结果。如果孩子没有达到6级证书但他已经能够独立写C理解数组、STL会搜索会基础DP能自己Debug遇到难题敢于思考开始形成算法思维那么无疑这就是非常优秀的结果。因为真正决定这个孩子初中以后能不能继续走信息学道路的不是那一张证书而是“我遇到不会的东西我愿意继续研究。”这才是给A娃学编程最重要的教育目标。