It's also something which we cannot answer. In ignorance of the real
pupils you have we can only offer speculation and prejudice. That
would only make things worse. Better enter the training with an open
mind and find out who they are and what they expect from the
training. Then adjust accordingly.
Actually, it might be better if you found out what the person who has
booked the students into the course wants. After years as a professional
IT trainer, I can tell you that the students on the course aren't always
there because they want to be. Typically, a manager has decided that they
need to learn such-and-such and the student is not necessarily thrilled
about it or even very interested in the subject at hand. Sometimes, the
students' interests differ significantly from what their manager wants.
Sometimes, the students are more-or-less in the dark: the new language
they are enrolled to learn was not their idea and their management will
not have necessarily given them much background on why they are going to
learn it. It's possible that the students have simply been told that they
need to learn it for some upcoming project. That means that what
interests the students about the language may be at odds from what the
manager wants them to know. For instance, students may be keen to know
how to do something they do with their existing language while the
manager may be putting them on this course so that they can learn
something that the new language is better suited to doing.
The cold hard reality is that your ultimate success as an instructor will
be teaching them what the manager wants them to know, not what the
students themselves are interested in. If you please the students but not
the manager, you will not likely get the chance to teach for that
customer again. If you please the manager by covering what he wants you
to cover and the students have the expected level of proficiency when
they get back to work, you will likely get further business from that
company.
Unfortunately that seems to be the case for many Java programmers as
well. I do not think that attitude depends on programming language.
Maybe it's the other way round (i.e. people with certain attitudes
pick specific languages) but even that is speculation and won't help
you because your group could be totally different.
CPAN is also quite large and I don't think that you can get away with
only a few core library functions throughout your Perl life.
As I said: better find out who you are dealing with than try to create
expectation and press real people into that frame. Imagine this forum
would agree that Perl programmers are stupid and dumb: you would be
preoccupied and have insulted them already the very moment you enter
classroom. I do not think there would be a successful teaching and
learning experience with such a start - at least it's a lot harder
than otherwise.
I agree completely: don't go into the class assuming that the students
are not very bright or motivated because that will just put everyone in
an antagonistic mood. They may in fact turn out to be less than you hoped
but I've only had that happen a very few times in hundreds of classes
over the years and even those classes had more to do with the culture at
that company.
In any case I believe it to be important to come to a common agreement
on what the purpose of the course is.
I agree, provided that the manager who wants these students on the course
is consulted for what he/she wants the students to learn. Bear in mind
that some managers are not very technical themselves; they are, perhaps,
professional project managers with little if any programming skills.
Their input may be minimal as a result but SOMEONE in the company with
programming skills is likely to be behind the push to offer the course
you are teaching and they will likely be the best person to discuss the
focus of the class with. If you can get that person involved in the
planning of the course, you should be very successful in delivering what
the students need.
It won't help if you want to
teach CS topics but people are more interested in learning how to
solve particular problems.
Agreed. Where possible, include practical hands-on exercises that are
closely related to what students will actually need to do. Abstract
theoretical knowledge like OO Concepts is still going to be necessary but
don't dwell on that too long, especially at the expense of giving
students some practical examples of how the theory is applied in the real
world and some actual exercises for them to code that illustrate those
points.
If people are not interested to learn
though, then teaching anything will be hard and you will first have to
build up motivation.
At that point, you have become, in effect, a high school teacher in front
of a room full of disinterested, unmotivated students, not a trainer.
Luckily it only rarely comes to that. Most people being paid to program
are at least sufficient professional to make an effort to learn, even if
they are a bit dubious of the particular course or subject they have been
told to take by their employers.