Ok, here is what Dr. Tim Maher emailed to the U.W. program coordinator (I
think that is her office):

#### snip ####

Barbara,

        This is Dr. Tim Maher typing, the token
        Perl expert on the UW Computer Science
        Educational Outreach Advisory Board.
        Please feel free to pass this message on
        to "Will" and any others you feel should
        be taking part in this discussion.

Jon Acierto's troubled attempt to have his Perl
background recognized as high-level programming
experience for the purpose of admission to "Foundations
of C++" has been attracting a great deal of attention
on certain Internet chat-sites, which I monitor,
so it's time for me to weigh-in with my $.02.

Jon writes:
> I am a Perl programmer (maybe a little better than
> novice) and I've been looking to the U.W. extension
> programs to add C++ to my resume. I was hoping to
> bypass the C cert. prereq. by using the option of
> taking their "Fundamentals of C++" and show them that
> I had over a year of experience in programming a High
> Level Language (http://www.extension.washington.edu/e-
> xtinfo/certprog/cpp/cpp_hta.asp).
>
> Now by the dictionary definition of "high-level"
> language, my experience with Perl has me definitely
> qualified, however, the staff at the U.W.Ext. think
> otherwise. Here is the email they wrote me in regards
> to my asking whether Perl would qualify me:

Barbara wrote:

> ### snip ###

> Jon, thank you for your inquiry. I sent your
> description of your programming background to the C++
> application reviewer and received this input: "i have
> to agree with Will's assessment. perl is not a high
> level language. it amounts to a scripting language.

** Hold it right there! 8-} **

I'm sorry to say that Will has been misinformed on
this matter.

It makes no more sense to say that Perl is nothing
more than a "scripting language" than to say that
UNIX is nothing more than a toy operating system for
microcomputers.  UNIX spans the whole gamut from micros
to mainframes, just as Perl easily scales from one-line
scripts to huge object-oriented mission-critical
applications.

By all definitions I've ever heard, Perl is certainly
a High Level Language; in fact, it's one of the *most*
high level programming languages every devised. In
contrast, C is nothing more than a "Portable Assembly
Language", and Cobol lies somewhere in between.

Like the groundbreaking APL, Perl has array-generic
functions and operators.  Like one of its predecessors,
the influential AWK language, it has associative arrays
(hashes). Like C++, it allows operator overloading.
Unlike most other nominally High Level Languages, it
(optionally) provides implicit loops and automatic
input processing.  Unlike almost all other languages,
it allows direct manipulation of symbol table(s). It
provides complete control over variable scoping (unlike
Cobol) and automatic memory management (like Java).
It even provides source-code filtering, allowing the
programmer to write in natural languages (such as
Latin, as demonstrated by my colleague Prof. Damian
Conway of Monash Univ., Australia) without upsetting
the Perl compiler a bit!

> Simply having 2 years of working with perl says
> nothing about whether he has worked on more complex
> problems or has developed the programming skills
> necessary to understand and solve such problems from
> ground up.

True, but the same could be said of experience with
any language. Just because an applicant has
experience in C, Cobol, or Fortran doesn't tell us
whether she ever implemented a linked-list, wrote her
own sorting function (as opposed to using one from a
library), or incremented and dereferenced a pointer
without dumping core (which are all activites
characteristic of relatively low-level languages!)

> in addition, does he have - in any language - the
> understanding of more advanced data
> structures...with 2 years of serious cobol for
> example should bring familiarity with files,
> records, and other such data types."

Many Perl programmers will have copious experience
dealing with files, records, and a variety of data
types. In fact, unlike other "scripting languages" but
like C++, Perl has a very general mechanism for
aggregating arbitrary data types into composite records,
based on Java-like "references". This mechanism is not
only heavily used in procedural programs, but also forms
the basis for the Class definitions of OO Perl.

> Jon, if you have the prerequisite background as
> described above, then you will need to document and
> support it in your C++ application. Otherwise,

I'm unclear on the pre-requisite background that is
being required; all I see in the above passage is "Cobol",
and/or experience with "files, records, and data types".
Please state what concepts are to have been mastered,
in a language-independent manner, so we can accurately
determine if Jon's Perl experience has prepared him
adequately.

> you will need to decide how you want to expand your
> programming experience. In the UWEO program offerings,
> the C program would help you do this. Hope this helps.

> Barbara
> ### snip ###

As a programmer of C since 1976 and of C++ since 1985,
I'm fully aware of the relevance of a C background to
the study of C++. But the whole purpose of the
"Foundations of C++" option is to accommodate applicants
who don't have a C background, so long as they have "one
or two years recent programming experience in any
high-level language" (which seems curious to me, inasmuch
as experience in the low-level C language itself would
not qualify under that restriction).

There seems to be an assumption here that because Jon's
experience has been with Perl, he might not have
assimilated an adequate knowledge of general programming
principles, and I can see a kernel of truth in that.

It's prudent to be more uncertain about what a Perl
programmer might have learned than his C counterpart,
because one Perl'er might have just used it as an
enhanced version of AWK or grep, and learned nothing
about "data structures", while another might have used
it as a more flexible variation on Java or C++, and
learned a great deal about how to design and implement
complex systems with multifarious interrelationships.

For this reason, I reiterate the need for a clear
statement of the admission requirements for the
"Foundations of C++" program, couched in terms of
language-independent concepts and skills, so we can see
how Jon stacks up.

If you require any further input about the nature of
Perl programming, I'm at your service!

Yours truly,

-Tim

#### unsnip ###

::Jon




-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to