喜欢理工科的小孩应该什么时候开始学编程?有什么优秀的教材和辅导班?

东君说
楼主 (北美华人网)
我们这里假定小孩喜欢(或者作为家长希望小孩选择)自然科学/理工科(不管是否对计算机感兴趣,不管是不是要当码农,上了大学大部分理工学科怕是都离不开编程)。喜欢文科的另说。
我看版上不怎么有人讨论小孩学编程的问题。有好多讨论数学的,我觉得编程和数学都挺难的,而且数学好并不意味着编程就会好。这里说的学编程不是那种像科普一样泛泛的学习计算机原理基础,而是实打实的学计算机语言比如Python。
很多人说中学阶段没有编程基础的小孩上大学以后学CS可能会非常吃力,周围好多小孩在中学就学了Python. 不知道大家小孩(准备)什么时候开始学?有什么优秀的教材和辅导班(线上线下都包括)?

I
IntotheWild
什么时候开始都可以 不同的阶段 不同的理解力 可以学不同的语言 比如scratch小小孩就可以玩了
x
xiaxie8
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
x
xiaxie8
什么时候开始都可以 不同的阶段 不同的理解力 可以学不同的语言 比如scratch小小孩就可以玩了

IntotheWild 发表于 2022-11-24 17:29

Scratch很fancy,我也学了3天,可以做动画故事了。
但是对于未来从事理工科的小孩,Scratch不够严谨,它的function不能return value,学术价值远远不如Python。
s
sunny.li
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

Mark!
C
Cuomo

C++ 学起来很不错
有逻辑性
另外 可以理解 对象的概念
x
xiaxie8

C++ 学起来很不错
有逻辑性
另外 可以理解 对象的概念

Cuomo 发表于 2022-11-24 18:12

C++和Java都适合高中生学习,因为他们头脑中已经有了不同数据类型的概念。Python不分数据类型,执行效率不高,但适合小学生和初中生上手。不像C++和Java强调OOP中的encapsulation (information hiding),在Python里面,不需要get和set函数,直接就写shape.width = 200, shape.height = 400,code特别短小。
AP CSA 20多年前是C++,然后转为Java。
如今新课程AP CSP可以用MIT Scratch,也可以用Python做项目。
CMU CS0/1 Python免费课程现在如此热门,以至于我本地学区公立学校今年秋季开始,不管是AP CSA还是AP CSP,统统先学两个月CMU CS1 Python。
当然,我自己做图形学,还是C++/OpenGL,做数据库,还是Java/Oracle。
h
hi2021
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

i
ilovepurple
i
ilovepurple
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

赞收藏
c
cloth
赞收藏
ilovepurple 发表于 2022-11-24 18:59

Mark
半个马和甲
具备基本良好的逻辑和抽象能力, 否则真的事半功倍都是好的。 比如我小学五年纪就被拉去学Pascal. 老师再怎么教我++的概念我就是不懂,我就是不能写出1+2+....100(n)这个现在看起来无脑简单的程序。
于是,一考完计算机初级,我就不碰语言N多年。 一直到高中4年纪,再次报编程,学C++. 那时候我数学,逻辑,抽象能力提高了许多,学习来可真是so easy . 也就last project 难些。
然后到了大学,发现学霸们小学就把C++搞得清清楚楚。
所以这个问题最后还是要看人! 但不变的是逻辑+ 抽象能力是前提,是基础。 是内功心法。没有到那层,你再怎么练招式都没用,或几乎没用的。有些人几个小时悟出心法内在,有些人几十年都没搞明白。所以招式几岁连? 看人
半个马和甲
回复 7楼xiaxie8的帖子
抓住网友问下,那可不可以等孩子有了概念直接学C++? 我总觉得一开始学python,底子不算打的扎实? 这个是偏见吗?
x
xiaxie8
回复 7楼xiaxie8的帖子
抓住网友问下,那可不可以等孩子有了概念直接学C++? 我总觉得一开始学python,底子不算打的扎实? 这个是偏见吗?
半个马和甲 发表于 2022-11-24 19:15

