【事前準備】1-2 淺談程式與認知模型(cognitive model)

文章推薦指數: 80 %
投票人數:10人

【事前準備】1-2 淺談程式與認知模型(cognitive model). 《透過認知心理學認識JavaScript》貓咪也能輕鬆學習的JavaScript 系列第2 篇. ShawnL. 1 年前‧ 834 瀏覽. 第12屆iThome鐵人賽 DAY 2 1 ModernWeb 《透過認知心理學認識JavaScript》貓咪也能輕鬆學習的JavaScript系列第 2篇 【事前準備】1-2淺談程式與認知模型(cognitivemodel) 12th鐵人賽 javascript ShawnL 2020-09-1719:57:29863瀏覽 我們如何認識這個世界? 當人剛被生下來呱呱墜地的那一刻起,就已經開始透過知覺、反應與學習來與環境互動,儘管我們已成年、出社會了,在日常生活中仍處處都會需要我們思考與判斷,而這些感知、記憶、推理、創造與解決問題能力的活動過程我們稱其為認知歷程(cognitiveprocesses)。

若要可視化學習領域方面的認知歷程來說,我們可以參考DavidHestenes(2006)所提出的認知結構: 在這個認知結構中主要包含了三種部分: 真實世界:即是現實環境中的各種人事物。

心智模型:平時透過真實世界互動所得到的經驗。

概念模型:透過心智模型所衍伸或由他人提供經驗學習而歸納而成的部分。

CarlosEsteves(2019-10-9).Chessyourturn.https://unsplash.com/ 以下西洋棋為例,對遊玩的人來說其心智模型的目標就是思考怎麼取得國王,而未經訓練的棋手一般只會根據規則而一步一步的思考怎麼取得國王,然而經由大量訓練的專業棋手,其概念模型則有許多不同的思維與方式來想辦法達成這件事情,進而使達成目標的手法與邏輯更加的明確。

訓練模型的重要性 透過下棋的例子,我們可以得知訓練概念模型有助於描述該領域抽象的思維以及更加地容易達成目標,其中當然也包含我們如何學習JavaScript。

而對於程式語言這門領域來說,透過實作是一種不錯的學習方式。

然而在實作的過程中遇到與預期的結果不合時,不是經由較為嚴謹的驗證或詢問、參考其他領域專家意見,而是單純以「腦補」的方式來解釋程式中的運作,最後就相對容易建立一個誤導結論的概念模型,造成下一次理解程式碼時會更加地困難。

