Answers.Body: <p>I have a partial answer for you, about why BASIC and home computers in the early 1980's were so helpful to learning: it is how <strong>accessible</strong> everything was. A kid could look inside the case and see what the parts were, and even do things like plug in a new disk drive or something else hardware related. This is difficult to do now with a phone, tablet or laptop.</p>
  <p>The BASIC interpreter was straightforward: it checked lines as you entered them and it ran the program. The realization that the interpreter was <em>a program</em> was startling and fascinating. A program is reading my keystrokes, and running my program!</p>
  <p>The layer between what you could write in BASIC and how the hardware could be afffected was thin. It didn't take long to find out how much amusement a few POKE statements could generate. What was happening there?</p>
  <p>The interpreter ran on top of another program: the operating system. At this point, the mystery was sufficiently weird and in your face that you either wanted to learn more, or veer off into something less arcane. It was a fast trip to the edge of the rabbit hole, and you could learn more or get off any place along the way.</p>
  <p>I wrote programs on a DEC-10, Cyber 750, PDP-11s and other things, but these were not open-face like an Apple ][ or Atari 800 (it has 3 CPUs that all cooperate, somehow) or even a TRS-80 or PET. Without such accessibility early on in my learning environment, I might not have learned as much, as fast, as deeply, and so college and career would have started differently - probably less well. When we got back around to C with 68020 assembler to write parts of a compiler during my last year of college, it was home ground for me, but not so much many other students.</p>
  <p>Perhaps new devices like the Raspberry PI are similar to 80's home PCs in some ways, but I haven't gotten my hands on one to know. If not, I think that the prospects for &quot;learnable computing&quot; are rather dimmer than they were in the bad old days. The important thing is the mystery behind the question: &quot;<em>How could a computer possibly work?</em>&quot; and how BASIC, the simple OS and hardware were low barriers to entry to that story.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-05-10T12:46:33.017Z
Answers.LastActivityDate: 2021-05-10T12:46:33.017Z
Answers.UserDisplayName: Scott Rowe
Answers.Body: <p>I'd suggest you reconsider. To understand e.g. why Pascal is a nice teaching language you need to have a decent background in programming languages, some notion of teaching programming (the misconceptions by learners are often way, way different than you'd guess in your wildest nightmare), and hopefully some experience teaching.</p>
  <p>Languages specifically designed for teaching are a wildly varied  bunch, most never won any sort of wider traction. Or if they did, they soon outgrew the &quot;to teach programming&quot; range. Take a peek at BASIC and its recent incarnations (don't look like BASIC at all); languages like Pascal (designed to be easy to implement and teach); Logo and even (to some extent) Scheme are part of the flock.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-04-10T01:51:28.503Z
Answers.LastActivityDate: 2021-04-10T01:51:28.503Z
Answers.UserDisplayName: vonbrand
Body: <p>I wanted to analyze the history of educational programming languages and their evolution up to the present (and probably make the presentation out of it for middle schoolers). Can you recommend any supportive materials with deep historical retrospective analysis since 1960s (Logo Turtle, Squeak etc.)?</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-19T10:37:30.860Z
Comments.Text: I hope you don't have a misconception. Few languages were _designed_ for education. Certainly Squeak is a fully professional functional language. Many were used in education (Pascal) but were designed for a larger purpose.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-19T10:41:41.650Z
Comments.Text: Is Squeak a functional? No way: https://en.wikipedia.org/wiki/Squeak It's been designed as an object oriented. Maybe you confused it with Scheme? And yes, I know about half-professional usage (like in case of Turbo Pascal, which was also used in school classes), but I intentionally narrow the scope of their usage.
Comments.UserDisplayName: paus
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-19T10:44:46.373Z
Comments.Text: Sorry, yes, OO, not functional. I just woke up and my brain is still asleep. But it is a fully professional language. (Oddly, in my first comment, I was even thinking of Alan Kay.)
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-19T11:54:29.310Z
Comments.Text: The question could be a bit broad if one was considering educational languages for all levels of students. If we include nursery, kindergarden, primary, secondary, high school, college, university, graduate, adult and professional in the mix. For example BASIC was designed at Dartmouth for undergraduate teaching. Pascal was also designed for teaching use in Computer Science, then there are the developments that introduce it to younger classes of learners.....
Comments.UserDisplayName: Brian Tompsett - 汤莱恩
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-19T12:09:27.867Z
Comments.Text: @BrianTompsett-汤莱恩 yes, we can enlarge the scope for kids to show them where they are at the moment and where we're going to, which language we choose to develop what. I just chose Logo as an example, because we start with it soon.
Comments.UserDisplayName: paus
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-19T13:17:19.760Z
Comments.Text: @BrianTompsett-汤莱恩, actually Pascal wasn't designed "for teaching use". Quoting Wikipedia: Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It grew out of Dijkstra's (and others) work on structured programming. Encapsulation via nested functions was a key idea.
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-19T15:14:36.307Z
Comments.Text: Actually, I just wanted to get the book, covering the history of constructivism as approach to teaching, including projects like logo, like lego mindstorm, like Key's Smalltalk (he was obsessed with education), like micro:bit, etc. I just don't know if it exists or not.
Comments.UserDisplayName: paus
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-19T17:34:00.127Z
Comments.Text: Basic, Logo, Scratch, Snap! -- those are the only languages designed for teaching that I'm aware of.  I'd love it if there is a resource like the one you are asking for.
Comments.UserDisplayName: Ben I.
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-20T10:17:41.757Z
Comments.Text: I am wondering why. You say that then pascal was written to avoid pointers and …. You then get asked what is a pointer. And you have to spend the rest of the session convincing the class to stop thinking about pointers. Where as if you don't talk about these thinks, your talk is abstract.
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-20T10:18:12.303Z
Comments.Text: @BenI. Eiffel was designed for teaching. And does an Educational language have to be designed for Education, or just used for Education (that could be a wide scope). Choice is part of design.
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-20T12:20:35.833Z
Comments.Text: @BenI. DrRacket with few Scheme dialects also (HTDP course).
Comments.UserDisplayName: paus
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-20T12:26:56.187Z
Comments.Text: @ctrl-alt-delor about pointers, meanwhile, in Pascal you can make a smooth transition to pointers, not like in C, where the name of the array is an implicit pointer to it's first element. Here: http://c-faq.com/aryptr/index.html
Comments.UserDisplayName: paus
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-20T14:27:07.960Z
Comments.Text: I was suggesting that discussing pointers to beginners is a bad idea. And this is why they are not in educational languages.
Comments.UserDisplayName: ctrl-alt-delor
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-01-20T15:33:39.727Z
Comments.Text: @ctrl-alt-delor at some point, you start with data structures, like linked lists. And then you  should explain somehow how they work to novices. In Pascal, you can do it seamlessly, it's an alienable entity, you may not touch it up to the moment without breaking the programming process.
Comments.UserDisplayName: paus
Tags: <language-choice><computer-history><programming-environment><secondary-education>
Title: History of educational programming languages
ThreadText: # History of educational programming languages
  
  (Asked by: username_0 on 2021-01-19)
  
  I wanted to analyze the history of educational programming languages and their evolution up to the present (and probably make the presentation out of it for middle schoolers). Can you recommend any supportive materials with deep historical retrospective analysis since 1960s (Logo Turtle, Squeak etc.)?
  
  **Tags:** language-choice, computer-history, programming-environment, secondary-education
  
  > **Comments:**
  > **username_1**: I hope you don't have a misconception. Few languages were _designed_ for education. Certainly Squeak is a fully professional functional language. Many were used in education (Pascal) but were designed for a larger purpose.  
  > **username_0**: Is Squeak a functional? No way: https://en.wikipedia.org/wiki/Squeak It's been designed as an object oriented. Maybe you confused it with Scheme? And yes, I know about half-professional usage (like in case of Turbo Pascal, which was also used in school classes), but I intentionally narrow the scope of their usage.  
  > **username_1**: Sorry, yes, OO, not functional. I just woke up and my brain is still asleep. But it is a fully professional language. (Oddly, in my first comment, I was even thinking of Alan Kay.)  
  > **username_2**: The question could be a bit broad if one was considering educational languages for all levels of students. If we include nursery, kindergarden, primary, secondary, high school, college, university, graduate, adult and professional in the mix. For example BASIC was designed at Dartmouth for undergraduate teaching. Pascal was also designed for teaching use in Computer Science, then there are the developments that introduce it to younger classes of learners.....  
  > **username_0**: @username_2 yes, we can enlarge the scope for kids to show them where they are at the moment and where we're going to, which language we choose to develop what. I just chose Logo as an example, because we start with it soon.  
  > **username_1**: @username_2, actually Pascal wasn't designed "for teaching use". Quoting Wikipedia: Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring. It grew out of Dijkstra's (and others) work on structured programming. Encapsulation via nested functions was a key idea.  
  > **username_0**: Actually, I just wanted to get the book, covering the history of constructivism as approach to teaching, including projects like logo, like lego mindstorm, like Key's Smalltalk (he was obsessed with education), like micro:bit, etc. I just don't know if it exists or not.  
  > **username_3**: Basic, Logo, Scratch, Snap! -- those are the only languages designed for teaching that I'm aware of.  I'd love it if there is a resource like the one you are asking for.  
  > **username_4**: I am wondering why. You say that then pascal was written to avoid pointers and …. You then get asked what is a pointer. And you have to spend the rest of the session convincing the class to stop thinking about pointers. Where as if you don't talk about these thinks, your talk is abstract.  
  > **username_4**: @BenI. Eiffel was designed for teaching. And does an Educational language have to be designed for Education, or just used for Education (that could be a wide scope). Choice is part of design.  
  > **username_0**: @BenI. DrRacket with few Scheme dialects also (HTDP course).  
  > **username_0**: @username_4 about pointers, meanwhile, in Pascal you can make a smooth transition to pointers, not like in C, where the name of the array is an implicit pointer to it's first element. Here: http://c-faq.com/aryptr/index.html  
  > **username_4**: I was suggesting that discussing pointers to beginners is a bad idea. And this is why they are not in educational languages.  
  > **username_0**: @username_4 at some point, you start with data structures, like linked lists. And then you  should explain somehow how they work to novices. In Pascal, you can do it seamlessly, it's an alienable entity, you may not touch it up to the moment without breaking the programming process.  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_5 on 2021-05-10. Score: 1
  
  I have a partial answer for you, about why BASIC and home computers in the early 1980's were so helpful to learning: it is how **accessible** everything was. A kid could look inside the case and see what the parts were, and even do things like plug in a new disk drive or something else hardware related. This is difficult to do now with a phone, tablet or laptop.
  
  The BASIC interpreter was straightforward: it checked lines as you entered them and it ran the program. The realization that the interpreter was *a program* was startling and fascinating. A program is reading my keystrokes, and running my program!
  
  The layer between what you could write in BASIC and how the hardware could be afffected was thin. It didn't take long to find out how much amusement a few POKE statements could generate. What was happening there?
  
  The interpreter ran on top of another program: the operating system. At this point, the mystery was sufficiently weird and in your face that you either wanted to learn more, or veer off into something less arcane. It was a fast trip to the edge of the rabbit hole, and you could learn more or get off any place along the way.
  
  I wrote programs on a DEC-10, Cyber 750, PDP-11s and other things, but these were not open-face like an Apple ][ or Atari 800 (it has 3 CPUs that all cooperate, somehow) or even a TRS-80 or PET. Without such accessibility early on in my learning environment, I might not have learned as much, as fast, as deeply, and so college and career would have started differently - probably less well. When we got back around to C with 68020 assembler to write parts of a compiler during my last year of college, it was home ground for me, but not so much many other students.
  
  Perhaps new devices like the Raspberry PI are similar to 80's home PCs in some ways, but I haven't gotten my hands on one to know. If not, I think that the prospects for "learnable computing" are rather dimmer than they were in the bad old days. The important thing is the mystery behind the question: "*How could a computer possibly work?*" and how BASIC, the simple OS and hardware were low barriers to entry to that story.
  
  
  ---
  
  ### Answer by username_6 on 2021-04-10. Score: 1
  
  I'd suggest you reconsider. To understand e.g. why Pascal is a nice teaching language you need to have a decent background in programming languages, some notion of teaching programming (the misconceptions by learners are often way, way different than you'd guess in your wildest nightmare), and hopefully some experience teaching.
  
  Languages specifically designed for teaching are a wildly varied bunch, most never won any sort of wider traction. Or if they did, they soon outgrew the "to teach programming" range. Take a peek at BASIC and its recent incarnations (don't look like BASIC at all); languages like Pascal (designed to be easy to implement and teach); Logo and even (to some extent) Scheme are part of the flock.
  
  
  ---
  
  