Computer science

Computer science thread.


We study the best major, we have the most opportunities after college and even during or before college. We are set for life, we are the dominant force in engineering.

Other urls found in this thread:

acm.org/education/curricula-recommendations
stackoverflow.com/questions/38953381/0-1-knapsack-vector-merging-by-kellerer
amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836
golibgen.io/view.php?id=1195367
twitter.com/SFWRedditGifs

>implying employers aren't growingly being turned off by CS majors and won't even look at your application in the future

can you get a job as a software engineer with a computer science degree?

So let me get this straight:

Computer Science is a meme because it is pursued by dummies and indians?

It is purely the people enroled and not the content?

as a former CSfag i disagree with this. physicists make the biggest strides in electronics and in turn computer science. i value the physical side more than the propositional logic aspect of coding because the design of a CPU is going to be the core constraint of my ideas being more than just a theoretical framework.

now before someone roasts me for not referring to CE/EE i say physicist because i'm talking about an inventive approach to digital theory and of logic blocks not just making efficient deposition models or IC densities.

Programming is what you do if you arent good enough to get a job in your major, you don't aspire to be one.

You can get a job as a SE with any degree.

No, it's both. The content is watered down a ton in undergrad and the majors who believe the adulterated content is H∀RⅮC0R∃ are cancer.

There has been an influx of CS grads in the web development world. They are smart, but have such abysmal architectural aesthetics, all they ever do is jam all the hip new technologies into a giant Rube Goldberg machine that is so over engineered, no one can use it. Its like they covet complexity for the sake of making themselves proud they can do it. They think the easy way is the lazy way. No, its called engineering, fool. I wish they would put the E back in CS.

>we study the best major, we have the most opportunities after college
If you don't like it this major will burn you out faster than almost anything else.
>we are the dominant force in engineering.
You have nothing to do with engineering.

Better theory can help with that though. For example to first build a computer you need to know what a computer is; Turing machines, etc. Most of digital (circuit) theory is more closely related to math; Boolean algebra, etc. than to physics. Physics gives it a physical representation (hazards in actual circuits, response time, heat, etc.) while engineering makes sure it works (how to deal with all that, among other thinks), it's efficient and in a lot of cases decides how to actually solve a problem or do something.

I mean I agree a lot with what you say, but it seems a bit narrow-minded to me.
It might be just me, because I never liked categorizing people based on their degrees considering that everyone I have every met who had some talent/achieved something could fit into 2 (sometimes even 3) degrees at the same time.

Math gives solutions to lot of physics problems, so advancing it helps with physics, the other way around is not unheard of either.
I mean I'm pretty sure that for example computation was primarily a math achievement because the work of Turing, Neumann and related people gave it a proper framework, the physical representation in the modern sense came after that.
Although there were guys before Turing who made general purpose computers without associating such a deep mathematical theory with it or at least they didn't pursue it that deep; math guys, mechanical engineers, etc.

My point is without theory you don't know what you can really do with the hardware. Without hardware you can't really build what the theory implies (circuits existed before computers). So I don't think so that it can be separated so sharply.

Yurofag here. Tell me about CS education in America. Can you post a curriculum?

>>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

And a real major like CE looks like this

>>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

The one who asked here. This looks looks a bit like a copypasta, just meant to insult. Just in case i'm wrong:

At what college did you take the courses exactly to know the courses there are so bad? (I'm german and the CEs here have almost the same classes as CS-mayors)

American CS is German Informatiks

There's CS degrees that don't cover that? What the heck do they even study then?

Many schools baby their CS majors and offer easier CS probability courses rather than send them over to math/stats. I've even seen crippled CS matrix algebra courses.

Yeah, right, but CE is german Ingenieurinformatik. And at my uni Informatik-students and Ingenieurinformatik-students have almost the same courses, if the CS courses aren't even harder(CEs didn't have an intro to analysis or TCS).

