As a person who has spent some years teaching children introductory programming, computational thinking and creativity, I have recently asked a simple question and published a very short survey: “Why don’t we have secondary school textbooks with source code in them?” I wanted to know what different people in different countries think and what their experiences were. I promised to publish the results after collecting a reasonable amount of data.
So far 43 people have answered, and I think it is time to look at the data briefly. One of the questions was related to the past experience of people. I wanted to know whether they used textbooks with software source in their secondary education:
Apparently, out of 43 people who have answered, only 2 of them had the chance to have used such textbooks during their education. The questions that followed were “What was the subject of the book(s)?”, “What programming language was used in the book?”, “What year was that?”, “Who was the author?”, and “Who is the publisher?”
The answers of those 2 people can be summarized as:
- The book’s subject was mathematics, it used BASIC source code and it was used in 1988.
- The book’s subject was mathematics, it used MATLAB source code, it was used in 2013, its author is B. Lathi and it is published Oxford.
Apart from the personal secondary school experience of people, I was also curious about the current situation: maybe they did not use textbooks with source code during their secondary school education, but it might be the case that their children are using such textbooks. So I asked
“Do you know secondary education textbook(s) (currently in use) with source code samples at the end of each chapter?”, “What is the subject of the book(s)?”, “What programming language is used in the book?”, “Who is the author?”, “Who is the publisher”, and “If the book has an official web address, what is it?”
- The book’s subject is mathematics, it uses Maple, it is published by Maplesoft, and the web address is http://www.maplesoft.com/TeacherResource/
- The book’s subject is mathematics, it uses Python, Scilab, and Xcas, it is published by Hatier, and the web address is http://www.odyssee-hatier.com/terminale_s/
- The book’s subject is programming (and the remaining questions were left unanswered).
Apart from the questions above, I was curious whether people would think having secondary school textbooks with source code in them is a good idea, so I have also asked:
“Do you think it would be great if secondary school students had such textbooks?”
I could not hide my surprise at this result because even though I expected a somewhat positive response, I couldn’t imagine that the overwhelming majority of respondents, 36 of them, would actually say “Yes“.
Comments from the respondents
Finally, I wanted to know what people were thinking about this topic so I have included a final question in my survey asking “Do you have any comments on this topic?”, and received the following responses:
- Student should be exposed to algorithm not just numerical computing using programming language!
- Since 2009, for students majoring in science, algorithmics and programming education is mandatory in France in the last 3 years of secondary education (~ age 15 to 18). Today, all math textbooks for these courses have algorithms in every chapter and most of them have a few source code in some chapters.The book I referenced is just one among others. However, source code is more present in the companion website than in the book itself. Most of the time this source code is the answer to a book problem that says “write a program that does this and that”. That being said, I don’t know if this whole thing is good or not. I, as a software programmer, thinks that some programming exposure cannot hurt. My wife, as a maths teacher, would rather think that some math concepts had to be removed from secondary education to make room for things (programming…) that are not mathematics.
- Internet is great. People wouldn’t use it anyway.
- Point of view from USA. It is a disservice that they do not have such books in use.
- In a problem, trying to figure out the logic instead of solving an equation seems to have another cognition level which we lack in education.
- Actually I want to say maybe to this question. But my true answer is coding should be a course and should be thought in secondary education.
- During my secondary education, there was something called “Internet”, I used it a lot, I saw code snippets, played with them and taught myself programming online.
I think whether having software source code in secondary school textbooks is a great idea requires more debate, experimenting, observation and data. So far my experience was very limited and the results of this very short and simple survey showed experiences and perspectives of other people from different countries.
Below is a short summary of my current thinking about teaching children introductory programming, computational thinking and creativity:
- We have great programming languages for the task at hand, from Scratch to Python and more.
- Many people spent a great amount of time on the pedagogical aspects of teaching coding to children.
- Children spend most of their time at studying at school and home. Anything that is not perceived as the core part of their studies is perceived as something extra.
- If something is perceived “extra”, “additional”, or “optional”, then it becomes difficult to claim that it is actually a part of the core aspects of the secondary school education.
- It is not very difficult or costly to integrate programming examples to secondary school textbooks, it can be easily done for mathematics, physics, chemistry, music and art textbooks. After all the results of the survey described show that it has already been done for some books in some countries.
- Once the integration has been completed and programming became a natural part of the secondary school textbooks, even if the teachers consider them as extra exercises (and even ignore them), there will be some curious children who will give it a try. And some of those who do will be our hope for better solutions to the great scientific and technological problems awaiting us in the future.
I might seem enthusiastic and biased but then don’t take my word for it: Spend a few minutes reading this brief but very critical report titled “Informatics education: Europe cannot afford to miss the boat – Report of the joint Informatics Europe & ACM Europe Working Group on Informatics Education – April 2013“. (Thanks to Joek van Montfort for this great reference!)
I hope I can at least start a useful and fruitful discussion with this blog entry. I wish I could be present at this year’s International Scratch Conference 2013 at Barcelona (http://scratch2013bcn.org/) and discuss this with participants, but maybe they might hear my voice and initiate this themselves😉
Let me finish this short note with an anecdote: Once upon a time I was teaching introductory programming to a 12-year old using Scratch and one day I told her to bring her textbook for her school’s music class. After she brought the book and told me she was curious as to what would come next, I told her to pick her favorite song from the book. She showed me a page filled with musical notation. Then step by step we implemented that song as computer code and played it in Scratch. This short experience let her connect many programming concepts to something she had to study at school. At the end of our session she surprised me with a remark I’ll never forget:
I generally found my music class boring and abstract but seeing it from this Scratch programming point of view makes it so lively, interesting and exciting… I wish all my classes were like that, so that I wouldn’t understand how time passed.
This blog entry should not be considered complete without some source code, and I have indeed used some programming to create the graphics seen above. The R source is given below: