編程教學(xué) | 中小學(xué)生學(xué)編程,我們是要培養(yǎng)程序員還是產(chǎn)品經(jīng)理?

?中小學(xué)生為什么要學(xué)習(xí)編程?作為教師我們到底是要培養(yǎng)未來的程序員還是產(chǎn)品經(jīng)理?昨天我全程線上聽了《中小學(xué)Python教學(xué)研討會(huì)》,其中張?jiān)嚼蠋熢诜窒鞵ython教學(xué)課堂的時(shí)候就提到了這個(gè)問題。

很榮幸,我既做過程序員也做過產(chǎn)品經(jīng)理。

1 培養(yǎng)程序員還是產(chǎn)品經(jīng)理?

對程序員來說,需要專業(yè)的技能,需要把握實(shí)現(xiàn)技術(shù)的細(xì)節(jié),需要不斷優(yōu)化代碼提升程序運(yùn)行的效率。那中小學(xué)的編程教育能達(dá)到這個(gè)目標(biāo)嗎?很顯然不能。

我們大部分人都已經(jīng)忘記了中小學(xué)時(shí)學(xué)過的具體知識。如果讓你現(xiàn)在重新做之前做過的中考題高考題,你還會(huì)做嗎?很可能大部分人都不會(huì)了。但這并不重要,因?yàn)槲覀儸F(xiàn)在的目標(biāo)不一樣了。

不過面對歷年真題,我們還是有能力分辨出這是屬于哪一類型的題目,能夠分析出這類題目的大體解題思路,至少知道這道題目是可以解決的、是有解的。很多時(shí)候,這種解決思路、確定問題可以解決的信心往往更重要。

在現(xiàn)實(shí)世界中,我們遇到的問題大都是新問題,不大可能遇到“歷年真題”,這時(shí)我們需要的是從以往的經(jīng)驗(yàn)中搜索解決問題的思路和方法,重新整合成新的解決問題路徑,再一步步去執(zhí)行去檢驗(yàn),這就是我們所說的從舊有的經(jīng)驗(yàn)中獲得解決問題的思路。我們學(xué)習(xí)編程,最重要的是學(xué)習(xí)編程思維,也就是解決問題的思路和方法。

再來說說產(chǎn)品經(jīng)理,顧名思義,產(chǎn)品經(jīng)理是產(chǎn)品的第一責(zé)任人。對軟件產(chǎn)品來說,從前期的需求調(diào)研、產(chǎn)品原型設(shè)計(jì),到后期研發(fā)過程中的項(xiàng)目管理、產(chǎn)品上線、產(chǎn)品迭代優(yōu)化,整個(gè)過程產(chǎn)品經(jīng)理都要負(fù)責(zé)。因此,對把握一個(gè)產(chǎn)品的方向來說,產(chǎn)品經(jīng)理至關(guān)重要。這就要求產(chǎn)品經(jīng)理必須知道用戶提出的某個(gè)需求能否通過程序?qū)崿F(xiàn)?會(huì)對現(xiàn)有的程序產(chǎn)生多大的影響?是否有必要修改現(xiàn)有的程序?有沒有更好的解決方案?大概需要多長時(shí)間完成?這都需要產(chǎn)品經(jīng)理對編程有一定的認(rèn)識。

所以我認(rèn)為我們教授編程,是為了培養(yǎng)未來的產(chǎn)品經(jīng)理,培養(yǎng)孩子們的編程思維,培養(yǎng)孩子們解決問題的思路和方法,而不是解決的問題本身。要知道,從我們每個(gè)人一生的角度來看,我們一直在不斷地解決問題,我們其實(shí)就是需要不斷迭代優(yōu)化的產(chǎn)品,只有這樣我們才能不斷地適應(yīng)這個(gè)不斷迭代優(yōu)化的世界。

2 講知識點(diǎn)還是解決問題?

