Computer science and engineering
Computer Science & Engineering (CSE) is an academic program at some universities that integrates the fields of computer engineering and computer science, providing knowledge of computing systems in both hardware and software design. The study program is modeled on German technical universities, where CS, CE and IT are treated as respectively the theoretical, technical and practical part of one field called "Informatik".
Courses include computer architecture, processor design, operating systems, computer networks, parallel processing, embedded systems, circuit analysis, analog and digital electronics, computer graphics, cloud, web and mobile computing, software engineering, database systems, digital signal processing, virtualization, computer simulations and games programming. CSE programs also include core subjects of theoretical computer science such as theory of computation, design and analysis of algorithms, data structures, numerical analysis, machine learning, information theory, programming language theory and paradigms. The program aims at designing, developing and troubleshooting computing devices and systems (such as personal computers, supercomputers, robots, smartphones, networking devices, embedded devices), focusing the underlying fundamental issues (like processor architecture design, operating system design, memory management, digital system design, communication protocol design, system software development, application software development, database management, high-performance and scientific computing) in the most efficient and effective way. Emerging computing technologies like image processing, artificial intelligence, deep learning and data science are also covered under these programs. Most of the above CSE areas require initial mathematical knowledge, hence the first year of study is dominated by mathematical courses, primarily discrete mathematics, mathematical analysis, linear algebra, probability theory and statistics, as well as the basics of physics - field theory and electromagnetism.
Pure computer science programs lectured on non-technical universities typically centers primarily around theory and software, with only some hardware; upper division courses tend to allow much 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). In contrast, pure 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. metrology, digital and analog circuits, integrated circuit design, VLSI design and control systems). Despite the overlap with computer science at the lower division level, computer engineering skews much more heavily toward the electronics side that it has more in common with electrical engineering. Computer Science & Engineering program integrates all of the above and is intended to develop a solid understanding of the entire machine (computer hardware and software). 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) call 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. In Germany and many European countries, similar programs are taught by technical universities and are called "Technische Informatik" or generally "Informatik".