Code monkey for life.
With average income.
Living the dream yeah...
Until you turn 40 and realize your career is still at the same level it was 20 years ago.
You still write code and some brainless economic/management fag is calling the shots around and getting all the profits for the work that you do.
But look at the bright side, you drive an average car, fuck an average girl and live in an average house/apartment. And that's if you're lucky.

I'm a second year CS student. I'm thoroughly enjoying the course. I can't see how it relates to the real world. I just want to be paid to program and keep all the money to myself by not having kids.
Thanks for reading.

This Persons list is clearly biased. This is my schools program

Computer Science:
Prereqs:
Calc 1/2/3 same courses math majors take
Discrete math course, which surveys complexity, graph theory, combinatorics, set theory. Class was proof based, and around 30% dropped/failed.
CE takes two circuits classes that aren't typically aren't seen as hard
Programming in C, class is very time consuming and about 20% drop class in two weeks. This course is required/recommended by most natsci/eng majors


General requirements:
Algorithms/data structures, this our weed out course, it's takes ~40 hours For each project which are given every 10 days, C++ (optional CE)
Computer arch course
Complexity course. This is a proof based math course. Around 20% of the students are math majors, CS majors get destroyed by this course, but I think thy changed it slightly last year. CE doesn't take this one
Stats/Prob course, you get three choices here, they vary in difficulty and scope, so you get what you want
CE chooses 2 from algorithms/data structures, signals, more circuits, or microprocessor design

Linear algebra isn't required but if you don't take it, you are severely limited for course selection, as about half the upper level courses require it.

There are 7 upper lever courses both CS/CE majors get to choose from a pool of electives, around 70% are common to both. What you take is based on what other courses you've taken. There's a range of electives, these include
software focused courses like web , Os, and, Advanced OOP.
theoretical math courses like algorithmic theory, cyptography, formal verification. Architecture
CE stuff, microprocessor design, architecture, Vsli
AI/ML: robotics, machine learning, computer vision

It's worth noting that there are easy and difficult courses in each area, I.e our cryptography course is easy, while the oop course is considered the hardest course offered by the university.

>being that delusional

a reasonable demand honestly

Sorry linear algebra is required for CS, but not for CE

"The median annual Software Engineer V salary is $127,475, as of July 29, 2016, with a range usually between $115,235-$141,113"

average yeahh ok buddy. if your "average bitch" also makes at least 40k a year. your now a upper class household (the 5%)

but this is bait and i got baited

I want to be a game programmer (indie developer) so I'll be studying SE.

It's the only reason why I even care about STEM.

>huh duh you're dumb.
I don't like math, is boring shit and I rather study humanities or art.
Also college math is baby easy as fuck.
I simply don't like math becuase is boring as fuck.

>Proof-based discrete math course required
>Linear Algebra isn't required for CS
lol Americans...

It is mate, required for cs, not for ce.

why would one major in Computer Engineering vs Computer Science? Unless Im wrong it seems like these lead to jobs with a similar pay scale. Is it a dick measuring thing?

will i make more money or something with the CE degree?

If the only argument you can make for why your major is good is that you can earn good money then finding a single non-CS major making good money is enough to show you why your major is pretty much meaningless.

If you are generally interested in science then CS will leave you wanting more, only giving you introductory courses in physics and maybe chemistry.

You should study: An actual science with the right CS electives

If you are generally interested in computational science then again CS will leave you thirsty barely teaching you any modern applied mathematics and science, as mentioned before.

You should study: Mathematics with the right CS electives

If you are generally interested in computers then computer science will leave you thirsty because you will be lacking in the hardware side.

You should study: CE or EE and the right CS electives.

If you are generally interested in technology then CS will leave you lacking, covering just not enough applications.

You should study: Electrical Engineering and the right CS electives

If you are interested specifically in making useful software then CS will leave you lacking because CS simply has too much theory for you.

You should study: Software Engineering.

Now, why would someone study Computer Science instead of the recommendations I've laid out.

CS does not produce professionals, it produces overqualified techs who get introductory courses in many different disciplines that don't actually connect that much in practice.

What if you want to become a code monkey? Employers generally look for people with CS degrees and it's easier to land an internship code-monkeying if you're majoring in CS.

