Live data from Hacker News

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

codemanship.co.uk

151–160 of 205 posts

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

#151
post #88

So, I agree with this article in spirit. Lots of programmers could've benefitted from a more programming centric approach rather than a CS approach. However, this bit gave me pause. " I cannot tell the difference by watching them develop software." I can't disagree with this more. While this may be true of students who were middle of the road students in CS programs. I can't definitely tell the difference between peo…

Same here. I think the idea of a BSc in Software Development is excellent, and I think some colleges are starting to think along those lines. For instance, the SaaS class from Berkeley on Coursera would have been far more useful to me than the circuit design and formal theory classes I had to take. However. There is definitely something to be said for SOME kind of structured education for developers. The author's ane…

For what it's worth, Wozniak actually did EECS at Berkeley ;).

In regards to the SaaS class: I know a bunch of people who took it before it was offered online. Perhaps surprisingly, most of them did not find it useful. The issue is that they picked up everything taught there either on their own or in internships; they really didn't need to waste a whole course on it. That said, the particular people I talked to are some of the better EECS majors who tend to have significant projects of their own and good internships, so there is certainly some bias.

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

#152

Earlier quoted context omitted.

> I was personally not cut out to do scut work. I had zero interest and respect for maintenance, unit tests, requirements & specs, UML modelling, refactoring, waterfall method, agile, kanban... The world in which this is "scut work" is not the world I want to live in. Let's be honest. You don't want to do practical, you'd rather do theoretical, and that's fine. However, don't disrespect practical just because it isn'…

Are you saying people who do theoretical work don't don't it in practical ways? As an example, take Google's self-driving cars. Would you say the meat of their body of work theoretical? But would say the code they (Sebastian Thrun himself, and others involved in the project) write code that's not very practical, readable, maintainable or without tests? I would say what they do is theoretical work. And they write prac…

> As an example, take Google's self-driving cars. Would you say the meat of their body of work theoretical?

No.

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

#153

Earlier quoted context omitted.

> I was personally not cut out to do scut work. I had zero interest and respect for maintenance, unit tests, requirements & specs, UML modelling, refactoring, waterfall method, agile, kanban... The world in which this is "scut work" is not the world I want to live in. Let's be honest. You don't want to do practical, you'd rather do theoretical, and that's fine. However, don't disrespect practical just because it isn'…

I have to disagree with you. Software engineering 'ideas' regarding modeling and testing have gone way overboard. I have a feeling that that all those who peddle fancy buzzwords such as agile and kanban are either MBA graduates with no real engineering background or failed engineers trying to reinvent their career.

> Software engineering 'ideas' regarding modeling and testing have gone way overboard.

Maybe, but he also said specs and maintenance.

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

#154
post #70

Earlier quoted context omitted.

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 tha…

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.

I disagree. In Python, you have much more advanced metaprogramming facilities, depending on what kind of effort you wish to go to. You have the normal introspection, magic methods and metaclasses as you mentioned (which, IMHO, are in themselves already much more powerful than what you can do with the C preprocessor). But you also have access to exec and eval which lets you do all kinds of crazy stuff that isn't possible with C macros. Using operator overloading and classes, you can even create a lot of new syntax which isn't possible in C[1].

Finally, if you are really determined, you can even hack semantics of existing Python constructs by instrumenting the bytecode. For example, I saw a hack which adds tail-call optimization to Python functions this way (iirc as a decorator).

[1] One example is python-pipeline: http://code.google.com/p/python-pipeline/

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

#155
post #43
post #26

It's worth noting that a sharp high schooler can learn to program - many do. It's a rare, rare high schooler that can learn how to use computer science. Most CS grads don't. And we wonder sometimes why our software is so cruddy.

Well, a sharp primary schooler can too... Bah, my first CS teacher claims now that it's crucial to start in primary school if you care about getting anywhere in IOI.

I don't think it's crucial to start early. Rather, there's a correlation--the sort of person to become a really good programmer or really good at CS is also very likely the sort of person to start programming at an early age.

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

#156

Earlier quoted context omitted.

