自从第一台需要人们用线缆和交换机向其传达指令的电子计算机问世以来,编程已发生了巨大改变。计算机科技的革新给计算机科学家提供了越来越多的工具和平台,方便他们在社会的各个领域一显身手。高速处理器、高速网络以及大容量存储器等在发展的同时也带来了难度螺旋式上升的种种问题,而计算机科学家们必须解决它们。发展固然很快,众多基本原则却能经久不变。计算机科学本质上是利用计算机来解决问题。无疑你已经花费了大量时间学习解决问题所需要的基本能力,我们也相信你对自己理解问题并提出解决方案的能力已很有自信。你应当已经感受到了编写程序代码常常是具有相当难度的。然而,往往正是大型问题的繁杂,加上其解决方案与之相当的复杂性掩盖了解决问题的过程中涉及到的基本思路。本章接下来将主要强调两个重要的方面。第一,回顾计算机科学以及算法与数据结构的基本框架,并特别强调我们学习这些内容的原因以及理解这些内容如何帮助我们更好地解决问题。第二,了解python语言。尽管无法提供详尽透彻的指导,本章将给出具体案例并对其余章节中将会涉及到的基本概念和思想做出解释。

通常来说计算机科学难以准确地被定义。这或许是因为人们对“计算机”这个词的滥用。你也许清楚,计算机科学并不仅仅是对计算机进行研究。虽然计算机是支撑这门学科的重要工具,但它也仅仅是工具而已。计算机科学是对问题本身、问题的解决、以及问题求解过程中得出的解决方案的研究。面对一个特定问题,计算机科学家的目标是得出一个算法(algorithm),写出一组解决该问题可能出现的任何情况的步步为营的指令。算法通过有限过程解决问题。算法是解决方案。计算机科学可以被看作是对算法的研究。然而,我们必须小心翼翼地考虑到有一些问题是没有解决方案的。虽然证明这个说法超出了本课本的范围,有些问题无法解决这件事对研究计算机科学的人来说很重要。通过涵盖这两类问题,我们可以完整地定义计算机科学,计算机科学研究的是问题的解决方案以及没有解决方案的问题。描述问题及其解决方案时,“可计算”(computable)这个词是很常见的。当存在解决某个问题的算法时,我们说该问题是可计算的。另一种对计算机科学的定义是:计算机科学研究的是问题是否可计算,算法是否存在。在大多数情况下,你将会注意到“计算机”这个词完全没有出现。我们认为问题的解决方案是独立于机器本身的。计算机科学,就如它关注问题求解过程一样,也研究抽象(abstraction)。抽象使我们能以一种区分所谓的逻辑对象和物质对象的方式来看待问题及其解决方案。在常见的案例中这种基本想法对我们来说是很熟悉的。考虑一下你今天去学校或工作时乘坐的交通工具。作为一个司机,一个汽车的使用者,为了使汽车达到预期目的,你和汽车之间有固定的交互方式。你坐进车里,插入钥匙,发动汽车,换挡,刹车,加速,行驶。用抽象的角度来看,我们可以说,你看到的是汽车逻辑性的一面。你使用的是汽车设计者提供的将你从一个位置转移到另一个位置的功能。这些功能有时也被称为界面(interface)。另一方面,汽车修理工有非常不同的观点。他不仅知道如何驾驶汽车,而且知道运行我们认为理所当然的功能的所有必要的细节。他需要了解引擎如何工作,如何传递档位变化,如何控制温度等等。这被认为是物质的角度,发生在引擎盖下的细节。我们使用计算机的时候也是一样的。大多数人用计算机写文档,收发邮件,上网,播放音乐,储存照片以及玩游戏,但他们对于这些程序具体是如何运行的一无所知。他们从逻辑上或是用户的角度看待计算机。计算机科学家、程序员、技术员以及系统管理员又持有一种对于计算机截然不同的看法。他们必须知道操作系统具体是如何工作的,网络协议是如何配置的以及如何写各种代码来控制这些功能。他们必须能够控制那些用户认为是理所应当的底层的详细内容。

