As someone who has been chatting on programming-related IRC (Internet
Relay Chat) for a while, I have witnessed my share of people coming up
with unreasonable needs due to homework. However, some days ago, someone
on Freenode's #perl
came and ask for help in parsing a semicolon that does not occur inside
shell quotes (e.g: echo "Semicolon in string - ; foobar" ; ls -l ; )
using regular expressions. I suggested him to use a parser generator, and
then said that his teacher has forbidden him from using it or any other
external CPAN module and that he could only use regular expressions, in order
to, get this: write some Perl code that will convert Bash to Python.
Yes! His teacher expects them to learn those three languages at once.
And apparently without making a judicious use of the proper APIs.
Teaching three languages at the same time (in what may be a introductory course)
is wrong and should be avoided, as learning one language is hard enough,
and with three the students may become extremely confused. In
response to my Thoughts about the Best Introductory
[Programming] Language, a friend suggested that one should teach three
introductory languages, and if I were remember correctly, they were something
like C, a convenient dynamic language such as Perl or Python, and a very "mind
expanding" language like Lisp or Haskell. I noted the same thing back then,
that it would confuse the heck out of the students, and here the motivation
is even more flimsy.
I wonder if we ever top this homework assignment that we are being asked
for help with. Will a professor ask his students to implement a
Strong AI in a weekend?