Is computer engineering more rigorous than computer science?

And before you mention computer science:
>imgur.com/a/UqYfD

Other urls found in this thread:

acm.org/education/curricula-recommendations
cs.cmu.edu/~rwh
twitter.com/NSFWRedditGif

Yes. Of course I will say this because I am a Computer Engineering student, but let me explain

At least so far in my 2 years of undergrad, the comments in imgur link you posted are actually pretty accurate when it comes to Computer Science Engineering students.

My degree is Electrical and Computer Engineering, because essentially the two go hand in hand. Obviously you know electrical engineering is all about circuitry, electronics, signals, etc. and computer science is about the theoretical math behind computer algorithms. Many people would consider electrical engineering to be more rigorous, due to the fact that higher levels of mathematics are used (in a way) and simply that the subject matter can be difficult to comprehend.

Computer engineering is essentially a 50/50 blend between computer science and electrical engineering. You will learn the computer science aspects, such as programming, algorithms, running time, and you will also learn the low-level aspects of computers including assembly language, how data is stored and manipulated within a computer system (registers, the stack, the heap, bytes, words, etc.). Essentially, you will be much more knowlegable about how computers work simply because you are not working with such higher levels of abstractions at first - you are learning how the internals function and can build your knowledge of the abstractions off of that.

That certainly seems like a more fastidious and elucidatory path into the computer industary than simply studying computer science, I must say.
>Edited because I typed the word twice in between a pause while I tried to consider phrasing.

>industary
>*industry

im the guy you replied to, and let's just say out of the 3 people I know studying computer science, I am the only one with a software engineering internship for this summer.

Take that for what you will.

It depends on how good you get. There are things a CS can do which a CE/EE can't but it's also the other way around. Basically if my students fail my programming class I let them make a fully functional Turing complete 4 bit computer out of water, tubing and duct tape so they get the fundamentals of a processor. Thats why the folks that fail my class usually also fail making a computer out of water thus effectively kicking them of the Uni I work. I hope I won't get doxxed on this one though.

>kicking scrubs off cs courses
As a cs student, thankyou you're doing God's work

An anecdote, but with enlightening implications.
Thank you for taking the time to reply twice.

Interesting, thank you also.
I also hope you don't get doxed.

Scrub #1 here, what would you recommend for learning fp by self study? My course seems to be v software engineering focused but I want to actually learn cs lel

CE is the academic major that studies computers using math, physics, and EE. CS is for people too weak to pass advanced math or physics courses. Compare:

