问题1:你所在的学校有计算机科学专业和软件工程专业么?
答:我所在的学校有计算机学院和软件学院,所以分别有计算机科学与技术专业和软件工程专业。
问题2:相关专业的教学计划有什么不同?
答:这两个专业的教学计划如下:
软件工程课程设置:
公共必修课:思想政治理论、英语、计算机基础、文化素质课程、体育等课程。
学科基础课:数据结构、C++面向对象高级程序设计、计算机组成原理、数字逻辑、软件人员英语沟通方法1(英)、数据库原理1(双语)、算法设计与分析(双语)、操作系统原理1、软件工程概论(双语)、计算机网络(双语)、汇编语言程序设计、编译原理、离散数学导论1
专业核心课:java语言程序设计(双语)、形式化方法、程序设计方法学、软件测试技术(双语)、Unix/LINUX操作系统(双语)
集中实践类:软件工程实训
计算机科学与技术专业介绍:
培养目标:
培养适应社会主义现代化建设需要的,德智体美等全面发展的,掌握计算机硬件,软件及其应用的基本理论知识,具备研究和开发计算机系统能力的宽基础,高素质,具有创新精神和实践能力的高级专门人才。学生毕业后能在计算机科学与技术领域从事计算机科学研究,教学和工程开发等方面的工作。
培养要求:
本专业学生主要学习计算机科学与技术方面的基本理论和基本知识,接受从事研究与应用计算机的基本训练,毕业生应获得的知识和能力如下:
1.
掌握计算机科学与技术方面的基本理论,基本知识;
2.
掌握计算机系统分析和设计的基本方法;
3.
具有研究开发计算机软,硬件的基本能力;
4.
掌握文献检索,资料查询的基本方法,具有获取信息的能力;
5.
了解计算机科学与技术的发展动态,了解与计算机有关的法规。
核心课程:
数字逻辑,计算机组成原理,汇编语言与微机接口技术,计算机系统结构,计算机网络,离散数学,程序设计原理,数据结构,操作系统原理,编译原理,数据库原理,计算机图形学,软件工程。
特色课程:
图像处理,计算机安全,并行处理技术。
对比上面的教学计划,可以发现计算机科学专业的课程包括计算机硬件,软件及其应用的基本理论知识,而软件工程则更侧重软件、程序设计、几乎没有关于计算机硬件的课程;计算机科学专业要求学生具备研究和开发计算机系统能力的宽基础,重点在这个“宽”字,宽势必浅,而软件工程则相对“窄”一点,从应用角度更深入了一些。
和数理化相比,计算机科学是一门相当年轻的学科,虽然我们可以追溯到巴贝奇、图灵等计算机科学的先驱,但是“computer science”这个学科的名字1959年才正式提出。综合维基百科中“计算机科学”的词条和微软学术搜索对于计算机科学子领域的划分,计算机科学可以分为学术领域和偏实践的领域,学术领域的代表有:计算理论、信息和编码理论、算法和数据结构等;偏实践的领域有计算机体系结构、并行计算和分布式系统、实时系统和嵌入式系统等。根据我们对软件特性及工程这一概念的了解,可以看到,计算机科学中的理论研究部分,大多可以从形式上证明,与数学、离散数学、数理逻辑密切相关;计算机科学中与实践相关的部分,都和数据以及其他学科发生关系。而软件工程则和人的行为、现实社会的需求息息相关。软件工程的研究目标都有“人”的出现,这些“人”可以是项目需求的提供者,可以是软件的开发人员,还可以是软件的用户。这一特征与其他计算机科学的子领域明显不同。
问题3:相关专业的毕业出路有什么不同?
这两个专业毕业后的出路基本可分为出国、读研和工作,出国和读研都属于继续深造,以后的研究领域和导师有很大关系,不能一概而论。我本科是计算机科学与技术专业的,在上学期间我们都感觉到学的知识有些太宽广,没有一个专门的职业技能深入的交给我们,所以那些想就业的同学,要么是自学编程语言,要么是去培训机构进行相关语言的培训(如java、c++等),所以他们毕业之后都能如愿进入一些软件公司,如艺龙网、唯品会等,从事技术编程或者产品经理等工作;还有少数女同学不喜欢编程序,选择了进入学而思这种教育类的公司,或者去当基础学科的老师,从事和本专业不相关的工作。而软件工程专业的学生会分具体的方向,全部是偏向应用的,每个方向都是面临不同的就业岗位,当然都是开发岗位,所以他们可能本科阶段需要自学或者去培训,跟着老师学到很专业的职业技能,毕业之后基本上都会从事和本专业的相关工作,还会有少数能力强有想法的同学选择创业。
问题4:阅读有关软件工程和计算机科学的区别的文章,谈谈你的看法。
以前我没有太仔细想过这个问题,看了老师的参考文献之后觉得很有道理。计算机科学的重点是“科学”,每一个方面都被清楚地定义,每一个结果都是建立在早期的证明,是具有很清晰的逻辑性和很清楚的因果关系的。并且它的关注点更多的是在理论性、科学性的问题,比如分析算法和复杂度。
而软件工程重点在“工程”,经常用“通常”、“一般来说”这种不确定的字眼,并且软件工程有很多方面会考虑的“人”的因素,软件工程的核心问题是对人类的关注,编程人员之间的交流沟通,用户的要求与评判标准等,都影响着结果的好坏。
参考:http://cs.tju.edu.cn/jyjx/bksjx/20121228090412208pOW.shtml
http://scs.tju.edu.cn/jxky/bksjx/bk_kctx/201006/t20100608_63898.htm
http://www.drdobbs.com/architectureand-design/software-engineering-computer-science/217701907
书籍:构建之法
答题人:尤心心