Ask HN: Programming for students (English as a second language)

3 points by marak830 ↗ HN
Hi everyone, I was wondering if anyone has some good links for teaching students programming.

I'm now working as an esl teacher at a pilot project school (basically we can run any sort of program we want, test it's effectiveness and then impliment it once it has proven it's success), and one of the courses we have is programming.

Currently they are learning scratch which has been fairly successful, and a few of my higher ability students I have been introducing them to web design(front end only at the moment).

The issue I'm seeing is the switch between something like scratch(block based drag and drop coding - primarily) and a more traditional coding system. I need a step up from scratch that isn't full on coding.

I am considering a hardware based solution(say lego mindstorm or a MakerBot), which give a real world example of their code at work.

So, HN community, does anyone have any experience and is able to offer some tips or links to something like this?

Cheers.

(PS thanks to everyone who previously pointed out to me about my insane cheffing hours, I found a great job that let's me actually see my family!)

6 comments

[ 3.1 ms ] story [ 30.4 ms ] thread
Scratch is full-on coding, albeit with visual blocks.

Underlying all Von Neumann machines is the same type of register/instruction pointer architecture, so any means of controlling that kind of a computer winds up in assembly (actually, machine language) code.

The best way to help your students is to explain this. If they understand how the computer actually and physically operates, then programming is reduced to the semantics of the language at hand.

IMHO, the next best language to teach them is JavaScript because of its ubiquity and usefulness. Those kids are gonna need jobs. Besides, they'll be impressed that they can control what you see in a web browser and that's arguably just as compelling as something like Lego Mindstorms.

Re: first half: I agree, but these are esl students, I'm dealing with not just teaching coding (which they are amazing at once they get the underlying fundamentals), but also the English language around it (code block, function, variable, heck even start function and move Sprite).

Re:second half: if live to teach them Java, but while the few advanced students are getting there, I need to find more real world applicable examples. Hence I'm looking more towards Lego mind storm or MakerBot.

I do agree with you though, I just need something in between. (Maybe I worded my post wrong, I'm sorry if that's the case).

Dear God, please don't teach them Java! JavaScript (technically called ECMAScript but no one uses that term in casual conversation) is a very different language and unrelated to Java despite the similar name.

As far as ESL, all popular programming languages are based on English-language statements so the kids will have to deal with that regardless. Just explain to them what the language keywords mean in their own language.

Re: teaching in their own language: no. The best way to teach a new language is to immerse the student in that language, you don't explain unknown words in their language, you build their language knowledge to be able to learn the new words.

Re:second part: did the above say JavaScript? I read as Java haha.

Atm my path is scratch - unknown - HTML/unity/(their path choice)

It's going to be hard if you don't explain to someone who speaks Spanish that 10 PRINT "HOLA" is imprimir. You're not teaching conversational English (where I would totally agree with you). This is programming. The words used in statements should be immediately understood in one's native language. If they aren't, then translate them, I say.

BTW, Unity is a development environment that supports several programming languages -- three, I think. JavaScript is one of them. But Unity also has a lot of overhead in that you must understand 3D rendering, animation timelines, etc. I would not recommend sending a beginning programmer there.

What's the harm in helping students develop a simple web page with some kind of interactivity? That's useful, immediately gratifying, and doesn't require learning any additional frameworks or design tools.

Actually I do teach English, we have a core class for more traditional teaching then project courses where we use English in an active environment (programming, cooking etc).

We looked into front end, and while a few students enjoyed it, the majority weren't interested enough. That's why we're looking into MakerBots and such to give them a more physical object to code.