This is a very objective question. I want to know what are the methods for teaching programing?
I'll provide a parallel example to make this clearer in case this causes any confusion.
I have Portuguese as a native language and I teach English here in my country (therefore I'm an English teacher).
In English teaching there are 3 main methods (over simplified below) of teaching used here.
Method: Communicative Approach. Author: Noah Chomsky et al. -> Where you expose the student to a simple exercise and words and how to use them and then explains what happened and follow to more advanced exercises based on what is contained in the lesson (or to what you just explained). {It can be done starting with the mother language and then moving to the language one desires to learn as you progress in the classes, or classes can be taught entirely in the second language with a special care with the words used for beginners.}
Method: NLP (Neuro Linguistics Programmming). Author: Various -> You expose the student to a simple set of words translated, for instance verbs, and asks them to translate from their mother language to the language they are learning. Moving on to vocabulary and so on. On each lesson stacking how to use the verbs, vocabulary, expressions and some grammar (usually in this order).
Method: Immersion. Author: Krassner et al -> The student is taught, much like Communicative Approach but classes are done fully in the language and in a place where the person lives a routine with the language. To learn English (or any other language as a matter of fact) like this, according to the method, one would have to live in an English speaking country.
========================================================================= Edit: I believe this line is causing a bit of a confusion
I did not meant that Learning a human language is the same as learning a programming language. I'm just saying that, in English language teaching we have methods to do that, as listed above. Does CS have one (or many)?
Continuation of the original text:
-> Part I believe is causing confusion:
So above I believed to have expressed what I meant with "What are the pedagogical methods for teaching programming?" Making a parallel with Teaching English as a Second Language in order to __illustrate__.
I think from here things were well understood. Why do I ask this? And what answers I don't expect seeing.
What I see is that people usually say; "In this site, there is a very good teacher, or resources for learning how to code. You can use it." As a way to mirror that, to teach someone or a group how to code instead of pointing to a (or various) method(s)
That is not my question. It is very clear. What are the methods for teaching programming?
====!And not; What are the methods for learning how to code?!========
I hope this can help me, because I haven't really found an answer to this. Or at least not as explicit and detailed as I see in other areas of the teaching world.
I don't need a detailed explanation but if you wish to provide something more elaborated I will be thankful. Nevertheless the method(s) is(are) just fine and what I'm looking for.
Have a great day.
Note: Originally asked in -> https://stackoverflow.com/questions/50586854/what-are-the-pedagogical-methods-for-teaching-programming?noredirect=1#comment88194521_50586854