What are the signs of a good computer science program? What are the signs of a bad one...

What are the signs of a good computer science program? What are the signs of a bad one? How can somebody who has to go to a meh school distinguish themselves?

Other urls found in this thread:

ezyang.com/
mjbshaw.com/
twitter.com/SFWRedditGifs

>What are the signs of a good computer science program?
It's written in C.

>What are the signs of a bad one?
It's not written in C.

By program I mean curriculum

Their intro course uses SICP.

They teach C in a majority of their classes

I would argue that they use C for most of them. The intro to CS should be haskell/lisp. Same to program calculus. Then a single class in something like java to show the crappy OOP stuff.
In pararel computing it should be all C or half C half Erlang. C for shared memory (and intro to distributed memory with MPI), Erlang for the new age of immutable state and distributed systems.

the crappy OOP stuff is how most people will make ends meet after graduating. It better be taught properly.

>distributed memory with MPI
When will this meme end? PGAS is a joke.

A good computer science program teaches theoretical computer science over programming.

i hated using java, i dont know why he tried to teach heavy recursion and algos in java, would anyone care to defend this?

>this is what brainlets believe to be proper cs education
lmao

I mean, if you want to stay a virgin who makes 60k max and smugly boasts about it on Sup Forums, sure

But anyone in the real world will tell you that one or two theory classes is okay, but the vast majority of classes should be with real world programming

>What are the signs of a good computer science program?
It's taught at a top 10-on-Eurasia or North America university.

> How can somebody who has to go to a meh school distinguish themselves?
Do noteworthy enough projects on your own or contribute a bunch of good stuff to open sauce.

You won't get world famous, but companies should like to hire people who can get shit done.

>I would argue that they use C for most of them. The intro to CS should be haskell/lisp. Same to program calculus. Then a single class in something like java to show the crappy OOP stuff.
>In pararel computing it should be all C or half C half Erlang. C for shared memory (and intro to distributed memory with MPI), Erlang for the new age of immutable state and distributed systems.

Real world parallel / distributed computing is often if not mostly Java.

Then don't ruin the actual computer science classes with webshit. Call it software engineering or something.

This is my third world shithole University, how does it stack up?

A University is not a trade school.
It should teach fundamentals, and do a great job at it. Not teach tools you will use at a job.

I don't know, it's not /computer science/ but rather a mix of a lot of things. But I don't think the courses are bad, I just think computer science should be kept computer science.

The amount of theoretical courses required in the program. For example, stochastic processes, graph theory and (mathematical) optimization (such as operational research) are good, while "programming in C++, programming in java and programming in python" are the signs of a garbage program.

This is above average, more on the good side than the bad. Seems like it's a kind of hybrid between """software engineering""" and computer science. Would try to find something better if CS is what interests you.

>my college used to teach C
>they transitioned to C++ sometime in the 2000s
>as of last year the base the curriculum off java
>every new CS student learns java and has no idea what good programming practices are and just lets their compiler autofill half their code full of 'magic'

Good
High level math based proof
Bad
Low math based on repetitive calculus.

recursion looks cool

My college was doing java for years, and 2 years ago they switch to fucking javascript.

>How can somebody who has to go to a meh school distinguish themselves?

Work on your own project and do internships.
any shaved monkey can get a CS degree these days. You have to work hard to seperate yourself from the retards.

Just finished my first semester of CS. We used Python but in all reality the class is just there to weed out anyone who can't use a computer. Next semester we move onto c/c++ and have a data structures class

>(((languages)))
Garbage program.

Well most of the classes are theory based and you just have to apply it using some language. In the end they don't care which one

My college used to teach C, C++ and a little bit of webshit (because muh IoT), it was an mostly an low-level driven curriculum (lots of course of electronic engineering courses, etc.)

Now the curriculum hasn't really changed except the programming classes : C# instead of C and Java instead of C++.

Right. If your program even mentions a "computer" and doesn't do its entire curriculum in set theory abstractions its garbage pajeet level shit

This.

All CS curriculum should be done with stack diagrams and tree graphs on whiteboards, languages are the work of the devil. Getting hired is for indians

Despite what autists like to say, the average salary of a graduate.

So coding bootcamps are better than university at this point

>Work on your own project and do internships.
Your own projects...everyone says that. What does it even mean, does the Super Pacman game I made count as a project? What are some examples?

Portfolio versus resume
Having emerged from engineering and mathematics, computer science programs take a resume-based approach to hiring off their graduates.

A resume says nothing of a programmer's ability.

Every computer science major should build a portfolio.

A portfolio could be as simple as a personal blog, with a post for each project or accomplishment. A better portfolio would include per-project pages, and publicly browsable code (hosted perhaps on github or Google code).

Contributions to open source should be linked and documented.

A code portfolio allows employers to directly judge ability.

GPAs and resumes do not.

Professors should design course projects to impress on portfolios, and students, at the conclusion of each course, should take time to update them.

Examples
ezyang.com/
mjbshaw.com/
matt.might.net/articles/what-cs-majors-should-know/

Honestly, just upload everything you work on to github. Yes, the superpacman game you made counts as a project.

However, always be working up.

If you don't know its too late

Reminder that SICP only exists so autists can say that they've read it

>What are the signs of a good computer science program?
The one I'm involved in.

>What are the signs of a bad one?
I'm not involved in those

>How can somebody who has to go to a meh school distinguish themselves?
You don't.

I think you need a mix of both, a lot of CS people at my uni cant even program because of all the theoretical fluff they have to focus on.

I'm a hiring manager. I would rather hire someone from western florida university who has actually put out code than someone from a top program who only knows enough python to do a for loop, which is like 50% of graduates.

You should be fired then.

Crymoar 40kbabby

This right here. The fact that it is treated as a trade school is an insult to higher education. You're supposed to come out with the ability to teach yourself what you need to know for your future employment, as needed; to be an independent thinker and learner.

For me, the biggest redflag is how much math it's on the program.

If the program doesn't include any group theory, that's a problem.

Thats retarded, even MIT doesn't encourage group theory

Look for ABET accreditation. They do accredit CS programs. Though the requirements are not as tough as they are for the ABET engineering accredation, they do include a few things that shit schools like to exclude from there programs to make them easier.

>What are the signs of a good computer science program?
Undergrad contains all of these (mandatory): analysis, linear algebra, model theory, topology, measure theory, formal verification. Electives: a course focused on rings and modules or group theory (emphasizes lattices), a course on homological algebra, a course on number theory (both analytical and algebraic).
In other words: if it looks like applied math program, it is good CS program
>What are the signs of a bad one?
No analysis, only calc.
No variety of math-focused electives.
Any mandatory hardware-focused course beyond the usual intro.
Contains courses that focus on any specific technology (exceptions: course on C or C++).