>>CS
>1st year
Bullshit java/OO coding class
Bullshit data structures class
Piss easy calculus classes
Piss easy matrix algebra class
[If you're luck] physics I&II for non-science majors

>2nd year
Watered down "computer architecture" class
Pompous software engineering class
Pathetic discrete "math" class
Watered down "probability" class
Crash course on formal languages and automata

>3rd year
Pathetic algorithms course
Watered down computability and complexity theory course
Laughable networks course
Laughable database course
Crash course on various programing languages

>4th year
Laughable computer security course
[If you're lucky] an Operating Systems class
[If you're lucky] a Compilers class
Horseshit AI with trivial machine learning
5-10 student team Capstone with one dude doing all the work
and all the bullshit easy electives you want

>>CE/ECE/EE
>1st year
C++/C Coding class
C++/C Data Structures and Algorithm
Easy vector calculus
Piss easy matrix algebra class
Ordinary Differential Equations
Physics I&II
Chem I&II

>2nd year
PDEs, Complex Variables, or Advanced Engineering Mathematics [which is half of each]
Probability and Random Processes
Numerical Analysis
Signal and System Analysis
Circuits
Physics III
Digital Logic
An actual Computer Architecture class

>3rd year
Electronics I&II
Communication Systems
Digital Signal Processing
[if CE or ECE] Discrete Math with Coding and Information Theory
[if EE or ECE] Control Theory
[if EE] Electromagnetics
[if CE] Operation Systems
[if CE] Digital System Design
[if CE] Embedded Systems

>4th year
Capstone where everyone actually does shit
[if you're unlucky] Ethics
Electives [for CE]:
Compilers
Computer Vision
Computer Graphics
VLSI Design
Networks
Cryptography
Reverse Engineering
Information Theory
Convex Optimization
Distributed Computing
among others

>acm.org/education/curricula-recommendations

>The Computer Engineering Task Force makes the following recommendations with respect to the mathematical content of the computer engineering curriculum.
>Discrete structures: All students need knowledge of the mathematical principles of discrete structures and exposure to related tools. All programs should include enough exposure to this area to cover the core topics specified in the computer engineering body of knowledge.
>Differential and integral calculus: The calculus is required to support such computer engineering material as communications theory, signals and systems, and analog electronics and it is fundamental to all engineering programs.
>Probability and statistics: These related topics underpin considerations of reliability, safety, dependence, and various other concepts of concern to the computer engineer. Many programs will have students take an existing course in probability and statistics; some programs may allow some students to study less than a full semester course in the subject. Regardless of the implementation, all students should get at least some brief exposure to discrete and continuous probability, stochastic processes, sampling distributions, estimation, hypothesis testing, and correlation and regression, as specified in the computer engineering body of knowledge.
>Additional mathematics: Students should take additional mathematics to develop their sophistication in this area and to support classes in topics such as communications theory, security, signals and systems, analog electronics, and artificial intelligence. That mathematics might consist of courses in any number of areas, including further calculus, differential equations, transform theory, linear algebra, numerical methods, complex variables, geometry, number theory, or symbolic logic.

>Mathematics Requirements in Computer Science
>While nearly all undergraduate programs in computer science include mathematics courses in their curricula, the full set of such requirements varies broadly by institution due to a number of factors. For example, whether or not a CS program is housed in a School of Engineering can directly influence the requirements for courses on calculus and/or differential equations, even if such courses include far more material in these areas than is generally needed for most CS majors. As a result, CS2013 only specifies mathematical requirements that we believe are directly relevant for the large majority of all CS undergraduates (for example, elements of set theory, logic, and discrete probability, among others). These mathematics requirements are specified in the Body of Knowledge primarily in the Discrete Structures (DS) Knowledge Area.

>We recognize that general facility with mathematics is an important requirement for all CS students. Still, CS2013 distinguishes between the foundational mathematics that are likely to impact many parts of computer science—and are included in the CS2013 Body of Knowledge—from those that, while still important, may be most directly relevant to specific areas within computing. For example, an understanding of linear algebra plays a critical role in some areas of computing such as graphics and the analysis of graph algorithms. However, linear algebra would not necessarily be a requirement for all areas of computing (indeed, many high quality CS programs do not have an explicit linear algebra requirement). Similarly, while we do note a growing trend in the use of probability and statistics in computing (reflected by the increased number of core hours on these topics in the Body of Knowledge) and believe that this trend is likely to continue in the future, we still believe it is not necessary for all CS programs to require a full course in probability theory for all majors.

just go study under Robert Harper ya pleb: cs.cmu.edu/~rwh

>Software Engineering: Mathematics and Statistics
>Software engineering makes little direct use of traditional continuous mathematics, although such knowledge may be necessary when developing software for some application domains as well as when learning statistics. Like computer science, software engineering makes use of discrete mathematical formalisms and concepts where necessary, such as when modeling the interactions and potential inconsistencies among different requirements and design solutions, modeling artifacts for test design, and modeling behavior for security analysis.
>Statistics also have a role in software engineering. Activities such as cost modeling and planning require an understanding of probability, and interpretation of the growing body of empirical knowledge similarly needs familiarity with issues such as significance and statistical power. In addition, the interactions of a software artifact with other system elements often leads to behavior that is nondeterministic and, hence, best described using statistical models. Because these are all applications of statistics and probability, a calculus-based treatment is not necessarily required.

tl;dr
SE = college algebra, discrete math, business stats
CS = precalculus, discrete math, business stats
CE = vector calculus, linear algebra, DEs, probability, Fourier transforms, discrete math, information theory, control theory, numerical analysis, etc

Computer engineering truly is the better of the three, I see that now.

I can vouch for this

>Computer Science
>Science
OT, How the hell are engineers not scientists but a code monkey is?

I actually envy you, as I was just memeing. Is he as grumpy IRL as he appears in existentialtype blog posts?

CE is better. Just ask you advisor and they will tell you

Why do we keep having this thread? Same thing on /g/ right now

I want to work as a software developer/engineer. I was planning on doing a computer science and mathematics joint major, would that be better or worse for preparing to be a soft dev then a pure computer science degree or will com engineering be better? what about a computer science and engineering joint major?

No

>>CS
>Theory of Computation
- Basic analysis of said theory (known as good enough analysis)
- Complexity Theory
- Type Theory
- Natural Language Theory
- Theory, theory, and more theory. Mainly to solve problems using computation (not necessarily with computers) and domain is vast.

>>CE
>APPLIED math.
- Memorizing existing shit and applying existing theory to computer hardware.
- Finding new creative ways to apply theories (MSc/PhD level)
- A shitload of analysis much more indepth than CS

The most difficult/rigorous shit you will do in CE is designing your own tests for hardware, as that goes into CS territory with informal reasoning, model-checking, bug detection/analytics, fuzzing and using (not writing or desiging) dependently typed software to prove circuits and communications equipment are correct. This is often accomplished with a bunch of shitty hacks (See Dan Luu's blog) in the engineering field so an engineer with a solid theoretical CS background is also in high demand.

Then why does everyone, but you, agree with the notion that CE is better than CS and SE?

Didn't say it was 'better' just not as rigorous. CS starts easy and gets harder the longer you do it. CE starts difficult but gets easier once you have all the applied calc and physics done. It's why China turns out a million engineers every year to slap together Samsung and Apple designs

Fair enough, that does make sense.

It really depends on the school you attend, even if you attend a mediocre school you can beef up your curriculum with your class choices an added minor in maths, and actually programming and learning outside of school.
Neither is better as a degree, but I'd argue at the higher levels computer science is more rigorous. At the end of the day choose the major based on your interests.

>be CS
>passed advanced math and physics courses (and got degrees along the way)

>SE=college algebra, discrete math, business stats
calling bullshit. out of all the SE programs I researched when first applying to college, all of them required at very least up to calc I. most required calc 2 and linear algebra

>all of them required at very least up to calc I. most required calc 2 and linear algebra

So highschool math.

Congrats, you are intelligent and must have went to a special high school or were home schooled. For most of the rest of us, multi-variable calculus and linear algebra don't come until freshman / sophomore year in university.

Calc 1&2 are standard high school courses in Europe and have been that way for over a century.

Special. My point is in the US is it quite normal to have had only limited exposure to calculus upon arrival to university.

ap calc ab and bc are the equivalent of calc 1 and 2 in high school, and most kids take at least calc ab. linear algebra and multivariable are not normally taught in high school though. source: have little brother and went to high school