计算机科学概论读书笔记系列——绪论

绪论

 

01 算法的作用

一般来说,算法(algorithm)是一系列的步骤,它规定如何完成一项任何。如,关于烹饪的算法称为菜谱,演奏音乐的算法称为乐谱

某一个算法的表示称为一个程序(program)。开发一个程序,使之采用与机器兼容的形式进行编码并将其输入到机器中得过程称为程序设计(programming)。程序及其所表示的算法总称为软件(software),而机器设备本身称为硬件

机器的智能级别受限与算法所传达的智能。只有存在执行某一项任务的算法时,才可以制造出执行这一任务的机器。换言之,如果我们找不到一个解决某问题的算法,那么这个问题的解决就超过了机器的能力。

哥德尔不完备性定理——在任何一个包括传统意义的算术系统的数学理论内,总有一些命题的真伪是无法通过算法的手段来确定的。简言之,对于任何算术系统的全面研究都超越了算法活动的能力。

02 计算机科学中涉及的伦理学

1:结果伦理——结果伦理试图分析的问题是作出各种选择所造成的后果。最突出的一个例子是“功利主义”——“正确”的决策或行动就是可以带给社会上大多数人最大利益的。功利主义似乎解决了伦理上的难题。但是从绝对性上看,它又导致了许多令人无法接受的后果。例如,他使少数人要服从多数人。而且很多人认为,伦理理论的结果方法本身就是强调结果,这样人就仅仅被当做实现结果的工具而不是有意义的个体了。这是所有结果伦理理论的一个最基本的瑕疵。

2:职责伦理——和结果伦理相反,职责伦理并不考虑决策和行动的结果,它认为社会成员本身应该有职责或义务,因此又产生了需要解决的伦理问题。例如,一个人有尊重他人权利的义务,那么无论后果如何,他都要反对奴隶制。另外一方面,反对职责伦理的人认为,对于有争议的职责问题,它是无法提供解决方案的。如果说出事实真相会使同事失去自信,你还会这样做吗?一个民族如果在战争中自卫,那么在随后的战争中就会牺牲很多公民,这个民族还应该自卫吗?

3:合同伦理——首先假设社会没有任何伦理根基。在这种纯天然的背景下,什么情况都有可能发生——每个人都必须自我保护,不断防止他人的进攻。因此,合同伦理理论认为,社会成员之间应该建立“合同”。例如,你不剽窃我,我就不剽窃你。进而这些“合同”就成为伦理习惯的准绳。在这里需要指出的是,合同伦理理论是伦理行为的动力,否则我们就将生活得很不愉快。然而,反对合同伦理理论的人认为,它不能为伦理难题的解决提供足够广阔的基础,只有在那些已经建立合同的领域,它才能起指导作用。(在没有合同约束的领域,我就可以为所欲为。)尤其是新技术可能发现人们未知的领域,其中无法应用现存的伦理合同。

4:性格伦理——又称德行伦理是由柏拉图和亚里士多德提出的,它指的是,“好习惯”不是运用统一规则的结果,而是“良好性格”的自然结果。当一个人解决伦理难题时,结果伦理、职责伦理以及合同伦理认为应该考虑的分别是:“结果会怎样呢?”、“我的职责是什么呢?”、“我有什么合同呢?”,而性格伦理考虑的是:“我想成为什么样的人呢?”。因此,好习惯是建立在好性格的基础上的,而这正得益于良好的教育以及德行习惯。

03抽象

抽象概念贯穿计算机科学的研究和计算机系统的设计。

抽象(abstraction)在本书的意思是指一个实体外部特征与其内部构成细节的分离。

抽象使我们可以忽略一些复杂设备(如计算机、汽车、微波炉等)的内部细节,而把它们作为单一的可理解的单元.

 

原文地址:https://www.cnblogs.com/mumue/p/2592445.html