Computer science programs typically centers primarily around theory and software, with only some hardware; upper division courses tend to allow a lot of freedom to specialize in software and theory related areas (e.g. algorithms, artificial intelligence, cryptography/security, graphics/visualization, numerical and symbolic computing, operating systems/distributed processing, software engineering).
Computer engineering programs tend to resemble computer science at the lower division with similar introductory programming and math courses, but diverges from computer science at the upper division with heavy electrical engineering requirements (e.g. digital and analog circuits, integrated circuit design, VLSI design, control systems, embedded systems, robotics). Despite the overlap with computer science at the lower division level, computer engineering skews much more heavily toward the hardware/electronics side that it has more in common with electrical engineering.
Computer Science and Engineering integrates all of the above and is intended to develop a solid understanding of the entire machine. The higher unit count required to complete the program often means that a CSE student will need to spend an extra year in university.
Although Computer Science and Engineering is the common designation for the combined program, some universities (such as Berkeley and MIT) deviate by calling their program Electrical Engineering and Computer Science (EECS). Furthermore, there are some universities (such as UCI and UC Merced) that named their department EECS and the program housed within CSE.
|This computer science article is a stub. You can help Wikipedia by .|
|This computer-engineering-related article is a stub. You can help Wikipedia by .|