Live data from Hacker News

Ask HN: What's missing in a CS degree?

news.ycombinator.com

51–60 of 64 posts

Re: Ask HN: What's missing in a CS degree?

#51

USER INTERFACE DESIGN Most cs students graduate without experience making products that normal (non cs) people can use. That's a shame, especially when you consider that some killer products (iPod, Basecamp) have largely been successful due to user interfaces.

UI Design has more to do with Industrial Design and less with Computer Science.

In other words: UI Design is to Computer Science what Industrial Design is to Physics. In that respect, they should bring more programming to the "art" programs (especially digital art), and less art to the computer science programs:

You don't really need to know the nitty gritty of hash tables, the difference between bubble sort and quicksort, how to implement Djikstra's Algorithm or how to build a blazing fast trie to build a beautiful+easy+informative interface to complicated software.

(You may, however, at some point, need to hand off your completed work to someone who does - depending on the platform)

Re: Ask HN: What's missing in a CS degree?

#52
post #46
post #41

Earlier quoted context omitted.

>CP(rogramming) It's called "Software Engineering" and some schools (like RIT) already have separate degrees for it.

Yeah, I should have assumed there'd be degrees available in Software Engineering. But "Software Engineering" is such a misnomer. [rant on how we don't know how to "engineer" software]. My "Software Engineering" courses were straight up awful . The degree I'm imagining would focus on the way software actually gets written -- the wrestling with problems and the straining toward creative insight. And you'd do a fuck-ton…

> wrestling with problems and the straining toward creative insight

That sounds like engineering to me -- when it is based on some determinate material with at least a few known logical principles -- which software is.

Re: Ask HN: What's missing in a CS degree?

#53
post #52
post #46

Earlier quoted context omitted.

Yeah, I should have assumed there'd be degrees available in Software Engineering. But "Software Engineering" is such a misnomer. [rant on how we don't know how to "engineer" software]. My "Software Engineering" courses were straight up awful . The degree I'm imagining would focus on the way software actually gets written -- the wrestling with problems and the straining toward creative insight. And you'd do a fuck-ton…

> wrestling with problems and the straining toward creative insight That sounds like engineering to me -- when it is based on some determinate material with at least a few known logical principles -- which software is.

Engineering aggregates known solutions to solve specific problems. Science clarifies questions worth asking.

There is a difference.

Re: Ask HN: What's missing in a CS degree?

#54
post #3

A nice start would be actually teaching Computer Science . Computer Science is a branch of mathematics, with both theoretical and applied aspects. This does not mean that learning Java syntax constitutes as "applied". I think it should be expected that CS students pick up languages on their own in order to complete and understand theory-based assignments. Anything else is probably just pandering to people who shouldn…

Strongly agreed. In some senses, the intermingling of science/engineering is/was due to strong economic forces that placed such a high value on software engineering. As of 10 years ago, the world needed more software engineers than it had; today this is questionable.

I think the field would be better off if it recontextualized itself as a form of applied mathematics, with computational complexity at its core. Mathematicians are used to being the weirdos, and have far more experience escaping the whims of industry.

Re: Ask HN: What's missing in a CS degree?

#55

Earlier quoted context omitted.

I think I did, hmm, three labs like this? None of them produced anything close to a real software product. The devil is in the details! Stuff you think isn't a big deal As an undergrad CS student might well be a freaking big deal ! Example: in my current project, we've found that in the new system version, the vendor's "type and the list selects the matching prefix" functionality kinda works, but slowly. (As in, over…

Interesting. I'm nearly ready to graduate from Portland State University and I know, beyond a doubt, that had I turned in a project with a flaw that glaring I would have failed the project, for "general unsuitability". Different schools, different methods, I suppose.

had I turned in a project with a flaw that glaring I would have failed the project, for "general unsuitability"

I think you miss my point. The problem is over perception of what is "a flaw that glaring." This differs in academic culture and business culture. As you point out, it can even vary from school to school or company to company.

I think you aren't being entirely self-honest about what is glaringly "obvious." My point is actually that what is "glaringly obvious" in one context to one set of people isn't at all so to another set of people in a different context. Awareness of this should not only be taught in some sort of course but also adopted as a core ability for those in the software field. It's pretty fundamental to a whole host of sticky problems we all face with regard to understanding requirements, design, documentation, and fixing bugs.

Re: Ask HN: What's missing in a CS degree?

#56
I went to a school (Georgia Tech) where the CS degree is made up of a core and several specializations which actually let you have a huge swath of classes relevant to what you want to do. I had only 2 "math type" CS courses (within the college, I additionally had Combinatorics and "Calculus 3 for CS" which was basically matrix math methods, but they we taught by the actual math department).

