# Historical standard order of topics in imperative programming textbooks [closed]

Bit of history: The Darmouth Basic Manual (1964) follows a common order of exposition: expressions, variables, constants, assignment, tests/loops; calling subprograms being considered an "advanced topic" (well, the last thing, after using tables).

This reminds me of the first version of Fortran, (see preliminary report of 1954) which had no user-defined subroutines/functions at all.

So teaching the importance of decomposing code into smaller (reusable) units was not considered a major priority. And as a consequence we had generations of students who wrote functions/subprograms only under coercion.

There's a recent paper (2016) about a procedure-oriented approach to teaching programming in C ; the question is, were there similar approaches in the sixties ot seventies?

Remark: Counter-examples will certainly by found in the presentation of functional and LOGO programming.

• In Teaching Children Thinking, by S. Papers, 1971, page 5-2 it is shown that after demonstration of FORWARD 100 and ROTATELEFT 90, the student can write the first (endless recursive) procedure

TO CIRCLE
FORWARD 100
ROTATELEFT 90
CIRCLE
END


Here the procedural aspect comes even before variables, expressions etc.

• In the famous SICP book (not for innocent children) using Scheme, definition of functions come after expressions and before IF etc. But it comes much later (1985).

Partial answer: the ACM Curricula Recommendations for Computer Science, vol 1 (1983) contains the 1968's course contents and outlines. In course B1 (page 21) Introduction to Computing :

• "This outline reflects an order in which the material might be presented [...]"
• "2. Basic Programming. Constants identifiers, variables, subscripts, operations, functions, and expressions. Declarations, substitution statements, input-output statements, conditional statements, and complete programs"

• "3. Program structure. Procedures, functions, subroutine calling, and formal-actual parameter association. Statement grouping, nested structure of expressions and statements, local versus global variables [....]"

The book A Fortran Primer (1963) by E.I. Organick starts explaining subroutines and functions at page 89. Last section before "12. Preparation of Punch Card Program Decks". Can be considered as a good textbook for beginners, not a Fortran reference manual. Read it if you miss good old time flowcharts.

• I'm voting to close this question as off-topic because the teaching practice of the 60's has little bearing on teaching today. The question can be answered by the OP with a google search. – Buffy Aug 10 '17 at 12:48
• Note that much of what appears in "early" textbooks using some language are heavily influenced by the practice of programmers using earlier languages. For example, early Fortran books were very much assembly language like. Subroutines weren't used for problem decomposition but only to capture "common computations." This was likely due to the relative difficulty of setting up subroutines in the assembly languages of the day. Early Pascal textbooks were very "Fortran-like". It took a while to learn the new way of thinking. – Buffy Aug 10 '17 at 12:51
• @Michel, I have modified your question to pull it within the rules of SE (list questions must contain criteria to differentiate stronger from weaker answers). I tried to make sure that it would still answer your original question; feel free to roll back the edit if I have misunderstood your intentions. – Ben I. Aug 10 '17 at 13:32
• @buffy what seems the logical order of exposition in today's textbooks is heavily influenced by the quantity of textbooks published before on a similar subject. – Michel Billaud Aug 11 '17 at 6:05
• An adequate answer would be scan images of old textbook tables of contents, for example. Definitely not easy to find by a google search for obsolete books of the 60's, if you ever tried... – Michel Billaud Aug 13 '17 at 16:51