I got into programming much early than most of my college pals here, almost 8 years earlier than when they started learning that they can also program computers, and they came to know about languages. The case of studies is different here in India, where you join school when you are 6 years old (play schools aren’t a thing when I was young, but they came nowadays and are even admitting in 4 year olds). Then you study all the types of subjects until you get 16 and come out of school. We all had English, Telugu (our state language), Hindi (our national language), Science (biology, physics and chemistry), Social Studies (history, geography, civils and economics), and if the child wants to, they also teach Sanskrit (the oldest language from which all the Indian languages derived).
Okay, but that is a lot? You might feel so, but no. The syllabus they teach is very small, and they are present to let the child know the different available fields that they can get into. Till here, computers are only a basic education, children will learn to use computers, play games, create art works using paint, create presentations, taking printouts, sending and receiving emails, etc., Nothing more. And I can bet 90% of my friends haven’t seen a computer until they are 12 or 14. Even schools lacked faculty who can teach computers, so even though the government sponsored the hardware, they had to take rest here.
I and a friend of mine, taught computers to ourselves, by experimenting with them. We used to see what makes what, that we actually opened up hardware and refitted them, and by reading their manuals, we came to know about operating systems, software, and all. We made games (using Game Maker 5.1) when we are 12, and we showed most of my friends what a computer is, by using games.
Then after school, we had two ways, the diploma (work based courses) and the intermediate (maths, physics, chemistry, botany, zoology, history, geography, economics, and civil). I went the intermediate way and chose Maths, Physics and Chemistry as my preferred subjects. Additionally, here, English, Telugu and Sanskrit are a must. No programming or computers here again.
Then there are two major streams, Engineering and the Medicine, but there are also Arts, law, etc.,
Coming to Engineering, the guys who chose to intermediate will be taken into the first year, while the diploma guys join directly in the second year. There are five major branches, which are as follows:
[]Computer Science
[]Electronics & Communications
[]Electronics & Electrical
[]Mechanical
[*]Civil Constructions
It is in engineering that most students here take their first glance at computers. However, the first year of engineering is the same for all the streams. We have to study Applied Mathematics, Applied Chemistry, Applied Physics, Computer Basics, Programming in C, Engineering Mechanics, Mechanical Drawing. English comes additionally here as one of the language subjects. There are no needs to keep Telugu, Hindi and Sanskrit, we will be well versed in them because they are our native languages.
When I got into engineering at the age of 18 in 2013, I already know of C, C++, Java, C#, VB.Net, Haxe, JS, PHP, and some basic Ruby. I already knew the languages, how to debug programs, (I had written my first game engine back in 2009 in Java) so I assumed that it will be very very easy, but alas, it isn’t.
Why?? Faculty are interested in completing the subjects (as increasing the students marks, not knowledge), and didn’t care about the thought process. I mean, they didn’t teach the students how to understand a problem and find the cause for it. And next, the colleges here are affiliated to universities, and had to teach the never updated syllabus that is designed by some very experienced faculty (experienced in teaching and academics, not in the emerging technologies).
There is also a drawback in my own self. I always thought that computer science was nothing but programming, commanding computers to do what we want, but then it actually is all about learning lessons from others inventions, and finding the logical solutions to the real world problems. With the subjects we had, and with that decade old syllabus, we are only going to learn the real basics which are just enough to survive in the everyday’s programming job.
We are taught design patterns, and it is our part to learn about when to use a specific pattern. We are taught about data structures, and again, we have to learn to find the correct datastructure to use on our own. The same goes to computer organisation, operating systems, linux programming, and a lot of subjects.
With all these things said, I came to know that a teachers part is very limited, and in fact, it is the part of the students that has more weight in the complete learning process. Teaching to kids is, yes, fine, but it will only be effective when the child is also interested in the outcomes. At such a young age, I don’t think children in schools need high programming, because they don’t know how the problems will be, and all. Instead, tell them how to think.
Games are a wonderful tools for that, and most of the young people today are well capable of playing games. Teach them to programming by teaching them to make games. Giving some presentations with some code snippets will only make them yawn in class and makes them sleep.