>can you explain the main differences between CE and CS?
This is as easy as pointing the problem CS has and CE doesn't.
CS teaches you the basics of many different things (namely math, electrical engineering and computer engineering) so that you can work as programmer anywhere you want, but not so that you have deep knowledge of any field.
CE specializes in CE and obviousloy this is less complete than EE so ideally you would want to study EE unless you really only cared about computers.
To make my point clear I googled an university arbitrarily and found their CE and CS programs.
If you think I am cherry picking feel free to find another university and do the same.
CS: ccny.cuny.edu/sites/default/files/compsci/upload/Requirements-for-B-S-Computer-Science-Spring-2012.pdf
CE:ccny.cuny.edu/compeng/curriculum
CS math requirements: calculus 1 to 3 and elementary linear algebra.
CE math requirements: calculus 1 to 3, differential equations, linear algebra and vector analysis.
One is objectively better than the other.
*I will ignore lib arts requirements because who gives a fuck.
Now, CS has 'science requirements' and CE has 'engineering requirements' but they are both the core fundamental topics that you need to study them so I will act as if they are the same.
CS requirements: General Biology, Chemistry and Physics. Literally why the fuck?
CE requirements: Engineering design, circuits and computer aided analysis. All directly related topics. 10/10
Then comes the meat of the actual education:
CE has the fundamentals of both computer science and computer engineering. Then you can choose on top of that the systems track or computation track to realize yourself as a full computer engineer.
CS has theory and applications, computational techniques for Veeky Forums, and computer systems. The list of require subjects here is not that good either and jumps from theoretical to applied to *REALLY APPLIED*