Programming will be part of the elementary school curriculum in Finland starting Fall 2016. This is quite a challenge for most teachers as they have little to no experience with computer science in general and programming in particular.
I’ve been visiting the Niittykumpu elementary school a couple of times a month since November last year to talk with some of their most enthusiastic teachers about how to make the transition to teaching programming easier. We discussed the concerns of the teachers and what we could do to help mitigate them. Their concerns include that they aren't sure what exactly they're supposed to teach, that they don't really have the time to learn programming, or how to even get started.
To tackle these concerns we started out by creating some exercises for both teachers and students. Some of those exercises - especially using Scratch - were already tried out and were surprisingly successful both in overcoming some of the fears and also getting the kids excited about learning programming. We also created exercises for kids that are more advanced and very interested in this topic so they won't get bored. Our hope is that while using those exercises we can see what works and what doesn't, how to improve the existing ones and what kind of exercises to add. Having ready exercises also helps teachers learn more quickly and have a way to start teaching on which they can build, and which they can customize to their own style.
One of the biggest problems we noticed in our discussions is that the curriculum is very open and it's unclear what it is that should be taught. To solve this issue, we tried to define aims for what kids should be able to do by grade 6 - just very general for now - so the teachers can get a better view of what they’re actually supposed to do. We came up with 5 points which we want to introduce to the teachers and start a discussion on what other aims we could have or what could be improved with those. Once we have clarified that, we can associate the exercises we have with those goals and create new ones. The aims are:
- Analytical thinking: how to articulate and solve complex problems. For example by dividing them into smaller, more manageable problems and solving those.
- Understanding technology and what it can and cannot do. This is the technical aspect.
- Searching for and evaluating information that can help solve problems. Since there’s a huge amount of information out there, this is about filtering and weighing and finding things quickly.
- Communicating and solving problems collaboratively: teamwork, pair programming, etc.
- Personal development: accept failure and get over it quickly (this is actually surprisingly easy with programming), learn to work towards a longer term goal, learn to teach and help others.
After that I’ll visit the kids in the school and talk to them about what they want to learn and then, together with the teachers, we’ll try to formalize what we have learned and share it with other schools, to get their input as well.
Futurice has been instrumental in getting teachers on board with concrete suggestions and practical examples of where to find relevant material.
- Mark Ward, teacher at Niittykumpu elementary school
By fall we hope to get as many teachers ready and comfortable with teaching the basics of programming as we can and spread, what we have learned, to other schools. Teaching programming in elementary school can be fun and creative and provides lots of learning opportunities outside of the pure technical aspect.