====== Programming primer ====== Author: prof. Marina Čičin Šain ===== When to start with programming? ===== My first steps in programming were at a computer centre in Croatia in 1968 after graduating theoretical mathematics at University of Zagreb, where I started my career as a programmer trainee. In those days, when only a few did use computers, I was really lucky of having an opportunity to start programming in my early twenties. The question is:When is the best time to start with programming? The answer is very simple: the earlier the better. Some students start definitely too late, for instance some at secondary schools, some at universities and some after school completion. Therefore, they have to acquire a lot of facts in a very limited time, and this always causes a problem, even though the facts are simple. Children can be confronted with some basic elements of programming as early as at the age of starting primary school. It might be considered too early, and too hard for little children to learn programming, especially by those who assume programming as something difficult and too complex for the little ones. However, here we would like to remind the suspicious ones of a one-year-old child’s capability of starting to speak that is a precondition for reading.. Although a little child is not learning alphabet by being exposed to reading complicated texts, later on read at adult stage, both children and adults use the same letters either for reading nursery rhymes, fairy tales or scientific papers. Not far back in history only the privileged were taught to read and write, and it was generally acceptable ( if not desirable) for common people to be illiterate. Nowadays, thanks to the improved teaching methods, even people with serious mental impairment are not only literate, but are taught different subjects as to develop specific skills and acquire knowledge to exert their utmost capabilities. Therefore, there is no reason to make any exception for programming. The point is that it should be done in a way that children can accept programming. Unfortunately, none of programming languages are tailored to suit children at early stage, either being too difficult, or too lopped. Thus, most children learn to use computers without actually learning programming, or in most cases, they use some programs with limited or no explanation of how a particular program works. We believe it should be changed,because it is as possible to acquire programming in such a natural way as acquiring reading skills by using picture-books, acquiring foreign languages by listening and singing nursery-rhymes or acquiring counting by playing “Home You Go”. The author of these lines developed a method of teaching children the use and behaviour of variables in RAM, and the basis of coding in 1980. Everything was done by using a toy called Mema made by children themselves. \\ {{:wiki:marko_1.png?333x220 }}{{ :wiki:lukamema.jpg?nolink&333x220 }} Picture 1. The toy called Mema is a small chest of drawers with nine drawers made of nine matchboxes. The drawers have different names or appear in different colours. //The teacher // //herself did not have any specific knowledge of programming, and the method did not require any additional costs. Children learned a lot about programming,simply by discovering that in a computer there is something that is called a program being built by instructions. By playing Mema, they easily understood how important the sequence of instructions is for building a program. They quickly spotted that some instructions read numbers in RAM, others calculated results and stored them again in RAM, and while numbers were stored in variables, calculations were done by using variables or constants. Furthermore, they learned that new contents of RAM replaced the old ones, and that sometimes the result might be too big to fit into RAM (Overflow), that new contents of a variable replace the old one… // {{ :wiki:marko_2.png?256x300 }} Picture 2. The children using Mema learn how to program without a computer. Step by step children acquired how to update a value of variable, while all Memas in a class had to have the same drawers (compatibility)… Should you get intrigued by Mema so far, it may start removing dust from my old papers and toys and eventually bring to life a story that years ago fascinated me. The method I am dealng with was implemented in a primary school in Rijeka (Croatia) in 1980. {{ :wiki:razred.png?350x209 }} Picture 3. The children with their teacher Maja Mulac (in year 1980.) The teacher liked the method, while the schoolchildren were interested and enthusiastic. I wrote some articles about the method, and published a teacher's handbook. However, that was all, nothing happened. But then almost out of the blue, six or seven years later , I received a telephone call from a teacher of Technical education, Mr. Damir Čović, who included some programming in Basic using Spectrum computers in the same school where the project Mema had been implemented years before. He told me that he was teaching programming in four parallel eighth classes, and that schoolchildren in one of the four classes were much better in understanding Basic than the other three. Having been informed by his schoolchildren that they had some foreknowledge, he contacted their previous school teacher who had implemented Mema and so he got in touch with me. Together we made a parallel test about programming in Basic in all four classes. The result was spectacular! The programming knowledge in the class where the schoolchildren had previously been included in teaching programming by using Mema toy were statistically significant better than in the other three classes. And that took only several hours in the first and second class. The question is : What computer skills would they have acquired, if they had been given an opportunity of continuing learning by applying this method throughout their primary school ? Again, the result was published as a scientific paper, and after that again, nothing happened. .. Now, finally I do believe this might be a fresh start for the Mema story. I do believe this is an opportunity of Mema’s revival and help our youngsters grasp techniques of programming and develop full awareness of how to use computers instead of being used, unaware of what can go wrong, i.e. to have control of what is going on, instead of being controlled. That is my deepest motive for the restart of these sites. The initiative came from my former student, Professor Snjezana Babic, who has been developing these Internet pages and from the EU initiative that encourages programming teaching. Hopefully, this time the Mema initiative will find its way to all those who need it. Marina Čičin-Šain ===== The method description ===== On the next side can find method description: [[:en:opis_metode|The method description]]