Whether you are an international student, a local student or students (and parents) looking to enter computer engineering in SCSE, this guide might be useful for you.
First part, I will frankly discuss about what CE is about, what skills it requires and how you might want to apply/transfer to CS or DSAI, not CE!
TL;DR: It is a flexible major to take, but if you know your pathway, and it rely more on software developments, don't go here!
90% of people joining CE do not know what this course is about. From my point of view, I would say this is a very versatile course. It is somewhere in the middle of the Electrical, Electronic Engineering and Computer Science spectrum.
About 70% of the course will deal with classic Computing topics like Algorithm, Data Structure, Operating Systems, while the other 30% focus on a broad variety of engineering with computer. To give you a taste:
- Analog and Digital communications (circuit analysis, signals, digital communications, digital signal processing, sensors and control system, etc)
- Computer network (lower layers, not Application Layer)
- Computer architecture and chipset design (Verilog Hardware Description Language, Advance computer architecture, ARM Cortex M, Assembly language, etc)
- Embedded System design (Bare-bone design and RTOS with popular Cortex M architecture, Embedded Linux for Cortex A chips, etc)
- Robotics integration (Multi-disciplinary project in year 3)
As you may see, this course gives you a "fuller stack" approach to computing where you get to learn a wide spectrum of abstraction layer in computing. As my favourite boss once said "you may only work at most on 1 or 2 abstraction layer in your life", this course is perfect for those who want to be versatile and to discover their true abstraction layer on the go. I personally found my interest in Embedded System Designs while I was in year 2 and 3 of this course.
Computer engineering will be the backbone for the 4.0 industrial revolution. We are talking about all these IoT devices that needs to be design and implement properly, simple knowledge of programming will not be sufficient to do so, hence the benefits of a "fuller stack" approach of this course.
To add on above, let's think about AI and machine learning at the edge (end devices). While the field of AI and machine learning has somewhat matured when there are full time data scientist and machine learning engineers working to build novel model and application for our life, the shifting of these technology has only been started. Running these models on small and little devices are not easy due to their resource constraints, but with knowledge of CE, you will be able to do it.
Math, math, math, not just code, code, code. Math are hideous to look at for some people, but honestly it is very interesting when you learn to appreciate it. In CE, we gotta do calculus everyday, and fourier transform everyday, it makes those technical elective that involves these math seems easier compared to CS who only did so touch-and-go.
Easy bell-curve. With only 5% of CE students in the whole SCSE cohort every year, you are faced with very little competition to do well. Best part is you will get to know the majority of your batches (and suffer through sweat and tears together too). It is also quite simpler to get into Dean's list (my group of 5 friends has 4 Dean's listers)
Lastly, the most valuable takeaway for this course would be your problem solving skills, flexibility and resourcefulness. You are not expected to know everything once you go to work, but you need to be able to get things fast. Being thrown in a variety of topics from low to high abstraction, CE skins are thick and our determination are even thicker (wait and see in your year 3 MDP haha).
Broad over depth of certain topics. For a start, if you are looking to be a software engineer (web dev, phone app dev, etc), you will be disappointed at the amount of effort about software engineering practice allocate to you (1 module only). Of course, you can learn this simultaneously with your school work, but why? Maybe a CS education is better for you (though some of my friends in CS think those SE mods are useless too haha).
Depth in some nasty topics. These includes digital communication (tonnes of math), Microcontroller and Microprocessors design (heavy content on how computer and OS works), DSP (math ^ n) and more. This is not necessary bad, but if you are looking for not feeling challenged, maybe the other 'C' is a better way to look out for.
Not everything is coding, and not every coding is from a generic, multi-purpose language. Engineering focus on scientific methods beside just "Hello World" and "copying from Stackoverflow". To me it is amazeball how science can fuse with computer to create wonderful stuffs. You might think that this is too hard to see the full picture.
More efforts needed in Labwork. Let's be frank, nobody can finish the whole labwork in just 1 sitting. Be expect to come back to the lab frequently just to get your report down and dusted for submission. Worse still, there are no formal training on using lab equipments, you gotta get your hand dirty to learn soldering, do and don't in electronics, using scopes, etc. But it train you to be curious and apt in solving problem.
Same amount of technical electives as CS. It used to have Cyber Physical Systems as a CE-only specialisation but sadly somehow they chop it in my year.
I really like this course, maybe due to the versatility that it provides to me. The demands for this major will surely rises in the future as we are moving to more exciting 4.0 technology. If not, it is also easier to jump fields as you had a wider exposure to things. And if that is not the case for you, starting a business would be less of a pain when you are not bluffed by vendors and your subordinates.