Ok. In this thread we talk about the ideal CS program. Since everyone is very critical about CS. It might be more productive to identify what it is that can be taught to them that would make you respect their workload?
>>7756609
A good CS major should look like this
>Required
Programming
Data Structures
Algorithms
Digital Logic
Computer Architecture
Programming Paradigms
Operating Systems Theory
Advanced System and Network Programming
Programming Languages and Compilers
Theory of Computation
Professionalism, Ethics, Risk-Assessment and Legalities
Personal Grooming and Hygiene (Seminar)
Technical Writing
Linear Algebra
Vector Calculus
Ordinary Differential Equations
Probability
Statistics
Proofs and Abstract Mathematics
Combinatorics and Graph Theory
Numerical Analysis
Modern Geometries (Differential, Affine, Projective, etc)
Abstract Algebra
>Elective Groups (Must pick one course from 10 groups and do at least 13 courses)
>A
Provable Security
Mathematical Cryptography
Cryptographic Implementation and Network Security
>B
Kernel and Driver Development
Compiler Implementation
Malware Analysis and Reverse Engineering
>C
Image Processing
Computer Graphics
Computer Vision
>D
Artificial Intelligence
Natural Language Processing
Pattern Recognition and Data Mining
>E
Combinatorial Optimization and Network Flows
Approximation Algorithms
Linear Programming
>F
Communication Theory
Digital Signal Processing
Information Theory and Coding Theory
>G
Control Theory
Computational Modelling and Simulation
Dynamical Systems Theory
>H
Advanced Complexity Theory
Quantum Computing
Mathematical Logic
>I
Databases
Distributed Systems
Networks
>J
Software "Engineering"
Economics
Mathematical Finance
Co-Op
>K
One year sequence of science courses
Circuits and Microelectronics
>L
2 advanced math courses not overlapping with the above
>>7756609
Just abolish CS as a major, and instead make it a specialization within either maths or physics, for students who have taken all the basic courses.
>>7756626
All those classes are great and all, but there is a finite amount of time one can spend in school. You can't cover all the math topics you listed, only around half of them and slightly touch on the others. It would be a 5-6 year degree for an undergraduate if you followed your requirements.
>>7756626
inb4 dumb CS major, I am taking Computer Networks, Operating Systems, Analysis of Algorithms next semeter
>>7756626
>this fag posting his stupid list again
You're not funny. Stop posting.
>>7756626
>No personal hygiene and grooming seminar
Immediately dropped desu senpai baka
>>7756644
It's a typical engineer's workload.
34 courses * 3 credits each = 102 credits out of the normal ~123 required credits for graduation. This leaves 21 credits or 7 courses for humanities/general electives. Also, 123 credits divided by 8 semesters is only 15.4 credits/semester aka a normal course load for any non-slacker.
>>7756649
>No personal hygiene and grooming seminar
look closer:
>Professionalism, Ethics, Risk-Assessment and Legalities
>Personal Grooming and Hygiene (Seminar)
>Technical Writing
ITT
>people too retarded to get into computer engineering
>>7756609
Mathematical logic
Functional programming (with an intro to dependant types)
Axiomatic Set Theory
Type theory
Computability theory, two semesters (recursive function theory and formal languages)
Complexity theory, two semesters (algorithms, analysis, and so on)
Proof theory and model theory
Pre-Category theory (basic overview of mathematical and computer science concepts that will be used as the basis for examples in category theory)
Category theory
Homotopy type theory
Electives include
Theorem provers
Program correctness proving
Compiler design and implementation
Computer architecture
Digital logic design
Enterprise database design and implementation (maybe with a second semester with a project on stuff like PL/SQL, NoSQL techniques like Hadoop, or big data languages)
Artificial intelligence (general AI techniques)
Machine learning (specifically ML)
and probably some OOP class but that should really be in the software engineering department.
>>7756673
No linear algebra or graph theory?
>>7756633
>make it a specialization
Nah, make it a minor for students majoring in math, the mathematical sciences, or engineering to add onto but not replace their coursework.
>>7756673
>oh look, a Wikipedia scholar
>>7756674
>>7756681
You're right. They should take the intro discrete math course from the math department. Before the logic course. An actual graph theory course often has a bunch of stuff about generating functions and graph coloring theorems (at least at my uni) that aren't really useful to comp sci. Maybe a discrete geometry/algorithms course would be a fun elective we don't have any at my university by I've seen textbooks like that.
As far as linear algebra, that should maybe be part of the general math requirements. I'm a pure math/comp sci double major but honestly I've only found linear algebra useful for writing vectorized code, machine learning, and doing circuit analysis (and the last one isn't even comp sci). I imagine it's more useful for students doing graphics stuff but is that even comp sci(seems like software engineering to me)?
>>7756681
I'm a double major in pure math and comp sci. These have been the topics I've found most important, useful, and interesting in my program. OP asked for our ideal program.
There's extra stuff not listed because it's in the (publicly available) Oregon programming language summer school and that's really where it belongs.
>>7756609
I think people critical of CS are just booty blasted mathfags who feel like they aren't earning enough for the hard work they put into their degree or just people who came into contact with creepy and retarded neckbeards doing CS from a shitty college who probably would've dropped out midway because they couldn't pass algorithms and theory of computation.
>>7756672
>Doing a harder major just to end up with the same job is a good idea
Good one anon
>>7757019
>from a shitty college
Every college has a shitty CS program
>couldn't pass algorithms and theory of computation
A monkey could pass those courses
>>7757030
>implying anyone will hire a CS major in 2016 and beyond
Enjoy flipping burgers with your unstimulating degree
>>7757035
/fit/ isn't anti intellectual you neckbeard
>>7757031
not as easy as "muh theorems" tier analysis, plug&chug engineering courses, and every natural science course
>>7757048
>if i say it enough maybe it will come true
>>7757113
http://blog.codinghorror.com/why-cant-programmers-program/
http://www.wsj.com/articles/why-im-not-looking-to-hire-computer-science-majors-1440804753
http://www.businessinsider.com/the-10-most-useless-graduate-degrees-2015-2?op=1
http://developers.slashdot.org/story/12/09/12/0048209/is-a-computer-science-degree-worth-getting-anymore
Mathfags are the worst