知己知彼,百战不殆
我们是学计算机的,搞明白“如何成为一名合格的优秀的计算机人才”这个问题,我觉得无论是对我们目前的在校学习,还是之后的走上就业岗位,这都是百列而无一害的。
在上学的时候,大人们都说,学习点孙子兵法挺好的,里面的一些道理,适用你一辈子。我觉得,现在就挺适用的,我认为,只有我真正的理解这个学科,了解这门学问,我才能比较好的驾驭它。
首先,我们应该先了解这个学科的特点。计算机学科通过建立模型并在计算机上模拟物理过程来进行科学调查和研究,涉及信息描述和变换算法的理论、效率、实现和应用等。有计算机科学、计算机工程、软件工程、信息技术等分支学科,可以被分为科学型、工程型和应用型三类。下面我们将分别讨论计算机学科的基本特征、根本问题和由此限定的基本教学内容。
1.基本特征
以符号表示和变换为核心的抽象和形式化是计算机学科最强有力的工具。形式化、模型化是基本描述手段,符号是基本表示形式,符号变换是基本求解方式,抽象和逻辑是基本思维方式,这与Newell和Simon关于物理符号系统的假说相吻合。决定了作为核心的“程序”的非物理特征和本学科抽象第一的基本教育原理,这在其科学和工程两类基础性分支学科上表现得尤为突出。计算机硬件系统状态的非连续特性,确定了它对实际对象及其变换的描述是离散的。另外,计算机学科所关心的计算已经从早期的“实例”计算迁移到当前以模型为主的计算,使得离散数学和算法占有重要的地位。“理论、抽象、设计”三个学科形态表明它同时具有理科和工科特征,抽象逻辑性和构造性并存,决定了本学科的教育、科学研究、项目开发都具有理论与实践紧密结合的特征,这使得与理论密切结合的实践教学具有特殊的意义。也就是说,该学科具有理工结合的基本特征,科学与技术相辅相成、互为作用、高度融合。
2.根本问题
Wirth指出,“在较高的认识层次上,硬件和软件是一样的”,因为它们都可以归结为用一定形式的数据表示某一系统,并通过对这些数据的变换来获得相应的处理结果,这被称为“计算”。研究表明,并不是所有问题都是“可计算”的。所以,计算机学科不仅要研究什么可以被有效地自动计算,而且还要研究如何进行有效地计算,因此,与ACM/IEEE-CS的认识不同,我们认为,计算机学科的根本问题是: