计算机科学与软件工程专业之间的差异,你了解吗?

一、专业概述
2.假如你喜欢物理,逻辑学,或则你想步入CS的某个专业领域,比如人工智能,机器学习,计算机安全或图形,你应当选择计算机科学。
#
3.软件工程研究怎样建立软件系统,包括例如项目管理,质量保证和软件测试等。 #
4.倘若您对实际操作方式更感兴趣,但是想要了解软件建立和维护的整个生命周期,应当选择软件工程。 #
5.计算机科学和软件工程都是学习编程和计算机科学的基础知识,因而您成为软件开发员,可以任选其二。
#
要了解计算机科学与软件工程专业之间的差别,我们来先来瞧瞧日本滑铁卢学院的课程。
我选择滑铁卢学院是由于它是北美计算机科学课程最好的学院之一。 #
工作前景 #
我们首先比较一下每位计划对应的工作类型和实习机会。
#
滑铁卢学院的网站提供了几个反例。
#
每位专业都有一些校友介绍了自己的工作,以及她们的工作地点。 #
计算机科学
●Web开发人员/构架师,集团 #
●程序员,HarryRosenInc. #
●移动/云开发商
#
●软件工程,通用动力日本 #
●软件开发工程,谷歌 #
●敏捷工程师,实验室
●业务剖析师,美国车胎公司
●开发者提倡者,微软
●产品总监, #
●软件工程
#
●软件开发人员,公司
#
●软件开发人员,IBM美国 #
●软件总监,Arius软件公司 #
●软件工程师,USA
#
●软件工程师,哈里斯公司 #
●软件开发人员,麦肯锡公司
#
●技术产品总监-软件设计与开发,NexJInc #
●顾问,金融解决方案 #
●实施顾问,
#
如你所见,工作类型之间没有很大差距。 #
结业生获得计算机科学或软件工程学位后最常干的工作是软件开发人员或软件工程师。
还有其他选项,比如产品总监,质量保证剖析师和技术顾问。您的选择将取决于您的技能组合。 #
二、修习课程 #
第一年课程: #
如今,我们来瞧瞧每位专业的选修课程。首先比较一下第一年须要学习的课程。 #
计算机科学 #
●CS135-设计功能程序
#
●CS136-算法设计和数据具象 #
●MATH135-代数 #
●MATH136-线性代数1
●MATH137-微积分1
●MATH138-微积分2 #
另外还有一些必修课 #
软件工程 #
●CS137-编程原则
#
●CS138-数据具象和施行 #
●MATH115-工程线性代数 #
●MATH117-工程微积分1
#
●MATH119-工程微积分2 #
●数学135-荣誉物理代数 #
●ECE105-电气工程数学1
●ECE106-电力和磁力 #
●ECE124-数字电路和系统
●ECE140-线性电路 #
●SE101-软件工程方式
#
如你所见,第一年的课程也很相像,大都囊括了一些基础的计算机科学课程,以及线性代数和微积分的一些物理课程。
#
惟一的主要区别是软件工程有额外的化学和电子工程组件课,而计算机科学有更多的必修课。 #
一年后的课程: #
一年以后的选修和必修课程怎样?我们来看几个反例: #
计算机科学: #
●MATH239组合介绍 #
●STAT230机率 #
●STAT231统计
#
●CS240数据结构和数据管理
●CS241次序程序基础
●CS245逻辑和估算
#
●CS246面向对象软件开发<-对于软件工程专业中学生是非选修课 #
●CS251计算机组织与设计 #
●CS341算法 #
●CS350操作系统
#
据悉,还有几门计算机科学必修课
软件工程: #
●CHE102工程师物理 #
●ECE222数字计算机(包含汇编语言)
#
●ECE358计算机网路
#
●MATH213软件工程师高等物理
●MATH239组合介绍
#
●STAT206软件工程统计 #
●MSCI261工程经济学:工程师财务管理
●CS241次序程序基础 #
●CS240数据结构和数据管理
#
●CS247软件工程原理<-对计算机科学专业不是选修课 #
●CS341算法 #
●CS349用户界面<-对计算机科学专业不是选修课
#
●CS343并行和并行编程<-对计算机科学专业不是选修课
#
●CS348数据库管理简介 #
●SE212逻辑和估算
#
●SE350操作系统 #
●SE465软件测试和质量保证
●SE464软件设计和体系结构 #
●SE463软件需求尺寸和剖析 #
●SE490设计项目 #
据悉,还有一些计算机科学和电子工程必修课
#
里面有好多信息须要消化,下边是我的总结:
提到物理和统计方面的要求,计算机科学和软件工程几乎完全相同,囊括了组合软件工程主要学什么,机率和统计。
#
核心计算机科学需求也相像,包括算法,数据结构和操作系统。 #
关键区别在于: #
软件工程在电气工程和软件工程基础方面有更多的要求,比如软件测试,设计和软件需求规范。
计算机科学中学生可以选择更高级别的计算机科学的必修课程。可选择的课程范围很广,诸如计算机安全,软件工程基础知识,计算机视觉,机器学习和数据库管理。 #
这么,你应当选择那个专业?
#
我觉得这主要取决于你的喜好。简而言之: #
1.假如你喜欢物理,逻辑学,或则你想步入CS的专业领域,比如人工智能软件工程主要学什么,机器学习,安全或图形,你应当选择计算机科学。 #
2.倘若您对动手方式更感兴趣,但是想要了解软件重构和维护的整个生命周期,则应当选择软件工程。 #
然而假如你想成为软件工程师,那个专业更好?
下边是我的想法。 #
在这个特殊的学院(滑铁卢学院),假如你想成为一名软件工程师,计算机科学是更好的选择。
#
为了简单起见,假定您希望在北美兼任软件工程师,获得工资最高的职位(约$100,000欧元/年)。这种工作一般来自于小型软件公司(谷歌,微软,亚马逊等)或小型高下降公司(比如,Lyft,,等)。 #
一般,这种公司在选购软件工程师时,找寻的是能否编撰可靠代码并建立有趣项目以及拥有计算机科学基础知识(包括数据结构和算法)人才。
#
我觉得培养这套技能的最好方式是快速学习计算机科学基础知识,花时间练习解决问题和编撰代码的能力。
#
基于软件工程课程和工程专业中学生通常情况下的忙碌程度,我觉得学习软件工程专业比计算机科学更难。
这个特殊的计算机科学课程的另一个用处是它有更多的计算机科学必修课。这也挺好,由于按照就业市场的需求,你可以调整自己的课程。诸如,假如联通应用程序开发的需求更高,您可以学习这项课程。假如并行估算需求高,您也可以选择这个课程。 #
我确信学习软件工程基础知识(项目管理,设计,测试等)有一些益处。但我个人即便多学一些技能。这就是为何我觉得假如你想成为软件工程师,计算机科学是一门更好的专业。
#
其实,那只是我的想法,但是只针对这所特定的学院。我很愿意听取您的意见,以及您在计算机科学或软件工程专业的学习经历。 #
假如你感兴趣的学院没有软件工程专业,但你想成为一名软件开发人员,我建议你选择计算机科学。计算机工程专注于硬件而不是计算机科学或软件工程,因而与典型软件开发人员的工作直接相关性较小。 #
谢谢阅读,祝您选择学院和专业顺利!
#