回到中小學(xué)Python教學(xué)上,要想在課堂上讓學(xué)生習(xí)得解決問題的能力,教師需要在一定程度上改變以往從講授知識點(diǎn)出發(fā)開始的教學(xué)方式,嘗試著從一個(gè)具體的問題出發(fā),和學(xué)生們一起探討解決這個(gè)問題的方法并讓學(xué)生們自主實(shí)踐。

今天張老師分享的用Python畫多彩多邊形的例子就對我很有啟發(fā)。

最初,學(xué)生們畫出來的多邊形都是黑色的。
隨后,引導(dǎo)學(xué)生們改變顏色,可能最開始只能改成一種顏色,這只需要添加一行代碼。
接著,如何變成多種顏色呢?同學(xué)們想出了用調(diào)色板的方法,這是就要用到列表的知識,創(chuàng)建一個(gè)調(diào)色板列表。
然后,同學(xué)們又發(fā)現(xiàn)了新的問題,畫的多邊形的邊數(shù)超過了調(diào)色板中顏色的數(shù)量時(shí)程序會(huì)出錯(cuò),該怎么辦?這時(shí)候可以引入for循環(huán)。
還有,同學(xué)們想要顏色隨機(jī)怎么辦?想要一次畫多個(gè)多邊形怎么辦?這又可以引出函數(shù)等新的知識點(diǎn)。
在這個(gè)例子中,就講到了列表、循環(huán)、函數(shù)等知識點(diǎn)。也就是說,我們教授編程的過程其實(shí)是在引導(dǎo)學(xué)生們解決一個(gè)個(gè)具體的問題,啟發(fā)學(xué)生思考我們的代碼能否解決這個(gè)問題,可以怎樣解決。這樣當(dāng)孩子們下次再遇到類似問題的時(shí)候,就會(huì)更容易想到解決問題的方法。因?yàn)樗麄兪窃谝粋€(gè)個(gè)具體的場景中學(xué)習(xí)編程的,他們是在用編程不斷地解決越來越有挑戰(zhàn)的問題,而不是僅僅記住了問題的答案。

3 如何教學(xué)生編程?

在真實(shí)的課堂上,我們可以嘗試通過這樣的步驟進(jìn)行編程教學(xué):

01 在課程一開始就提出一節(jié)課需要解決的問題。這個(gè)問題最好與學(xué)生的實(shí)際生活相聯(lián)系,這個(gè)問題可以是一個(gè)大項(xiàng)目中的一部分。

02 讓學(xué)生思考解決問題的思路。這時(shí)要引導(dǎo)學(xué)生聯(lián)系之前所學(xué)的知識,同時(shí)聯(lián)系自己在現(xiàn)實(shí)生活中的經(jīng)驗(yàn)。

03 引導(dǎo)學(xué)生說出解決問題的方法?,F(xiàn)實(shí)中解決問題的方法常常能夠轉(zhuǎn)化成編程中的算法,或者對解決編程問題有啟發(fā)。

04 對學(xué)生說出的方法進(jìn)行評價(jià)。對新知識點(diǎn)進(jìn)行講授,用程序語言描述學(xué)生所說的算法。

05 引導(dǎo)學(xué)生自己編程解決問題。讓學(xué)生自主練習(xí),通過自學(xué)課本、小組討論、學(xué)習(xí)教師提供的課件或視頻資料嘗試編寫程序解決問題。

06 給學(xué)生展示的舞臺。請完成的同學(xué)說編程的思路,邊說邊演示編程的過程和程序運(yùn)行后的結(jié)果,這能培養(yǎng)學(xué)生說和寫的基本能力。

07 教師進(jìn)行評價(jià)和反饋。這時(shí)可以對相應(yīng)的知識點(diǎn)進(jìn)行補(bǔ)充說明和總結(jié)。

編程教學(xué)是一條漫長的道路,需要在實(shí)踐中不斷地迭代優(yōu)化,以找到更好的適合所教學(xué)段學(xué)生的教學(xué)方法。一起加油。

我是華思語,和你一起認(rèn)真生活每一天。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容