我是计算机科学和编程的新手,我想知道,计算机科学和编程之间是否有区别?您会选择只在大学中学习其中之一,还是两者同时学习?
我是计算机科学和编程的新手,我想知道,计算机科学和编程之间是否有区别?您会选择只在大学中学习其中之一,还是两者同时学习?
Answers:
计算机科学是对计算机[可以]做什么的研究。编程是使计算机做事的实践。
查看您感兴趣的大学提供的课程/课程大纲,以了解该课程是CS课程,编程课程,其他课程(例如软件工程)还是以上课程的组合。标榜为“计算机科学”的许多课程都提供了重要的编程组件,可能使您可以将课程的理论部分付诸实践,也可以出于自己的目的而使您学习编写程序的技能。
一个警告:“计算机科学”已成为现代泥泞的领域,因为(至少在美国)大学没有“程序设计”学位。这意味着对编程感兴趣的人必须注册计算机科学学位,并且作为对计算机科学程序越来越强调编程的回应。
就是说,计算机科学本身就是一门强大的数学科学-计算数学可能是一个更好的术语。它涉及图论,算法复杂性,形式逻辑,自动机的研究,以及一般而言可以描述对输入算法的转换或响应的任何逻辑结构-研究。经典意义上的计算机科学家可以推理出控制任何计算系统(包括现代计算机)的规则,而不必知道当前体系结构的实现细节。计算机科学的深厚背景使您能够开发(或调用)高效,可扩展的算法,预期逻辑上的简化并合理地推理出什么是易处理的。
相比之下,编程就是人们使用编程语言将算法转换为机器可以完成的事情时所要做的事情。(这应该使与计算机科学的密切联系以及许多混乱的根源显而易见。)程序员(相对于环境和语言)应该能够采用几乎任何算法集并将它们转换为人类形式-并且通过编写代码可机读。强大的编程背景(正如大多数CS学士学位所提供的那样)使您能够编写更好的代码-更好的代码更容易为他人所理解,并且在表达所实现的算法方面更加成功。
当然,会有大量的串扰,并且其中一个人的高水平经验将与另一个人的开发经验高度对应-如前所述,CS专业几乎总是一名合格的程序员,并且经验丰富的程序员已经开始学习CS的许多原则。想想物理与工程。
记住差异的一个好方法是:如果需要一台计算机来查看其是否正常运行,那就是编程-如果可以用铅笔和纸来完成,那就是计算机科学。
计算机科学处理信息,计算的理论基础,以及用于实现和应用的实用技术。 http://en.wikipedia.org/wiki/Computer_science
〜
计算机科学与计算机无关,天文学与望远镜无关。埃格斯·迪克斯特拉
编程是创建计算机程序的技巧。
在我看来,计算机科学应该是像物理学一样的硬科学。
它涉及对编译器和编译器生成器,硬件体系结构概念,各种形式的数字系统,算法和算法效率/性能以及对处理器进行算术运算的理论的研究。当我在大学学习CS时,我们花了很多时间来研究汇编程序,了解编译,链接和解释等之间的区别。
其中很多是通过编程完成的-即编写代码的行为,然后通过解释器编译或运行代码,目的是生成结果来解决问题。即,编程是解决问题的行为,可以用计算机科学的知识来描述。这有点像是纯数学/应用数学的分裂。
您不需要计算机科学学位即可成为程序员,但是具有CS背景的程序员可能会对计算机程序的行为有更深入的了解。
我想将您的问题改写为“计算机科学与软件工程之间的区别是什么?” 毕竟两者都涉及编程。
计算机科学是关于什么是计算,什么是可能,什么是不可能的理论研究。它看起来像Godels定理和Halting问题。
软件工程是一种编写程序的方法,该程序可以执行设计和维护的任务。
计算机科学是编程理论。编程就是实现。
计算机科学 ...是计算及其应用的科学和实用方法。一位计算机科学家专门研究计算理论和计算系统的设计。
它的子领域可以分为多种理论和实践学科。一些领域,例如计算复杂性理论(探讨计算问题的基本属性),是高度抽象的,而诸如计算机图形学等领域则强调现实世界中的视觉应用。还有其他领域专注于实现计算的挑战。例如,编程语言理论考虑了各种描述计算的方法,而计算机编程本身的研究则研究了使用编程语言和复杂系统的各个方面。人机交互考虑了使计算机对人类有用,可用和普遍访问的挑战...
如果编程是木工,那么计算机科学就是架构/设计。
编辑
更多信息:在木工行业中,您对诸如建筑的顺序感兴趣(框架,底层地板,内墙,干墙等)。如何构建它,以减少构建时间,但以后可以进行修改。
就建筑而言(无论如何,它的一部分都像CS),您关心的是诸如材料的功能是什么,需要支撑多大的横梁?
类似地,CS与计算机的理论能力有关,而编程与该知识的实际应用有关。
编程是关于人的。人们阅读,编写和维护代码。计算机科学是关于数学的,它们实现和描述算法。
编程(开发)是关于赚钱。科学就是发现新事物。