计算机科学基础与算法设计
1. 计算机科学的基本概念
对于许多读者来说,计算机编程入门是他们与计算机科学的首次深度接触。计算机科学至今尚未有统一的定义,常见的定义有两个:
- 计算机科学是利用机器进行信息处理、存储和传输的科学、技术与应用。
- 计算机科学是人类工作自动化的科学。
这两个定义综合起来,较为全面地描述了计算机科学家所关注的内容,即处理信息,通常是将原本由人类执行的活动全部或部分转移给机器。
计算机最初的主要目的是实现数值计算自动化,它的一个显著特点是具有通用性,能够被编程以解决几乎任何计算任务。不过,如今计算机的用途远不止于数值计算,还可用于撰写和排版各类文档、玩游戏、上网查询信息等。从计算机的内部操作来看,它本质上只是将二进制符号串转换为新的符号串,这些符号串根据不同的理解可以是数值计算或文本信息处理。通过将图像、声音或视频序列编码为二进制符号序列,计算机也能对其进行处理。
计算机科学可分为硬件工程和软件工程两部分。硬件工程主要涉及计算机本身的制造,与电气工程尤其是微电子学密切相关;软件工程则专注于开发程序。编程技术可视为软件工程中关注编程基本“机械”技能的部分,而软件工程更侧重于大型软件项目开发中的工程和组织问题。
Mayr 和 Maas 提出了计算机工程的另一种细分方式,包括以下三个领域:
- 基础领域 :主要来自数学、自然科学、工程学、商业和社会科学。
- IT 系统及其开发 :涵盖硬件和软件系统。
- IT 应用 :涉及商业工程、制造过程管理、医学和生物技