“First solve the problem, Then write the code’
Is there a magic formula for teaching your students to code?
I think you’ll probably agree with me, that the answer to that question is a big fat ‘no’. Teaching students to code has no ‘one-size-fits-all’ answer or approach. So, what does work? I recently posed this question to a number of resourceful CS teachers. Here are a few of the tips people offered up along with a few of my own.
1. Encourage computational thinking first
“Computational thinking should be mastered first, once you understand how to program, learning the syntax is far simpler.”
(Head of Computing and E-learning, Frensham Heights School)
“Teach [students] to think. Independence in problem -solving is key.”
2. Encourage everyone – CS should be inclusive, regardless of gender or background
This is one of mine – “I think we still have a great deal of ground to cover to ensure that CS is a fully inclusive subject. I have tried my best to be a positive, female role model. I have also made my classroom ‘girl friendly’ by putting up posters of top females in tech. Finally, choosing activities or topics that are engaging for all students. It’s been proven that girls learn through collaborative activities, and boys learn best through competitive activities.”
3. Encourage creativity and encourage mistakes
“Encourage creativity early. Encourage mistakes. Reject perfection. Value resilience and devil-may-care attitude over timidness and fear of failure. Get them past the false notion that they are learning how to code desperately dull standard algorithms like sorts and searches but rather are learning how to use a set of tools (the API) to code anything they want.”
4. Encourage perseverance, students need to be prepared to fail over and over, without giving up!
“My biggest tip is to get them comfortable with making mistakes … the more a student can cope with getting things wrong, and being enthusiastic about understanding why, the more they want to learn. My favourite in-class moment was when a year 9 student shouted, ‘Miss, Miss, I’ve got it wrong and I know why … finally I’m doing this right!’”
5. Allow your students space and time to master the art of debugging
“Rubber duck debugging. It’s a strange idea but it works well. Buy a rubber duck and put it on your desk. When you come across a problem in your code that you can’t solve, explain the problem piece of code line by line to the duck. As you’re explaining, quite often something will sound strange or illogical and therein lies your error.”
Thank you so much to all those who contributed. There were so many comments and ideas that I couldn’t fit them into this article. So, I’ve published the whole list on codio.com/blog.