问题罗列一下:
C++与C语言有什么区别,python与C++的区别,及普及程度
信奥赛起源、存在的意义。
应该如何给孩子规划学习(什么年龄段学、学多久、每个学段该做什么)
不同学段参加什么比赛、结果能给孩子带来什么。
1、C++与C语言有什么区别,python与C++的区别,及普及程度
C语言和C++语言是非常受欢迎的 开发语言。先有C语言,再有C++语言。
C++语言是C语言的超集。什么叫超集呢,就是说:C语言有的东西,C++都有,C++包含了所有C语言的内容。C++语言在C语言基础上+了面向对象的特性。当然,这里又引申了新的问题:什么是面向对象?这个就不在这里做解答了。 你只要知道:面向对象 是高级开发语言的 神级思想,非常厉害。非常厉害。没有面向对象,现代社会就无法开发出很多复杂大型的软件出来。
再用几个个生活中例子来说明C语言和C++的关系:
例子1:
今天你家盖了一座新房子,房子很新,是新盖的。房子全部白漆漆好了,你住的也能很舒服。 你住了很多年了。技术提升了。有人跟你说,帮你把房子全部装潢一遍。
外墙全部贴上大理石。内部全部各种豪华软装,为了兼容你原来住的舒适性和习惯,内部结构,墙面几乎没有改动。
如果说原来你住的房子我们比喻为:C语言;
那么经过内外重新升级后的房子【这里注意:你原来的房子一切几乎都在,并没有去掉】就是C++。
例子2:
第二个例子 就更加有趣了,假设你是一个年富力强小伙子,生活也过的很好,但是有一天你被一个富家公子给欺负了,被揍的很惨;于是你默默忍受,直到有一天,你在一个军火商那里买了一套钢铁盔甲,当你穿上了这套钢铁盔甲,你就变成了钢铁侠,你的能力变强大了,于是你马上找到当年欺负你的那个人,把他暴揍一顿,报了仇。
如果说原来的你 是C语言,那么穿上钢铁侠之后的你就是C++; 因为穿上钢铁侠之后,你的一切原来都在,并没有消失。
如上我用了2个例子来说明C语言和C++的区别,简而言之就是:C++在C语言的基础上 +了一些更加有用的功能。这个功能我们称之为:面向对象;
如果想全面了解面向对象是什么。可以+我私信沟通,交流。。我只想告诉你,历届图灵奖【计算机届的诺贝尔奖】获得者,有2次是因为面向对象,所以他深不可测。
另外就是关于与PYTHON与C++的区别,那么既然上面都举例了。这里就继续比喻下去,你就能理解了。
如果说C语言是一个 没有穿上盔甲的小伙子,那么PYTHON就是同村另外一个没有穿上盔甲的小伙子。PYTHON与C语言是平级的,都是面向过程的开发语言。但是PYTHON 有一些其它的工具,比如说:NumPy,Pandas
C语言:小伙子A,住在王桥村,家里有辆摩托车 和拖拉机【指针】
python语言:小伙子B,住在李桥村,家里有摩托车,电瓶车【Pandas 】、还有一辆桑塔纳【Pandas 】
C++:小伙子A穿上了盔甲,变成了钢铁侠
如上比喻你理解了吗?
至于说受欢迎程度,这个如果是开发领域,那么整体来讲,C语言和C++使用更广泛。PY 是作为工具语言使用最广泛。这个都跟少儿编程无关。
2022年信息学奥赛唯一指定语言是: C++,记住这点就行了。
2. 信奥赛的起源,存在的意义
如果这个问题我一本正经的去回答,我觉得反而就不正经,也没有意义,就跟我们去讨论:教育的意义?教育的起源? 小学文化课要学习数学的意义?奥数的意义是一样的。因为压根没有标准答案。
但是我就是告诉你:
信奥赛 就是 信息学奥铃匹克竞赛的简称,简单来讲就是:编程奥林匹克竞赛; 1984年第一届就开始了。。
什么?跟春晚同一年? 抱歉,我可不记得春晚是哪一年的,作为一名接近于90后的计算机学生,我只对编程记忆犹新。
你问我它存在的意义是什么? 这个太容易回答了:你可知道,21世纪是信息化社会,工业革命400年的发展超过了人类历史2000年。 信息化革命70年的发展超过了人类历史2500年。 第一台 计算机从1946年在:宾夕法尼亚 被发明,到现在,它带给了我们无法想象的科技发展, 手机、电脑、ipad、几乎所有行业都离不开计算机,也离不开程序 。
你觉得它的意义是什么?
我们需要去继续发展计算机行业,发展科技,就需要从小去选拔,筛选对这个行业有兴趣,有天赋,可以为这个行业做出大的革命的优秀学生,这就是信奥赛的意义。它是我们全人类的未来。
最近chatGPT的火热,几乎所有行业都在讨论,又有哪些行业将会被替代,我想说的是:“我们永远不会被AI所替代,未来替代我们的将是懂AI的人”
所以,它的意义,我认为值得我们去探索。
3、应该如何给孩子规划学习(什么年龄段学、学多久、每个学段该做什么)
首先在我们小学时代,1年级或者2年级,3年级都可以开始首先学习少儿编程。至于几年级开始学,取决于孩子兴趣、思维能力等。
但是一般不建议幼儿园阶段,太小了。整体来讲,二年级较为合适。
不同的孩子走的路线不同,如果孩子逻辑思维能力特别好,那么我建议通过图形化 来 把编程的基本内容都学完, 那哪些是编程的基本内容呢?
我来列举一下:
1)变量的概念?变量和常量的区别,什么时候使用变量,什么时候使用常量。
2)函数的概念,函数到底有什么用?使用函数有哪些方便之处,平时遇到各种问题是否直接可以有函数模块化的概念
3)各种条件循环的区别,里面的逻辑你是否掌握了? 当循环、固定次数循环、直到循环。什么时候用当循环,什么时候用固定次数循环,什么时候用知道循环
4)万事万物的如果否则推理逻辑,如果 -这个,那么那个;如果这个,那么:如果这个,又那么那个; 嵌套很多层的 推理思维逻辑
5)各类排序算法、基本的数论编程,如:求阶乘、求最大公约数、求素数、二分查找思想、列表、递推,递归
这个里面3-5其实都是以前C++的内容,但是你让一个小学生去学习C++,接受度比较低,如果借助图形化,可以更好的让学生理解
任何人仅凭这个问题,是无法直接给出规划的,因为不同的学生情况不一样,目标也不一样,规划的路线也不一样。
但是我有一个最重要的参考原则就是:我们小学生学习编程,不学那种 跟开发,实际涉及工作内容的部分;
我们学的是:逻辑推理、算法分析、思维、找规律能力,抽象能力。
未来,我们每个人都需要与AI对话,你学会了编程,在解答一个数学问题遇到困难时,可以借助计算机来帮助你。你 是一名生物学家,在分析某个单细胞时,可以借助计算机编程来模拟帮助你解决问题;
我们小学生学编程,就是学:逻辑推理、算法分析、思维、找规律能力,抽象能力;与具体的语言无关。
等基础打好了,那就可以开始学习C++了,我们只是用了C++的语言,我们并不会去学习C++很多高级特性。
还是那句话,只有你跟老师学了,老师了解了你,才能针对性的做出合适的规划,当然,前提是:教你的老师真正懂编程,这很重要。
4、不同学段参加什么比赛、结果能给孩子带来什么。
小学生学习图形化编程阶段,各类图形化的比赛都可以参加。
如果是学习ICODE,那么参加ICODE举办的比赛,这个是纯逻辑编程,还有锻炼学生找规律的能力。我认为它可以代表孩子逻辑这方面的能力。
如果是学习scratch,那么蓝桥杯,NOC都可以参加。没有绝对的好坏
这些比赛都可以锻炼孩子,让孩子提前适应竞争激烈的社会。对于孩子以后参加信奥赛是有帮助的。
但是有一点可以很明确告诉你:NOC,蓝桥杯无法给你助力升学。
好,那么如果你水平够了,就建议你去参加信息学奥林匹克竞赛了,当然,我们所谓的:NOIP、NOI那都是高级阶段的了, 如果你在此前没有通过: CSP-J,CSP-S的筛选,是没有资格去参加NOIP和NOI的。
没错,这个比赛是可以给你助力升学的,它是五大学科奥赛之一。但是难度也很高。
所以对于这个问题的答案就是:如果学生确实逻辑能力强,信奥赛学好了,最好的可以保送清华北大,还有 降分录取 985,有些可以作为 高中自招录取。