This is painfully accurate. CS fags always have this delusion that they are destined for great things or even above average. They end up eternally mediocre which is really shit when you compare to other STEM degrees.

I am telling you not the computing on computers, we have enought good computers, software sucks, and the fact you are not having snowboard halls with girls in swimsuits snowboarding suck even more, because you are virgin at computers or something... Virgins at physics...

A Software Engineer degree quite literally makes you a better code monkey. Except becaue you are actually specialized you will probably the manager of the code monkeys.

I guess CS does lead to code monkeying but that is nothing to be proud of unless you have your own business.

When I imagine the Veeky Forums I imagine that their goals have to do with research and being at the cutting each of their fields. Not necessarily in academia though. Code monkeying is not really cutting edge.

the thing with software engineering is, where im from New Hampshire/Massachusetts , there are like no schools that have it. In mass there are 3 schools, all private schools,i cant afford to pay 40,000 in tuition

So having a software engineering degree makes you a more attractive candidate for code monkey positions than having a computer science degree does?

I just want a degree that'll get me a job that pays well. Is CS the right choice?

then move. people your age do it all the time.

>source?
your ass.

>Software Engineer V (5)
>Highest level of software engineer is only making $127k avg.
>Most of those are in high-expense areas
>Software Engineer I makes $64k

LOL
Go back to playing games and failing Discrete Math.

>only 127k
Autistic Math Major detected. Hows that 300k

Degrees aren't job training

Software Engineer V In Boston Metro make 140k average

Software Engineer V in New York City make 147k average

these are high expense areas

really though what Bachelor degree pays substantially more then that?

>Discrete math course, which surveys complexity, graph theory, combinatorics, set theory. Class was proof based, and around 30% dropped/failed.

Are you trying to imply that Discrete math is hard? The proofs in the class are 99% unwrap the definition of the structure and follow your nose trivial.

>Algorithms/data structures, this our weed out course

How the hell is algorithms a weed out course? The hardest algorithm you'll typically see is Floyd Warshall.

>Programming in C, class is very time consuming and about 20% drop class in two weeks

Programming in C is no harder than programming in any other language. I will never understand how CS major have a "i cant do it" complex with C and pointers.

>software focused courses like web and Advanced OOP.

These shouldn't even be college course.

>Linear algebra isn't required
>electives, these include ... algorithmic theory, cyptography, formal verification. Architecture

All of those should be required courses in any non-shit program.

>theoretical math courses

Just because a course uses sets and has derivations does not make it a "theoretical math course".

See the ACM and IEEE Computer Society curricula

>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 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 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.
>acm.org/education/curricula-recommendations

it's not that i want to separate them at all. actually im planning to go into a physics honors program with specialization in physics-mathematics. it's just that for me i look at the computer science or engineering aspects as far extremes of the academic spectrum; from trying to work with a subject that might allow you to adhere to principles of logic, or the control testing parameter principles from EE, i find that physics lets me approach it with my own mathematical toolset and my own engineering dogma for how to apply my results in the real world. i just don't know what job prospects i would have as i'd be coming from a low income family if i go this route instead of computer science.

>why would one major in Computer Engineering

Because some people aren't slacker druggies and actually want to learn in University and not there just get a piece of paper.

Guess what, my CS degree made me calculate triple integrals. Where's your 300k starting now?

Thanks.
In the german uni i am at, actually almost all courses i have done yet were proof-based if they were just closely related to something mathematical. Even intro to data structures.

