In the past five years that I have been living in Denmark, I have been given the chance to be a tutor to young students. I started getting passionate about it and, as I participated in more and more events, I started realizing that I could make a change in the way we teach Science and Programming in schools at different levels.
What’s wrong with education?
It’s not that “there is something wrong”. If I said there is something wrong in the way we teach Science and Programming in schools, it would imply some big flaw in the system we have today, and I would be also strongly criticizing the community of great teachers and professors out there. That is not what I mean!
However things are not ideal either. We can improve the way we engage with students in Science-related subjects by getting better at the following:
- A better integration of Programming in every aspect of learning. This is especially true in the context of Science-related subjects.
- Raising awareness about the importance of Data Science.
So this is the idea: improving something which is quite good today, but not perfect. Times are changing and teaching methods should too.
Focus on Denmark
Though my big aim is to target the whole world, I have to start from somewhere. I have been living in Copenhagen for more than five years now, and engaged with communities of students and teachers for quite a while. There are some interesting facts involving this country:
A recent study, here in Denmark, has shown that students make up their minds about which learning path to choose when they are around 8th, 9th and 10th grades.
So that range is quite critical as it determines the approximate time when students lean towards a path: Humanistics vs Science. It is important to remark that such time frame is not when students make a final decision on this matter, I said “lean towards” on purpose!
The interest of Danish students in Science tends to be very low. Many more students are likely to choose Humanistics over Science in their education.
These findings are backed up by an analysis1 conducted by Tænketanken DEA. As part of my job as a tutor, and in the context of an initiative started in Microsoft Denmark to increase interest in STEM2, we are also trying to promote girls’ interest in Science.
In the past years, I have also been asked to make a contribution in helping the Danish system promote Science in order to get more students engaged with it, hoping to change the trend and increase the amount of pupils interested in scientific courses. This objective is compatible with my bigger aim, and this is the driving principle of this series of notes.
A series to help teachers
The notes I am going to write in this series are intended to help teachers in primary and secondary schools. With respect to the Danish education system, the focus is on students in Folkeskole and Gymnasium.
The main idea is to provide different recipes3, targeting different types of students, that educators can follow to achieve the objectives I mentioned before, and help disciples engage more with Science by using Programming. How to use Programming in the context of different subjects? Here are the answers:
- Students can use Programming to solve problems.
- Students can use Programming to complete assignments and homeworks.
- Students and teachers can use Programming in classes to learn better.
Programming is something that should be learnt, but in my recipes the approach is to actually learn how to program by using Coding to solve real issues, not to run some given assignment that has no connection with other subjects. The approach I want to push for is more integrated than what we have today.
There are many technologies out there, but we should aim for those which have these characteristics:
- Free: Students don’t have money. Schools and teachers already struggle with budget, no reason to ask for more.
- Open Source: Open source software can provide a guarantee that a worldwide community is present which develops and maintains it. This enables schools not to stipulate any form of contract with a specific company or firm over proprietary software.
Focus on R A few systems that can help us with our objectives satisfy the conditions above, I think that the best option for us is R. R is both a programming language4 and a platform5. The reasons why R is the answer are listed below:
- It is designed to target Data Science.
- It can be installed on all systems: Windows, Unix and Mac.
- It provides both a shell/cli and an IDE.
- It has a long history, therefore it is a stable software.
- It has a strong community made mostly of professors, teachers, scientists and engineers, plus all the passionate people that work with it (like me).
A bit more on the recipes
Every recipe I am going to post will have somewhat the same structure:
- An introduction: To explain the target audience and the difficulty of the recipe.
- A scenario: To describe what the recipe is about. It can be a workshop to be conducted in class or an assignment to be given to students.
- A motivation statement: To explain what students will get in return at the end of the recipe.
- Execution steps: The core part of the recipe where the steps to perform it are explained with code samples and snippets. This has the form of a tutorial.
- Analysis: A description for teachers about how to end the experience with students. This section typically draws the most important conclusions that students should be made aware of and that teachers are encouraged to remark.
- Closing remarks: A final word from myself to teachers about the recipe they just learned. This can be anything from suggestions how to conduct the recipe in a class, to what kind of preparation educators should do before running the experience with students.
The purspose is to create a collection of different experiences teachers can apply in their programs so that, later, they can also start building their owns.
The recipes are all based on R and they require students to use it. It means students should learn R in the first place right? No! The main idea is to use the recipes to start playing with R. As students use the commands and write code, they learn the language on the way. I know it sounds risky and very unstructured, but I have applied this phylosophy/methodology in different courses and workshops I held before with young learners, and it worked.
Since students are going to use these commands to solve practical issues, they will associate the programming techniques they are learning to the concrete problems they are solving. This creates that level of integration I mentioned before and we need to strive to have in classes.
Of course this means that teachers also will have to learn this way, therefore the workflow would probably be as follows:
- Teachers run the recipe themselves first.
- Teachers run the recipe with their students.
- Teachers give students assignments they can complete on their own, based on more recipes.
- Teachers start creating their own recipes by building on top of those published here, or by starting from scratch.
I am aware this is not going to be an easy, straightforward task. What I want to achieve is quite ambitious! But my intention is to make it the easiest possible by publishing recipes of different levels. Every recipe will be published as a note here, which means that a commenting section will be available at the end of the recipe.
I encourage teachers to engage with me in those comments: share your doubts, problems and feedback.
By doing so, I can improve these recipes, and teachers can deliver better learning experiences.
Thank you and the best of luck to all of us!
Article: Hvordan får vi STEM på lystavlen hos børn og unge? published in February 2019.↩
Science Technology Engineering and Mathematics.↩
In the Internet jargon, a recipe is a tutorial, a short course or an how-to article.↩
The way we use today to tell computers what to do.↩
An environment on top of which it is possible to run programs.↩