我同意您的观点。
小学生和初中生应该推体育,打下坚实身体基础,等到高中生阶段再学科学编程,从C++入门,然后转到Java非常快速。
我自己从1984年以来学习经历:BASIC,Fortran77, Quick C, VC++6.0, Java1.2, Perl, Python3. 从VC++转到Java只花了2个星期。
C++爱好者的好消息:C/C++永远不会过时,自动驾驶要反应快,还得靠C/C++。
f
frogette
C++和Java都适合高中生学习,因为他们头脑中已经有了不同数据类型的概念。Python不分数据类型,执行效率不高,但适合小学生和初中生上手。不像C++和Java强调OOP中的encapsulation (information hiding),在Python里面,不需要get和set函数,直接就写shape.width = 200, shape.height = 400,code特别短小。
AP CSA 20多年前是C++,然后转为Java。
如今新课程AP CSP可以用MIT Scratch,也可以用Python做项目。
CMU CS0/1 Python免费课程现在如此热门,以至于我本地学区公立学校今年秋季开始,不管是AP CSA还是AP CSP,统统先学两个月CMU CS1 Python。
当然,我自己做图形学,还是C++/OpenGL,做数据库,还是Java/Oracle。
xiaxie8 发表于 2022-11-24 18:35

mark
c
cheeelgo
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

多谢推荐
c
cheeelgo
具备基本良好的逻辑和抽象能力, 否则真的事半功倍都是好的。 比如我小学五年纪就被拉去学Pascal. 老师再怎么教我++的概念我就是不懂,我就是不能写出1+2+....100(n)这个现在看起来无脑简单的程序。
于是,一考完计算机初级,我就不碰语言N多年。 一直到高中4年纪,再次报编程,学C++. 那时候我数学,逻辑,抽象能力提高了许多,学习来可真是so easy . 也就last project 难些。
然后到了大学,发现学霸们小学就把C++搞得清清楚楚。
所以这个问题最后还是要看人! 但不变的是逻辑+ 抽象能力是前提,是基础。 是内功心法。没有到那层,你再怎么练招式都没用,或几乎没用的。有些人几个小时悟出心法内在,有些人几十年都没搞明白。所以招式几岁连? 看人
半个马和甲 发表于 2022-11-24 19:07

Mark, get abstract!
x
xmv
c++对小孩太难了
失去耐心了
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

谢谢
j
jlhe662002
小的时候应该培养运动的习惯(不是拼命推体育),阅读的习惯,社交能力,情商,自我控制能力,对艺术对美的感知(不是拼命推钢琴等)也可以有意识的培养领导力,以及对个人财务的一些意识。这些对孩子一生的益处远大于编程数学什么的。
p
pevcmao
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

Mark mark mark
x
xiaotudou
孩子有兴趣,什么阶段都可以
s
sherryjtx
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

试了一下,要registration code.不是随便一个邮箱就能用的
Y
Yourdad
学的不是编程语言。学的是编程思想。不要被语言绕进去
芸飞扬
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

Mark
y
yayapig
学的不是编程语言。学的是编程思想。不要被语言绕进去
Yourdad 发表于 2022-11-25 08:05

为啥这个论坛过一段就会讨论学什么语言。编程和钢琴不一样,不需要童子功。学学计算机原理还是不错的。编程最终靠逻辑思维能力,语言不重要。
l
littlesea
回复 20楼jlhe662002的帖子
Re 这个!很有道理!
G
Geofan
根据现在裁员的趋势,马克龙喜欢查行数,我觉得应该去学Java吧
h
haijiao1
YouTube上有mit一个教授的课程video,说得比较生动有趣
a
anye
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

试了一下,学生注册需要registration code怎么办?
x
xiaxie8
试了一下,要registration code.不是随便一个邮箱就能用的
sherryjtx 发表于 2022-11-25 08:01

我忘记告诉大家了。
在Sign up时,不选Student,也不选Teacher/Admin,而是选Mentor/Volunteer。
Mentor/Volunteer要你填你为哪个学校或机构做志愿者时,你就随便填你附近一所中学就行了。
因为需要年满18岁,请父母用自己电邮注册。
就这么简单。
x
xiaxie8
试了一下,学生注册需要registration code怎么办?
anye 发表于 2022-11-25 15:18

注册时不选学生,也不选老师/管理员,而是选辅导/志愿者。
选辅导/志愿者工作地点时就随便填你附近中学。
电邮注册者必须是父母,因为有年满18岁的要求。
s
shanggj
具备基本良好的逻辑和抽象能力, 否则真的事半功倍都是好的。 比如我小学五年纪就被拉去学Pascal. 老师再怎么教我++的概念我就是不懂,我就是不能写出1+2+....100(n)这个现在看起来无脑简单的程序。
于是,一考完计算机初级,我就不碰语言N多年。 一直到高中4年纪,再次报编程,学C++. 那时候我数学,逻辑,抽象能力提高了许多,学习来可真是so easy . 也就last project 难些。
然后到了大学,发现学霸们小学就把C++搞得清清楚楚。
所以这个问题最后还是要看人! 但不变的是逻辑+ 抽象能力是前提,是基础。 是内功心法。没有到那层,你再怎么练招式都没用,或几乎没用的。有些人几个小时悟出心法内在,有些人几十年都没搞明白。所以招式几岁连? 看人
半个马和甲 发表于 2022-11-24 19:07

