>some universitys don't even teach C to students until their third year, starting them out on python instead
I guess computer science is just glorified math now.
>I guess computer science is just glorified math now.
It always was you dumb faggot. Computer science was always about algorithms and proofs (of hardness, of bounds, of correctness, of performance guarantees). Computers themselves and programming languages are just tools, shit you should be able to learn in high school. You should be able to do computer science with just a pencil and paper. There's so much in "theoretical" computer science out there and it's all so fascinating. Get the fuck out of my discipline and stop plebing it up with your "I wanna be a programmer" shit. Go to community college for that.
>starting them out with Python
That way the women stay for bit to fufill the Diversity™ stuff, then they leave when they realize programming isn't just Python.
Either way, the University's ass wont get raped by more quotas.
You should start with Python anyway, but starting C in the THIRD year is dumbest shit I've ever heard.
>buttmad cs major is sad he never chose computer or electrical engineering and now he stuck with code monkey jobs and is surrounded by abus and chin wangs
Is Pajeet a good programmer, my friend?
>but starting C in the THIRD year is dumbest shit I've ever heard
Yep, people in my uni start using it for their systems programming class. Needless to say, only like 5% of the people that have had 0% experience with C manage to pass on their first try.
>tfw computer engineering student
>start out on C#
could be wor...
>only time I get C is some bullshit assignment
>barely any embedded basics whatsoever
>meanwhile UML is shoved down our throats like diagrams mean everything
godfucking damnit I don't go to university to build windows forms shit and draw diagrams, what the fuck.
MIT uses Python in their introductory course.
Daily reminder that computer science /=/ programming.
Learning C /=/ learning about computer science.
C is good for low level I/O, static typing, and manual memory management.
Python is good for high level stuff.
The argument can be made that CS students should learn from the top down rather than the bottom up. Your argument, however, is absolutely retarded. You're making an appeal to authority in a vaguely related field (they both use computers) that makes its programming language choice based on the fact that it's not a requirement that they know how to program properly.
Embarassing that you would imply everyone in here is bad at programming while simultaneously displaying your ignorance. Never come back.
Isnt the natural way to learn from bottom up since thats how programming evolved? But then again we came to the time where everything is much complex and broad so for example many programmers dont need to do memory managment and other low level stuff for their high level programs to work. There is too much information out there and to expect that one human needs to know everything about programming and computers is long lost and impractical .
We cant ask of rally driver or pilot to know the science behind everything thats going on with their machine, they have other stuff to focus on.
Indeed, C does not require knowing everything. As a language, it allows you to program without knowing the instruction set. It allows you to do I/O without knowing how to talk with what you're communicating with. It allows you to manage memory without stack management. As the layers of technology increase, it's important to not lose sight that certain things aren't as low level as they seem.
I would rather have a CS student do a single day of exercises exploring type theory and memory management (I believe I/O is not a large concern in CS) in C than not know how to treat dynamic typing in Python or thinking that their memory is infinite when creating objects.
99% of companies have no use whatsoever for formal design proofs and big O notation is just basically a fancy way of using logs to represent performance.
>Calling this a science
Computer Science is the study of any application of a computing system, that includes electrical engineering solutions (logic gates), networking, and hardware too. Engineers get to study how to implement it, that's all.
Unless you want it to just be a buzz term you have to understand how your science applies to the real world.
If you entire science adds up to just the base 2 mathematical system (which could be replaced for computing) and optimizations/studies of that. It's not really a science then.
>I guess computer science is just glorified math now.
You sound like the kids that fails the introductory theory classes like discrete structure or an intro to alg class. Have fun being a code monkey faggot, I'm going to go to top tech companies to get over paid since I can solve dynamic programming questions.
>go in software engineering
>get a dysfunctional mix of C and C++
>all the other years
>Java and Matlab for every class
I'm glad I am able to learn on my own, but damn, those poor students who think they're actually learning something by only showing up to classes
> I guess computer science is just glorified math now.
It should be math though. Problem is, it ain't proper math either. I do double major CS and math, and CS is just fucking easy compared to math. My last exam in math was on topological manifolds, banach algebra's, and some basic topology.
My last exam in CS was on regular expressions, context free languages, LL and LR parsing.
If you know what these things are the difference in difficulty should be obvious.
It's time we started making CS really about math. "Hello, this is your first class, where we will be talking about register machines and turing machines."
Second subject: List theory and functional programming.
And so forth.
This bullshit of 'computer science is about computers' has got to stop. It's just a lousy name, and not about computers at all. If anything, it's about computing and computers are to CS what the lab is to physicists.
> 99% of companies have no use whatsoever for formal design proofs and big O notation is just basically a fancy way of using logs to represent performance.
Right, that's why it's not fucking engineering. It shouldn't be about what companies want, but just about advancing knowledge, like math.
Most companies still use OOP
If you want your students to get jobs, better fill them with "actually useful" stuff like web development, C# and game design instead of boring theoretical stuff like functional programming
Computer science is the science of computers. Your concept of "computer" is extremely narrow.
You probably think it's some machine that has buttons and displays information. That's a computer, but not the only kind.
>It's time we started making CS really about math. "Hello, this is your first class, where we will be talking about register machines and turing machines."
>Second subject: List theory and functional programming.
Then do a mathematics course.
Any non-american based maths course would laugh at any CS student that thinks that because they've studied comp sci they're now mathematicians.
The people who advocate for CS being math are basically going to kill their own profession because computing is a very very limited field of arithmetic knowledge. I'd go so far to say that in reality it's just basic arithmetic principles on it's own. Like the anon above who's studying both maths and CS, the CS is just so fucking easy compared to the topics he'd be doing.
Basically every mechanical engineer, or STEM field I know would laugh at a CS student saying CS is basically maths because there are tons of physics based formulas and equations that we'll never know because it doesn't relate to computing at all.
The normal CS course is just pissed all over by the stuff on a mathematics course. Mathematics gets so much more advanced than what is seen in a typical CS course.
CS should be the broad study of computing applications with a base of electrical engineering/computer engineering.
Otherwise study mathematics, or do both. But stop trying to make CS maths, because the current course material, yes even the simple matrices and shit you're doing, is all incredibly basic compared to an actual maths course.
The notion of turing completeness does not exist without turing machines. They are the simplest known abstraction we have to formalize the idea of a computer. Using them as a construct to understand the fundamentals of computing rather than another system, say x86, is not at all arbitrary.
It's not the science of computers, just like geometry isn't about measuring the earth (which is where it get's its name). Instead, it about mathematical models of data and algorithms/computational methods. It's easy to confuse the essence of what you are doing with the tools we use.
How about we aren't viewed as the old egyptians are now, who thought geometry was about measuring the earth, and we get it right for once?
>mathematical models of data and algorithms/computational methods
Data and algorithms don't mean anything without computers. "Computer" isn't only a machine we can build. Anything that can carry out an algorithm is a computer.
Yup. I'm not from america, and I laugh at CS students who think they now have a degree like a mathematician. I'd like to CS education come to the point where that is not so. And indeed CS as it is now may come to an end. I would have absolutely no problem seeing one half of it being absorbed by EE and the other half by math.
Ok, if you want to call turing machines and register machines computers, that's fine by me. But let's study those computers then, instead of focusing on 'real life' computers. Being CS and math major, I see the foundations of math coming from numbers and set theory (where it is later explained that numbers can be used as if they were sets and sets are thus the actual foundation). The foundations of CS are laid by talking about hardware, how operating systems work, and application development.
>mfw my college starts with calculus, discrete math, physics and all things math for the first year
>only one class involving computer science
Second year they drop physics and start things more related to CS but still math heavy, only in the 3rd year they go full CS.
I'm just a dumb engineering student, how do I into C?
>CS should be the broad study of computing applications with a base of electrical engineering/computer engineering.
Uh, no, it shouldn't.
The Computer Science discipline is essentially that of the mathematics of computation.
It's not a math degree.
It's not a programming degree.
And it's certainly not a "broad study of computing applications" or computer engineering.
You're mixing up completely different disciplines.
>>Mathematics degrees should be the broad study of statistical analysis with a base in physics / astro-physics.
The above is a similar (and similarly erroneous) analogy to your statement.