欧美成人A片免费|日韩无码一级av|一级黄色大片在线播放|黄片视频在线观看无码|亚洲精品成人无码影视|婷婷五月天视频网站|日韩三级AV在线播放|姓爱av在线婷婷春色五月天|真人全黃色录像免费特黄片|日本无码黄在线观看下载

  • +1

編程思維究竟是怎樣解決問題的?如何培養(yǎng)孩子這方面能力?

2021-02-04 21:41
來源:澎湃新聞·澎湃號·湃客
字號

看點 擁有知識不是目的,是必要的基礎(chǔ)和手段,解決問題才是目的!我們的現(xiàn)狀是滿腦子的知識和標(biāo)準(zhǔn)答案,而缺乏很多重要的能力。其中最重要的能力包括:生存能力、學(xué)習(xí)能力、思辨能力(批判能力)、創(chuàng)新能力等等。

我們從未接受過解決問題的訓(xùn)練,所以今天給大家推薦一種能幫助我們解決問題的思維方式:編程思維。

編程的核心,不是編程,不是語法,甚至不是算法或數(shù)據(jù)結(jié)構(gòu)本身,恰恰是如何分解問題——發(fā)現(xiàn)規(guī)律建立解決問題模型,映射到合適的數(shù)據(jù)結(jié)構(gòu)和算法上,最后才根據(jù)算法寫程序?qū)崿F(xiàn)。

什么是編程思維?

以下是美國計算機(jī)科學(xué)家、卡內(nèi)基-梅隆大學(xué)教授周以真(Jeannette M. Wing)教授寫的的一篇論文《計算思維(Computational Thinking)》。計算思維的覆蓋面更廣,也同樣能夠解釋什么是編程思維。

它代表著一種普遍的認(rèn)識和一類普適的技能,每一個人,不僅僅是計算機(jī)科學(xué)家,都應(yīng)熱心于它的學(xué)習(xí)和運(yùn)用。

計算思維是每個人的基本技能,不僅僅屬于計算機(jī)科學(xué)家。在閱讀、寫作和算術(shù)(英文簡稱3R)之外,我們應(yīng)當(dāng)將計算思維加到每個孩子的解析能力之中。正如印刷出版促進(jìn)了3R的傳播,計算和計算機(jī)也以類似的正反饋促進(jìn)了計算思維的傳播。

計算思維涉及運(yùn)用計算機(jī)科學(xué)的基礎(chǔ)概念去求解問題、設(shè)計系統(tǒng)和理解人類的行為。計算思維涵蓋了反映計算機(jī)科學(xué)之廣泛性的一系列思維活動。

當(dāng)求解一個特定的問題時,我們會問:解決這個問題有多困難?怎樣才是最佳的解決之道? 計算機(jī)科學(xué)根據(jù)堅實的理論基礎(chǔ)來準(zhǔn)確地回答這些問題。表明問題的困難程度是為了考量機(jī)器——就是用來運(yùn)行其解的計算工具之基本能力。我們必須考慮機(jī)器的指令系統(tǒng)、它的資源約束和它的操作環(huán)境。

為了有效地求解一個問題,我們可能要進(jìn)一步問:一個近似解是否就足夠了,是否可以利用一下隨機(jī)化,以及是否允許誤正或誤負(fù)。計算思維就是把一個看來困難的問題重新闡述成一個我們知道怎樣解的問題,如通過約簡、嵌入、轉(zhuǎn)化和仿真的方法。

計算思維采用了抽象和分解來迎戰(zhàn)浩大復(fù)雜的任務(wù)或者設(shè)計巨大復(fù)雜的系統(tǒng)。它是關(guān)注的分離。它是選擇合適的方式去陳述一個問題,或者是選擇合適的方式對一個問題的相關(guān)方面建模使其易于處理。它是利用不變量簡明扼要且表述性地刻畫系統(tǒng)的行為。它是我們在不必理解每一個細(xì)節(jié)的情況下就能夠安全地使用、調(diào)整和影響一個大型復(fù)雜系統(tǒng)的信心。它就是為預(yù)期的多個用戶而進(jìn)行的模塊化,它就是為預(yù)期的未來應(yīng)用而進(jìn)行的預(yù)置和緩存。

計算思維是通過冗余、堵錯、糾錯的方式,在最壞情況下進(jìn)行預(yù)防、保護(hù)和恢復(fù)的一種思維。它稱堵塞為死結(jié),叫合同為界面。它就是學(xué)習(xí)在諧調(diào)同步相互會合時如何避免競爭的情形。

(周以真Jeannette M. Wing教授)

—解釋一下編程思維—

從本質(zhì)上講,它是一種更有效的解決問題的方法。在這篇文章中,我的目的是用這種方式告訴你什么是編程思維,同時你就會知道怎樣才能更好的解決問題。

