Hey!
I’m a programming teacher working at a technical institute in one of the poorest areas in Brazil. These institutes are a federal government initiative to bring technical education nation wide, so when teenagers finish high school, they have a technician diploma. I teach in the informatics course, which focuses in software development (they have subjects such as algorithms, databases, web programming, and computer networks).
I’ll first tell you about the problems that I face as a programming teacher, and then how I thought about trying to overcome them. So, please, bear with me in this part that doesn’t talk about coding.
I’ve been using Processing as a motivation tool for about a year now. I show them stuff that I’ve done – simple stuff, such as games made out of geometric shapes – and they become very interested in learning more. They want to do something similar to Flappy Bird, Tetris, Space Invaders, Counter Strike (I’ve heard that)… But then the steps to get there scare them. A simple implementation of collision detection makes them lose focus.
I have brilliant students, but they are few, and they don’t need motivation to code. I want to motivate the greater part of students who don’t do well. Remember I said that I teach in a poor area, and because of that, most people can’t afford to have quality education. So most of them get to the institute with poor understanding of basic concepts in maths, for example. They hate subjects such as maths and physics. Also, they are easily distracted by modern stuff, like Instagram and Facebook. They want to post their Processing animation they made of a ball bouncing up and down, but as soon as it gets complicated, their focus is gone.
I faced yet another problem last year. Their former teacher decided to use Pascal as introductory language. They hated it, and complained to me every day since I started working with them. One of the students confessed to me one day the she felt embarrassed, when her cousin asked her what she did in this programming course, and she showed him an algorithm to tell whether a string is a palindrome or not. She said she felt that programming was useless. This day was when I decided I had to do something. I talked to my colleague; we share the class, because there are over 30 students, and one teacher alone can’t give attention to all of them.
We talked about using another approach in programming classes, because we were adopting the same approach that our teachers took with us over 10 years ago. I suggested Processing, because it feels several gaps: 1. It gives them a sense of accomplishment, by making something they can see working, 2. Color, shapes and animations seem to be a better approach at coding than text input/output, 3. No extra configuration needed, the IDE does it all.
It seems perfect, but then I thought about the classes they are going afterwards. They will need to learn JavaScript and work Node.js, write SQL scripts, write shell scripts. Will it be more difficult for them to deal with more complex concepts after working with something so fun, as I think Processing is?
What approaches do you think are good to motivate teenagers to program? What do you think about using Processing (it doesn’t matter if Java or Python) as an introductory language for teenagers in the context that I told you? Do you know of another teachers in a similar situation to mine? Any success stories in using Processing with teenagers?