python教材免费版-北大内部教材python版算法与数据结构PDF电子书免费下载相关推荐

  1. python编程入门第3版pdf-Python编程入门第3版PDF电子书免费下载

    本文档的主要内容详细介绍的是Python编程入门第3版PDF电子书免费下载. Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,自20世纪90年代初诞生至今,逐渐被广泛应用于处理系统 ...

  2. python基础教程 下载-Python基础教程第3版中国PDF电子书免费下载

    本书包括 Python 程序设计的方方面面:首先,从 Python 的安装开始,随后介绍了 Python 的基础知识和基本概念,包括列表.元组.字符串.字典以及各种语句:然后,循序渐进地介绍了一些相对 ...

  3. python基础教程3下载-Python基础教程第3版中国PDF电子书免费下载

    本书包括 Python 程序设计的方方面面:首先,从 Python 的安装开始,随后介绍了 Python 的基础知识和基本概念,包括列表.元组.字符串.字典以及各种语句:然后,循序渐进地介绍了一些相对 ...

  4. python基础教程免费下载-Python基础教程第三版PDF电子书免费下载

    <Python基础教程(第3版)>是2018年人民邮电出版社出版的图书,作者是[挪]Magnus Lie Hetland.该书全面介绍了Python的基础知识和基本概念,包括列表.元组.字 ...

  5. 简明python教程电子版-简明Python教程PDF电子书免费下载

    Python语言可能是第一种即简单又功能强大的编程语言.它不仅适合于初学者,也适合于专业人员使用,更加重要的是,用Python编程是一种愉快的事.本身将帮助你学习这个奇妙的语言,并且向你展示如何即快捷 ...

  6. python编程入门第3版pdf-Python核心编程第3版PDF电子书免费下载

    本书是经典畅销图书<Python 核心编程(第二版)>的全新升级版本,总共分为 3 部分.第 1 部分讲解了 Python 的一些通用应用,包括正则表达式.网络编程.Internet 客户 ...

  7. python密码学编程pdf-Python密码学编程PDF电子书免费下载

    本书主要介绍了加密算法,同时从Python编程的角度来引导读者将加密算法更好地实现.书中不仅讲述了详细的算法理论,还附以详细的代码示例帮助读者更好地学习算法,并最终实现加密算法.除此之外,书中还提供了 ...

  8. python从入门到实践电子版-Python编程从入门到实践PDF电子书免费下载

    本书是一本针对所有层次的 Python 读者而作的 Python 入门书.全书分两部分 :第一部分介绍用 Python 编程所必须了解的基本概念,包括 matplotlib.NumPy 和 Pygal ...

  9. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

最新文章

  1. vb 取得计算机名及目录
  2. Cell Reports:中大骆观正+上科大季泉江-CRISPR引导的细菌靶向遗传筛选系统
  3. python编程if语法-Python中的if语句——参考Python编程从入门到实践
  4. 游戏型计算机的配置表,爽玩游戏型详细配置列表及推荐理由
  5. wxWidgets:wxNavigationKeyEvent类用法
  6. apache建立虚拟主机[转载]
  7. 项目alpha冲刺-总结
  8. NLP预训练家族 | Text-To-Text范式统一NLP任务
  9. Python logging模块实现同时向控制台和文件打印日志
  10. 如何选择云服务器与轻量应用服务器?谈谈自己的看法
  11. opencv 2 归一化函数normalize详解
  12. Windows Driver Kits(WDK)中devcon.exe单独安装方法
  13. MySQL数据表操作思维导图
  14. IBM人工智能项目Watson旧金山开设新总部
  15. 木疙瘩动画效果视频学习
  16. 30.STM32 DS18B20
  17. nmap命令检查在线IP与在线IP的开放端口情况
  18. *.lwp文件如何打开
  19. 20-40K| 梅卡曼德3D视觉算法/软件/产品经理招聘
  20. win10安装CP2102(STM32串口通信)驱动

热门文章

  1. Java IO流-File类
  2. (一)准备阶段 2019年研究生数学建模D题《汽车行驶工况构建》
  3. 博客园Markdown模式的MATLAB代码高亮方案
  4. 移动互联网下半场 iOS 程序员面试真经,让你进入 BAT 不再是梦
  5. 常见四大类型视频接线DP、HDMI、DVI、VGA的比较
  6. 模块讲解----time与date time(时间模块)
  7. HDU_oj_2050 折线分割平面
  8. ASP.NET Core MVC – Caching Tag Helpers
  9. visio 2010下载
  10. 、PHP只能访问mysql_php中 mysql函数不能调用,只有mysql_query()可以用