A Simple Grounding Exercise

最近跟心理咨询师学习到的一个消除焦虑的方法,叫5-4-3-2-1。

其实有一个方法比这个更简单,就是深呼吸。

网上资料很多,我就不再重复了,下面是一些例子:

5, 4, 3, 2, 1 — a simple grounding exercise to calm anxiety

Grounding Exercises: Using Your 5 Senses for Anxiety Relief

5-4-3-2-1 Coping Technique for Anxiety

Unwind this Monday with the 5-4-3-2-1 Grounding Technique

最愛(周慧敏)

歌曲:最愛(周慧敏)

我的聽歌心情(非歌詞):

在那繽紛如詩的傍晚,
落霞燦爛,炫彩盡頭,
我們的相遇,
如同命運的巧手編織。

從初次的邂逅,
到相識的微笑,
再到深沉的愛戀,
兩顆心以最真摯的姿態等待。

願我們的愛情,
如同綿延的河流,生生不息;
願我們的愛情,
即使天荒地老也永恆如初。

我已經無法確定第一次聽到這首歌的具體年份。然而,我清晰地記得那是1996年,我大學的日子裡,那時候我有一盒錄音帶,這首歌就在其中。無數次的傾聽,讓我熟記每一個音符,每一個詞句。甚至我這個不擅長唱歌的人,也能夠完整唱出這首歌來。我還時常幻想,有一天我端坐在鋼琴面前,陶醉地自彈自唱。那時,我知道自己有多麼喜歡它,然我我當時並未意識到的是,這將是我後來重複播放次數最多的一首歌。27年來它一直陪伴心頭,幾乎未曾間斷,無疑是我一生的最愛。

歌曲鏈接:https://open.spotify.com/track/4hM67X8ZIlP3TGOBNHKCBg?si=a95b883198954665

关于时间

感恩节假期,不再有忙碌的工作,就是思考人生的时候。

生命的意义离不开时空和存在。

时间是什么?我不知道。

天才如爱因斯坦,也感概道:“过去、现在和未来,不过是一个幻觉”。

我开始在网上搜索“最好的时间旅行电影”。

我想找最好的关于时间旅行的文艺片。

其实,科幻只是电影的一层外衣。因为科幻,电影才有可能去探寻那些最深层次的思考,才有可能去探索无数没有发生的“如果”。

最好的科幻片,在最底层思考探索的都是时空、存在、情感和生命的意义。

我找到了《About Time(关于时间)》这部2013年的电影。它有一个译名是《时空恋旅人》。可惜并不准确,因为它思考的不止有爱情,还有亲情、友情,和幸福。

其实电影并不能告诉我答案,但我感受到了一种宽慰,和触动。

也许人生所有的努力,不过是为了窥探一下生命的意义;如果不能,就让我用心去感恩所有的美好。在浩瀚的时空中,呼吸一口有空气,口渴了有水,抬头天上有星光,还有什么比这更幸运的呢?

聼《雨中的戀人們》

偶然聽到一首老歌, 歌詞中有一段熟悉的旋律:

雨中的戀人們(黃凱芹)

太陽彷彿瞭解我沉默傷痛
冰凍雨後給我照亮
熱暖心頭送
會否與她這原地相逢
為我解去寂寥 擁抱熱暖中

想起了某天,那天早晨,我打開家門,太陽還藏在Mission Peak的背後,朝霞映紅了大地;那天日落,財運護送著金色的夕陽;那天黃昏,雲朵就像羽毛一樣輕柔,像棉花一樣舒服。

這詞和旋律是多麽的優美。我時常夢想,在鬧市中尋找一個寧靜的角落,開一家咖啡館。在那裏,放著那些曾經讓我感動的歌;在那裏,我們聆聽的不是音樂,而是青葱的歲月;在那裏,時間會為我們駐足。

也許歷經繁華,我只想找尋到那個樸素而純碎的自我。一首詩,一首歌,一幅畫,都能讓我陶醉。一杯咖啡,一個故事,一聲問候,就能讓我快樂。擡頭的時候,天上有星辰;低下頭來,脚下有泥土;地球還有河水在流淌,有空氣可以呼吸。這一切都讓我感動。

