任何一个学科在发展的历程中,总是围绕着解决学科的基本问题和重大问题不断地向前发展。
重大问题是比较容易理解的,而且相对于不同时期重大问题既是相对的,也是比较多的。例如,学科发展初期提出的什么是自动计算装置的理论模型,什么是可计算与不可计算的概念;20世纪50年代末60年代初提出的高级程序设计语言的形式化描述问题;60年代末70年代初提出的NP完全性问题;70年代末80年代初提出的人工智能的逻辑基础问题,网络通信协议的描述问题;80年代末90年代初提出的可变结构的计算模型问题以及当前的量子计算、生物计算机等。
根据学科定义,学科的基本问题本质上是能行性问题。但是,对学科基本问题的这样一种描述显然不够精细,难以把握。通常,能行性更多地被认为体现的是学科的基本特点。经过深入分析,认为学科的基本问题主要可通过下列3个基本问题体现。
① 计算的平台与环境问题。
② 计算过程的能行操作与效率问题。
③ 计算的正确性问题。
经过近些年的发展,这个学科已经变得非常宽泛,特别是网络技术出现后,计算学科涵盖的内容进一步丰富,应用面更加宽广。一个典型的说法是,WWW技术的出现,一下子将“计算”泛化了、平民化了。随着学科内涵的宽泛化,一些分支学科逐渐形成。科学型分支学科为计算机科学,工程型分支学科为计算机工程和软件工程,应用型分支学科为信息技术。它们分别关注学科的不同方面,拥有不同的问题空间,所以根本问题也不相同。
科学在于研究现象、发展规律,工程在于低成本有效地构建高效的系统,而技术在于实现方便的服务。落实到计算机科学与技术学科,其科学、工程和应用分支学科的根本问题分别描述如下。
① 计算机科学的根本问题是“什么能被有效地自动计算”。
② 计算机工程、软件工程分别从硬件和软件两方面研究和实现系统的构建,它们的根本问题是“如何低成本、高效地实现自动计算”。
③ 应用型分支学科关注计算机技术,根本问题是“如何方便、有效地利用计算系统进行计算”。
综合来看,可以认为计算学科的根本问题是“什么能且如何实现有效地自动计算”。所以,我国称做计算机科学与技术的学科除了具有较强的科学性外,还具有较强的工程性和实用性,因此,它是一门科学性与工程性并重,理论与实践紧密相关的学科,同时对绝大多数人来说还是一个技术为主的学科。