帮助孩子学习少儿编程的6个诀窍,教授知识同样需要“技术”! ...

[复制链接]
522008 发表于 2018-1-13 09:07:34 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
少儿编程是一项任何孩子都可以参与其中的创造性活动。你的孩子或许并不喜欢处理数据运用算法,但他们可能会喜欢创造游戏、音乐、设计网站、或只是摆弄代码。你不必认为自己是技术人员或”擅长数学“才能学习编程。实际上,孩子学习编程要比成年人更快,因为他们不知道编程的“困难”所在。
1 r' U* G) o$ @- s0 S0 P不管你是软件工程师,还是完全没有少儿编程背景,下面这六个建议都将有助于你的孩子学习编程:
8 j9 S7 ^) @9 ~1 s" a. U1. 比起大孩子们学习的Python,小孩子更适合Scratch。, v$ |2 N# S* j
' h3 ]# e8 [2 u
Scratch 是一个麻省理工学院为儿童设计的免费少儿编程工具,可以运行在任何一个现代网页浏览器中。它的视觉风格受到 Logo 程序的影响,Logo 是一个为 80 和 90 年代儿童设计的主流编程课程。但是 Scratch 可不止是 Logo 的山寨版那么简单。) ^! t7 ^( e+ g
8 到 13 岁的孩子们将会受益于 Scratch 简单的图形界面。Scratch 可以通过拖拽代码块将它们拼在一起。不可计算的代码片段则无法组合,这样杜绝了字面上的语法错误。而这对于不会输入的孩子们来说无疑是非常好的帮助。" @+ U. F+ f' ]* s8 Y. _) ?
当然,孩子们如果想编写更加复杂的程序,Scratch反而却成了他们的阻碍 。对于青少年来说,像 Python 这种真正的编程语言才更加适合。Python 是一种优秀的首选编程语言,因为它的语法非常简单(不像 Java 或者 C# ),代码可读性高(不像 Perl 或者 JavaScript),并且有强大友好的开发者社区 支持。如果 Scratch 已经无法满足你的小孩,那就来学习Python吧。
% _: N' r1 z4 W9 h* T8 v# N' w" ^
/ g1 ?1 c5 _1 A4 L% L9 H2. 比起叙述概念,将程序源代码展示出来2 Y3 Z, y$ x2 b; X# h# d

0 l! \$ J& `  Z* S" D/ l. C尽管编程以智力著称,但它是个需要动手练习的技能,光靠看书可不行。Python 交互式 shell 命令行鼓励通过实践来发现指令的功用。0 x" r# l* a, ~0 M
如果你直接教你的孩子,写代码的效率要远高于只跟他们谈概念。即使孩子们学会了变量、循环、函数,让他们面对一个空白的程序编辑器还是会令他们感到恐惧。你更应该做的是和孩子们一起编写每一行代码。
9 y6 S" w, v9 Y  ^' x或者,如果你想分享在线资源给孩子,尽量找那种小游戏的源代码。最好是代码行数小于200的小程序。
/ [3 Z3 W5 f3 E7 A" e. P5 R) `Scratch 网站会自动共享其网站上所有项目的源码。多鼓励你的孩子修改这些代码,然后看看这些改动如何影响了最终的程序。
  J: Q* c8 I$ g) `. H9 F# D& k3. 游戏是充满乐趣的编程项目
4 J  l; q8 A# U! R8 `
* z0 f% x, C/ J( B+ }/ G3 \# O很多年轻程序员往往都是从编写游戏开始的。《愤怒的小鸟》、《Mincraft》、《Flappy Bird》、 《玩具熊的五夜后宫》,和其它的游戏都是灵感的源泉。
3 K' n* ^4 F* r" o" q6 H1 I8 V需要注意的是,你孩子所热爱的这些游戏,不一定适合作为入门学习的少儿编程项目。很多游戏是程序员、艺术家、设计师团队一起协作的结果。如果一个游戏需要大量的关卡设计和艺术工作,会吓坏初学者。完成一个简单的游戏,比开始一个永远做不完的大型项目要更容易让人获得满足。诸如码趣学院独创的《码趣大挑战》系列游戏就非常适合初学者。& L' n6 d+ F: J- X, {+ ~5 o8 Q
尽管游戏是有趣的,我一般不推荐“游戏制造器”或“游戏生成器”之类的专用软件。和 Scratch 类似的是,这些应用通常试图提供简化的编程环境。但是和 Scratch不同的是,它们会冲淡编程的概念。使用这些工具做编程感觉像在配置一个已有的软件。
- ]  a4 t1 l% w) r% W/ C4 o- L6 ]( L
4. 让你的手离开鼠标和键盘
/ ?+ g- i. }& r" m9 [8 `' n# R
$ g0 A0 \, p: W- V% H% y分享知识、告诉别人你对编程的理解是非常好的。然而编码是一个需要动手练习的技能,所以让孩子们尽情尝试吧。当和孩子们一同练习时一定要避免抢过孩子键盘的冲动,即使是短暂的也不行。如果他们需要点击一个菜单或按钮,要用手指去点屏幕去引导他们,而不是自己拿着鼠标去点。不管他们要输入什么代码,都让他们自己去做。毕竟要学习编程的不是你。
1 Q2 m, x2 g+ O5. 如果你在教一个班,保证每个孩子都有自己的电脑。) Z+ [1 s2 z8 e; ~& s' _, G
" c) q6 |' n' t' z
如果你在教一组学生,尽量让每一个人都有自己的电脑。与演奏乐器一样,编程技能需要动手练习而不是光看别人表演。推荐是使用便宜的笔记本电脑,尤其是当你没有专门的场地,并且需要在课后把电脑存起来。笔记本电脑只用很少的线,存放起来更容易。
8 y: x: }, Y( b: |+ }* w& A如果做不到每人一台电脑,可以让孩子们结对轮换。记住第 4 个建议:一开始就告诉他们要征求同伴的同意后再使用鼠标和键盘,而不是把同伴推开。有些孩子可能比较霸道喜欢独自占有机器,不够自信的孩子又愿意让他们占据。把一个小孩设定为 甲,另一个孩子设定为乙,明确告诉小组换位置,这样可以确保甲(或者 乙)公平的使用键盘和鼠标。- q, j; l2 K, K- \3 T' X4 C
3 Z/ B- e. c: O  s4 \* p7 H
6. 跳过计算机科学
* ?" n& S( m: y+ c, L( P" J( _- \6 z3 {
+ J" t! T0 Z. i" T/ p, D: I4 T如果你是一位软件工程师,会常常希望分享编程秘诀。在讲解递归泛红填充算法,或者解决来自 Euler Project的编程问题时收获多样的乐趣。但让初学者一上来就接触这种难题,就不那么有趣了。你在分享下面这些主题前,要三思而后行:
/ K! u2 F+ @5 I4 X  w面向对象编程* |$ ~0 Q7 L) G4 ?8 h) o
递归
  c" }0 L, q8 t# c/ B# j7 J- J& y6 a9 w设计模式! Z' t& Y1 S% v# T; C
除了lists、arrays 和 dictionaries、hash maps 以外的数据结构(例如:linked-lists、binary trees 等)
9 ]! a: U, I7 p, H2 s6 v$ v网络协议(除简单的 HTTP 请求以外的协议)
' N/ ^4 M, g8 jSQL 数据库、或者其它特定领域语言
+ O  X2 E6 f# k! N+ S开始阶段,涉猎广泛的主题好过深入技术细节。让你的孩子自己发现他们的兴趣所在。一旦孩子们尝试了编程世界提供的各种可能,他们会非常高兴探索自己喜欢的那部分。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
推荐阅读更多+
阅读排行更多+
用心服务创业者
0851-88611148
周一至周五 9:00-18:00
意见反馈:admin@0851life.com

扫一扫关注我们

Powered by 童码少儿编程 X3.4© 2001-2013 0851life Inc.|网站地图