in reply to Teaching Perl inside an Academic Course

Which would be the advantages and benefits of Perl's usage on academic formation?

Can you please elaborate on the question? I do not really understand what you are asking.

If you are discussing academic (teaching) languages, typically one goes more towards "pure" languages rather than hybrids like Perl -- aka a mostly-pure OO language (such as my least-favorite language Java) (for OO) or Lisp/Scheme (for functional programming) or C/C++ so development can start in a procedural way. IMHO, Perl allows too many shortcuts and too many styles to be a 'first' language for training disciplined programmers. Perl is a fine second or third language. In other words, it's too powerful in the hands of the inexperienced because there are no rules. That is, of course, why I like it. I think Universities should offer at least a Perl short-course, though, once the students have grasped the various styles -- the blend of them in Perl is very productive -- it makes computing a Zen artform.

If you are using it in research, well, I still think a more "pure" language is historically encouraged -- though it is possible to be Lispy in Perl should you want to -- say if your research was string extensive or needed a ton of CPAN modules or could benefit from something like POE. In theory, choice of languages SHOULD NOT be largely relevant in academics, though your colleagues might still be biased I.e. a lot of "Software Engineering" types like to kiss Java's hairy butt and AI guys like Lisp/Scheme, and would choke if you used Perl. But if you are doing basic algorithms or networking or speech synthesis -- no one will care as long as the tools work and what you publish is high quality. In these areas, theory is what matters most. My Computer Graphics professor dabbled in speech recognition using Mathematica. Heck, that's barely even a language -- but it worked for him.

If I got the question wrong, I apologize. But hey, I work in the "real" world, what do I know!

Replies are listed 'Best First'.
Re: Re: Academic Formation
by hardburn (Abbot) on Mar 08, 2004 at 21:45 UTC

    IMHO, the only justification for Java for a teaching language is to make CS courses buzzword-compliant. Python and Ruby are much better for that task.

    ----
    : () { :|:& };:

    Note: All code is untested, unless otherwise stated

      I agree with you 100% here -- probably more so with Ruby than Python (due to the self and __ and ___ aspects).

      Java is widely used, unfortunately, due to industry dominance and the insistance of students that they learn Java. IMHO, Students should be learning computer science, not languages. Might as well use languages that are more conducive to thought and less to business programming. Java should be left to a short-course.

Re: Academic Formation
by Abigail-II (Bishop) on Mar 09, 2004 at 10:02 UTC
    I think Universities should offer at least a Perl short-course, though, once the students have grasped the various styles -- the blend of them in Perl is very productive -- it makes computing a Zen artform.
    I disagree. Universities should use a minimal (when it comes to syntax) language to teach students how to program. (Pascal, Python, Java for instance). After that, they should be able to learn themselves new language. If not, they shouldn't be at university.

    Abigail

      Short courses, at least where I come from, are 1-hr courses that are basically worthless if you are trying to accumulate credits. Our teaching language started with C++, eventually the university switched to Java (yes, I know, industry whoring). (Pascal was used in the early 90's). Beyond that, a few short courses were avialable in C++, and we were expected to pick up languages like Fortran, Lisp, Matlab (if that's a language), etc, for various courses. Spoonfeeding this was not. However, if it weren't for the Perl short course, half the students would have never even tried Perl -- and they would have not come to love it. That had a huge influence on me, but it was a delayed one -- once I started applying what I knew in industry it took off. Still, many folks who never saw Perl in college never picked it up -- partly because they weren't told why it was cool and didn't have folks to help them with it. Perl is not a language, unfortunately, that is heard of much on the streets. C++ and Java (gag, choke) are.

      Regardless of what your ivory-tower (to use your phrase you used against me previously) opinions hold, eventually most students will wind up in industry, and interviews will ask "Did you learn XXX" in school? It's fine to say "I learned XXX" on my own, but there is a lot to be said to having course experience in a language. It's not as good as "job experience" to them, but it's close. They have some assurance that, at least, you have a strong chance of learning it correctly. A University does have to make a tradeoff between being a slave to industry and being a slave to raw academics. A good one will allow students to go in both directions. Especially in today's economy, a school that only produces Pascal folks (and can't say they used language XXX in coursework), is not going to get anyone a job. Is that a universities job? No. Especially not in the Greek sense. But unfortunately everyone does not live in the "ivory tower". People go to college and expect to get jobs in their chosen field.

      Having course experience in Pascal (well, I do) is completely worthless to industry. No one cares about Pascal. It's a horribly broken language for doing anything interesting beyond simulating ATM machines. Do you list Pascal on your resume? I don't. Yes, I know how to write rigourously typed procedural code in a language with a poor standard library. Oh boy, we need that guy. Hire him right away!

      I do agree that colleges should *not* act as technical schools, but to ignore the major applications of the areas being taught, by say, exclusively using Pascal in all courses, is absolutely stupid. For instance, a university teaching courses labelled after a programming language, after Freshman year, have problems. You should not be able to take a class labelled Perl for 3 credit hours, nor should you be able to comprise your education of languages -- but forced exposure to multiple languages is important, nay, CRITICAL, to thinking outside the box. Binding someone to one language will make them think only in that one language, to learn languages quickly (I frequently claim I can learn anything...and it's true...who can't?), you need to know paradigms from all over the place. Every obscure language helps. And when you are starting out, it's harder to pick up new languages from scratch, especially when they are as far apart as Pascal and Lisp.

      My AI class, for instance, used Lisp -- not Pascal. Pascal here would be stupid. As for learning the language, yes, this was on us, but we were given pointers. AI in Pascal is a round peg and a square hole. As is OO Software Design in Pascal. Pascal is the straw-man here, but diversity in languages is important, and to teach Computer Science pretending languages don't matter is somewhat misleading -- yes, languages in theory don't matter, but languages are very very real.

        Having course experience in Pascal (well, I do) is completely worthless to industry. No one cares about Pascal. It's a horribly broken language for doing anything interesting beyond simulating ATM machines. Do you list Pascal on your resume? I don't.
        I do list Pascal on my resume. And that was considere a plus when I interviewed for my current job. While I won't need to use Pascal on a daily basis, we do have quite a code base written in Pascal. If you are a company that still makes money from software that was written in the mid 70's, you do care about people knowing Pascal and FORTRAN.
        I do agree that colleges should *not* act as technical schools, but to ignore the major applications of the areas being taught, by say, exclusively using Pascal in all courses, is absolutely stupid.

        My AI class, for instance, used Lisp -- not Pascal. Pascal here would be stupid. As for learning the language, yes, this was on us, but we were given pointers. AI in Pascal is a round peg and a square hole.
        What's your frustration with Pascal? I do hope that you didn't get the impression that I said academic students should only program in Pascal. Far from that. Ideally, during their academic career, they get the chance to program in one or more ALGOL like languages (Pascal, C, and even Perl and Java fit that bill), object-oriented languages (Simula, Java, ...), functional languages (Lisp, Haskell, ML, ...), UNIX "scripting" languages (shell, AWK, Perl, ...), assembler, SQL, Prolog, etc. Or at least, a decent selection of them as there is limited time.

        But learning a (computer) language isn't very academic. It's just craft.

        I've turned in assignments in a dozen or so different languages when I was a student. But I never followed a course that was dedicated to a language. We learned Pascal as part of the "Introduction to Programming" course (and not after 6 weeks had past), and we got some shell (including AWK) during another introduction course. In later years, we got courses about programming language classes, but that wasn't about a specific language. If you needed a specific language, you got a copy of a reference guide. If you were lucky.

        Abigail