Live data from Hacker News

Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

codemanship.co.uk

91–100 of 205 posts

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#91
post #89

Earlier quoted context omitted.

I have always considered computer science to be information science and be a part of mathematics and not a separate science. But then again, as a physicist i might be wrong. It's not meant to be diminutive at all (i am after all a programmer) but i consider programming to be a tool, like maths (and consider the two to be inseparable).

I have always considered mathematics to be a part of philosophy and not a separate science.

It's all down to definitions.

You could argue that mathematics is philosophy done right: With rigour.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#92
post #55
post #46

Earlier quoted context omitted.

I can't talk for the parent, but one significant way I expect people with formal training and people without it to differ is in how the knowledge of data structures and algorithms affects their work. If you stumble upon a problem that cries for a trie or a splay tree and you don't know they exist, you'll have a very difficult time solving the problem with adequate performance. If you are lucky and dedicated and talen…

Studying a good book on data structures would probably cover about 80% of what a practicing programmer really "needs" from a CS degree.

More than studying, learning a good book on data structures. That, and the intractable quality about learning to design systems and how invariants are involved in the design jerf talked about up there.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#93
post #79
post #54

Earlier quoted context omitted.

> Music is an artistic expression, while computer software isn't. Unless it is? The sentiment that the pursuit has to be entirely about doing a job or providing utility is frighteningly inhuman. I need to go for a walk after reading that. Or maybe watch some demoscene.

The demoscene is artistic expression, but only the output, not the software itself (it can be, but it isn't a precondition).

Would you not agree that trying to rein-in the universal definition of art is completely futile?

We could dubiously cast an eye to instrumental music vs. singing. After all, the former can only be expressed indirectly via a contraption.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#94
post #17

Earlier quoted context omitted.

That's preposterous. Computer science is directly applicable to understanding issues of scalability, searching, hashing, database properties, network routes and looping, the list goes on and on. Computer science is a lot more than proofs.

None of those things deal with maintainability, design by contract, interface design, etc. When you're writing a multi-million dollar piece of software (20+ man-years), the technical problems are the easy ones to solve. Actually putting the thing together is the hard part.

Well said. Computer Engineering is a lot more than programming languages. But does it take a college education to get there? Or a seminar on the latest tool chain.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#95
#1 (My Ad-Hominem Attack) Who is this guy? Why does he go on to trash comp sci if he never studied it?

#2 "Of all the mathematical sciences, computer science is unquestionably the dullest. If I had my time again, despite discovering just how much I love writing software, I still wouldn't study computer science."

I stopped reading after this point. Why does he state as a matter-of-fact that computer science is unquestionably the dullest? It's actually quite captivating and quite profound. Cryptography, machine learning, computability theory - all leading ultimately to the question of what, exactly, is knowledge and what can we know.

I can't stand the broader attitude of this, which essentially boils down to "I'm a hotshot programmer therefore anything academic or computer-sciencey is stupid". A lot of people in general could be a little more humble and recognize the fact there's a lot of things that they don't know they don't know.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#96
To a computer scientist, programming is merely a tool to help bring their computer science ideas to life. Writing a bunch of APIs and calling them will only take you so far. After a certain point, theory will prevail because math (computer science is applied math) is the truth. Also the "computer programming" major is called Infoscience majors at the top engineering schools, those students are laughed at, you don't have to be smart to grind through those classes ie you don't build mental toughness towards theories.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#97
post #63

Earlier quoted context omitted.

Of course, but part of the benefit from studying CS is that you'll be able to recognize intuitively when there is or there should be a better solution. Let's say you want a data structure that performs three operations. Insert, Delete, and Find (as in, 'is this in the database?'). The intuitive sense may come from saying, "Linked-Lists would be horrible for this! Each operation would be slow." (O(n)) The practiced pr…

"Take the most significant part, rip off the constants, and that's its growth rate." Well, it's an upper bound on its growth rate. And only after some possibly-gigantic n.

Yeah I understand. I was describing how I did it in Algebra II. They would give up f(n) = 5x^3 +4x + 8 and we would know that it was O(x^3).

We also understood that it was as n -> infinity, hence why f(n) = 2x^4 would have a larger growth rate than g(n) = x^2 + 5000. When you're talking about scalability when programming, you're going to have to understand big-O, how constant factors come into play (why Floyd-Warshall at O(n^3) is often better in practice), and how big-\Theta works. If not, you're eventually going to make a mistake and slow everything down.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#98
post #73

Earlier quoted context omitted.

A CS person can easily learn programming This is not true, if you've ever seen academic code...

Academics are notorious for their code, but I suspect the parent was talking about people in industry with a CS background.

It would be like saying an Art History major could "easily" learn to paint. The skills just aren't transferable.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#99
post #70

Earlier quoted context omitted.

Very, very insightful post. Thank you! To add a little personal bit, I use Haskell daily in my research. I also do web programming on the side in Rails. After figuring out Haskell, and then learning idiomatic Haskell (along with monads, monoids, functors and friends) my way of writing Ruby became much different. I'm more cognizant of patterns in Ruby as they relate to Haskell (as they relate to formalisms in computat…

I would add that part of the reason I think Haskell has supplanted Lisp is that so many of the concepts of Lisp have been absorbed into mainstream languages that the distinctiveness is greatly reduced. Macros are still mindblowing, but much less so if you've used Ruby or Python or Perl than if you're a pure C programmer. In 20 years, I suspect modern Haskell will be "less mindblowing" for the same reason. It's not th…

Macros are still mindblowing, but much less so if you've used Ruby or Python or Perl than if you're a pure C programmer.

I disagree with this statement. Python's introspection, first-class functions, magic methods, and duck-typing add a lot of the dynamism of Lisp, but every time you run up against something that needs to be a macro, it's a dead end. C has a rudimentary macro system that can get you a little past that point; for example, it's not too difficult to add a foreach construct to C that looks like this:

    queue *q = queue_new();
    queue_add(q, 1);
    /* ... */
    foreach (int i, q) {
        printf("%z\n", i);
    }
On a sidenote, it's kind of sad that a programming layer just above assembly language created 4 decades ago has better macro support than some of the most popular modern languages.

Re: Let's Not Call It "Computer Science" If We Really Mean "Computer Programming"

#100
post #95

#1 (My Ad-Hominem Attack) Who is this guy? Why does he go on to trash comp sci if he never studied it? #2 "Of all the mathematical sciences, computer science is unquestionably the dullest. If I had my time again, despite discovering just how much I love writing software, I still wouldn't study computer science." I stopped reading after this point. Why does he state as a matter-of-fact that computer science is unquest…

Starting with your ad hominem, I think you took exactly the wrong things away from this article. Regardless of his writing style, his points are dead-on:

1. Computer science doesn't teach programming (with the corollary that computer scientists specifically don't want to teach programming).

2. Most people going into computer science want to learn programming.

3. Many people get fed up with the rigors of computer science (because they recognize it isn't teaching them programming) and move on to other pastures instead.

I've always believed that there should be a "Software Engineering" curriculum in the engineering department and a "Computer Science" curriculum in the math department. That we blur the lines hurts both fields, as programming students demand more programming in CS, at the expense of the underlying theory; and math students demand more theory, at the expense of being able to actually code up a solution.

At the end of it all, though, there is a strong value for some computer science in all programmers. It is amazing how often solutions get re-invented, though it happens far less now with the combination of open source and Google.

Post reply on HN