Sam said:
No. Face it, C, and pretty much all other programming languages, are
written in English. Trying to hodge-podge a translation of the programming
language's grammar to another (non-English) native language may seem like
a worthwhile idea at first, but will prove to be counter-productive in the
long run.
What you will essentially accomplish is making them learn a programming
language that only they will know. Even if they master their own
nativ-ized version of C, as soon as they see a real C program, that's it.
They won't make heads and tails of it. So, what have you really
accomplish?
You'll just have to bite the bullet, and give them a crash course in basic
English, concurrently with studying the C programming language. English
has become, through a series of historical events, lingua franca of all
programming languages. Learning basic English is crucial to being able to
communicate with other programmers.
The language problem is twofold (or threefold, see your next point). First
of all the programming language itself. They seem to be in some kind of
english with words like `for', `then', `if', etc. On the other hand, these
words are just symbols, they could have been `:', `-', `?' for example or
any other words.
So you could translate them easily into Shona, no problem there. However, as
other people have pointed out, they will not able to read programs written
in the original programming language or programs written by people using
other symbols.
But given the fact that these english words are no more than symbols, not
knowing english is not a problem: you can teach your pupils in Shona
programming while using the symbols which are named `for', `then', and `if'
with a predefines meaning you can explain in Shona.
The second language problem is in designing and documenting a program,
especially writing comments and names in the source code. You can design
and document a program in every language you can express using ascii
symbols (I do not think C is able to process UTF?), may be even Shona,
French, German, Finnish, whatever.
Of course, you have now almost the same problem as before with using
translated symbols: other programmers (not speaking Shona) are not able to
understand your documented code. This will not be a problem as long as your
pupils will not have to communicate (about their programs) with non-Shona
people.
I know that when I was learning programming, the courses, the names, and the
comments were in my native tongue. Did I learn programming? Yes. Do I
program in my native tongue nowadays? No. English is indeed the lingua
franca of programming and once you start participating in the real world
knowledge of english is just a necessity.
Occasionally I come across people trying to communicate on various
technical topics, in my native language. It's … not a pretty sight. Trying
to converse on programming topics in anything other than English is very
painful.
I agree. On the other hand, if the language does have the right words to
express these technical topics and these words are used as well, you get
used to it. The french, for example, are well known for defining ``native''
words for all kinds of alien words. Does it work? In France, may be, but
when you have to communicate with french people, it is often very
difficult.