当年教一位文科的编程。a=a+1. 她就是不能理解 这不 1=0 了吗?
x
xiaxie8
根据现在裁员的趋势,马克龙喜欢查行数,我觉得应该去学Java吧
Geofan 发表于 2022-11-25 14:57

Python短小精悍,我从讨厌它变得喜欢它。
我看新闻截屏,马应龙读的员工程序是Swift,我看不懂。
t
ttyy
我儿子小学,自己要去学游戏编程,我觉得就是想自己玩游戏。
x
xiaxie8
当年教一位文科的编程。a=a+1. 她就是不能理解 这不 1=0 了吗?
shanggj 发表于 2022-11-25 16:06

所以有些编程语言为了避免这个问题,赋值时采用
a <- a+1

a := a+1 (Ada, Pascal)
羞羞草
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

谢谢
e
ezsmiling
Mark coding
x
xiaxie8
我儿子小学,自己要去学游戏编程,我觉得就是想自己玩游戏。
ttyy 发表于 2022-11-25 16:08

如果做游戏,那么MIT Scratch最容易上手,但其function没有return value,会限制学生思维。
其次是CMU CS Python,在普通Python3基础上加了CMU Graphics library,GUI非常强大。
I
IntotheWild
当年教一位文科的编程。a=a+1. 她就是不能理解 这不 1=0 了吗?
shanggj 发表于 2022-11-25 16:06

哈哈 我懂你的意思
蓝雪花
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

最近刚学了python,mark这个链接,看看CMU教的有没有不一样的东西。
x
xiaxie8
最近刚学了python,mark这个链接,看看CMU教的有没有不一样的东西。
蓝雪花 发表于 2022-11-25 16:14

replit.com去年以前Python如果要做GUI,是用tkinter。
但自从去年CMU CS Python采用CMU自己的CMU Graphics,现在replit.com既支持tkinter,又支持CMU Graphics,两者一些命令参数不同。
在自己Windows, MacOS, Linux用pip安装CMU Graphics极其简单:
https://pypi.org/project/cmu-graphics/
t
tracylu
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

xie xie
x
xiaxie8
最近刚学了python,mark这个链接,看看CMU教的有没有不一样的东西。
蓝雪花 发表于 2022-11-25 16:14

CMU CS Python CMU Graphics library和别人家library的区别在于:
Event-Based Animations Model-View-Controller (MVC) syntax更加简单好学了。我估计去年CMU CS推出这个新东西,是博采众家之长。
x
xiaxie8
xie xie
tracylu 发表于 2022-11-25 16:25

不用谢,我是几周前从我的学生那里知道CMU CS去年推出了这个免费的好东西。
l
lovemykids
Mark
h
hui2003
回复 14楼xiaxie8的帖子
谢谢!
小青龙
我忘记告诉大家了。
在Sign up时,不选Student,也不选Teacher/Admin,而是选Mentor/Volunteer。
Mentor/Volunteer要你填你为哪个学校或机构做志愿者时,你就随便填你附近一所中学就行了。
因为需要年满18岁,请父母用自己电邮注册。
就这么简单。
xiaxie8 发表于 2022-11-25 16:00

谢谢!还以为mentor是教课的选的,用孩子的clever账号也没法选student,需要code。这就用volunteer试试看。
无辣不欢
推荐Carnegie Mellon University CS0, Python.
完全免费,用自己电邮注册,网页自动批改quiz和project。我这个从1984年就开始学编程的50多岁老头,花了3个晚上学完了这门网课。
https://academy.cs.cmu.edu/course/cs0-21
xiaxie8 发表于 2022-11-24 17:32

mark 一下。

东君说
小的时候应该培养运动的习惯(不是拼命推体育),阅读的习惯,社交能力,情商,自我控制能力,对艺术对美的感知(不是拼命推钢琴等)也可以有意识的培养领导力,以及对个人财务的一些意识。这些对孩子一生的益处远大于编程数学什么的。
jlhe662002 发表于 2022-11-25 06:45

个人以为诸如情商和社交能力乃至领导力是没法“培养”的,父母什么样孩子基本也一个样。
反倒是编程和数学可以“培养”