At Mon, 24 Jan 2005 13:33:20 +0200,
Yedidyah Bar-David wrote:
> 
> On Mon, Jan 24, 2005 at 12:59:15PM +0200, Danny Lieberman wrote:
> > muli
> > 
> > Lisp is the language of Autocad - Scheme is the language of the TAU CS 
> > dept. Acad has a bigger install base. ;-)
> 
> LISP is a family of languages, not one language. If one is to learn
> LISP today they will probably learn CommonLisp, which AFAIK isn't
> the variant Autocad uses. So if you hier a fresh LISP programmer he

Talking of lisp, don't forget emacsen-lisp (and a few other more obscure
programs that use lisp as a scripting language).

> won't have a big advantage for programming Autocad over a seasoned
> scheme programmer. I do not imply that our graduates are seasoned
> scheme programmers. BTW, we started (or at least intend to in the
> near future) teaching Java as a first language. I am not personally
> confident this is the best choice, but noone asked me - I am a sys
> admin, not a proffessor.
> BTW - one of the main reasons, or so I have heard, for teaching
> scheme, isn't that it's such a great language (it might be - I don't
> know it. I do know LISP and think it's great), but the great book
> they use to teach it ("Structure and Interpretation of Computer
> Programs"). I do not underestimate such a reason, assuming the book
> is indeed good.
> 

One of the main reasons for teaching scheme is that it was adopted from the MIT
introduction course (I think one of the profesors brought it with him from a
sabatical or something like that).

The reason they teach it there is that scheme is designed to handle computation 
theoretical
concepts. Actually it was writen to handle a logical approach to symbolic math
(lambda notation) but basic theoretical CS ideas fit nicely in that slot.

If you read the course book you will see that its supposed to be a very
interesting course with scheme used as a tool and not a goal. The course kind of
missed on that.

I think that course should be tought after the students have had some basic
programing experience so that things fit into place better, although I am not
sure if java is the right choice and c is definitely problematic. You need to
understand OO programing to handle java properly and it has some problems with
its approach to OO for teaching purposes and c is too flexible for this
purpose. Tought as a first language it teaches people very bad programing habits
(mainly problems with good encasulation and segregation)

I can't think of a widespread language which is fit as a first language
actually. They allow too much flexibility for learning to concepts in the right
way, although java is better for this then c++. There are languages that are
designed in a better way to learn the theory. Scheme is a good teaching tool IF
USED PROPERLY, and IIRC eiffel (not sure if I'm not mixing it with another one)
is better for OO then java (although there is less chance of actually using it
later).

First learn to program corectly and then learn the used languages. You will have
better knowledge and it will leave less bad habits such as using non-static
functions in c and global variables in c and c++.

list was originaly writen to do symbolic 
> > 
> > ok - university is about learning to learn but  "interesting and 
> > relevant" is usually a personal thing for a student.
> > 
> > Unfortunately - employers want people who know how to work in familiar 
> > environments -
> > My interviewing experience is that most TAU new CS grads cant program to 
> > save their life which is why I always look for someone who worked in a 
> > real programming shop for a year or 2
> 
> Very well. What's wrong with that?
> I am pretty sure a MAMRAM graduate will program much better than any
> University graduate. It's simply a matter of your goals and what you
> do to get them, when you build your education program.
> 
> > 
> > There is something very wrong with the system when a CS grad needs 1-2 
> > years of industry experience to be able to program whereas
> > a first year student at the Rubin Academy of music can sit in any ANY 
> > ensemble, sight read and make music.
> 
> To use your example - how well does a Musicology grad play a piano?
> I do not claim that a CS grad should program the way a Musicology grad
> plays a piano. But he is also not expected to be, by definition, the
> best programmer one can create in 3 years. He should be able to get
> a job as a programmer, but also, among other things, to continue his
> studies and be a researcher.
> 
> > 
> > Professional muscians practice 3-6 hours/day - how many hours a day does 
> > a professional programmer practice?
> 
> I estimate that a good student, that did all his homework/projects by
> himself, and finished with good grades, wrote 10K-20K lines. Maybe other

The problem is too much emphasis on working code and not enough on how its
designed, both in teaching and when checking results. Writing 5K lines of
properly designed code will make you a better programer the writing 50K lines of
code that works but you can't maintain it yourself a month after you are
finished or change the specs/add a feature without rewriting 90%.

> places make you write more, or better. I can also suspect some of the
> grads you interviewed did not do all their homework by themselves, or
> did not do them well (and did not get good grades).
> -- 
> Didi
> 
> 
> =================================================================
> To unsubscribe, send mail to [EMAIL PROTECTED] with
> the word "unsubscribe" in the message body, e.g., run the command
> echo unsubscribe | mail [EMAIL PROTECTED]
> 
>  
>  +++++++++++++++++++++++++++++++++++++++++++
>  This Mail Was Scanned By Mail-seCure System
>  at the Tel-Aviv University CC.
> 

=================================================================
To unsubscribe, send mail to [EMAIL PROTECTED] with
the word "unsubscribe" in the message body, e.g., run the command
echo unsubscribe | mail [EMAIL PROTECTED]

Reply via email to