Is there a “hype cycle” for educational programming languages?

May 18, 2018 at 7:00 am 24 comments

As a longtime Smalltalk-er, I loved this piece: “The 50-year Gartner Hype Cycle for Smalltalk

Interesting how the hype cycle applies to Smalltalk:

  • Technology Trigger — the hype began with the famous 1981 BYTE cover and continued throughout the 1980s.
  • Peak of Inflated Expectations — in the 1990s, Smalltalk became the biggest OOP language after C++ and even IBM chose it as the centrepiece of their VisualAge enterprise initiative to replace COBOL.
  • Trough of Disillusionment — Java derailed Smalltalk by being: 1) free; and 2) Internet-ready. Free Squeak (1996) and Seaside web framework (2002) were not enough to save it.
  • Slope of Enlightenment — Pharo was released in 2008 and became the future of Smalltalk, thanks to its remarkable pace of evolution. We are still in this phase, which requires continuing and sustained advocacy.
  • Plateau of Productivity — we are waiting for this phase, perhaps in the next decade. I am sanguine.

Educational programming languages (or maybe just programming languages’ use in education) don’t seem to follow this curve at all.  Does a programming language ever “come back” once it has left classrooms?  Logo? Pascal?  Even if there’s a “Trough of Disillusionment” (e.g., when we realized just how hard C++ and Java are), we still see longterm use. Even if we later realize how good something was (e.g., Logo for integration into curriculum), it doesn’t come back.

I wonder what the similar curve looks like for programming languages in education.

Entry filed under: Uncategorized. Tags: , , .

Scale or Fail: Making national CS education work in Switzerland Computer science education is far bigger than maker education: A post in lieu of a talk #InfyXRoads

