1 / 18

Abstraction, good programming, and efficient learning

Abstraction, good programming, and efficient learning. 中正大學 電機 / 通訊系 潘仁義. Abstraction: What is it? [1]. The act of withdrawing or removing something The act or process of leaving out of consideration one or more properties of a complex object so as to attend to others

ham
Download Presentation

Abstraction, good programming, and efficient learning

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Abstraction, good programming, and efficient learning 中正大學 電機/通訊系 潘仁義

  2. Abstraction: What is it? [1] • The act of withdrawing or removing something • The act or process of leaving out of consideration one or more properties of a complex object so as to attend to others • To identify common core or essence • To abstract common properties • To extract common features

  3. 《冨嶽三十六景》, 浮世繪畫師葛飾北齋的作品之一, 描繪由關東各地遠眺富士山時的景色。 下圖為 凱風快晴 Katsushika Hokusai, “South Wind, Clear Sky (Gaif° kaisei) or “Red Fuji,” a color woodblock print, Japan, AD 1830–33. Henri Matisse, “Naked Blue IV,” 1952; paper cutouts.

  4. 東都淺草本願寺 http://map.yahoo.co.jp 東本願寺 放大縮小看看, abstraction

  5. Too detailed and the map becomes confusing and less comprehensible

  6. 抉擇? Depends on the purpose Too abstract and the map would not provide sufficient information The distances between stations were not longer proportional to the geographical distances

  7. Abstraction: Why is it so important? • Software itself is certainly abstract • The discipline of producing software requires abstraction skills • Keith Devlin, “Once you realize that computing is all about constructing, manipulating, and reasoning about abstractions, it becomes clear that an important prerequisite for writing (good) computer programs is the ability to handle abstractions in a precise manner.” [3] • Multiple levels of abstraction • To master complexity • Data abstractions and classes in OOP

  8. Is abstraction teachable? • To let students explore hypothetical questions, explain it, and teach concepts • Math is a good way to learn abstraction thinking • Models help us to understand and analyze large and complex problems • What to model, and how to use that

  9. 利用抽象化, 有效率的學習 [2] • 01. 記憶,什麼是記憶 • 02. 深入探討工作記憶區和永久記憶區 • 03. 簡介概念式知識和劇情式知識 • 04. 幫助記憶的方法 • 05. 外認知,什麼是外認知 • 06. 心智模型 • 07. 符號

  10. 記憶,什麼是記憶 • 一目十行,過目即忘 • 大雄吃了「記憶丸」? • 錯誤觀念一:好的記憶能力,就是要能做到「一字不漏」。 • 新知識的精髓能夠被融會貫通 • 錯誤觀念二,記憶力不好,就是笨。 • 知識可以放到腦袋裡面,也可以放到腦袋外面 • 錯誤觀念三,記憶好的人是「各種東西都可以記下來」。 • 每個人也都在各種記憶能力上有不同的長處

  11. 「工作記憶區」與「永久記憶區」 • 工作記憶區  Ram • 處理速度快,資料也存不久 • 永久記憶區  HD • 容量雖大,速度卻慢多了 • 工作記憶區和永久記憶區一起合作 • 工作記憶區比對資訊,永久記憶區儲存資訊 • 經由不斷地進行「比對,判斷,記憶」的過程,逐漸累積經驗,建構知識

  12. 記憶系統的「比對,判斷,記憶」 • 經驗與記憶相牴觸的時候,常常是智慧成長的關鍵時刻 • 喜歡享受那種「找到答案」的成就感 • 困難,矛盾,衝突之中,終於找到一種完整的架構,讓所有的衝突矛盾歸於平靜和諧 • 資料存得好,遠比資料存得多還要重要 • 新知識要和現有的知識產生關連,才容易記得住 • 產生的蜘蛛絲就越多,新概念的附著性就越強

  13. 幫助記憶的方法 (1/4) • 有意義的學習 • 有意義的資訊,容易記得 • 能引起你的興趣,瞭解,關連,比對,厭惡,喜歡等各種知性或感性的共鳴 • 新學的知識若能和舊有的知識產生關連 • 侏儸紀公園 與 化石 • 雲霄飛車 與 重力加速度 • 要背東西,就要想辦法真正了解它背後的意義,利用它本身的邏輯性來幫助記憶 • 學生們沒有將這些運動定律,和舊有經驗產生關連

  14. 幫助記憶的方法 (2/4) • 要能自圓其說 • 每一個人都有一套主觀的看法以及解釋的邏輯 • 當新的知識進入 ,就會進入一種「擾動」的狀態 • 新知識要能解釋舊知識,舊知識要能解釋新知識,或是合力建構一個一個新的知識系統,達到和諧 • 學習的過程中,常常會出現各種衝突,矛盾,如果置之不理,就會雜亂無章 ,容易忘記 • 利用口訣 • 把許多不相干的東西,串成一組有意義的東西 • 像是拿一串葡萄一樣

  15. 幫助記憶的方法 (3/4) • 利用聯想 • 在聯想的過程中,許多舊有的資料,都會在腦海裡重現,然後與新資料產生關係 • 多想一想。有沒有別的解法? • 有沒有和自己的生活經驗有關係? • … • 多重角度想問題 • 廣泛的學習與閱讀 • 閱讀範圍儘量和正在學的目標有關,打地基關連起來

  16. 幫助記憶的方法 (4/4) • 利用情境記憶 • 解剖青蛙的實驗中,眼睛注視著內臟的顫動,鼻子聞著刺鼻的藥水味道 • 人稱王維「詩中有畫,畫中有詩 」 • 隨時檢驗現有知識架構 • 如果沒有整理,讓書本隨便亂擺,久而久之就找不到 • 完全沒有消化知識,不如擁有少量知識但卻井井有條 • 教學相長 • 在教的過程中,被迫要將知識整理成一種可以讓別人消化的狀態 • 和個人過去各種經歷知識,產生各種比對,整理,關連的過程,深化了它的整合程度,非常有益於記憶

  17. 符號 • 符號是表達思想的工具 • 語言,文字,五線譜,交通號誌,阿拉伯數字,物理數學公式等 • 所有的學習,基本上都是在學習如何使用符號 • 學生要看得懂課本和成績單 • 程式設計師要看懂各種程式碼所代表的意義 • 一方面是為了利用這些符號表達自己的思想,另一方面則是透過這些符號,瞭解別人的思想 • 越有智慧的人,越有能力使用簡單的符號,來表達複雜的概念 • 牛頓只用了短短的幾個符號,F=MA • 偉大的畫家,能夠用線條,顏色,圖像(這也是符號喔!)描繪出人類心靈深處潛藏的感覺

  18. References • Jeff Kramer, “Is abstraction the key to computing?”, Communications of the ACM, Vol.50, No.4, pp. 36 – 42, 2007. • 未具名, “一位清大博士的認知學習經驗”, [online] http://www.nhcue.edu.tw/~gitll/main/teachers/20051122.htm • Keith Devlin, “Why universities require computer science students to take math”, Communications of the ACM, Vol.46, No. 9, pp. 37-39, 2003.

More Related