我們每天都會遇到很多問題,我們處理問題的方式有時候都是隨機(jī)的,比如:先試著解決方案,如果不行就再試一次,再沒有效果就重復(fù)第二步直到運(yùn)氣好的時候。

這樣解決問題的方法是最糟糕的方法,也非常浪費(fèi)時間!

“計算思維或分解大型復(fù)雜問題的能力,與工作所需要的基本技術(shù)能力一樣有價值”— by Hacker Rank (2018 Developer Skills Report)

—擁有編程思維的人如何解決問題?—

步驟如下:

01 理解

非常確切的知道自己被問的是什么問題。大多數(shù)難題之所以難,是因為你不理解它們,所以這個是第一步。

如何知道什么時候你理解了一個問題呢?——當(dāng)你能用簡單的、用自己的語言解釋它的時候。

你可能會記得,當(dāng)你被困在一個問題上,一旦開始解釋它,你就立刻看到邏輯上的漏洞,而且漏洞很可能也是你以前沒有看到的。

“If you can’t explain something in simple terms, you don’t understand it.” 如果你不能用簡單的語言來解釋某件事,你就無法理解它 — Richard Feynman

這就是為什么你應(yīng)該把你的問題寫下來,畫個圖,或者告訴別人。

02 計劃

不要在沒有計劃的情況下,一頭扎進(jìn)解決問題的過程中(并且希望你能混過去),計劃你的解決方案吧!

如果你不能寫下計劃確切的步驟,什么也都不幫不了你。

為了得到一個好計劃,回答這個問題:給定輸入 X,返回輸入Y所需要的步驟什么? 程序員的世界里面,有一個偉大的工具 來幫助他們實現(xiàn)這個,那就是注釋!

03 拆分

這是最重要的一步,不要試圖一次就解決一個大問題,相反,當(dāng)你把這個問題進(jìn)行拆分成一個一個子問題,這些子問題就更加容易解決了。然后,逐個解決每個子問題,從最簡單的開始。最簡單意味著,你知道答案(或者更加接近那個答案)。另外最簡單的方法意味著子問題的解決并不依賴于其他問題的解決。一旦你解決了每個子問題,再把這些點連接起來,連接所有“子解決方案” ,將為你提供的原始問題的解決方法!

這種技巧,是解決所有問題的基石,請記住它(建議你重新再讀一遍這個步驟)。

如果我能交給每一個初學(xué)者一種解決問題的技能,那就是“減少問題這個技能” ,例如:假設(shè)你是一個新程序員,你被要求編寫一個程序,讀取10個數(shù)字,然后算出哪個數(shù)字是第三高的,對于一個全新的程序員來說,這可能是一項艱巨的任務(wù),盡管它只需要基本的編程語法。如果你陷入困境,你就應(yīng)該把問題簡化。而不是專注在第三個高的數(shù)字上。如何在一個整體中先找到最高的那個數(shù)呢?還是太難了?那從三個數(shù)字中找到最大的那個呢?還是太難?那如果是尋找兩個較大的那個呢?

“將問題簡化到你知道如何解決問題,并編寫解決方案的程度。然后稍微展開問題,重新解決方案使其匹配,并繼續(xù)進(jìn)行,直到你回到你最開始的地方?!薄?V. Anton Spraul

04 卡住了呢?

現(xiàn)在,你可能正坐在那里想,這幾個步驟看起來還不錯嘛,但如果我卡住了,遇到了不能解決的問題該怎么辦?

首先,深呼吸。因為這個很正常!別擔(dān)心,朋友,每個人都會這樣子!不同之處在于,最好的程序員(問題解決者),對bug(錯誤)更加好奇,而不是惱怒!

事實上,當(dāng)你遭遇不幸時,有三件事情可以嘗試:

調(diào)試:逐步檢查你的解決方案,試圖找出哪里出錯了。即調(diào)試程序。

重新評估:后退一步,從另個一角度來看這個問題,有什么可以簡化成更加簡單的方法嗎?