CS degree with minimum math requirements (everything but differential equations, but it's never come up as an issue) here.

Got hired by Google/Microsoft/Amazon-tier company right out of college with total first-year compensation (salary+stocks+bonus) just north of 200k. The hate for CS on Veeky Forums is truly just a meme. I literally know nobody from my high school or from other majors at my university making anywhere near this much. Study CS if you want to study CS. Study math if you want to study math.

Ah yeah, there are some CS degrees that are academic, and then others that teach them to become glorified software engineers. Unfortunately, the latter is still doing well in the job market.

Actually, is really accurate to most CS degrees. Your list looks more like CE.

That being said, CS is close to job training.

You spoke the truth. Dubs confirm it.
Yet you can get into CS jobs with a math degree too.

Same guy here. It's true. One of my interviewers was a SE with a math degree. He was more interested in asking me questions about graphs from a slightly more theoretical standpoint, but he wasn't a douche, and the answers weren't anything beyond what you'd get from a so-called "watered-down discrete math course."

Any elite kids here that can help me fix the algorithm I'm trying to implement? Stackoverflow wasn't very helpful

stackoverflow.com/questions/38953381/0-1-knapsack-vector-merging-by-kellerer

>Computer science is engineering
I think you mean software engineering.

Software engineering is not engineering either in the classical sense.

Is Computer Engineering > Computer Science? Will this give me the versatility to allow me to be either a software developer/engineer and a computer hardware engineer if I like? Seems like CE is more prestigious also.

There also seems like there are a lot more jobs on the software side then the hardware

Computer Science is a broad filled, and there is a big difference in curriculum depending on the school you go to. You cannot compare CS at Stanford to some random university. CS at Stanford is almost entirely theoretical, while lesser schools will focus on more practical applications of CS such as programming.

I completed my master's degree in CS at ZTH and I had only one semester with programming for example.

No. It will give you no job because they were all taken by rajeet.

I'd like to call out my boy Pajeet
You smell and need to learn to poo in the loo

some places probably offer cs which is basically a code academy program.

Just graduated with a CS degree from CU boulder in may. Working at visa now.

mfw 70% failure rate in my CS freshman year

No way I was in Zeta Tau Eta as well

Oh shit I'm going be going to CU boulder soon, was the curriculum for CS very good there?

I would say CE > CS at undergrad, but in either case you're gonna have to be interested in the course or else it will be difficult. If all you want out of it is to become a software engineer, then you could choose a degree in quite literally any subject. Many people do a taught postgraduate course that lets them transition into programming jobs, or they study a STEM subject and do enough coding on the side that they can just get a job.

Oh did you take discrete math with me, who taught our class again? Class is hard. The proofs they ask aren't trivial.

The material in the algorithms course isn't particularly hard. The class doesn't deal with the theory so much, as understanding algorithms, data structures, and time/space complexity. The projects require use of all these, and the point is you understand them through practice. the projects are long, and unforgiving. If you start late, you will fail the project. If you go about solving a problem in a different way than what was intended, you will fail. It's workload is what makes it difficult and not necessarily the material
>inb4 it's not even theory
The analogy I'll draw is learning calc 1/2 before taking analysis. We have later courses that deal specifically with algorithmic theory

The programming based courses aren't hard. They're time consuming. It's hard to do 100 math problems in an hour. It's hard to write 1000 lines of code in a week that work perfectly. Programming in C is harder than Java, or scripting in Python.

Designing large scale software systems are much harder than you think. i don't really think the courses are worth taking, but if your aspirations are code monkeying it up, then they probably are. A couple managers/executives at tech companies people that take the AOOP course are considered the some of the best coders from any university.

It's not as beneficial for someone to take cryptography if they're interested in AI. It's not as beneficial for a computer engineer to take theory of algorithms, instead of another microprocessor class. It's not beneficial for a web designer to take architecture. they try to give people freedom to prevent "jack of all trades master of none"

you haven't taken them, you can't write them off. I assure you that they don't "just use sets", and that they are actual math classes. Some of these courses are even electives for math grad students.

Mine is similar to most competitive computer science programs. The difference between CE and CS is that CE takes required circuits courses and have less access to some of more inside the box stuff

>It's not as beneficial for someone to take cryptography if they're interested in AI. It's not as beneficial for a computer engineer to take theory of algorithms

It's beneficial for everyone learn ALL the fundamentals. This kind of anti-intellectualism is cancer

>"why do I have to learn programming when I'm going to be mopping floors"

>anti-intellectualism
Nice $5 dollar buzzword

You understand what specialization means right? There are upper level 30 electives, all of which deal with a fundamental part of computer science. What it comes down to is whether stochastic processes is more important than databases to you, or computer security is more important than operating systems. Theory of algorithms is very important but so is networks, and microprocessor architecture. Oh but you should know about logic circuit synthesis and programming language design. Hell any decent computer science major should know compiler construction. And if you didn't take vsli design you may as well Kill yourself.

All the courses are important in someway, the university lets you choose which ones seem the most important to you however.

It's pretty decent. You're allowed a decent amount of flexibility it the cs classes you take outside the cores like data structures, algorithms, OS. Some of the professors aren't very good. Only had a couple that i would call good the rest were just alright. I thought it was pretty easy (hardest class i took was compiler construction) but lots of people struggled in many classes from what i overheard.

>>specialization
>in undergrad
>by taking one course

kek

You would take 5 courses in an loosely grouped area. I.e if you were interested in AI you might take machine learning, AI, robotics, natural language processing, and maybe you take something else like operating systems

>only taking a semester worth of upper level courses

This is why CS majors aren't respected here.

We did Dijkstra-style Hoare-triple-based formal verification in the second trimester of the first year. Challenging, but it was the most interesting course of the whole program.

Req:
4 math courses
1 prob/stat
2 intro courses
1 Chem + lab
2 physics + lab
5 core courses
5 electives
1 Techcom
4 distribution requirements (math or science usually)
And then you have 15 extra credits to fill. Usually you'll just take cs courses

I failed my first year of CS, doing it again..if I fail again...I'll study something about space or stars idk.

>5 core courses
>5 electives

I hope you don't think that's impressive

i mean that'd be a good program. But that's too narrow for a US program, and pretty idyllic. The idea of having no physics and chemistry is laughable. And digital logic/networks should be made optional. Circuits made mandatory. About half the math classes while cool, are probably not as relevant as other courses. Geometry, algebra, numerical analysis, proofs would be better be as optional. It'd be much more worthwhile to just make linear algebra proof based instead.

I miscounted we have 6 core. Our mathematics department has 12 major courses for comparison. I think this is pretty typical for American universities

>And digital logic/networks should be made optional.
This. While i did take a digital logic course and it was interesting it doesn't really improve your computer science skills much. The fact that has circuits and microelectronics even as electives is somewhat wrong as though are definitely not the realm of comp sci.

as those are definitely not the realm of comp sci*

No one is saying CS is shit because of shitty job opportunities, we're saying you learn next to nothing in it. You've could have gotten that Google/Microsoft/Amazon-tier job with any major.

Former pre law major here; how would I go about doing this then?

Yes, yes, and yes.

This.
With the slight exception that you actually learn something if you have decent theory classes and you pay attention.
However if you worth even a tiny shit then you can most likely learn that by reading a book. However a CS degree with good theory isn't so bad.

CE will give you a broader understanding and you will actually know how a computer works + diff eq. and signals and systems will make sure you aren't a CS level retard.
Also, you can most likely take CS heavy or EE heavy electives depending on what you want to do later.

You can most likely go into a EE/CE/CS MSc with a CE BSc.

>pre law major

That's not a thing dude. Law schools accept any major.

>I think this is pretty typical for American universities

And hence why CS is viewed as a "for retards" major like business.

Have a final in Algorithms and Datastructures tomorrow. Where can I find some practice problems?

Alright you cuck beta nerds, tell me about the Curry-Howard correspondence and how it bridges type theory and coding theory.

amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836

I know that. Technically, my major was Politcal Science.
>inb4 autists screaming about poorfag

have a pdf anywhere?

Major in physics, focus on experimental high energy. We process a butt ton of data and deal with interesting hardware. You'll prob be set for whatever engineering you might want to do. Or finance if you want to sell your soul even more.

Linear Algebra is a must for CE, you don't even know what you are talking about.

golibgen.io/view.php?id=1195367

I'm literally reading reading the requirements from my university's CE website. Linear algebra is not required for CE, I assume they cover parts of it in other classes they take I'm not sure. However they are not required to take a dedicated class in linear algebra.