第一次Hackathon

(1)

犹豫了半天,最后还是决定跟学生一起参加在旧金山GitHub办公楼举行的Hackathon。这些孩子只学了几个月的编程,一点儿HTML一点儿CSS一点儿JQuery 。

以我们传统保守的教育习惯来讲,怎么可能用这点儿小技术做出一个比赛?我自己不抱任何希望,只是随便去看看。

这个活动是由Code Nation主办的。Code Nation是帮助低收入社区的孩子接触编程的义工组织。组织的原称是ScriptEd,七八年前发源于纽约市,两三年前扩展到旧金山湾区,并正在向芝加哥地区扩展。被帮助的学校,一般有高于75%的学生来自低收入家庭。

高中九年级或者十年级的学生可以报名参加Code Nation提供的课外课程。课程分三年,每周两次课,每次课一到两小时不等。第一年为基础课,第二年为高级课,第三年基本上是去高科技公司上实习课。暑假期间,最优秀的学生可以得到去公司做短期工作的机会。

每年也会有几个学生在申请大学时选择计算机相关的专业。但学校的老师告诉我们,对大多数的孩子来说,跟他们说选择未来的发展方向为时尚早,我们的目标是让他们有机会接触计算机编程,并在这个过程中跟学生建立相互信任的关系。这些孩子需要成年人的关注。

我工作的学校CCPA位于Oakland体育场附近,大部分学生是墨西哥裔,孩子们经常用西班牙语交流,大概是不想让不懂西班牙语的老师听懂他们在说什么。

学校主管计算机老师的老师原本是脸书的白人帅哥工程师,他三年前辞去工程师的工作来到贫困的奥克兰学区当老师,想必心里充满爱。

跟我同事的另一位义工也是年轻的工程师,他本人是在南加州Palm Spring地区长大的墨西哥裔,大学毕业后一直跟合伙人做自己的Startup,他们的产品帮助Getty Center, de Young Museum, Asian Art Museum以及一些飞机场解决了三维地图和三维展示方面的问题。他来回馈社区,帮助跟他有类似成长环境的孩子。

我们学校CCPA只有三个女生参加在这次Hackathon,几个很机灵的男孩儿都没来。这几天也赶上Oakland 公立学校教师罢工,学生不必上课,不少人乘机休个长假,不知去哪儿了。平时在课堂上,孩子们也不是总能认真学习,他们喜欢说话聊天儿,拒绝做更多的功课。他们一点儿也不比南湾的孩子笨,但身边没有强大的竞争氛围和教育支撑。

(2)

比赛场里我们被分到5号摊位。另一所学校也有三个学生参加,与我们相邻,在4号摊位。

4号摊位的带队老师提议两个摊位合并一下,反正一般来说每组需要6到8人。

跟我们一起来的,还有CCPA自己一位很可爱的女老师。老师有三个孩子,但她本人看上去还像个大学新生,在美国白人普遍早熟的环境里很罕见。她丈夫是房地产经纪人,他们家每两年换一次房子搬一次家,可以从自住房的增值中获取免税的优惠,从而积累家庭财富。我认为他们家的这种自救方式,是对加州公立教育的曲线救援,否则在公立学校任教,不足以让老师在湾区正常生存下去。

 

(3)

比赛开始,由我们第四、第五两个小队合在一起的新组取名“4.5战队”,原4队的义工辅导老师说四加五除二等于四点五。取好名字,他又拿出几张大纸贴在墙上,自己率先在纸上画了几个方框代表网页。他说网页设计首先要布局,他画第一幅的框架,然后把笔交给学生,让他们轮流画自己想象的下一副布局。

(4)

这是头脑风暴的起点。接下来孩子们开始讨论怎么选题,女老师提出孩子们日常生活里有很多选择,明显某些选择比其它选择对地球危害更大,我们的选题应该从自身的选择出发。

有学生提出要以信息板的方式给浏览网页的人一些环保教育。另外有学生说做成游戏更有吸引力。

一阵七嘴八舌,找不到明确方向的时候,女老师提出,做这种项目,我们应该先确定最后一页的最终结果是什么,然后倒着往前推,前面的页面就比较容易设计了。

一番讨论后,大家同意最后一页应该给读者一个分数,让对方一路选择之后看到一个结果。

(5)

这样讨论了一阵子后,确定我们要做一个简单的游戏。

以学生一天的生活为主题,玩儿游戏的人选择从早上起来洗澡开始,去学校的交通工具,在学校做功课、吃午饭,放学后去哪儿,最后上床睡觉时,得到一天对地球环境的影响评估。