(有時候,我們會對問題的細(xì)節(jié)太過沉迷,以至于忽略了在一般層面上解決問題的一般原則?。?/p>

經(jīng)典的例子,求一長串連續(xù)整數(shù)的總和,1+2+3+4+…+ n , 利用一個簡單的消元方法就可以很快的識別出這么一個公式:n(n+1)/2 ,從而避免了不得不做的加分。

(另一種重新評估的方式是重新開始。刪除所有的內(nèi)容,用全新的眼光重新開始。你會驚訝到這是多么有效。)

網(wǎng)絡(luò)搜索:不管你有什么問題,可能有人已經(jīng)解決了。找到那個人解決的方案。事實上,就算你解決了問題,也應(yīng)該去多搜索其他人做的案例,你可以從別人的解決方案中學(xué)到很多。

(注意:不要尋找解決大問題的方法,只尋找子問題的解決方案。)

05 實踐

不要期望僅僅一個星期就能變的很厲害,如果你想成為一個好的問題的解決者,就應(yīng)該去解決很多問題!練習(xí)、練習(xí)、練習(xí)!遲早你會認(rèn)識到這個問題可以通過很輕松的方式來解決。

那么如何練習(xí)呢?其實也有很多選擇的!

比如:象棋游戲、數(shù)學(xué)問題、數(shù)獨(dú)、視頻游戲、cryptokittiles ,bla bla bla ………

人工智能時代,如何培養(yǎng)孩子的編程思維?

TED著名演說家同時也是程序設(shè)計人員——Linda Liukas給了我們答案。

她是如何開始學(xué)編程的?

Linda提到,她最早接觸編程的時候,是在14歲,那時候,年少的她瘋狂迷戀一個男子,她非常想將心中的愛慕之意表達(dá)出來,所以,她開始學(xué)習(xí)寫代碼,并為他創(chuàng)建了一個網(wǎng)站。

她將編程作為一種自我表達(dá)的方式,像小時候用蠟筆或者樂高搭建自己的夢想世界,長大后用詩歌,寫作表達(dá)情感一樣。

起初,她的父母不理解,經(jīng)常會打斷孩子學(xué)計算機(jī)的想法,在他們眼中,計算機(jī)是一種深奧古怪的學(xué)科,因為計算機(jī)會涉及到很多句法規(guī)則,控制程序,數(shù)據(jù)程序等知識。

但她并不這樣認(rèn)為,反而心中會有很多疑問,什么是冒泡排列算法?電腦如何知道效果的?如何遵循指令,實現(xiàn)效果?

她說道:“編程既不是魔法,也沒那么復(fù)雜,它只是運(yùn)轉(zhuǎn)速度特別快,學(xué)習(xí)一系列編程知識,其實是在鍛煉我們的模式識別技能,當(dāng)我們對編程著迷時,其實是在遵循一些列象征性的指令,在計算機(jī)里實現(xiàn)英語與數(shù)學(xué)的連接?!?/p>

在這個互聯(lián)網(wǎng)時代,孩子可以通過點擊,滑動,縮放的方式認(rèn)識世界,但是,如果不給他們提供工具,教他們用電腦創(chuàng)作,那我們只是在培養(yǎng)消費(fèi)者而不是創(chuàng)作者。

所以,你應(yīng)該做的是,找到一個練習(xí)的方式,可以讓你解決很多小問題的東西。因為所有的問題都有相似的模式!

06 結(jié)論

現(xiàn)在,你知道“編程思維” 有多重要了吧!

祝你遇到很多問題。你沒看錯,這樣你可以反復(fù)的練習(xí)如何解決問題,同時,你將了解到,每一種解決方案都會使你得到改進(jìn)!

最后,以喬布斯的話來結(jié)尾:我覺得每個人都應(yīng)該學(xué)習(xí)一門編程語言。學(xué)習(xí)編程教你如何思考,就像學(xué)法律一樣學(xué)法律并不一定要為了做律師,但法律教你一種思考方式。學(xué)習(xí)編程也一樣,我把計算機(jī)科學(xué)看成是教育,每個人都應(yīng)該花至少1年時間學(xué)習(xí)編程?!猄teve Jobs

來源:Robotutor青少兒編程、泉州青少年人工智能教育、易編玩

(聲明:除STEAM在線原創(chuàng)文章外,STEAM在線分享和轉(zhuǎn)載的文章皆為促進(jìn)STEAM教育在中國的傳播,僅做學(xué)習(xí)交流,非商業(yè)用途,都會注明來源,如文章、照片的原作者有異議,請聯(lián)系后臺快速處理或刪除,謝謝支持。)

原標(biāo)題:《編程思維究竟是怎樣解決問題的?如何培養(yǎng)孩子這方面能力?》

閱讀原文

    本文為澎湃號作者或機(jī)構(gòu)在澎湃新聞上傳并發(fā)布,僅代表該作者或機(jī)構(gòu)觀點,不代表澎湃新聞的觀點或立場,澎湃新聞僅提供信息發(fā)布平臺。申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。

    +1
    收藏
    我要舉報
            查看更多

            掃碼下載澎湃新聞客戶端

            滬ICP備14003370號

            滬公網(wǎng)安備31010602000299號

            互聯(lián)網(wǎng)新聞信息服務(wù)許可證:31120170006

            增值電信業(yè)務(wù)經(jīng)營許可證:滬B2-2017116

            ? 2014-2025 上海東方報業(yè)有限公司