Live data from Hacker News

Why I am Not a Professor, or The Decline and Fall of the British University

lambdassociates.org

121–127 of 127 posts

Re: Why I am Not a Professor, or The Decline and Fall of the British University

#121
post #101

Earlier quoted context omitted.

Well exactly. What aspect of theoretical computer science is Java better suited to teaching than any other language? Kids these days don't understand that computer science and software development are distinct disciplines.

One step further: If you think that learning a specific language in university is going to get you a job you are not studying computer science, you should be going to a trade school. A cs degree is universal, it should be language agnostic. One computer language or another, it doesn't matter one bit, they're all functionally equivalent. Just like a chef cook has 30 knives to choose from you have a palette of language…

I disagree with your statement that choice of language "doesn't matter one bit." Some languages are better at some tasks than others. Appealing to functional equivalence ignores the relative cost (in time and characters typed) of expressing the same idea in different languages.

See PG's essay where he talks about the Blub Paradox: http://www.paulgraham.com/avg.html

Note that I think this point is different than how this thread started, which was about teaching.

Re: Why I am Not a Professor, or The Decline and Fall of the British University

#122

Earlier quoted context omitted.

"If those who construct the curriculum want the beginning courses to focus on algorithmic thinking, I think it's fair to use a language that abstracts away much of the physical machine. The abstractions can be peeled away in later courses." I don't know that Java does this all the much better than C. The problem with C for a beginning student isn't so much that you have to manage memory manually--it generally takes a…

Actually I'd argue that with C, you have to start managing memory manually before you even get to malloc. The abstraction advantage of Java over C (not that I think Java is necessarily a better intro language) is that you can generally explain the syntax in abstract concepts and then use it like you'd expect. With C, it's far more likely to encounter scenarios that don't fit a simple model of understanding. For examp…

Yea, the advantage of Java over C is the second program.

for (int x = 1; x vs

for (int x = 1; x PS: How do you include readable code snippets on HN?

Re: Why I am Not a Professor, or The Decline and Fall of the British University

#123

Earlier quoted context omitted.

One step further: If you think that learning a specific language in university is going to get you a job you are not studying computer science, you should be going to a trade school. A cs degree is universal, it should be language agnostic. One computer language or another, it doesn't matter one bit, they're all functionally equivalent. Just like a chef cook has 30 knives to choose from you have a palette of language…

I disagree with your statement that choice of language "doesn't matter one bit." Some languages are better at some tasks than others. Appealing to functional equivalence ignores the relative cost (in time and characters typed) of expressing the same idea in different languages. See PG's essay where he talks about the Blub Paradox: http://www.paulgraham.com/avg.html Note that I think this point is different than how t…

I'm sorry if I wasn't clear enough, I thought I covered the 'some languages are better at some tasks than others' with the 30 knives analogy.

The right tool for the right task.

Re: Why I am Not a Professor, or The Decline and Fall of the British University

#124
post #122

Earlier quoted context omitted.

Actually I'd argue that with C, you have to start managing memory manually before you even get to malloc. The abstraction advantage of Java over C (not that I think Java is necessarily a better intro language) is that you can generally explain the syntax in abstract concepts and then use it like you'd expect. With C, it's far more likely to encounter scenarios that don't fit a simple model of understanding. For examp…

Yea, the advantage of Java over C is the second program. for (int x = 1; x vs for (int x = 1; x PS: How do you include readable code snippets on HN?

    Prefix four spaces to a line to format code.  
Also, you're missing a right curly brace in the second example.

Re: Why I am Not a Professor, or The Decline and Fall of the British University

#125
post #122

Earlier quoted context omitted.

Actually I'd argue that with C, you have to start managing memory manually before you even get to malloc. The abstraction advantage of Java over C (not that I think Java is necessarily a better intro language) is that you can generally explain the syntax in abstract concepts and then use it like you'd expect. With C, it's far more likely to encounter scenarios that don't fit a simple model of understanding. For examp…

Yea, the advantage of Java over C is the second program. for (int x = 1; x vs for (int x = 1; x PS: How do you include readable code snippets on HN?

Perl:

  for (1 .. 100) print "Hello World! $_\n";
Ruby:

  100.times { |i| puts "Hello World #{i}" }

Re: Why I am Not a Professor, or The Decline and Fall of the British University

#126
post #78
post #75

Earlier quoted context omitted.

You make a good point - I was thinking that Java shouldn't be taught in introductory CS classes for people planning to be a CS major, but obviously didn't get that across. It would be fairly easy for someone to learn Java once they've been taught C. Professors should not have to spend time going over pointers and memory management in an OS class, however.

I think OS classes are the best place to cover pointers and memory management. Assuming you are covering how how an OS works vs an intro to UNIX class. Granted in our OS theory class we spent most of our time using / talking about ASM, but C could also work fairly well.

At my school, between an intro class that did C and a class where we programmed microcontrollers in assembly, pointers and bit-twiddling were already pretty well established by the time we get to OS classes.
Post reply on HN