计算机科学与技术学科的方法论主要包含3个方面:学科的3个形态(又称为学科中问题求解的3个过程)、重复出现的12个基本概念、典型的学科方法.前者描述了认识和实践的过程,后两者分别描述了贯穿于认识和实践过程中问题求解的基本方面(要点)和方法.
学科的3个形态为抽象、理论、设计.它们描述了计算机科学与技术学科的研究与实践的3种形态,对应于本学科中问题求解的3个典型过程,是学科方法论最根本的内容.
1.理论
它与数学所用的方法类似,主要要素为定义和公理、定理、证明、结果的解释.用这3个典型过程来建立和理解计算机科学与技术学科所依据的数学原理.其研究内容的基本特征是构造性数学特征.
2.抽象(模型化)
源于实验科学,主要要素为数据采集方法和假设的形式说明,模型的构造与预测,实验分析,结果分析.在为可能的算法、数据结构和系统结构等构造模型时使用此过程.然后对所建立的模型的假设、不同的设计策略以及所依据的理论进行实验,用于和实验相关的研究,包括分析和探索计算的局限性、有效性,新计算模型的特性,以及对未加以证明的理论的预测和验证.抽象的结果是概念、符号、模型.
3.设计
源于工程学,用来开发求解给定问题的系统和设备.主要要素为需求说明、规格说明、设计和实现方法、测试和分析.用来开发求解给定问题的系统.
蕴含学科基本思想的重要概念可以看成是计算机科学与技术学科方法论的第二个方面.我们在计算机科学与技术领域的认识和实践过程中经常会用到它们,对这些概念深人了解,并在实际工作中使用这些概念,是毕业生成为成熟的计算机科学家和工程师的重要标志之一,这些概念包括:
(1)绑定(binding) :通过把一个抽象的概念和附加特性相联系,使该抽象概念具体化的过程.也就是具体问题的合理抽象描述和抽象描述对具体问题的恰当表示.
(2)大问题的复杂性:随着问题规模的增长,复杂性呈非线性增加的效应.这是区分和选择各种方法的重要因素.依此来度量不同的数据规模、问题空间和程序规模.
(3)概念和形式模型:对一个想法或问题进行形式化、特征化、可视化和思维的各种方法.这是实现计算机问题求解的最典型、最有效的途径.
(4)一致性和完备性:包括正确性、健壮性和可靠性这类相关概念.从某种意义上说,这是一个计算机系统所追求的.
(5)效率:关于诸如空间、时间、人力、财力等资源消耗的度量,要求人们在设计和实现系统时,对相应的因素给予强烈的关注.
(6)演化:变更的实施和它的意义.变更时对整个系统的各个层次所造成的影响,以及面对变更的事实,抽象技术和系统的适应性及充分性.
(7)抽象层次:计算中抽象的本质和使用.在处理复杂事务、构造系统、隐藏细节和获取重复模式方面使用抽象,通过具有不同层次的细节和指标的抽象,能够表达一个实体和系统.
(8)按空间排序:在计算机科学与技术学科中局部性和近邻性的概念.除物理上的定位外(如在网络和存储中) ,还包括组织方式的定位(如处理机进程、类型定义和有关操作的定位)和概念上的定位(如软件的辖域、耦合、内聚).
(9)按时间排序:事件排序的时间概念.包括在形式概念中把时间作为参数,把时间作为分布于空间的进程同步的手段,作为算法执行的基本要素.
(10)重用:在新的情况或环境下,特定的技术概念和系统成分可被再次使用的能力.
(11)安全性:软件和硬件系统对合适的请求给予响应,并抗拒不合适的、非预期的请求,以保护自己的能力、系统承受灾难事件的能力.
(12)折衷与结论:计算中折衷的现实和这种折衷的结论.选择一种设计来代替 另一种设计所产生的技术、经济、文化及其他方面的影响,折衷是存在于所有知识领域各层次上的基本事实.例如,算法研究中时间和空间的折衷,对于矛盾的设计目标的折衷,硬件设计的折衷,在各种制约下优化计算能力所蕴含的折衷.
典型的学科方法可以看成是计算机科学与技术学科方法的第三部分内容,包括数学方法和系统科学方法.
①数学方法:是以数学为进行科学研究的方法,该方法用数学语言表达事物的状态、关系和过程,经推导形成解释和判断,包括问题的描述与变换.如公理化方法,构造性方法(以递归、归纳和迭代为代表),内涵与外延方法,模型化与具体化方法等.其基本特征是高度抽象,高精确,具有普遍意义.这是科学技术研究简洁精确的形式化语言,数量分析和计算方法,逻辑推理工具.
②系统科学方法:是将研究的对象看成一个整体,以使思维对应于适当的抽象级别上,并力争系统的整体优化.一般遵循如下原则:整体性,动态,最优化,模型化.具体方法有系统分析法(如结构化方法、原型法、00方法等),黑箱方法,功能模拟方法,整体优化方法,信息分析方法,自底向上,自顶向下,分治法,模型化,逐步求精等.