Programming Basics


One of the core goals of the Foundation is education. Another is the support and promotion of Open Source software. This project combines both. With PC’s running Linux Mint or Bodhi Linux and/or Raspberry Pi™ systems we set up classrooms and teach students the basics of how a computer works and how one goes about programming one. Programming is an excellent way to develop problem solving skills, and it’s fun at the same time!

We are not just aiming a particular age group, but study material is created for students across age groups and backgrounds. We use Logo derivatives, Alice and Scratch for the youngest but use a wide variety of programming languages depending on need.

Alice Programming Environment

Alice Programming Environment

For example, if students prefer a more hardware oriented background, we go into C, C++, and Ada. If web development is more suitable, languages such as JavaScript play a prominent role besides the server side languages such as PHP. We also use Python, Erlang, Assembly, Java, etc. when it suits the needs of the project and supports us in what we want to achieve.

It is important to understand that we are not ‘training’ people to become proficient in a certain programming language. Instead, programming is a tool that is used to accomplish our primary goal: stimulate analytical thinking, problem solving, creativity.

At the same time, we show people that they don’t need expensive tools and software to do this. We use Open Source software for everything and introduce people to the amazing software, resources and people within this community. We also show them how to become active members themselves if they want to take what we show them to the next level.

We have done these as individual members of the foundation, and are now focused on building on these past experiences and develop a coherent plan to expand on this. Initial target country is Algeria, but we are in the planning stages for several Latin American countries as well. The objective is detailed below.


Starting from the early grades on, we want to develop the possibility for students to learn how to program into a consistent and pedagogically sound and technically executable way. As mentioned above, programming is only a means to an end – being enhance analytical thinking, problem solving and creativity. At the same time we aim for a deeper understanding of mathematical concepts. We also believe that adding programming as a skill can enhance the ability of the student to use the technologies available through the Internet in a way that it can help their community. We’ve seen in the past that simple tools can often make a big difference.

We strongly believe, and know from experience, that throwing technology at a problem does not solve the problem unless you have people that can optimally use the technology and teach others as well. The goal for the project is to pick up where we left off in Algeria, and introduce programming in a wide range of schools with the help of local universities and companies. We will start small with a couple of classrooms with re-used computers or the Raspberry Pi™ and develop a curriculum suitable for a couple of different age groups. The teaching aspect is most important here, especially providing instruction to local teachers.

We see the following steps to bring this to a success:

  • Prepare the classrooms and material, with a focus on quality material in local languages (in progress)
  • Work with local community leaders and schools to develop support for the project (in progress)
  • Work with officials (ministry of education) to promote the project in other regions in the country
  • Fine tune and develop the material, training educators locally in the process


After initial trial runs and fine tuning, the goal will be to have the support network in place to bring this to other schools and to expand the scope of the project.