以浙江大学为例,软件工程专业的核心课程包括:离散数学及其应用、数据结构基础、高级数据结构与算法分析、面向对象程序设计、计算机系统原理、数据库系统原理、操作系统原理、操作系统分析与实验、软件工程基础、计算机网络基础项目管理与案例分析、软件需求分析与设计、软件体系结构、人机交互工程。
此外,浙大软件工程专业结合学院科研和应用特点,开设了软件开发技术、金融信息技术、信息安全技术三个应用领域的课程。根据培养体系、专业侧重点等条件的不同,各校软件工程专业的课程设置也有所不同。考生可以指定各个学校的详细专业和课程设置。
这两个专业都需要掌握计算机科学的基础知识和编程的基本技能,但关注点却大相径庭。计算机专业学习技术是为了提高技术,改进技术,发展更好的理论。只有了解了计算机底层是如何工作的,才能开发出更好的计算机;软件工程专业学习技术是为了知道什么样的技术在什么情况下最能解决问题,更注重开发大型软件系统的组织方法和流程。
以建筑行业为例:计算机专业学习物理力学理论和新材料;软件工程专业听取客户对建房的要求,选择合适的材料和技术,组织上百名工人建房。他们工作的难度和侧重点都不一样。比如计算机专业的人崇拜图灵,软件工程专业的人崇拜盖茨和乔布斯。
社会上对这个专业的认识误区有人认为学计算机相关专业是青春饭,三十多岁了也没什么发展前途。你不可能做一辈子程序员吧?这是一个很大的误解。软件工程专业其实更注重开发大型软件系统的组织方法和流程,培养学生掌握大型软件开发和管理的能力。随着经验和能力的增加,他们更加胜任组织和管理越来越多的项目,成为成千上万程序员的管理者。
也有人觉得现在懂编程的人太多了。理工科专业都学过编程,抓到就能用。而软件工程专业掌握的大型软件开发的组织、设计和管理技术,不是普通编程技术能比的。举个例子,一个普通的工人,经过一点点训练,他可以建一个猪圈,建一堵墙,但是他建不了摩天大楼。软件工程培养的是有能力设计制造摩天大楼的人才。