I do think this approach where there are lots of specialties (Software Engineering, Game Prgramming, Systems Programming, etc) allows people to get experience and training relevant to where they're going in life.

All that said: I really really really want to see realistic mentored debugging go on in a CS program. I want to see 2 students and one experienced adult, sit down and learn next to someone the ins and out of all the modern debugging techniques (debuggers, binary search, profilers, memory leak detectors, etc). None of the classes had anything like that, and that was the biggest thing missing that comes to mind.

The second biggest thing is realistic estimation methods! Until I read a book on it and practiced a lot, I was horrible at it. Very little was taught on actual methods to make useful estimations.

(Here is a non-aff link to the book who's material I'd like to see covered in a college CS curriculum): http://www.amazon.com/Software-Estimation-Demystifying-Pract...

Re: Ask HN: What's missing in a CS degree?

#57
post #42

I suspect a lot of CS departments don't encourage/teach teamwork. I majored in CS at Georgetown and never wrote code with a partner. Then I spent two years at Stanford doing a MSCS and did group work in very nearly every class...which was extremely valuable. So, my advice: Learn to write code in a team.

At my Uni (Australian) it seems I never get to work alone, more than half (maybe 4/5ths?) of all my work has been completed in groups. I have definitely been developing my teamwork muscles for the last two years. Although looking over past material it seem like this has all been a recent development for my department.

Re: Ask HN: What's missing in a CS degree?

#58
post #54
post #3

A nice start would be actually teaching Computer Science . Computer Science is a branch of mathematics, with both theoretical and applied aspects. This does not mean that learning Java syntax constitutes as "applied". I think it should be expected that CS students pick up languages on their own in order to complete and understand theory-based assignments. Anything else is probably just pandering to people who shouldn…

Strongly agreed. In some senses, the intermingling of science/engineering is/was due to strong economic forces that placed such a high value on software engineering. As of 10 years ago, the world needed more software engineers than it had; today this is questionable. I think the field would be better off if it recontextualized itself as a form of applied mathematics, with computational complexity at its core. Mathema…

"As of 10 years ago, the world needed more software engineers than it had; today this is questionable." My perception is that a lot of software engineers are needed. At least they are needed more(in numbers) than computer scientists.

Re: Ask HN: What's missing in a CS degree?

#59
post #58
post #54

Earlier quoted context omitted.

Strongly agreed. In some senses, the intermingling of science/engineering is/was due to strong economic forces that placed such a high value on software engineering. As of 10 years ago, the world needed more software engineers than it had; today this is questionable. I think the field would be better off if it recontextualized itself as a form of applied mathematics, with computational complexity at its core. Mathema…

"As of 10 years ago, the world needed more software engineers than it had; today this is questionable." My perception is that a lot of software engineers are needed. At least they are needed more(in numbers) than computer scientists.

Yes: economically we also need ditch diggers in more numbers than classic literature experts. That doesn't make society better off if all the top universities start funneling money into ditch digging just because they can get away with it.

Note: I have a lot of respect for software engineering, just making a point with an extreme.

Re: Ask HN: What's missing in a CS degree?

#60
post #52
post #46

Earlier quoted context omitted.

Yeah, I should have assumed there'd be degrees available in Software Engineering. But "Software Engineering" is such a misnomer. [rant on how we don't know how to "engineer" software]. My "Software Engineering" courses were straight up awful . The degree I'm imagining would focus on the way software actually gets written -- the wrestling with problems and the straining toward creative insight. And you'd do a fuck-ton…

> wrestling with problems and the straining toward creative insight That sounds like engineering to me -- when it is based on some determinate material with at least a few known logical principles -- which software is.

I'll just quote pg from "Hackers and Painters"[1], because he said it better than I can:

> I've never liked the term 'computer science.' The main reason I don't like it is that there's no such thing. Computer science is a grab bag of tenuously related areas thrown together by an accident of history, like Yugoslavia. At one end you have people who are really mathematicians, but call what they're doing computer science so they can get DARPA grants. In the middle you have people working on something like the natural history of computers-- studying the behavior of algorithms for routing data through networks, for example. And then at the other extreme you have the hackers, who are trying to write interesting software, and for whom computers are just a medium of expression, as concrete is for architects or paint for painters. It's as if mathematicians, physicists, and architects all had to be in the same department.

> Sometimes what the hackers do is called 'software engineering,' but this term is just as misleading. Good software designers are no more engineers than architects are. The border between architecture and engineering is not sharply defined, but it's there. It falls between what and how: architects decide what to do, and engineers figure out how to do it.

I guess what I'd like to see exist is a "Programming Arts" degree. Or just a "Hacking" degree.

[1] http://www.paulgraham.com/hp.html

Post reply on HN