(6)

组里两个会画画儿的女孩儿立刻设计了主页的中心图。

一天的各项活动分成几个页面,孩子们自主领取一到几个页面。

愿意当主管的孩子除了设计自己领导的页面,也负责协调所有同学之间的合作。

(7)

中午吃饭前,女老师笑嘻嘻地说根据讨论的情况,估计这组能赢,然后又缩回去一句:不知道其它组都做些什么主题的。

(8)

女老师要提早离开,CCPA的三个女孩儿也各自找了个借口要跟老师提前回去。我计划在这儿一整天,晚上可以送她们回去。可是女孩儿们要待在一起,谁也不想单独行动,老师也就把她们都带走了。

午饭后,只有三个孩子要完成剩下的任务,他们倒是一点儿也不气馁,老师也鼓励他们说三个人能做完整个项目。

(9)

其实需要写的程序并不多,更多的工作是把要做的工作罗列清楚,并且按时互相交流。

有的孩子在网上选择合适的图片,有的孩子决策最后对地球的影响分几个档次,有的孩子专门负责网页的色彩,字体的大小,图片的布局。

(10)

下午工作了一个半小时后,孩子们第一次总结进度。看上去只完成了一半的工作,后边还有一个多小时,照比例,应该可以按时完成后一部分。程序测试也需要一定时间,学生们还没有这个概念。他们信心十足。

(11)

后边总结交流的频率改成每半个小时一次,如果有些东西实在没时间做,可以从网页中删去,如果时间富裕,还可以增加新的内容。

我对他们最大的帮助,大概是催着他们测试不同的选项。程序完成后,走一趟各个页面的选择,直到最后一页似乎都很顺,可是再换一些选择,就会跳出来各种预想不到的失败。

(12)

下午四点,比赛结束。计算机上交回去。等待裁判组检查每个组的项目成果。

等待期间,孩子们心满意足,觉得这趟比赛无论结果如何,他们都经历了很多让自己兴奋的过程,各种恍然大悟,各种没想到。最没想到的是自己居然做出了一个能用的小游戏。

我也没想到。

(13)

裁判饶有兴趣地看孩子们展示自己的程序。裁判们被学生要求选择早上洗澡的用水习惯,上学是走路骑车还是坐汽车,学校糟糕的午饭是吃下去还是悄悄扔了,放学后是回家还是逛商店,手机表面摔坏了是修理还是买新的。

裁判一边选择,一边开心地笑。这种互动式的评判过程让我们组占足了优势。

我们进入初级组的前三名,得到了给全体参赛学生老师在大讲台上展示的机会。

(14)

午饭给的量很少,晚饭则很多很多。估计是怕午饭太饱后容易犯困。

我们组的成果在大舞台上的讲解时也需要观众做出选择,场上气氛在互动中活跃起来,各种会心一笑从各个角落传出来。

主讲的黑人女孩儿自信大方,还带着孩子的好胜。每个人说出自己都做了些什么时,她介绍完程序部分突然跟评选团说:首页上那个装着地球的购物车是她自己画的。

最后的问答环节,评选团问了几个问题后,也绕回到那个购物车:你是如何把自己画的购物车放进网页的?

女孩儿对答如流。

(15)

我估计他们赢了。

虽然整个项目用到的技术很少,逻辑也很简单,但主题很贴切全场学生的生活。艺术设计部分除了女孩儿自己画的购物车,最后一页的各种结论,女孩儿也在网上选择了简单明快的图案和动画,视觉效果很好。

展示的过程也比其它项目引人入胜,其它组有些做得繁复的页面,讲的人很用力,听的人也很疲劳,效果并不讨好。

(16)

宣布结果的时候从第三名开始念名字,念第二名之前我问旁边当组长的孩子,你觉得自己会赢吗?他摇头,并抬起屁股、准备听到第二名的名字后起身去领奖。但第二名不是他们,他低头感叹、偷着乐。坐在他另一侧的孩子,是组里比较憨的一个,停了好几秒钟才意识到自己赢了,侧过头冲着组长张大了嘴表示不敢相信。黑人女孩儿笃定地微笑。

(17)

我的收获可能跟他们不相上下,也可能我的收获更大。

多年的工作中,我总是在追究细节,这也是工程师必须做的。但一个项目的成败,一大半在设计、规划时已经决定了,一小半在跟客户的互动中决定了。中间那些细节,是在帮助完成一盘大棋。

(18)

Go, Code Nation!

 

博主已关闭评论