Abstraction good programming and efficient learning Abstraction What
Abstraction, good programming, and efficient learning 中正大學 電機 /通訊系 潘仁 義
Abstraction: What is it? [1] q The act of withdrawing or removing something q The act or process of leaving out of consideration one or more properties of a complex object so as to attend to others v To identify common core or essence v To abstract common properties v To extract common features
《冨嶽三十六景》, 浮世繪畫師葛飾北齋的作品之一, 描繪由關東各地遠眺富士山時的景色。 下圖為 凱風快晴 Henri Matisse, “Naked Blue IV, ” 1952; paper cutouts. Katsushika Hokusai, “South Wind, Clear Sky (Gaif° kaisei) or “Red Fuji, ” a color woodblock print, Japan, AD 1830– 33.
Too detailed and the map becomes confusing and less comprehensible
抉擇? 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
Abstraction: Why is it so important? q Software itself is certainly abstract q The discipline of producing software requires abstraction skills v 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] v Multiple levels of abstraction v To master complexity v Data abstractions and classes in OOP
Is abstraction teachable? q To let students explore hypothetical questions, explain it, and teach concepts q Math is a good way to learn abstraction thinking q Models help us to understand analyze large and complex problems v What to model, and how to use that
References 1. Jeff Kramer, “Is abstraction the key to computing? ”, Communications of the ACM, Vol. 50, No. 4, pp. 36 – 42, 2007. 2. 田冠 鈞, “一位清大博士的認知學習經驗 ”, [online] http: //www. wretch. cc/blog/kuanh&article_id=21 56281 3. Keith Devlin, “Why universities require computer science students to take math”, Communications of the ACM, Vol. 46, No. 9, pp. 37 -39, 2003.
- Slides: 20