(寫於2022年11月6日,冬令時開始之際,親眼目睹時間從凌晨2點跳回到1點。)

旅行者

看纪录片《How The Universe Works Season 10: Voyagers Ultimate Mission(宇宙如何运行第10季:旅行者的终极使命》,记录一下结尾处的台词:

旅行者搭载的黄金唱片,
会被外星文明注意到吗?
会被拿来播放吗?

虽然那些有能力注意到旅行者的文明,
更有机会注意到我们地球,
但旅行者有可能存在得比地球更长,
那个时候地球或许已经消失,
人类文明或许已经不复存在,或者正在星际旅行。

那个时候的旅行者,
承载着人类的记忆,
在闪耀的群星之间飞行,
直至时空的终点。

那一刻,最后的恒星开始暗淡,
那一刻,它将成为人类最后的声音,
这个声音诉说着:

人类,
在这个宇宙,
在这个时空,
曾经存在过。

红色星球,心向往之

2月18日毅力号火星车登陆,我和其他一千多万“乘客”的名字已经刻录在图二的芯片里面啦,期待一切顺利。

红色星球,心向往之。期待有生之年,亲身踏上遥远星球的土地,那是一个来自少年时代的梦想。

https://www.nasa.gov/press-release/nasa-invites-public-to-share-thrill-of-mars-perseverance-rover-landing

重温老歌《沧海一声笑》

重温这首30年前的老歌,寥寥数字,道尽人间多少沧桑无奈,又道出多少乐观、阔达和豪情壮志!

滄海一聲笑
滔滔兩岸潮
浮沉隨浪
只記今朝
蒼天笑
紛紛世上潮
誰負誰勝出
天知曉
江山笑
煙雨遙
濤浪淘盡紅塵俗世幾多嬌
清風笑
竟惹寂寥
豪情還剩了一襟晚照
蒼生笑
不再寂寥
豪情仍在痴痴笑笑

编程启蒙教育思考

本文主要分享本人关于编程启蒙教育的思考。

为什么要学习编程呢?我相信在未来社会,大部分工作都会用得上编程。而且编程能够帮助养成逻辑、严谨的思维习惯。

那么小孩子可以学会编程吗?我相信在孩子具备一定的逻辑和数学基础之后,循序渐进一定能够学会。

这里我将编程启蒙教育分为三个阶段。

阶段一: 编程初体验(小学二、三年级或以上)

这一阶段的主要目标是引领孩子入门,大致明白什么是编程,以及编程的基础概念。

这一阶段可以采用一些编程机器人或者编程游戏app作为教学工具,培养孩子对编程最初的感觉。例如有一种编程机器人,孩子可以通过编程向机器人发送“上下左右”的移动指令:

  • 程序“存储”在一块木板上:没错,就像当年的纸带程序一样,是可以拿着在手上的。
  • 能够控制一个机器人向4个方向移动:让孩子直观感受到程序能够做什么。
  • 能够定义和调用一个四个动作的函数:这个设计非常厉害,让孩子接触函数的概念。

当然,市场上有很多编程入门教具或者app。无论是哪一款,只要能够达到让孩子了解基本编程概念的目标,都是可以的。

这一阶段建议至少花一个学期时间。有朋友可能会觉得这么简单的概念要花一个学期?其实这些概念对从来没有编程过的孩子来说并不简单,例如程序的指令、顺序执行、函数、程序状态、流程图等等,这些都是编程最基础的概念,不要着急,要慢慢去消化、理解。

这一阶段可以学习程序流程图,甚至让孩子尝试先画流程图,再编程实现。

有人会问能不能更早开始学习编程?这个我不太确定,个人感觉难度会比较大,可能也没太多必要。毕竟要理解这些编程概念的话,孩子要具备一些最基本的逻辑思维能力和数学知识,揠苗助长可能会得不到期望的效果。当然这只是个人想法,事实未必如此。

阶段二:可视化编程(小学三、四年级或以上)

这一阶段主要学习变量赋值、条件语句、循环控制等基础概念。个人觉得可以选择Scratch,原因有:

  • Scratch是可视化编程,相对容易入门和理解。
  • Scratch的图形编程能够帮助孩子学习二维平面坐标系的概念:这个是更像是数学范畴的概念,不过大多数的图形和游戏编程都会用到。
  • Scratch采用事件驱动模型编程:一方面,事件驱动模型简化了编程流程的设计。另一方面,事件驱动也是应用非常广泛的编程概念。

有朋友觉得为什么要学可视化编程,为什么不直接上Python或其它语言?个人感觉,这个阶段让孩子像写作文一样写出程序代码难度偏大。我们学习编程,最重要是学习到概念、方法。至于是可视化编程,还是文本编程,并不影响到这个目标。而可视化编程可以帮助孩子更快达成这个目标。

这一阶段需要多长时间?个人的实践,一个学期应该足够了。如果孩子对Scratch的游戏设计特别感兴趣的话,我也不反对投入更多时间。毕竟多实践总是好的。

经历过可视化编程之后,我们就可以进入下一阶段,真正的编程了。

阶段三:孩子的第一门编程语言(小学四年级或以上)

从现在开始,孩子将会像程序员一样写代码了!

这一阶段孩子将要接触到更多的概念,例如:

  • 基本的数据结构:数字,字符串,数组等
  • 变量
  • 理解程序的循序执行概念
  • 流程控制(条件语句,循环,循环终止)
  • 函数、函数的调用和嵌套
  • 能够读懂一段程序
  • 能够对简单的问题进行编程建模
  • 能够开发一些简单的游戏

注意上述不是一个完整的体系,只是作为举例。

但是,程序语言有很多,而选择第一门编程语言很重要,因为这门语言将会成为孩子编程的“母语”。个人偏好选择Small Basic作为第一门编程语言,原因有:

  • Small Basic能够支持帮助孩子掌握上述的概念。
  • 根据Small Basic主页的介绍,Small Basic是唯一的为帮助学生从可视化编程过渡到文本编程而设计的语言。
  • Small Basic不支持太多的高级语言特性,例如:
    • Small Basic支持GOTO语句:别以为这是个缺点,这是低级语言(例如汇编语言)的机制,了解和正确运用GOTO语句将能够帮助孩子更接近于计算机编程的本质。
    • 缺乏面向对象的支持,甚至连break语句都没有,要通过GOTO来实现,但我却认为这是优点,因为虽然Small Basic不支持类,却提供了TextWindow等一些现成的对象,这将会帮助孩子将来学习面向对象编程。

有朋友觉得,为什么不选择流行的Python或者其他语言,而要选择偏冷门的Small Basic呢?对此我的观点是:

  • Small Basic既具备了一些低级语言的特性(例如GOTO),同时也没有引入一些高级语言的特性(例如面向对象、break语句等)。我认为作为一门面向教育的语言,其火候控制的恰到好处,需要的功能,不多也不少,刚刚好。既能帮助孩子掌握最重要的概念,也避免了分散孩子的注意力或者增加学习难度。
  • 虽然Python很强大,业界很流行,但我认为要把编程教育和编程职业区分开来。Python是很强大,但不要着急,我们不应该期待孩子很快成为职业程序员,而应该给孩子非常充分的时间,慢慢地去学习所有的概念。例如,虽然面向对象很重要,但让孩子过早接触的话,增加了不必要的学习难度。我反而觉得,应该让孩子去写大量的面向过程的程序,这些程序看起来可能看起来很业余、不专业,但是没有关系,在写了足够多的代码之后,孩子自然而然地会产生优化程序地需求,那个时候再学习专业的编程语言也不迟。

当然,如果你希望选择Python或其它语言作为第一门编程语言,我也是完全赞同的。无论选择了哪种语言,我们的初衷是让孩子掌握编程的概念,以及逐步形成编程思维、编程建模的能力和习惯。

我觉得可能需要用上一、两年时间,才能完成这一阶段的目标。不要着急,关键是要打好坚实的基础。

阶段四:第二门语言、游戏编程、数据结构和算法

这一阶段我会考虑让孩子学习专业的编程语言,以及数据结构和算法,也让孩子做一些相对复杂的游戏作为实践项目。(这一阶段等积累足够心得再分享)