24 Comments Add your own

  • 1. orcmid  |  May 18, 2018 at 10:59 am

    Will you elaborate on that last sentence, please? Offer an example?

    Reply
    • 2. Mark Guzdial  |  May 19, 2018 at 11:15 am

      Why did Logo fade? Because it was a bad programming language? Because students didn’t learn using it? Because teachers didn’t like it? Or did it simply fade from fashion?

      Why did Pascal fade? I just met someone on a trip who helps to maintain open-source Pascal implementations. Pascal has a real place in the world. Why did schools stop teaching it?

      At one time, Scheme was a common introductory programming language. At one time, Smalltalk was the main teaching language at several schools. They’re still excellent languages that are used in many places for many contexts. They went away because of fashion trends.

      What does the “hype” curve look like for educational programming languages?

      Reply
      • 3. orcmid  |  May 19, 2018 at 12:37 pm

        Thanks.

        It strikes me that the hype curve for “educational programming languages” is strongly influenced by the “hype curve” for general-purpose programming languages and supporting/related software, especially where some sort of industrial-strength support and continuation is required for educational use. Not just software on readily available computers, but books and companion materials and education of instructors.

        The drive to rely on readily-available commodity software, languages, and tools seems unerring. Having “bespoke” systems focused on educational usage raises interesting considerations of the skills, commitment, and sustainability of their production.

        – – – – – – – – –

        Here’s my personal recollection of the progression of programming languages in the 60 years of my experience of them. This is not experience as an educator though.

        Yes, Logo and Smalltalk had serious roots in how to teach/conceptualize programming/software. It strikes me that Pascal was not designed as a teaching language, but designed to be easy to teach (and not as weighted down as ALGOL 60 was considered to be at the time). Pascal was also relatively easy to port to small computers.

        I agree that timing is an issue and so is suitability, at the time, for delivery of what we think of as well-performing production software, including software-development tools. Scale and hardware capability and affordability also mattered. Originally, assembly-language level dominated here. Recall that the entry of BASIC was for terminal access to small time-sharing systems.

        At the beginning of the PC era, Pascal was also relied upon in software development, and Basic flavors were offered as a simple language for small programming activities. There was also a turn toward C and then C++ as languages for building operating systems and software (after improvements in development tools to supplant assembly languages for general-purpose work).

        Then Java and many interpretive/virtualized programming systems (e.g., Python) arrived. The emergence of JavaScript is interesting because it was/is so connected with the Web.

        I think there is a question about progression. What serves as a on-ramp that students and enthusiasts can take their experiences toward fluency at different levels and mastery of programming and application of computational techniques in addressing opportunities to employ digital technology?

        I think Logo and Smalltalk lack headroom in that respect. That is not unique to them, and the use for education was extraordinary. there was still a what’s next and reusability of (syntactic) knowledge question. The pretty-standard structured code model has been more durable as a framework for shared understanding, like it or not. It is interesting that functional-programming style is now introduced as a supplement to the well-known structure, not as an independent alternative.

        Scheme is different, it seems to me It’s educational use (and that of Racket) is more toward comprehension of models of computation as objects of study, as well as exploration in AI-related matters. It would be useful to find out what has motivated the changes away from Scheme at MIT. What do those educators say about it?.

        – 30 –

        Reply
  • 4. rademi  |  May 18, 2018 at 12:27 pm

    From my perspective, most such issues have been primarily issues of fashion and popularity than anything permanent.

    We might have a lot to learn from the people who study and teach fashion…

    Reply
    • 5. orcmid  |  May 19, 2018 at 1:02 pm

      After reading this remark several times, I think it might be useful to learn from people who study cycles and explosions of innovation. Over the modern course of digital computing, there have been explosions of enthusiasm and experience by large groups of newcomers. This strikes me as a bit like geological shifts. The innovations in technology mattered, providing opportunities for the involvement of many more people, and they were, for the most part, mostly having their first experience in the wave they caught and were swept up in. This is mainly outside of the cycle of educational generations that are influenced by it.

      Here are a few markers to consider for points of entry and expansion:

      1. assembly language programming, FORTRAN and early COBOL in production mainframe work. Limited operating systems.

      2. Small systems and the entry was Report Program Generator systems. Also small systems with simple FORTRAN for applications.

      3. The minicomputer era and hobbyist expansion.

      4. The PC and personal computing, personal productivity software. Some folks were taken up with Postscript they took it on as their primary programming language. Also, local database and word-processing software. Apple and CP/M, Tandy, etc. Bulletin-board systems. CompuServe, etc. Deregulation of digital over telephony.

      5. Client-server computing and the GUI. Macintosh and Windows, although minicomputer work stations preceded, but not explosively. AOL.

      6. The Internet and the web – server-side development and browsers as UI devices. Now ISPs. Personal web pages/sites. WordPress, etc. Social networks.

      7. Serious distributed computing – the cloud, data mining, etc. First Google, then Amazon and everything.

      How computational thinking gets into here and what are the tools that facilitate it seems to be an open issue, along with the current attention on machine learning, AI notions, etc. How does that explode in an ecological sense and as human activity? Maybe we haven’t seen it yet.

      Reply
  • 6. gmh  |  May 19, 2018 at 2:22 pm

    My thoughts.. There Is a “hype cycle” for programming languages and a lack of awareness/knowledge of teaching introductory programming. In my experience, parents and/or administrators hear or read about the latest language that is in widespread use and want their child, students in general, to learn what is obviously useful, in demand, today.

    In 2000, I had to defend the use of OpenOffice in a middle school instead of Microsoft’s suite of utilities. I met with parents and school administrators. I had an overhead that showed the progression of spreadsheets, from VisiCalc to Lotus 123, to Excel, to ??? My hope was to get everyone to understand that our objective is to teach students the utility of a spreadsheet, why spreadsheets are important and in widespread use. We wanted students to learn concepts, not menu systems, key combinations, etc… If history has shown that there has been a progression (spreadsheet du jour), we don’t know what our students will use five years out. I failed. My presentation fell on deaf ears.

    I was working at Sun when Java was released. I was working with the education market (K-12 through universities). They could not get enough of Java. I was recruited to help teach Java in K-12 in my spare time. Looking back, it was so wrong. Although parents and school administration loved it (and the press loved it), I don’t think the students were learning much of real value. The class was thought of as a success but I think it was primarily because the students were hand-picked, the best 15-or-so students at the school. No way would this have scaled. Everyone that follows Mark and his blog is aware of how hard the problem of CS-for-all is. The lack of qualified teachers for K-12 is a big problem.

    I think Logo is an excellent introductory programming language. But those teaching with it will have to face the inevitable question from a parent: “What good is it? There is nothing written in Logo that is in widespread use.” Smalltalk did at least have commercial value… Hype from industry is just so powerful.

    Reply
    • 7. orcmid  |  May 19, 2018 at 5:08 pm

      Yes. Consider keyboarding (or typing back then) as a skill taught in schools, or shorthand when that was a formalized skill. Also, consider that parents, administrators, and teachers need something grounded. Conceptual and esoteric stuff doesn’t help those who have no knowledge of itself. “New” math fails. Driver education succeeds, I suppose, because of the degree of standardization of passenger vehicles. Even choice of a foreign language to learn will be influenced by a variety of factors for families of native English speakers.

      Perhaps “hype” is the wrong word. I think people want to choose “winners” and seek some understandable-to-them basis for choice. Selecting among mysterious options is going to come down to non-technical judgments of necessity, it seems.

      Reply
      • 8. Mark Guzdial  |  May 19, 2018 at 7:39 pm

        My top two books to understand these cycles are “Schoolhouse Politics” by Peter Down and “Influence” by Robert Cialdini. I highly recommend both of them. I have blog posts coming out based on them.

        Reply
    • 9. brainwash99  |  June 16, 2018 at 3:36 pm

      Spot on. With limited time and resources, many in education jump on the latest bandwagon, always looking for quick fixes and magic bullets. Objectivity gets thrown out of the window. Tendency to concentrate on what to teach, rather than how.

      Reply
  • 10. iamleeg  |  May 22, 2018 at 4:23 am

    My own experience (of programming taught to Physics undergraduates between 2000-2006) is that Pascal was selected because it was good for teaching, and dropped because it was not popular “in the wild”. That implies that the selection criteria changed over time. When we chose a replacement for Pascal, we heard arguments for things that are good for nascent researchers to learn (Python, Fortran), things that are good for nascent “industry” programmers to learn (C, Java), but no arguments for things that are good to teach.

    This is in the UK, and current UK policy is focussed on universities as employee factories (the top-line metric is how many graduates start ‘graduate jobs’ within six months) so perhaps that’s trickling down to these operational choices.

    Reply
    • 11. orcmid  |  May 22, 2018 at 10:22 am

      Granting the concerns for vocationalism in educational systems, I think there does need to be an on-ramp. Art, music, literature, basic literacy, arithmetic, social studies, sciences, mathematics, and physical education and athletics can be taken farther to one degree or another. Even thought there may be significant shifts in going farther, there are pathways to use in adult life.

      Pascal was dismissed as being only educational, a mistake. However, it failed to endure as a general-purpose language, perhaps because of its rigidity and lack of a mechanism for extensibility in terms of modularity and making reusable libraries. Compare that with Python and its provisions to build on libraries from other languages and also create modular systems, including ones for educational purposes.

      The take-up of lower-level languages, such as C, had a number of drivers. I know many folks who thrived with Turbo Pascal back in the day (although it could not be taught with available Pascal books because of incompatibilities around input-output).

      I also think we need to think about affordability and tools along with “teachability.” Having a widely supported ecosystem, including availability on computers found in the home and public places, not just in schools, matters for students and for teachers and administrations too.

      I donated my OLPC pair to the Haiti relief effort and I can no longer check. Beside a Smalltalk derivative, was there also an usable C/C++ installable on those small systems? Of course, as much as OLPC enthusiasts enjoyed those systems in their families, the lack of a path to established “grown-up” systems was apparently a deal breaker with respect to institutional take-up.

      Reply
  • 12. brainwash99  |  June 16, 2018 at 3:30 pm

    The hyperlink in this article regarding the supposed difficulty of Java/C++ provides a simple example regarding Java, but surely this is not enough to damn both languages.

    Opinion presented as researched fact?

    Reply
  • 15. Manuel Rodriguez  |  August 8, 2018 at 2:49 pm

    Programming languages and computer courses are created top-down. Not the students are interested in Java, C++ or Python but somebody at the university feels that learning programming is necessary for anybody. Teachers and curricula are more available then requested. That means, there are 100 professors who want to teach Java, but only 2 students in the course. Why are teachers are fascinated by the topic? Because it makes them feel young. They hope, that their own skills are important for future generation. But the reality is, that nobody cares about programming. The average age at stackoverflow is over 40 years, and there are more people who wants to explain what pointers are, then beginners who are interested in asking questions about the topic. Teaching programming is similar to teaching ancient languages.

    Reply
    • 16. Raul Miller  |  August 8, 2018 at 5:08 pm

      That was never my experience.

      Out of curiosity; which college were you attending where you saw this?

      Reply
    • 17. Mark Guzdial  |  August 8, 2018 at 5:08 pm

      Manuel, you might not be tapped into the latest stats on undergraduate enrollment. Intro courses in Java, C++, and Python are filled to capacity, and not just by CS majors. CS enrollment and interest is on an exponential: https://cacm.acm.org/blogs/blog-cacm/215245-generation-cs-when-undergraduates-realized-they-needed-computing/fulltext

      Reply
      • 18. Manuel Rodriguez  |  August 10, 2018 at 10:06 am

        @Mark Guzdial | August 8, 2018 at 5:08 pm:
        The ACM article about a new generation of computer scientists is out of this world. It assumes a demand which isn’t there in reality to promote current programming courses at universities which are usually have to paid. Also the idea to sell lots of Visual C# licences, books about Python which costs 50 US$ each and postulate a social situation in which without programming the individual gets lost isn’t very advanced. Programming and Artificial Intelligence was relevant for a generation in the 1980s, that is true. At this time, the students were interested in learning to program and robotics was the future. But the world is different. Programming skills and especially with a STEM background are no longer relevant. Instead it is a way to identify the past generation. People who are interested in programming with an engineering background are usually very old. It is the generation of Steve Wozniak, Bill Gates and Philippe Kahn. Imitate their behavior isn’t the right choice for future generation. Such visionary have created the past, not the future.

        Reply
        • 19. Raul Miller  |  August 10, 2018 at 11:16 am

          I think you are making a lot of this up. (Not all of it – there are python textbooks which cost ~$50, for example.)

          That said, I am curious about this vision you are trying to sell: what field are you pushing for, where STEM has no relevance? (There are some contexts where you can largely ignore STEM – creating fantasy entertainment can be one of those. But maybe you are pushing for something else?)

          What are you trying to accomplish? Who suggested you do this?

          Reply
          • 20. Manuel Rodriguez  |  August 10, 2018 at 1:37 pm

            What I want to push forward isn’t important here. The question is more what the today’s agenda of the universities is. They want to bring forward artificial intelligence, engineering and physics – that is true. But why they are doing so? They promise to help the students in understanding how to become great, but what they really want is that the students learn the same stuff the teachers learned 40 years ago in their university career. Let us trace back what the cultural background is of Unix operating system, object-oriented programming and solving math equation with matlab. It was invented all in the 1970s in Xerox Parc. It was on the curriculum 40 years ago. Today’s teachers are expert in that field, because they learned it at their childhood. And now they are trying to convince us, that the same boring stuff is important for everybody. This is the opposite of education, this is called a rollback into the 1970s which means to ignore everything which is better.

            I’m not here to convince somebody in learning robotics. I only want to make clear that STEM isn’t new and that programming isn’t the future. Both is something which doesn’t work, that means it is a waste of time and the students will reject is. They hate math, they hate thinking machines and they not want to become a nerd.

            Reply
            • 21. orcmid  |  August 10, 2018 at 4:58 pm

              The original question was about “hype cycles.” We are now talking about whether or not STEM curricula and those involving some understanding of programming and CS concepts are valuable. It is not useful to speak of those students who will have no interest or desire in this area, or who find the nature of the material akin to learning Latin (or whatever).

              I am also unclear about the comparison of 1978 technology and what is taught, especially by teachers in primary schools who might not have been born yet. Ignoring the apparent collapsing together of Unix, OOP, MATLAB and Xerox PARC developments, I wager that those were not being taught much at the undergraduate and primary school levels at that time.

              Manuel, what is your thesis about *what* today’s students should be equipped with and please distinguish between primary school, secondary school, and collegiate levels?

              Reply
              • 22. Manuel Rodriguez  |  August 11, 2018 at 3:08 am

                > Manuel, what is your thesis about *what* today’s students should
                > be equipped with

                The question implies some kind of moral guideline about higher education and the position of mankind in the society. I wouldn’t see education as a political task it is more a economic situation between supply and demand. Ignoring the financial aspect of a billion dollar education industry is short sighted. To answer the question directly: student should learn what they are able to pay for it. If they spend more money they will learn more and vice versa. Poor students will learn only the STEM curricula, which is equal to programming Java apps and making physical experiments. While better equipped students get support in writing stories and animate puppets.

                Reply
                • 23. orcmid  |  August 11, 2018 at 10:40 am

                  You include primary and public schools in your model of education as a market system? In the state where I live, responsibility for public education is a government obligation in the state constitution.

                  There are many kinds of economic models, all being means for allocation of resources. They are always political because they cannot be independent of the social structure.

                  We are really off in the weeds now. I was not limiting my question to education for technology. So what kind of curricula do you see with regard to the education of the young and preparation for participating in society and the economic/political system(s) we have? In this kind of micro-economic view of education as a market system, would you expect that corporations with needs for certain kinds of skills would be the source of educational subsidies? That’s hardly a-political.

                  Reply
    • 24. gasstationwithoutpumps  |  August 9, 2018 at 10:37 am

      Manuel, if you know 100s of professors wanting to teach intro programming courses, there are hundreds of computer science departments wanting to hire them.

      I agree that students who have never programmed aren’t coming into their first course with specific questions about pointers—they don’t have enough knowledge to ask such specific questions. Many are taking the course because they think it might be a job ticket to a job that won’t disappear before they finish college, so the motivation for the course is often extrinsic rather than intrinsic—but that is true of most of the STEM students. One goal of the first couple of years of courses is to create the intrinsic interest in the subject.

      Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed


Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,185 other subscribers

Feeds

Recent Posts

Blog Stats

  • 2,060,401 hits
May 2018
M T W T F S S
 123456
78910111213
14151617181920
21222324252627
28293031  

CS Teaching Tips


%d bloggers like this: