This is a very important distinction. In the past, computer engineering was often considered to be a subfield of mathematics. What it entails is:
Integers and other discrete mathematical structures (graph theory, combinatorics, logic)
Theories of Programming Languages (type theory, compilers, languages)
Theorems of Information (crypto, errors, compression)
Computational theory (complexity, crypto, automatons)
Data structures and algorithm analysis (can also include complexity via algo analysis)
AI (machine learning, robotics, pattern recognition, data mining) (machine learning, robotics, pattern recognition, data mining)
High-Performance Comp
...more
This is a very important distinction. In the past, computer engineering was often considered to be a subfield of mathematics. What it entails is:
Integers and other discrete mathematical structures (graph theory, combinatorics, logic)
Theories of Programming Languages (type theory, compilers, languages)
Theorems of Information (crypto, errors, compression)
Computational theory (complexity, crypto, automatons)
Data structures and algorithm analysis (can also include complexity via algo analysis)
AI (machine learning, robotics, pattern recognition, data mining) (machine learning, robotics, pattern recognition, data mining)
High-Performance Computing (HPC), Concurrency, and Communication/Networks
Systems and structure (digital logic, OS, networking, systems arch. )
Computers-related disciplines (often scientific computing and numerics but sometimes include graphics/visualization). Graphics (computer vision in certain circumstances, geometry) (computer vision in some cases, geometry)
Software engineering
Not everyone agrees with me that computer Science encompasses software engineering, but I do SEE the logic in doing so. In software engineering, it's important to keep in mind that you're essentially creating anything from scratch. This is a real branch in engineering. You'll face the same kind of challenges as in any other branch of engineering, such as:
The Structure and Layout of Software
Ability to scale and stay functional
Three words: validation, automation, and testing
Assurance of Quality
UI/UX
Systems (occasionally) (sometimes)
You'll SEE that the second list is useless without the knowledge presented in the first. After acquiring a theoretical grounding in computer Science, one may next go on to the more practical realm of software engineering. It's the difference between a physicist and an engineer in any of the other branches of Science and technology. Yes, Physics is used by engineers, but there is much more to the field than simply equations and theoretical thought.
less