> I was personally not cut out to do scut work. I had zero interest and respect for maintenance, unit tests, requirements & specs, UML modelling, refactoring, waterfall method, agile, kanban... The world in which this is "scut work" is not the world I want to live in. Let's be honest. You don't want to do practical, you'd rather do theoretical, and that's fine. However, don't disrespect practical just because it isn'…

Are you saying people who do theoretical work don't don't it in practical ways? As an example, take Google's self-driving cars. Would you say the meat of their body of work theoretical? But would say the code they (Sebastian Thrun himself, and others involved in the project) write code that's not very practical, readable, maintainable or without tests? I would say what they do is theoretical work. And they write prac…

Thrun's code in his class is nothing like Norvig's, FWIW. It's practical in its way, but in a project of mine I'd want it tightened up.

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

#157
post #45

When i was in university majoring in Computer Science i had about 5 programming classes in all 4 years of school while the rest were theory, applied statistics and mathematics. So to call it "computer programming" is a major overstatement to me.

This definitely varies per school. At my university, almost all of the CS classes involve a significant amount of programming. (For reference, all the EE and CS people have one major.)

We have a slightly weird structure: everybody takes the same intro courses but then you can do whichever advanced courses you like. So this means that everybody (even pure EE people) get programming courses going from Scheme (SICP) to assembly. (And the CS people like me also have to do a bunch of EE.) Then, most of the advanced CS courses all involve a healthy amount of programming. The only exception is the algorithms/theory sequence, but most people don't do all of it and everybody (except EEs) do some other programming courses as well.

I think the main difference is that the program I'm in is part of the engineering college of a school that takes engineering rather seriously.

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

#158

Earlier quoted context omitted.

> I was personally not cut out to do scut work. I had zero interest and respect for maintenance, unit tests, requirements & specs, UML modelling, refactoring, waterfall method, agile, kanban... The world in which this is "scut work" is not the world I want to live in. Let's be honest. You don't want to do practical, you'd rather do theoretical, and that's fine. However, don't disrespect practical just because it isn'…

I have to disagree with you. Software engineering 'ideas' regarding modeling and testing have gone way overboard. I have a feeling that that all those who peddle fancy buzzwords such as agile and kanban are either MBA graduates with no real engineering background or failed engineers trying to reinvent their career.

Well, here are a few of the people "peddling fancy buzzwords". I think their bios speak for themselves. * Martin Fowler - http://martinfowler.com/aboutMe.html * David Anderson - http://agilemanagement.net/index.php/bio_david/ * Steve McConnell - http://www.stevemcconnell.com/bio.htm

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

#159
post #104
post #28

Earlier quoted context omitted.

I agree it's more of a mathematical discipline than a science. But it isn't just "studying man-made creations". It's about studying computation in general. Not just man-made machines that compute.

Complexity theory is based on the idea of a turning machine, a man made thing. Mind you, information theory, which is often considered computer science, certainly applies to nature itself. Of course, it would be easy to claim that information theory isn't actually computer science. Personally, I consider most of computer science more math than science. In fact, I sometimes tell people I do math! (This is a great way…

The beauty of computability and complexity theory is that it's actually robust across models of computation. That is, while we analyze a Turing machine, the actual machine is rather arbitrary.

Paraphrasing from Sipser[1], the class of decidable and undecideable languages is the same for any "reasonable" model of computation where "reasonable" involves some basic things like not being able to do an infinite amount of work in a single step. So while any particular model (e.g. a Turing machine) is arbitrary, the class of languages is actually natural.

[1]: http://www-math.mit.edu/~sipser/book.html

This makes sense--any model of computation containing a countable number of instances will not be able to decide or even recognize every language. It also makes sense that these models would be able to recognize the same set of languages.

I think this also holds for complexity classes. That is, the complexity of a language in a class like P or NP is the same across different models as long as those models are all deterministic or non-deterministic.

So really, complexity theory is not about a man-made thing: it's about a deeper, fundamental truth. It's really awesome.

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

#160
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 scie…

[deleted]
Post reply on HN