This is really confusing. How do you graduate as a computer science major and lack technical training? And if that's the case, how does such a faculty remain in business?
This is really confusing. How do you graduate as a computer science major and lack technical training? And if that's the case, how does such a faculty remain in business?
Among CS-major seniors who are in the top half of the class, none that I talked to knew what software version control was, what git or Perforce or cvs etc. were.
The faculty is good. Almost all of them knew their stuff, and a few were very good at explaining things clearly.
The kids just didn't seem to have much interest in doing computer stuff outside of class. You'd think at least once in four years they'd browse Github bug reports, do a patch and send a pull request. They don't though. The ACM computer club on campus was always a little derelict and is now pretty much inactive.
A lot of kids have vague ideas about building video games, but then take a graphics course which uses matrix math to calculate transformations, formulas to calculate Phong shading and so forth. After doing that they lose interest.
They do get training - the theoretical stuff is taught beautifully. We also did a lot of Java and C++, as well as some Python, Common Lisp, Prolog etc. As well as learning about DBMSs and the various normal forms, or how the fetch/execute cycle works etc. and all of that.
I don't know how to explain the problem other than that students did the work for a grade and that was it. They had no interest in programming outside of class work. One reason I did extra work was just to feel I could apply things. I learned Java, and then fixed some open source Java bugs, and then wrote a 1000+ line program in order to get a grip on what I learned. Otherwise it would be free floating theory about inheritance, polymorphism, objects etc. The same with graphics - I did some OpenGL work to ground what I learned in class.
Some kids did not even really seem to care about learning what was needed for class or getting a decent grade. I don't know why they're even bothering. I can see slogging through required general classes, but slogging through your major?
I personally think that's a shame, but on the other hand, I'd rather it be CS than, say, Actuarial Science. If you love food, for example, I bet there are jobs that tie CS and food together. Same for finance, etc.
I recently read Marilla D. Svinicki's Learning and Motivation in the Postsecondary Classroom; I'd recommend you borrow a copy from your local university library if they have one. I think there's a lot that instructors can do to make class more interesting for students and also have them learn more in the end. Though juggling that and research is a challenge in and of itself.
It's probably been like this since the dot-com era and the mediocrity has only snowballed since. The state of the software industry and the educational institutions around it is an embarrassment. If the curriculum was any good, these minimum-effort clowns would not be able to earn a degree in Computer Science.
I know, right? I forgot that we who check HN habitually are the ones destined for developer Valhalla. Go us!
On the other hand, at Columbia most freshmen come in not knowing anyone and have no option but to go out and meet other students, join clubs and get involved in their departments. Now you have a bunch of brilliant CS majors, some of whom have been programming since the age of 5, spending most of their time together and learning from each other. The ones who are not up to speed usually catch up in a semester or 2. I've seen plenty of new student come into the Fall hackNY not knowing what Git is and then using node.js and angular few months later at the Spring hackathon.
I'd bet most CS students at Queens College, like a good portion of incoming freshmen at Columbia, don't even know what a hackathon is. There's no ADI at QC, no workshops, no info sessions from top companies, no hackathons and in most cases not even research positions.
How many CS majors at more prestigious schools learn iOS or Ruby on Rails through their classes? I think they usually learn on their own or through internships.
And you can bet your ass they know what "version control" is and can pick up some flavor of the month framework without someone needing to hold their hands.
And then the other half tell me that there are CS grads who can't write simple loops. You simply can't do the former if you aren't capable of the latter.
As someone who did not go to college, I sure wish I knew which was really the case. Either one side is lying, or there is absolutely extreme variance between college CS courses. As in several orders of magnitude.
Any CS degree from a college that would pass a student incapable of passing fizz buzz should be absolutely worthless.
I have a friend currently finishing up his third year for his CS degree. I've tried helping him for the entire time, but he really just doesn't give a damn enough to actually learn. He somehow passes all of the tests, but I know for a fact he could not pass FizzBuzz right now. I know. I've given it to him and watched him completely fail to even decompose the problem let alone start working on a solution.
As long as those who can't program memorize the terms needed for the tests (no actual programming on tests) they will graduate.
Also, they give you choices for some classes. For instance, you can do a Senior Project or internship. The internship is 100h, for most students this can be done in 3 weeks during may-mester. Someone I know is currently doing their internship at a hospital fixing laptops. The Senior project usually takes 2 semesters. The Senior projects vary from a website to client/server app to robotics.
Those who do senior projects are also encouraged to do internships during the summer as it is a good way to network (although no school credit is given).
The result was seniors who don't know about inheritance. The only thing they know is "public void someName()". But, because they don't have good OO practices, it ends up just being 1 program with everything in the main method.
These are the students who don't have technical training. Many came in because "Computers are the future.", "I have a friend making good money doing this.", and "everything is already written I just need to google."