What does a good CompSci curriculum should look like in your opinion? Not that Software-Engineering WebDev bullshit...

What does a good CompSci curriculum should look like in your opinion? Not that Software-Engineering WebDev bullshit. Actual computer science.

Attached: 1200px-Ibm_px_xt_color.jpg (1200x902, 188K)

Other urls found in this thread:

quantumcurriculum.mit.edu/
github.com/ossu/computer-science#summary
eecs.berkeley.edu/resources/undergrads/cs/degree-reqs-lowerdiv
exploredegrees.stanford.edu/schoolofengineering/computerscience/#bachelortext
csd.cs.cmu.edu/undergraduate/bachelors-curriculum-admitted-2014-2015-2016
twitter.com/NSFWRedditImage

Attached: CS program (that's not shit).png (359x1176, 114K)

A self study curriculum.

Attached: CS guide.png (1068x1142, 178K)

That's exactly what I wanted. Thanks dude :)

>7iv
Should be first. Also take up some regular sport. Anyone will do.

Attached: 1520773288475.png (752x436, 787K)

This is not a CS degree. This is an engineering degree that happens to have CS and math.

OP asked for a good CS program, not what current cs programs top out at.

What about this is engineering? It's about theory, not making things in engineering settings. Curricula like this are called "computer science", and for good reason.

this

Attached: 2018-03-15 19_04_07.png (921x552, 43K)

rofl

What's this, like 18-20 credit hours per semester?

>personal grooming and hygiene
>macro and micro economics
>software engineering essentials
>fucking quantum computing (are you kidding me with this one, this is literally just buzzwords with physics)
>professionalism, ethics, and conduct
>computer architecture, as well as a digital logic class (why do you need both if you're computer science? I would only expect this from an engineering degree)
>physics 2
>>>physics 3
>>>chem 2
>>>bio 2
>>>any of those 3 above should be PURELY electives based on what you're interested in for a career; otherwise, these are PURELY engineering courses
>technical writing (another engineering course)
Physics 1, Chem 1, Bio 1 I understand, but jesus christ, some of these just scream engineering

fd

To add onto this, ODEs and Dynamical Systems will cover a decent chunk of physics 1 and 2 material
also:
>not requiring PDEs (I know it's on the list as a replacement for complex analysis or topology)
>not replacing some of these highly concentrated courses with philosophy or cognitive science electives
>control theory and/or robotics
>no differential geometry anywhere in that curriculum
>electrical engineering fundamentals
A third of this fucking degree is """curriculum""" instead of computer science

a third of this fucking """curriculum""" is engineering instead of computer science*
is what I meant

Are you sure this is a CS degree and not an IT degree? Please tell me this is an IT or IS degree.

Here's what a real CS degree looks like

>1st year
Bullshit java/OO coding class
Bullshit data structures class
Piss easy calculus classes
Piss easy matrix algebra class
[If you're lucky] 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

>quantum computing
>buzzwords with physics

so user... I guess understanding how quantum gates work is just intuitive to you?

>why do we have to learn stuff
>i just want muh 100k starting
>isnt college algebra enough?

Attached: 1375242018674.gif (948x543, 142K)

quantumcurriculum.mit.edu/
MIT's quantum computing course is LITERALLY just a business course telling you how useful quantum computing is, then you program using IBM's quantum computing API or whatever, and learn a few algorithms on the side. It looks like you barely even do any theory.

I didn't object to any of the math courses. I thought my judgements were reasonable. I requested a differential geometry course to be thrown in there, as well as PDEs being required. However a dumb 2-course series on digital logic and then computer architecture, as well as quantum computing, are stupid. Oh, also, physics 3, really? You can't even justify that when you could be taking an algorithm design course or something. Let's not even mention the lack of CS theory in the given curriculum or a proper distinction between AI and ML, which is wildyly looked past in that sample curriculum. Also, you rather take a professionalism course instead of a philosophy or cognitive science course? You kidding me? Might as well just throw Speech 1 in there while you're at it.

How feasible is to do this by myself?

>However a dumb 2-course series on digital logic and then computer architecture are stupid

No, it's normal. Having a "computer organization" course that doesn't teach shit like cs programs have now degraded into is retarded.

>instead of a philosophy course

Why the fuck would you ever take a philosophy course? Mathematical Logic has everything meaningful you could get out of one and far more plus serve as a foundation to move on to other CS fields like ATP.

>learn personal hygiene
lmao

I'll concede the architecture course. I still don't think it's really that necessary and could/should be placed in an engineering program instead of a CS program.

However, the philosophy course is useful. With that intense of a curriciulum, you're going to have walking robots coming out of your program. The philosophy courses taken in your undergrad to develop conceptual thinking about the world, instead of just formal math proofs, will make you a better person and heavily impact both research and industry positions. Philosophy courses are seriously helpful and have loads of neat information to make you a more well-rounded person. They're not heavily technical, but they're not like arbitrary world history course; they give you useful skills.

I like the way you think but the problem is it only works sometimes. I took two philosophy courses when I did my undergrad.

In the first, the prof took everything so seriously that HE was "that guy" and derailed his own discussions into big jerk sessions over really lame pseudointellectual philosophical concepts like
>how can you prove that the universe wasn't created last thursday?
>HAH YOU CAN'T, guess what? that means you can't know anything
Wow super deep, I haven't heard that one before

In the second, the prof brought his dog to class every day and always made jokes about how his class was useless
>the next time you're at a party and someone says something you don't like
>just bust out a whiteboard and draw up a truth table and reduce their argument to objective modifiers
>you'll always win because no one will talk to you after that, you loser
>that's the real world application for this course

I like to imagine that if I took a third maybe it would have been like you described, but I was absolutely not going to take ethics because I don't think I could deal listening to all the ridiculous debate that would have gone on in there.

>I still don't think it's really that necessary
good luck doing any serious OS or compiler work with no knowledge of the underlying architecture

If you devote almost 100% of your time to it maybe. It will still take years.

Oh yes, I can't wait to go program an OS or compiler like .0000000001% of the community! Seriously though, the only people doing actual work on an OS or compiler are either 1) graduate students or 2) advanced undergraduate students who are highly motivated, mess around with kernels in their free time, and go out of their way to focus their curriculum on OS

Glad we can somewhat agree on the philosophy course. I definitely don't think an ethics course would be worth it; it's too generic. However, I took a political philosophy course with a renowned professor in her field. It was a truly exception class that taught me about Locke, Kant, Mill, and several others, as well as their teachings. Although it wasn't directly CS related, I truly believe I gained a ton from that class in terms of knowing the world around me, composing legitimate conversational arguments (instead of structured proofs) , writing a mini paper towards the end to formulate an argument with axioms, and just learning something other than equations for once, while improving me as a person that is both employable (socially) and intellectually sound (in terms of critical thinking). I wish I had more time in my degree to take just 1 more philosophy course (a focused course, not ethics). Like there's a difference between knowing how to program/do math and generate intellectual conversations with an everyday person.

Sounds interesting.
The paper I had to write was choose from a list one possible version of the afterlife and make a case for why you think it's the best one. It was lame and I learned nothing.

If there was a way to standardize the curriculum more that would help a lot I think. Right now it depends too much on how the professor is, what they make you do. But something like calc will be the same at any respectable university.

I agree. Calc is (for the most part) standardized. Most schools do Calc 1-3, but I know there are some schools here and there that do Calc 1-4 and spread the material out a bit. However, you can say the same about Physics 1, Chem 1, and whatever else, because those are concrete topics. Philosophy courses are harder to constrain to just a few topics and standardize.

>>computer architecture, as well as a digital logic class (why do you need both if you're computer science? I would only expect this from an engineering degree)
I take both of those and even more architecture classes and I'm CS. Those are all essential CS classes, what uni do you go to that doesn't require it?

>>physics 2
>>>>physics 3
Only shit CS majors don't require physics. It's useful on more architecture/electronics heavy classes and useful in general.

>Chem 1, Bio 1 I understand
No, not really. Granted I took chem classes all the way to chem III and a molecular bio class before switching to CS and while all of it is good stuff to know its not really useful for CS. Better served going all the way to physics III.

Not to defend the curriculum that got posted, some classes where really stupid, but complaining about physics, software engineering (I guess it depends how the class is like) , and architecture feels really pointless. Those are all classes a decent CS degree should be required to take. Only a crappy B.A. CS degree or a crappy software engineering degree would neglect such core classes.

>What does a good CompSci curriculum should look like in your opinion?
I'd recommend starting with an English one.

>only 0.0000000001% of CS majors take their subject seriously
no wonder people think CS is a joke. That minority who's doing research into scheduling algorithms are the actual CS people, the java or web code monkeys

I disagree. Doing any serious computationally heavy work you will hit the hardware limitations like a wall sooner or later unless you actually know your hardware. You also don't want to be that retard that thinks floating point numbers are equivalent with real numbers.
There's just so many situations where just supposing you have the perfect imaginary machine will ruin you.

In what ways is physics applicable? In terms of circuitry? I admittedly didn't taken anything past physics 2, but a majority of physics is not useful and can be replaced by digital logic or architecture from what I've seen. What is even taught in physics 3?

You take both digital logic and architecture and you're CS? I've looked at the top programs and none of them require both courses. Would your CS department/degree happen to be in your school of engineering?

Chem 1 and/or Bio 1 should definitely be required just because they're natural sciences. They're so fundamental, it'd be like a business or chem major not taking calc 1.

I should probably correct myself. I didn't mean an architecture course is useless; every program should have at least an architecture course. I meant taking an advanced architecture course is useless. Knowing the hardware is extremely important and I agree with you. However, I was arguing against having both architecture and digital logic. I honestly feel like architecture is more applicable to CS, while digital logic is more towards engineering.

>personal grooming and hygiene
>macro and micro economics
>professionalism, ethics, and conduct

You could just say you're a faggot in less words.

I think you misunderstood my post. I wanted those classes removed. The original curriculum in the 2nd post had those classes on it.

>professionalism, ethics, and conduct
ethics are for cucks.

The ethical Virgin try to be nice to Girls and get ignored and mocked.

While Chads are unethical assholes who abuse and beat women yet get tons of pussies and respect.

Attached: Virgin vs Chad.jpg (1200x778, 188K)

Be naive & ethical Goyim.

Attached: Scheckels.jpg (600x600, 118K)

Oh my bad meant to reply to the guy you were replying to.

Please learn how to read. Refer to my post here:

I finished a real CS degree then, thank god

Slam a fortran book in your face. If you can't figure it out you don't need to computer.

>In what ways is physics applicable?
In terms of understanding how electricity and current works,even if it may not be a full understanding getting the basics does help.

I'll admit physics 3 isn't very applicable but it does give a deeper understanding of the physical world and just like physics 2 greatly helps in improving someones problem solving skills

>They're so fundamental, it'd be like a business or chem major not taking calc 1.
>intro bio and intro chem are more important then physics 2 and 3
Fuck no. The breadth is irrelevant as most of that knowledge doesn't help for CS and lacks the problem solving skills that physics 2 and 3 hold. Physics 2 and 3 are far more fundamental. Physics would work better with your analogy. Intro bio is a joke too, never bothered taking it and instead went for the molecular bio class. In that sense if you want to do more then just programming like working with actual hardware or machinery both physics 2 and 3 are much more useful.

>You take both digital logic and architecture and you're CS?
Haven't bothered looking at any top schools but I'm sure some do. Pretty sure Berkeley does for example. Either way both are definitely useful. A CS degree with no hardware knowledge is very dull.

>Would your CS department/degree happen to be in your school of engineering?
Yes and I think its much better having a CS department in the school of engineering rather than having it in the science or math school.

>personal grooming and hygiene
that should be all semesters on a cs course

>Personal Grooming and Hygiene

One course on UML, one course on E/R diagrams and relational tables, one course on design patterns, one course on SQL, one course on multiprocess programming, one course on multithreaded programming, one course on network sockets, one course on network protocols, one course on mutexes, one course on semaphores, one course on thread-safe classes, one course on caching, one course on paging, one course on file systems

I mean, anything you need to learn about electricity or current will or can be learned in an engineering diffeq or ODEs 1 course. Physics 3 is definitely not applicable. Physics 2 is BARELY applicable, unless you seriously want to push the engineering, which isn't nearly as relevant to a CS degree. A CS major has no need to learn about currents in a computer lol. That can easily be substituted by another math course or a cognitive science course.

>Haven't bothered looking at any top schools but I'm sure some do. Pretty sure Berkeley does for example. Either way both are definitely useful. A CS degree with no hardware knowledge is very dull.
I agree partially. A CS degree requires SOME hardware, but not as much as you're emphasizing without turning it into a computer engineering degree. Berkeley CS does not require an architecture course. And actually... before 2017, you could basically skip all the architecture courses if you wanted. Starting in Fall 2017, they now require you take 1 architecture course, and you can substitute the other with an engineering diffeq course (rather than ODEs 1 for math majors). CMU, Stanford, UIUC, all don't require intensive hardware in their curriculum. In fact, they strongly advocate for more math courses and less engineering courses except for special cases.

>>Would your CS department/degree happen to be in your school of engineering?
>Yes and I think its much better having a CS department in the school of engineering rather than having it in the science or math school.
I understand where you're coming from, but I strongly disagree with this statement. A CS degree should not be engineering focused, it should be science and math focused. If you look at the truly elite schools, they will focus much more heavily on the math/science side than engineering. Even the top 10 schools learn toward math (except for Michigan, because of their strong engineering presence and their CS degree is essentially just EECS).

>one course on SQL
No way. Put SQL into a data science course and learn cyphers, graph database queries, and other related stuff. SQL can be learned within weeks.

>one course on multiprocess programming
High Performance Computing, which a lot of programs have or require

>one course on multithreaded programming
That's a systems course or an OS course, most programs require that

>one course on network sockets
THIS, SO MUCH THIS

>one course on network protocols
That can be coupled with the above class on sockets

>one course on mutexes
You don't need an entire course on that. That's just another systems oriented course.

>one course on semaphores
Again, don't need an entire course for this.

>one course on thread-safe classes
>one course on caching
>one course on paging
>one course on file systems
You just described an OS course.

>one course on UML
Completely agree

>one course on E/R diagrams and relational tables
I'm not sure if this is entirely required, but definitely useful

>one course on design patterns
I'd be fine with one software engineering course, but don't emphasize it.

Is the whole MIT OCW curriculum for CS good enough for self-study?(Including the Physics and Calculus ofc)

>Freshman
Calc 1 & 2
Number theory
Groups, rings, fields
Linear algebra
Mechanics
Circuit analysis
Thermodynamics basics
Tree structures
Dynamic programming
Divide and conquer

>Sophomore
Calc 3 & real analysis
Topology
Probability theory
Set theory
Electronics basics
Electromagnetism
Optics
Open system thermodynamics
Thermal conduction
Quantum mechanics
Statistical physics
Graph theory
Language theory
Finite automata

>Junior
Measure theory
Fourier analysis
Complex analysis
Electrodynamics & band theory
Digital electronics
Graph theory
Classical logic and sequent calculus
Hoare logic
Microprocessors
Computer architecture & assembly
Numerical analysis
Networking
Functional programming

>Major
Wavelet analysis
Advanced number theory
Embedded programming
Object-oriented programming
Operating systems
Compiler design
IP programming
Computability
Cryptography
Parallelizing and concurrency
Software engineering basics

>Graduate
Just specialize

This is the funniest joke curriculum for CS I've ever seen.

In what way?

It's a shitty program, actually. Why so many Chemistry and Biology courses in a CS program? Why Control Theory, Economics, Complex Analysis, Electrical Engineering, and Dynamical Systems? Some important subjects are lacking, like no Database, no Geometry (even though it has Computer Graphics).

It doesn't make sense. Generally, all math and statistics classes are taught by math and statistics departments. Courses like calculus (I, II, III), linear algebra, physics (I, II, III), basic statistic classes are generally the same for CS, engineering, and physics students. Classes mixed with students from other STEM departments are pretty common. Thus, CS isn't worse than other STEM courses in those classes.
In addition, I never saw a CS grade without at least one Physics, Operating System, and Compiler course.

Conclusion: you probably study in a shitty university from a third world country.

Kek same situation as him. Our top universities are the only ones offering a kind of good CS curriculum. Still lacks in many areas though; functional programming, Linear algebra, calculus...

How the fuck has nobody mentioned the OSSU self-taught curriculum yet: github.com/ossu/computer-science#summary

This thread seems to be full of faggots bluffing about how you should take 10 subjects per semester when clearly they haven't nor will ever do that themselves. The OSSU program on other hand, contemplates a sensible introduction to computer science and the required mathematics, and after that you're free to delve into whatever you want to specialize in.

>faggots
Why the homophobia?

>Advanced math
>Calculus: Parametric Equations and Polar Coordinates

Attached: hk6mpkwumepwwn17vs67.jpg (800x450, 50K)

>In addition, I never saw a CS grade without at least one Physics, Operating System, and Compiler course.
Why would you need physics in a CS curriculum? It seems quite irrelevant.

But those software engineers are the ones actually doing shit.

this can't be a BS if you aren't even taking calc.

>y do i need to learn things
>i just want muh 100k starting

literally the cancer that killed off cs

Attached: Curriculum 68 Recommendations for academic programs in computer science a report of the ACM curricul (887x1128, 156K)

Attached: Taking_Care_of_myself_hygiene_puberty_personal_curriculum_for_young_people_with_autism_978-1-885477- (605x789, 270K)

Physics 2 is applicable, I can't see where you think that. If physics 3 is not then how are chem1 and bio1 more applicable?

>Berkeley CS does not require an architecture
First, this is false, secondly UCB has two CS programs, B.A. CS and a B.S. Computer Science & Engineering degree. Both require hardware knowledge, especially the CSE degree. The BA is required to take 3 architecture classes.
Sources:
CS degree: eecs.berkeley.edu/resources/undergrads/cs/degree-reqs-lowerdiv
Under EECS look up the CSE option and look at the courses under EECS for a gist of it.

>inb4 CSE is not CS
CSE is considered by everyone to be CS. It's Berkeley's CSE program that is more respected, not their CS one although that one is good enough I guess. If you ask anybody which of Berkeley CS programs is the better one they'll say CSE. CSE is what companies prefer.
People always seem to make this mistake and think a CSE degree is not CS when it is. It's just CS with more EE stuff. And desu, CS BA degrees are worse then their BS counterparts. This is well known.

Also looked up CS at Stanford and they require physics 2 some EE and some architecture
exploredegrees.stanford.edu/schoolofengineering/computerscience/#bachelortext
I've no clue where you're getting this math emphasis from. I better get an apology for being forced to put in effort.

>A CS degree should not be engineering focused, it should be science and math focused
Physics 2 is science and you seem to be against it. It's the engineering aspect that draws people in plus with an engineering focus especially on some architecture it gives people the ability to branch out into other fields such as embedded systems. If you just want to program then fine but if you can't branch out you hurt yourself. A math/science focus is fine but an eng focus is better for many more occasions.

>Even the top 10 schools learn toward math
I already proved this wrong for UCB & Stanford. Prove it for the rest, you won't.

>1st year
basic C programming
OO/data structures/discrete structures
Calculus 1-3
Physics/Chem/Bio
Other GEs

>2nd year
Multivariable calc
Linear algebra and linear analysis
Basic AC/DC circuits
Computer organization (von Newman/ machine code/ assembly programming)
Systems programming
Algorithms
GEs and tech elec

>3rd year
Computer architecture and more assembly programming
Tech electives (lots)
Databses
Security
Networks
SE 1 & 2 (industry tools and practices)
GWR

>4th year
>Programming languages (build interpreter from scratch learn/do it in functional language)
>Compilers
>Theory of computation (automata theory, Turing machine, complexity and reducability)
>Operating systems
>yet even more Tech electives
>Senior proj I and II

This is roughly what it's like in my uni. Lots and lots of tech electives so you'll probably end up taking more advanced databases, security, netoworks, AI, OS, and graphics classes to fill those requirements.

Attached: 1423201356010.jpg (500x377, 191K)

I mean, I understand if physics 2 is in the degree, but it's like calc 2 or calc 3 in a CS degree. I can see its potential uses, but for the most part it isn't applicable. I'm fine with physics 2 I guess. I didn't mean chem1 and bio1 are more applicable, I mean the breadth is more valuable than the extra depth physics 3 would provide. This is debatable.

I assume you go to Berkeley? Where in that link do you see 3 architecture courses? All I see is CS 61C and EE 16B. The CS course is your typica organization course, but with more focus on the CS than the EE. I get the EE 16B, I concede that point.
I did not know the CSE was preferred over the CS degree, that's nice to know. I'm aware BA degrees are worse than BS.

I don't really see what you're trying to point out in the Stanford curriculum. I was fine with physics 2, I'm just iffy about it. Typically universities require two or three natural sciences courses, with many students taking physics 1 and 2. I can see some applicability with physics 2, just not a super ton, as mentioned above. The """EE""" course is just an intro to making. From what it seems, it's a complete joke course "Students build a "useless box" and learn about circuits, feedback, and programming hardware, a light display for your desk and bike and learn about coding, transforms, and LEDs, a solar charger and an EKG machine and learn about power, noise, feedback, more circuits, and safety. And you get to keep the toys you build." The organization course is great. I agree with that. I've already said multiple times a CS degree should require an organization course. However, you should also notice they only require ONE organization course, rather than a digital logic, then organization, then advanced architecture, or whatever that CS curriculum posted earlier in the thread mentioned.

Part 2:

I'll concede the physics 2. I think any CS degree should require some natural sciences courses, but a student shouldn't be forced to take physics 2. It can be applicable depending on where you go within CS, but generally it is not.

>I already proved this wrong for UCB & Stanford. Prove it for the rest, you won't.
I very much enjoy the CMU CS curriculum: csd.cs.cmu.edu/undergraduate/bachelors-curriculum-admitted-2014-2015-2016
If requires you take four science/engineering electives, but doesn't require you to take physics 2; you can if you want though!

>MIT
Requires architecture and one EECS course

>UIUC
physics 1 and 2, architecture course

>Princeton
They don't even require physics or architecture. They focus MUCH more on the CS courses. In fact, it's kind of weird because they require 2 CS theory courses, this is usually a lot more than typical curriculums.

>Georgia Tech
They do require 3 natural sciences, and physics 1 is required, and two of the courses have to be in a 2-part sequence (e.g. Chem1 and Chem2), but physics 2 is not required.
No architecture course required, but they use threads for their system, so some of the threads might require heavy hardware courses. (but not required by degree itself)

>Michigan
I'm not even going to talk about them because I know they are hardware focused. They have like 3 engineering courses, physics 1/2 OR some random chem course. They're weird and atypical.

>Cornell
Architecture course and 3 technical electives (none of them are required to be physics, they can just be generic engineering courses or some econ courses if they wanted)

>UT Austin
Architecture course

>Harvard
Architecture course

>Caltech
One course that is systems and organization oriented, but it's more CS than EE. They require 18 credits in science courses (which may include physics1/2, if you want), and then a 3 semester sequence of a concentration, which may include hardware/architecture courses.

>physics irrelevant to computer science
jesus christ
J E S U S C H R I S T

Found the engineering major
Tell me an application outside of robotics and low level hardware.

I had to take : chemistry 1 and 2

organic chemistry

biology 1

physics 1, 2 and 3

calc 1, 2

linear algebra

statistics and probability

and discret mathematics

BEFORE even going into uni. I haven't even started my computer science program yet.

this is the quebec for you

Attached: 1515852004667.jpg (900x1200, 181K)

that is the most pajeet curriculum i've seen in my life
throw in algorithms, architecture, and compilers then you get a solid software engineering curriculum tho

Half this shit has nothing to do with computer science.

welcome to american university
that looks like a math major with a CS minor honestly though

I feel bad for you. That's something I would expect from John Hopkins or something.

Where everything is applied practice in groups.

Fuck taking 11 weeks for the equivalent of an online Java tutorial.

Fuck the maths too, it's applied maths in programming and circuits.
Fuck the whole CompSci curriculum.

>with a CS minor
It has more CS courses than most CS programs require.

and then they wonder why we have more drop outs than other countries.

but what can I say, I'm a computer science brainlet and I don't know real science

knowing Fourier transforms and diffusion shit was pretty useful for image analysis

You can learn fourier transforms in a differential equation course. I don't know what diffusion is, but I assume you can learn it in a signal processing course if it's useful for image analysis.