科普小故事-賭徒謬誤(TheGambler'sFallacy) 一名擲硬幣連續超過好幾次都是正面的賭徒,對於「理解機率」方面的認知模型產生下次硬幣擲出後反面機率會高於正面機率的。

然而這是不當的假設,因為在公正硬幣不考慮側面的情況下理應每次拋出後正反應該皆為二分之一的機率。

接下來我們來試著看看程式碼,你能夠試著解釋下面程式碼所發生的狀況嗎? varresult={answer:0} functionchangeResultValue(obj){ obj={answer:1} } console.log(result.answer)//? changeResultValue() console.log(result.answer)//? 有如你預期般的顯示嗎?我們繼續試著解釋另一段程式碼: varresult={answer:0} functionchangeResultValue(obj){ obj.answer=1 } console.log(result.answer)//? changeResultValue(result) console.log(result.answer)//? 當我們看完上面兩段程式碼後,如果你可以輕易的解釋這兩段程式碼中的執行過程與發生的原因,那麼表示你對於JavaScript中的參考機制的認知已經非常接近真實情況。

而除了「腦補」的這個環節之外,在我們開發的過程當中,理解程式碼也是一個重要的環節,因為在開發的過程當中我們時常需要先透過閱讀程式碼來瞭解當下程式碼的邏輯,接著再依照需求來進行開發。

也就是說,當你對於程式碼的執行程式理解越具體時,你藉由程式碼所詮釋出來的內容也將會越容易被解讀。

尤其是當我們在進行的是多人開發協作,程式碼是否能夠輕易地被理解將會更加地重要,並且不論從命名、縮排等等細小的環節都將成為被「檢視」的一環。

最終,容易被團隊成員閱讀的程式碼也將如一件「藝術品」一樣,令人感動且被世人所追捧。

如何訓練認知模型? 現在我們知道訓練認知模型有助於理解JavaScript,可以使撰寫與閱讀程式碼時能夠更加的輕鬆,那麼我們要怎麼訓練有關JavaScript的認知模型呢? 依照一些自學與進修的經驗來給予建議的話是依照你目前的程度作規劃,這裡大概分為三個階段: 剛接觸程式語言 正在寫一些作品 已進入職場的前端工程師 接著我們將來陸續來談談要如何依據不同的階段來訓練我們有關於JavaScript的認知模型! 留言 追蹤 檢舉 上一篇 【事前準備】1-1前言與文章大綱 下一篇 【事前準備】1-3如何訓練認知模型:對於剛接觸程式語言者而論 系列文 《透過認知心理學認識JavaScript》貓咪也能輕鬆學習的JavaScript 共33篇 目錄 RSS系列文 訂閱系列文 25人訂閱 29 【驗證模型】3-7「今晚,我想來點⋯⋯」動手做的餐點選擇器進化!(下集) 30 【修正模型】4-1執行上下文(ExecutionContext) 31 【修正模型】4-2呼叫堆疊(CallStack) 32 【修正模型】4-3事件循環(EventLoop)與任務隊列(JobQueue) 33 【修正模型】4-4完賽,但我們才正要開始 完整目錄 尚未有邦友留言 立即登入留言 iT邦幫忙鐵人賽 參賽組數 1087組 團體組數 52組 累計文章數 20477篇 完賽人數 572人 鐵人賽最新文章 .NetCoreWebApi_筆記21_Swagger及OpenAPI介紹與配置使用方式_API管理與測試探討 .NetCoreWebApi_筆記20_api結合ADO.NET資料庫操作part8_新聞文章查詢 .NetCoreWebApi_筆記19_api結合ADO.NET資料庫操作part7_新聞文章的編輯更新與刪除 .NetCoreWebApi_筆記18_api結合ADO.NET資料庫操作part6_新聞文章表格陳列查詢 .NetCoreWebApi_筆記17_api結合ADO.NET資料庫操作part5_新聞文章新增_新聞類別元素透過API綁定方式 [Bonus系列]-使用useCallback&useMemo的正確時機是什麼? 大盤到底能不能攻上一萬八?? gotodie?那個goto到底能不能用啊? 2021/12/12更新 予焦啦!一夢終須醒...... 前往鐵人賽 技術推廣專區 [Day2]抓取每日收盤價 [Day1]基本工具安裝 利用python取得永豐銀行API的Nonce [Day03]tinyML開發板介紹 永豐金融API測試員 [Day01]在享受tinyML這道美食之前 [Day3]使用ta-lib製作指標 [Day4]函數打包與買進持有報酬率試算 計算API所需要的參數:HashID 計算API所需要的參數:IV 前往鐵人賽 熱門問題 公司想要架設一個網購物站,但是不知道要怎麼規劃預算 正要準備開始上CCNA… 無網際網路時,請問兩台電腦如何‘無線’遠端連線 遠端監控電腦效能 如何設定一台電腦,有線網卡走公司內網,無線網卡走外網,同時運行? 關於網頁顯示問題 mssql資料庫搬移時,怎樣出所有需要的資料會比較好? 請問有在做關貿資料串接的資訊公司嗎? NAS、雲端儲存空間、隨身硬碟差別在那?怎麼選? 照片辨識比對軟體開發 IT邦幫忙 站方公告 【2021iThome鐵人賽】登登登!究竟獎落誰家,2021iThome鐵人賽得獎名單正式揭曉 熱門tag 看更多 13th鐵人賽 12th鐵人賽 11th鐵人賽 鐵人賽 2019鐵人賽 2018鐵人賽 javascript 2017鐵人賽 windows php python windowsserver linux c# 程式設計 資訊安全 css vue.js sql 分享 熱門回答 正要準備開始上CCNA… 如何設定一台電腦,有線網卡走公司內網,無線網卡走外網,同時運行? NAS、雲端儲存空間、隨身硬碟差別在那?怎麼選? 遠端監控電腦效能 無網際網路時,請問兩台電腦如何‘無線’遠端連線 照片辨識比對軟體開發 關於網頁顯示問題 公司想要架設一個網購物站,但是不知道要怎麼規劃預算 mssql資料庫搬移時,怎樣出所有需要的資料會比較好? DefaultDomainPolicy密碼複雜度 熱門文章 大盤到底能不能攻上一萬八?? [Bonus系列]-使用useCallback&useMemo的正確時機是什麼? 【教學】簡單救回電腦資料 為了轉生而點技能-JavaScript,day23(Promise介紹 12.MYSQL淺談NULL 數位簽章(digitalsignature) 什麼是功能分解? D9.學習基礎C、C++語言 7.MYSQL表格程式語法 javascript基礎功能1 一週點數排行 更多點數排行 海綿寶寶(antijava) ㊣浩瀚星空㊣(yoching) 小山丘(a243318490) 居然解出來了(partyyaya) ccenjor(ccenjor) 純真的人(jer5173) fillano(fillano) Gary(mosbbs) PPTaiwan(Pochengtaiwan) souda(souda) × At 輸入對方的帳號或暱稱 Loading 找不到結果。

標記 {{result.label}} {{result.account}} 關閉



請為這篇文章評分?