根據我們的經驗和認知,具體的原因應該還是孩子沒有真正理解編程知識,特別是沒有實際掌握運用編程知識的方式和方法。

目前少兒編程教育的教學方式基本都是通過編程工具講解示例,然後孩子再模仿複製,所以基本無法保證有效地傳遞編程知識。也就是說,孩子並不能理解和掌握編程知識的具體含義、作用和使用方式等等。

編程是典型的知識運用過程,強調練習和創作,但是如果不能保證有效地知識導入,那就等同於刷題。所以學習、練習和創作必須緊密結合、前後對應,通過編程工具講解示例完全不具備這樣的特徵和作用。

如果是積木式圖形化編程(scratch之類的)還好一些,畢竟相對具象,但是學習源代碼編程的時候,這個問題就很突出了。

C++教學肯定是刷題,因為學習目的就是去參加競賽,即使老師自身想讓孩子實際掌握相關知識,但是如何解決學習難度問題和理解問題?這根本不是某一兩個老師能夠做得到的,所以只能是刷題,而且是非常簡單的演算法題(演算法本身簡單易懂,同時不能牽涉數據結構)。Python教學也是大同小異,並沒有實質性的區別。

這個問題表述的其實是一種非常普遍的現象:孩子會因為沒有掌握編程知識,完成自己的創作而喪失學習興趣,最終放棄學習。所以少兒編程的教學方法如果還是停留在目前這種低級階段,那麼教學效果就是一個笑話。

因為現在少兒編教育的大環境如此,所以我個人的建議是,如果有條件的話可以找一個私教(或者線下3-5人的小班),也許能夠改善孩子的學習狀況。


以做軟體的視角來看待這個問題,讓小學甚至初中的學生去深入理解編程是苛求,即便是大學生,學編程的時候也經常搞沒明白,讓小孩兒去深刻理解編程不是苛求是什麼?

我本碩機械,現在做C++軟體,做演算法數學比較重要,那有幾個小夥伴兒可以堅持學數學呢?即便是大家都知道有用但依然是不能堅持,最大的問題是學的過程太枯燥無趣。少兒編程也是一樣,就不需要苛求理解,首先應該是玩。


我把少兒編程分為兩種形式,三個類別,不知道你家孩子學的是哪一類?不同的類別遇到的問題和背後的原因是不同的,不可一概而論。

這兩種形式是圖形化編程和代碼編程。代碼編程又分為工程化代碼編程和信息學競賽代碼編程。所以圖形化編程、工程化代碼編程、信息學競賽編程,共同構成了三個少兒編程的類別。

圖形化編程適合小學低年級(四年級以下)孩子,用於普及基本的編程概念,培養簡單的編程思維,提升興趣。

工程化代碼編程適合小學高年級(四年級以上)孩子,學習編程基礎知識,培養淺層的編程思維和簡單的程序設計能力。

信息學競賽適合小學高年級(四年級以上)思維優秀的孩子,深入學習語法、演算法、數據結構等知識,開發孩子的計算思維,拓寬對事物的認知,培養孩子分析、解決、優化、實踐複雜問題的能力,並助力學業。

以上三個類別同屬於少兒編程,但是對孩子基本素質的要求、培養目的和方向都有較大差異。

由於題主問題缺乏對基本要素的描述(如孩子的年級、思維能力、數學成績、學習方向、授課方式等),所以該問題下的任何答案都是無法切中要害的。以上。


針對這個問題,我覺得你在考慮要給孩子學編程的時候,要跟孩子的理解能力進行匹配,不同年齡階段有著不同的編程工具,有著不同的思維模式。比如說4、5歲的孩子,對他們只是做一個思維啟蒙,理解指令的含義,並且能利用指令去解決一些生活簡單問題就可以了。6、7歲的孩子,如果孩子沒接觸過編程,識字量也不多,理解比較慢的話,可以考慮用ScratchJR圖形化編程軟體過渡一下,也是做一個思維啟蒙,但其中的邏輯性還是很強的,而且圖形的話孩子也容易理解,還比較感興趣,當然,ScratchJR只是做一個過渡,等到孩子對編程有一些簡單的理解,也有一定的識字量以及理解能力,差不多8 、9歲可以用Scratch編程軟體進行過渡,這個軟體功能強大,內容豐富,知識面廣,著重培養孩子的計算思維,從小養成一種好的思維習慣,把這種計算思維的思考方式運用到生活以及學習等各個領域,還可根據孩子的理解程度讓孩子進行創新,再者就是可以嘗試參加藍橋杯、信奧賽等一些比賽,對於10歲以上的孩子,也是根據孩子的理解能力,看是否可以學習Python、C++等一些源碼編程。這是一個簡單的提議,但真正對於孩子,我們要針對他的實際情況去看,比如你說的孩子越往後學越難,孩子不理解,那說明孩子的理解程度還沒有達到學那個知識的階段,可以根據孩子的理解情況,調整一下孩子的學習方向,先找一個對孩子比較適合的編程語言去學習作為過渡,等孩子能理解了,再去考慮增加難度。


看你是跟著什麼學了

如果是機構 恭喜你 國內機構有一個算一個 基本上教研上就沒打算讓你學會東西

如果是學校老師 那麼有幾種可能

一個是老師授課問題 因為後面的知識點會越來越抽象 如果能力不足 確實不容易講好

或者是孩子自身問題 因為學習曲線就是會呈現這樣的陡峭


推薦閱讀:
相關文章