ALevel CS里的分解和抽象

大纲一览,引用自第9单元,23页

1、Show an understanding of abstraction 

Needfor and benefits of using abstraction 

Describe the purpose of abstraction, Produce an abstract model of a system by only including essential details 

2、Describe and use decomposition 

Break down problems into sub-problems leading to the concept of a program module (procedure / function) 

大纲里要求我们掌握抽象和分解的概念,事实上,历年真题里也有很多反应这两种方法的题目,抽象和分解也是我们解决问题的一种思路,那么什么是抽象?什么是分解呢? 

315690e20498e9be989b165174e46122.jpeg

抽象 abstraction

1、抽象是指看问题时过滤调所有不必要的信息。识别问题的关键部分有助于人们找到问题的解决办法。

2、基本要领

抽象是确定对象或者系统的哪个元素是必要的特征的过程,没有他们,物体就不会是他们本身的样子。

西班牙艺术家毕加索经常画抽象的肖像,画中人物的脸部看起来与现实世界完全不同,然而,由于他们有一张脸的基本特征-眼睛鼻子嘴巴,所以我们可以认出那是一张脸。

即使没有细节,人们也能认出来以上图片是个房子。

什么是不必要的细节?

房子必要的细节是墙壁,屋顶,门和窗户,像窗户的颜色或者数量之类的东西并不是必不可少的细节。

抽象关键:找到必要的细节

抽象的诀窍是在基本信息和非基本信息之间找到平衡,例如在传递任务的指令时,步骤太多就会引起混乱,步骤太少就可能无法完成任务。

比如,查找某个序列中的特定值,计算机程序员为了程序需要,将查找步骤按照正确的顺序排列,从而解决这个问题。

洗衣机的控制步骤就是一个抽象的例子,使用洗衣机洗衣服时,我们不必确切了解洗衣机是如何工作的,只需要打开洗衣机,然后按下所需要的模式即可。

案  例

链接:真实的世界

7b95bf4b30e37fa138e79d32d9a545b7.jpeg

许多列车和地铁的现代地图就是抽象的例子,早期的地图准确地显示了一条铁路的所有路线,其中还包括了车站之间的距离,然而这让人很难阅读,因为他们提供了乘客不需要的信息,如确切路线等,并且使乘客很难看到他们真正需要的信息,就比如线路上的车站顺序

新的地图简化了信息,所有乘客可以看到从A到B站最高效的路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值