很多人都不清学计算机下面的一些分支或者说是专业领域,如标题所言,你能分清嘛?
软件工程不是科学,计算机科学是科学。很多人认为计算机不是科学,但它确实包括运用数学工具对算法、系统架构等等的研究,比软件工程还是要更接近科学一些。
顾名思义,软件工程专注软件的开发和维护,着重把最好的管理和最好的技术用到软件上来。
而计算机科学与技术面向所有与计算机相关的领域,着重于搭建一个扎实的专业基础,专业课同时涵盖理论、软、硬件领域。
现在课程资源和各类学习资源这么丰富,这点区别是不会影响求知欲强的学霸的。毕竟想学什么课的话,即使本专业没有,自己看书自学或者上MOOC就是了。没谁能挡住一个想学习的人。
1、学科情况
由于中国大学科研和学位授予和国家的学科划分以及教育政策紧密相关,所以各大学才会有计算机科学与技术以及软件工程的分别招生。
软件工程这个词是1968年才出现的,当前对其定义和内涵还有不小的争议。一般使用的软件工程定义是IEEE的一个标准“使用系统、规范、可度量的方法进行软件开发、运行和维护”。但这个定义当前仍然有争议。
2、教育情况
计算机科学教育历史非常悠久,而单独的软件工程教育时间并不长。第一个软件工程独立教育项目应该是美国卡耐基梅隆大学软件工程研究所1989年的软件工程硕士项目,后来在2000年前后一些大学有了专门的软件工程本科教育,现在美国大学有专门软件工程本科的学校并不是太多,包括:加州大学尔湾分校,宾州州立大学公园分校,迈阿密大学等。
对于软件工程教育和计算机科学教育的区别,国际学术界和教育界进行了很多研究,取得了一些共识。大家可以看一下IEEE和ACM共同制定的2014年软件工程知识体(SWEBOK)列出的软件工程教育领域(计算基础包含了计算机科学的很多教育内容):
软件需求、软件设计、软件构造、软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程模型与方法、软件质量、软件工程职业实践、软件工程经济学、计算基础、数学基础、工程基础
计算机科学知识体(2001年IEEE和ACM共同制定,可能有新的,但估计差别不大。软件工程是计算机科学的一个子领域。):
Discrete Structures (DS)、Programming Fundamentals (PF)、Algorithms and Complexity (AL)、Architecture and Organization (AR)、Operating Systems (OS)、Net-Centric Computing (NC)、Programming Languages (PL)、Human-Computer Interaction (HC)、Graphics and Visual Computing (GV)、Intelligent Systems (IS)、Information Management (IM)、Social and Professional Issues (SP)、Software Engineering (SE)、Computational Science and Numerical Methods (CN)
如果大学是按照国际规范设计教学体系的话,上面两个列表应该能够准确的说明软件工程和计算机科学教育内容上的不同。
3、国内教育情况
问题就在于国内很多大学软件工程和计算机科学与技术的教育根本不是按照国际规范制定的。很多学校的软件工程教育没有覆盖SWEBOK要求的所有内容,仅仅是把传统计算机科学与技术课程体系简单加上几门实践课而已。
所以有人问国内软件工程和计算机科学与技术教育的区别,我觉得现在对这个问题进行严格讨论是没有意义的。
国内软件学院收费较高,是特定国家政策造成的,和教育本身关系不大。
4、给学生的建议
入学:同等学校计算机科学与技术学费低,难考一些;软件学院学费高,通常好考一些。
培养:计算机科学与技术的理论基础通常更扎实一些。软件学院不管教学内容体系如何,通常更加重视实践,学生实践能力更好
—————————————————————————————————
考研规划、考研辅导(全日制或在职非全),十五年经验!
专门解决考研疑难杂症!为你提供合理化建议!
有任何问题,可私信咨询刘老师,考研路上不迷茫!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!