Live data from Hacker News

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

lambdassociates.org

71–80 of 127 posts

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

#71
post #52

Earlier quoted context omitted.

[deleted]

My god. It's truly amazing how any technical or academic topic seems to degenerate into a Java vs C debate. Is there a law for that?

I think the "Java C"-debate is an instance of the problem "Should studying computer science be mindwreckingly hard or should studying computer science make you able to program things?". Plus, you can also bash Java in this special instance, which is always nice coughs.

Other instances include "Compiler construction or not?", "Theoretical computer science or not?", "Assembler or not?".

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

#72

Earlier quoted context omitted.

This is the result of the university becoming more of a business than anything else. If you start flunking people out, you lose revenue.

It might be the socialist in me, but schools should always be public. No business should be involved in educating the next generation. I think of universities more like a R&D department for the general public. (which also is why I think all software developed in universities should be Free)

Sadly that just leaves politics to control education. Pick your poison.

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

#74
post #32

Earlier quoted context omitted.

C would be my first preference as well, but I also appreciate that Scheme (or another functional language) would provide better opportunities than C or Java for students to learn more "advanced" algorithmic techniques such as recursion. The problem with Java (and C, to a lesser extent) in basic problem solving is that you can almost brute-force-code and get a working solution that will get full credit, but after writ…

Recursion is only considered an "advanced" algorithmic technique because people are taught to think of it that way. Recursion is actually pretty straightforward once you have a bit of practice using it.

Well, yes, most things do become easier with a bit of practice.

If a functional language was taught in beginner CS classes I think it would be easier for students to see how it works. It certainly "clicked" for me once I'd learned a bit of Scheme in my first AI class.

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

#75
post #51
post #6

And here we have the reason why just about every single CS department in the US teaches Java instead of C or Scheme.

The real failure here is the words "instead of". It's really not hard to learn both and especially good to learn when to use which.

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.

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

#76
post #71

Earlier quoted context omitted.

My god. It's truly amazing how any technical or academic topic seems to degenerate into a Java vs C debate. Is there a law for that?

I think the "Java C"-debate is an instance of the problem "Should studying computer science be mindwreckingly hard or should studying computer science make you able to program things?". Plus, you can also bash Java in this special instance, which is always nice coughs . Other instances include "Compiler construction or not?", "Theoretical computer science or not?", "Assembler or not?".

That would hold up if learning a bit of memory management was actually "mindwreckingly hard".

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

#77

Earlier quoted context omitted.

I imagined something along an entirely different approach. Putting videos online is just doing it the same way over a new medium. I am thinking of a way to take advantage of what the web has to offer. We'll see how it goes.

Yes, I got that, sorry for not being clearer. The videos are a simple starting point, there is no interaction and so on, it's just like watching TV (only worse quality...). The subject of the discussion was basically a complete virtual education from grade school level all the way up to university level. Interactive lectures, web based self-study units the works. We realized that this is a very complex undertaking an…

Ah my mistake - I think the ideal case is going to be a combination of both but at some level using technology will become a more viable alternative, especially for those that do not have access to teachers.

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

#78
post #75
post #51

Earlier quoted context omitted.

The real failure here is the words "instead of". It's really not hard to learn both and especially good to learn when to use which.

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.

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

#79
post #70
post #58

Earlier quoted context omitted.

Unfortunately I'm not. I tried learning C as my second language after VB and the syntax seemed unnecessarily complicated to me (like '->'). As a newb, you get bogged down in the details and knowing the cases for when to use &,* seems like an added complication.

See? This syntax trouble is already lesson #1 you learn from pointers: The _address_ of some value and the _value itself_. If you have a pointer (that is, the address), then you need to prefix it with a * in order to get the value in order to do useful things. If you have a value, you need to prefix it with & in order to get the value's address in order to pass it around more efficient (at least it will be more effic…

Pointers are easy. I thought several people in our CS program how to use them in ~2 hours. What's hard for most people is thinking abstractly between what the code looks like and what happens when you run it.

Pointers are simply the first thing that forces most coders to consider that split. But, a reasonably competent JAVA developer moving to C can pick them up in little time. The problem is reading other peoples C code that looks more like line noise than structure. But, pointers are a tiny step along that path.

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

#80
post #6

And here we have the reason why just about every single CS department in the US teaches Java instead of C or Scheme.

I think comments like there are border-line trolls in a community like HN.

The languages used in various parts of a CS curriculum are one component to the whole. Holding up that component as the reason that the sky is falling is, at best, disingenuous. I can construct terrible CS curriculums that start with C, and terrific ones that start with Java.

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.

If, instead, they want the beginning courses to focus on the realities and difficulties of dealing with computer systems, it makes sense to start with something like C. They can then introduce the abstractions that let people manage those difficulties in later courses.

I think both approaches are valid, as long as a student gets a view of the important points of the field. I can even see arguments why one approach might be better than the other. But claiming that one approach represents the failure of our CS academic system is zealotry.

Post reply on HN