Skip to main content


ESL and CSL learning



English as a Second Language and Computer Science Language: Getting Started



Seeking hints for an efficient approach to education, I've looking at computer language books from the nineties. The need for a terminology or notation to talk about my teaching method is driving me into computer science education. Even books by the founders of languages that I would not consider for a general education/liberal arts program provide useful insights. Other than 'joke'(Whitespace) or intentionally obfuscatory(Unlambda) languages just about any computer language, approached in a thoughtful way, could serve a general education program. But which language is most conducive to the liberal arts? Right now I think languages in the Lisp family like Scheme or Racket are the best candidates. Scheme and Racket were designed with education in mind.

And Scheme's design brings to mind a view of Reason itself:
Reason is the dependence of all knowledge on one principle. — I.A. Richards in How to Read a Page p. 210

One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions.
— Guy Steele on Scheme's design quoted in Doug Hoyt's Let Over Lambda: 50 Years of Lisp [DHLOL]
And Reason is the model for the free human being, and for solving problems:
Reason is … the movement of a thought that doesn't recognize any authority other than its own activity. — Cornelius Castoriadis in Rising Tide of Insignificancy
I'm hoping that learning with Scheme provides a way to experience healthy simplification with reason. I imagine it's possible to sequence experiences for education with any language used for jobs.
Of course, if your job is programming, you can get your job done with any "complete" computer language, theoretically speaking. But we know from experience that computer languages differ not so much in what they make possible but in what they make easy. At one extreme, the so-called fourth-generation languages make it easy to do some things, but nearly impossible to do other things. At the other extreme, so-called industrial-strength languages make it equally difficult to do almost everything. — Larry Wall in Programming Perl: Third Edition pxv
But, how can we simplify the approach so that, with less wasted effort dealing with unnecessary burdens, we can get deep in the field through "threshold concepts"? What would be the quickest way to see the core ideas and appreciate them, grow with them? While I'm leaning towards Scheme/Racket I hope to experience the Oz "kernel" language and it's facilities for exploring different paradigms. The metaphor of kernel or germ fits in well with the metaphors from embryology for learning….

In the meantime I've been impressed with insights from Bjarne Stroustup's book about the "industrial-strength" langauge C++.
… to use the language well, you need a perspective that brings order to the set of features and techniques. — Bjarne Stroustrup in The C++ Programming Language: Third Edition p14
Stroustrup makes me think of Neil Postman, we need a coherent view outside of computer languages too.
When there is too much information to sustain any theory, information becomes essentially meaningless. — Neil Postman in Technopoly p77

Unless you can conceive of some easily stated relationships between the basic concepts, the program is likely to become unmanageable. — Bjarne Stroustrup p15

Detailed understanding of language features — even of all features of a language — cannot compensate for lack of an overall view of the language and the fundamental techniques for using it. — The C++ Programming Language p21

Modern secular education is failing not because it doesn't teach who Ginger Rogers, Norman Mailer, and a thousand toerh people are but because it has no moral, social, or intellectual center. There is no set of ideas or attitudes that permeates the entire curriculum. — Neil Postman in Technopoly p186
In beginner-level classrooms we have to provide the limits that will permint creative, exploratory use of language. The classroom has to provide protections that allow early learning to grow.
A family that does not or cannot control the information environment of its children is barely a family at all… That the family can no longer do this is, I believe, obvious to everyone.



Courts of law, the school, and the family are only three of the several control institutions that serve as part of a culture's information immune system. — Neil Postman in Techonopoly p76
Going from C++ to Neil Postman has me thinking of the commandments in The Little Schemer.

The people who use the machines we are most conscious of in this day an age seem well aware of the perspectivess we need to learn and control our tools.
Having no no expectation of a pattern, no basis for assuming a given order, yo have no reason to react with incredulity or even surprise to whatever card turns up.

The belief system of a tool-using culture is rather like a brand-new deck of cards. Whether it is a culture of technological simplicity or sophistication, there always exists a more or less comprehensive, ordered world-view, resting on a set of metaphysical or theological assumptions. Ordinary men and women might not clearly grasp how the harsh realities of their lives fit into the grand and benevolent design of the universe, but they have no doubt that there is such a design, and their priests and shamans are well able, by deduction from a handful of principles, to make it, if not wholly rational, at least coherent. … — Neil Postman in Technopoly p59
I'd like to see a series of examples in Scheme that, without explanation or jargon, would let learners discover systematic apporaches to working with complex processes. I think I.A. Richards's English Through Pictures provides a model for such a series. Maybe searching for a graded sequence into computer science insights will make the language learning process a bit more clear too.

The Minimalist Program and Recursion come to mind. …

[DHLOL] https://letoverlambda.com/index.cl/guest/chap2.html

#ESL #computerlanguages #C++ #NeilPostman #BjarneStroustrup
\#Scheme #Racket #Lisp #IaRichards #IaR #Castoriadis #Reason #education