第一章-第五题(你所在的学校有计算机科学专业和软件工程专业么?相关专业的教学计划和毕业出路有什么不同?阅读有关软件工程和计算机科学的区别的文章,谈谈你的看法。)--By 侯伟婷
我所在的本科学校和研究生学校都有计算机科学专业和软件工程专业。具体的教学计划无从得到,所以此情况无从对比,但是我从本科教务处网站找到了计算机科学专业和软件工程专业有关专业方面的课程,现列表如下。
表格1 计算机科学和软件工程专业与专业相关课程
计算机科学专业 |
软件工程专业 |
程序设计基础(C语言) |
计算机编程引论(C语言) |
计算机导论 |
Java程序设计 |
面向对象程序设计(C++) |
逻辑与数字系统 |
数据结构 |
VB.NET程序设计 |
电路原理 |
面向对象程序设计 |
计算理论 |
计算机组成原理 |
汇编语言程序设计 |
C++程序设计 |
电子技术 |
用户界面设计与评测 |
算法设计与分析 |
计算机网络 |
可视化程序设计技术基础(双语) |
HTML与JavaScript技术 |
接口技术 |
操作系统 |
编译原理 |
数据结构 |
计算机网络 |
数据库原理 |
数字系统设计 |
数学建模 |
计算机组成原理 |
软件创新方法与实例 |
Java语言及程序设计 |
通信概论 |
计算机图形学 |
Linux操作系统 |
数字系统设计 |
移动互联导论 |
信息安全基础 |
软件体系结构与设计模式 |
计算机体系结构 |
编译方法 |
软件工程 |
软件工程 |
人工智能 |
主机系统导论 |
操作系统 |
算法分析与设计 |
嵌入式系统及其应用 |
分布式系统导论 |
文本智能处理技术 |
Java框架与组件技术 |
软件建模技术 |
软件需求分析与设计 |
信息安全基础 |
分布式组件与Web服务 |
计算机体系结构 |
混沌分形导论 |
网络编程技术 |
COBOL语言程序设计 |
多媒体技术 |
语义Web导论 |
Linux操作系统分析 |
主机CICS交易系统 |
智能数据与知识工程 |
嵌入式软件开发技术 |
人工智能导论 |
|
云计算核心技术 |
|
分布式组件与Web服务 |
|
移动应用开发技术 |
|
软件测试技术 |
|
高性能计算导论 |
|
企业级服务器系统导论 |
|
服务工程方法论 |
|
软件服务与云计算案例分析 |
|
信息检索 |
|
新技术讲座 |
|
服务工程方法论 |
|
电信行业市场营销管理 |
|
主机数据库管理系统 |
|
图像与多媒体新技术 |
|
传感技术与应用 |
|
合同法与知识产权法 |
|
软件过程改进与项目管理 |
从表格中可以看出软件工程的课程很多,但是由于具体的教学计划无法得到,所以不能具体说明,但是从我本人了解得到其中涉及到了很多专业选修课程和很多方向性课程,所以难免数量会多出很多。但是比较一下学院给同学设置的预期选修课程和学院鼓励同学走向的专业道路上,还是可以看出些许不同的。计算机科学专业和软件工程专业中教学计划中包含了很多相同的计算机基础的课程,如操作系统、计算机网络等。但是也存在很多不同,如计算机科学专业设置的课程中有软件工程专业涉及较少的硬件方面的课程,如电路原理、电子技术等,然后也在很多方面更加注重了“技术”的教学。而从软件工程专业来说,首先是编程语言和计算机基础课程的教授,使得学生有一定的编程基础和能力,但是教学方向侧重的确是与“人”、“对象”有关的内容。
这两个专业毕业后的出路基本可分为出国、读研和工作,但是出国和读研的话,这两个专业就可能要针对具体情况具体来说了,因为和研究方向、导师情况都有很大的关系。而我了解到的有关计算机科学专业的工作方面的内容也不太多,就我身边软件工程专业的人来说,毕业之后工作的进入的都是一些软件公司,如蘑菇街、网易、完美世界等,进行技术部编程或者成为产品经理等。计算机科学专业的话,可能会相对而言对于算法等的了解程度相对较深,程序部门也会十分欢迎此专业的人才,但是由于他们专业也教授到了硬件课程,所以以后的就业面在硬件和编程相结合的公司应该也会是他们的选择之一。
提到计算机科学和软件工程的区别,坦白来说,其实我自己还没有思考过这个问题,在本科的时候觉得可能也就是名字不太一样,毕业之后应该也都是差不多的程序猿,读过此篇文章之后,我才了解到,原来两者之间还是有很大区别的,下面讲述一下我的看法,很可能会不够全面,观点肤浅,还望见谅。
单单看待名字的话,计算机科学重点是在“科学”,软件工程重点是在“工程”,正如那篇文章的作者提到的,The field is wonderfully clean, with each concept clearly defined, and each result building on earlier proofs【1】,计算机科学方面的特点就是干净,每一个方面都被清楚地定义,每一个结果都是建立在早期的证明,是具有很轻的逻辑性和很清楚的因果关系的。然而软件工程确实一门经常用“通常”、“一般来说”这些不确定性的字眼来描述内容。
其次,计算机科学的关注点更多的在算法、复杂程度、以及各种理论性、科学性的问题,而这些问题是不受人为因素的影响的。软件工程有很多方面是会考虑到“人”的因素的,如与软件工程相关的可用性,这个方面并不是说有什么标准,而是依靠用户的使用结果,用户认为可用性不佳,则结果可能就会不理想,可能就需要重新设计。
这些就是我暂时能想到的有关计算机科学和软件工程的区别,但是我觉得他们两个相对于区别来说,相互间的紧密联系则是更加重要的,计算机科学的快速发展可以满足软件工程中很多的技术问题,而软件工程中遇到的困难也为了计算机科学提供了新的课题,也是计算机科学不断发展,不断进步的动力,两者不断进步,才可以为我们创造出一个更加便捷舒适的生活。
参考文献:
- Software Engineering ≠ Computer Science. http://www.drdobbs.com/architectureand-design/software-engineering-computer-science/217701907
第一章-第五题(你所在的学校有计算机科学专业和软件工程专业么?相关专业的教学计划和毕业出路有什么不同?阅读有关软件工程和计算机科学的区别的文章,谈谈你的看法。)--By 侯伟婷的更多相关文章
- 04373 C++程序设计 2019版 第一章习题五、程序设计题
题目: 1.编写一个程序,将从键盘输入的n个字符串保存在一个一维数组A中.在输入字符串之前,先输入n的值.要求,数组A需要动态申请空间,程序运行结束前再释放掉. #include <iostre ...
- 第一章-第七题( 有人认为,“中文编程”, 是解决中国程序员编程效率一个秘密武器,请问它是一个 “银弹” 么? )--By 侯伟婷
首先,“银弹”在百度百科中的解释是银色的子弹,我们更熟知的“银弹”一词,应该是在<人月神话>中提到的.银弹原本应该是指某种策略.技术或者技巧可以极大地提高程序员的生产力[1].此题目中关于 ...
- NHibernate.3.0.Cookbook第一章第五节Setting up a base entity class
Setting up a base entity class设置一个实体类的基类 在这节中,我将给你展示怎么样去为我们的实体类设置一个通用的基类. 准备工作 完成前面三节的任务 如何去做 1.在Ent ...
- C和指针第七章第五题
实现一个简化的printf函数,能够处理%d,%f,%s,%c等格式. /*************************************************************** ...
- 第一章-第十三题(该游戏团队, 有很好的软件,但是商业模式和其他软件之外的因素有没有考虑到?)--By梁旭晖
这款软件无疑是一个好软件,软件的开发者是有相当水平的,可以说是优秀的软件编写人员,但是也只是优秀的软件人员,术业有专攻,他们在其他方面我觉得是有很大的欠缺的. 我觉得,他们并没有抓住消费者的心理,首先 ...
- 第一章-第十一题(请问 “软件” 和 “软件工程” 这些词汇是如何出现的 - 何时、何地、何人)--By 侯伟婷
从邹欣老师的<构建执法:现代软件工程>一书中,我们得到有关这些名词的起源的信息是软件工程的概念是1968年第一次提出的[1].而在一篇专访Margaret Hamilton的报道中,我们通 ...
- 第一章-第六题(帮人抢票,帮人选课这些软件是否合法 你怎么看?)--By梁旭晖
我觉得这些软件是合法的,符合道德规范的. 计算机当初设计的初衷就是简化甚至替代人类的工作.而软件作为计算机硬件的驱动着,其设计就是体现这些原则. 现在互联网上的订票,选课类型的网站还是有很多的,比如: ...
- 第一章-第四题(ACM 比赛的程序是软件么? “写程序” 和 ”做软件“ 有区别么?软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看?这个游戏团队, 有很好的软件,但是商业模式和其他软件之外的因素呢?有没有考虑到)--By梁旭晖
引用 http://baike.baidu.com/link?url=z_phkcEO4_HjFG_Lt163dGFAubdb68IbfcfzWscTOrrZ55WbJEQKzyMQ5eMQKyatD ...
- 第一章-第三题(目前流行的源程序版本管理软件和项目管理软件优缺点)--By梁旭晖
引用自:http://www.cnblogs.com/WJ1234/p/5285595.htmlhttp://blog.163.com/yuyang_tech/blog/static/21605008 ...
随机推荐
- mysql的DISABLE/ENABLE KEYS
有一个表 tbl1 的结构如下: CREATE TABLE `tbl1` ( `id` int(10) unsigned NOT NULL auto_increment, `name` char(20 ...
- 主流浏览器css兼容问题的总结
最近又搞了一波网站的兼容,由于要求ie浏览器还是要兼容到ie8,所以调起来还是各种蛋疼. 现在就post一些做兼容的总结,可能不够全面,但是可以告诉大家如何避过一些坑.主要测试了chrome,fire ...
- PHP 图片处理工具类(添加水印与生成缩略图)
=================ImageTool.class.php================= <?php class ImageTool { private $imagePath; ...
- C段渗透+cain嗅探
其实吧这篇文件也是一个大概的了解和思路篇...没什么技术含量,但是你可以你可以从思路中来获得;其他的技术都是靠自己去摸索,我说了半天还是别人的,不如自己直接试试,这样效果比我直接告诉你的更加的深刻.. ...
- getComputedStyle的简单用法
var number=window.getComputedStyle("元素").style样式名
- XmlException: 名称不能以“<”字符(十六进制值 0x3C)开头
svn 版本冲突引起的: 产看config 文件里面的内容是否冲突,这个问题可能和代码无关
- Servlet 之 GenericServlet
我们都知道javaweb中servlet的三大组件 servlet filter listener 实现动态资源的 是可以继承 Servlet接口,或者集成GenericServlet .Http ...
- linux常用命令积累
1.jps jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/u ...
- monkey工具使用中遇到的问题之一:手机模拟器中的部分应用出现网络无法连接
问题描述: 手机模拟器中的部分应用出现网络无法连接,但是比如:浏览器即可以正常访问网页 解决方法如下: 1.以管理员身份进入到cmd中,以WIN10为例 ,在电脑左下角点击鼠标右键就可以看到 注意: ...
- WebView
WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用. webview有两个方法:setWebChromeClient 和 setWebClient setWebClient:主要 ...