Why do so few schools try LiveCode? We let industry dictate our tools

November 10, 2017 at 7:00 am 23 comments

I’m an old HyperCard programmer, so I like LiveCode.  LiveCode does very well on the five principles I suggest for picking an educational programming language. The language is highly readable, and was actually designed drawing on research on how novices best understand programming. It’s easy to put together something that looks authentic and that runs on virtually any platform — much easier than Python, Java, Scratch, Blockly, or any of the other top five most popular teaching languages. Authenticity is often engaging for students.

The LiveCode folks have just put together a web page (linked below) describing some of the reasons why teachers should consider LiveCode.  But in general, we don’t.  Why not?  I have two guesses:

  1. There is no community of practice. There isn’t a visible community of teachers using LiveCode. There isn’t an obvious industry call for more LiveCode programmers.
  2. We in computing education are mostly driven by surface-level interpretations of industry needs.  It isn’t obvious that it must be so, or even that it should be so.  But the same forces that killed Pascal and promoted Python, Java, and C++ as our intro languages prevent LiveCode from getting adopted.

I think LiveCode, Smalltalk, and Lisp are all excellent pedagogical programming languages, but our teaching decisions in secondary and post-secondary CS education are rarely based on what will engage students, be easier to learn, or lead to transferable knowledge.  Instead, we tend to make decisions on what obviously looks like what current professionals do.  It binds us to normative practices. We’re stuck in apprenticeship as our teaching perspective, and can’t consider social reform or developmental perspectives.

Better Exam Results, Better Real Life Outcomes, More Fun!

Over a third of Scottish schools are now teaching using LiveCode. They are doing this because they have proven results showing that using LiveCode results in more students remaining engaged, reaching good grades, and continuing in the direction of a coding career.

Source: Education | LiveCode

Entry filed under: Uncategorized. Tags: , , , , , , .

How to scale our capacity to offer high-quality CS Education – CRA Education Committee Royal Society Report on CS in English Schools: The Challenge of Reaching Everyone

23 Comments Add your own

  • 1. shriramkrishnamurthi  |  November 10, 2017 at 9:01 am

    This coming from the guy who wrote a book entitled «Introduction to Computing and Programming in Python». It even has Python _in the title_ (good for sales, I’m sure). At least some of the rest of us don’t bow to fashions. (-:

    Reply
    • 2. Mark Guzdial  |  November 10, 2017 at 9:11 am

      Yes, and you can go further than that. Java is in the name of two of my textbooks, and Squeak is in the name of two other of my books. Should change come from textbook authors, or from teachers? My textbooks were all named by my publisher, and I trust that they know what book titles will resonate with teachers.

      I am planning to teach a course using LiveCode this Fall.

      Reply
      • 3. Mike Zamansky  |  November 10, 2017 at 10:15 am

        I was lucky enough to be in a situation where I could make my own choices (whether they were good or bad choices is another question).

        With the CS4All juggernaut rolling, now, teachers, even knowledgeable ones have less of a voice. I’ve heard from many who have been forced to teach class A with curriculum B and tool C by their administrations. Mostly driven by AP. Of course, I’m talking high school here.

        Reply
      • 5. shriramkrishnamurthi  |  November 10, 2017 at 3:11 pm

        I’m not talking about the name, I’m talking about the content. Whether you had “Python” or “Java” on the title or not, you had them in the books. As a leader of the field, you could have set an example by not being “mostly driven by surface-level interpretations of industry needs”! (I will accept your arguments for why Python may be pretty okay for beginner education; you’d be hard-pressed to convinced me about the same re. Java.) If even the leaders won’t go out on a limb, nobody else will dare to. Glad to hear you’re using LiveCode in the fall.

        Reply
        • 6. Mark Guzdial  |  November 10, 2017 at 3:30 pm

          Sure, I’m happy to provide the rationalizations for each.

          As you know, I build courses for non-CS majors. I serve the needs of those students and those faculty. The choice of Python was documented in this paper (which is available in https://computinged.wordpress.com/guzdial-papers/ for those who don’t have ACM DL access). I offered Scheme, Smalltalk, and Python (Jython), and the faculty chose Python. I’d love to have a wider variety of options but as I’ve pointed out, it’s still pretty hard to get libraries that give me access to that level of media.

          I co-authored two Java books. The Media Computation Java book was designed for AP CS A — to ignore Java would not serve our audience. The Media Computation Data Structures book was in Java because those students and faculty wanted to get into the rest of our CS program, which was in Java (described in this paper).

          I made the Python choice in 2002 and the Java choices in 2004 and 2005. This blog hadn’t even started, and I doubt that anyone thought of me as a “leader” in CS Ed then. But even so, I don’t think I would have made those choices in any other way. If I start making design choices because of the message it might send as a leader in CS Ed, the fun will be gone out of the job.

          Reply
          • 7. shriramkrishnamurthi  |  November 11, 2017 at 8:42 am

            Thanks. I’m not saying you should make choices _as the leader_ (it’s no fun to always wonder what others think of what you do), but that even someone like you was driven by external forces and consciously chose to not buck the trends. When even you can’t buck the trend, people with far less standing won’t either. So it’s no surprise that systems like LiveCode most likely don’t stand a chance. But I do appreciate the replies.

            Reply
            • 8. Mark Guzdial  |  November 11, 2017 at 9:49 am

              Shriram, do you think Pyret stands a chance of being adopted outside of Bootstrap? Do you envision it being used in industry one day? What do you see as the path for getting it adopted, in schools or in industry? You have a great story for why Pyret is being designed the way that it is (for others, see https://www.pyret.org/pyret-code/). What path do you see to bucking the trends?

              Reply
  • 9. gflint  |  November 10, 2017 at 10:03 am

    “Try it free for 10 days.” There are many excellent teaching languages out there that are completely free, all with free teaching resources. Why would a school bother with something that is not free, no matter how good it is? The actual language we teach with is pretty much irrelevant. It is the skill of learning how to learn a language that is important.

    Reply
    • 10. Mark Guzdial  |  November 10, 2017 at 10:05 am

      There is a free and open source version: https://livecode.com/products/community-edition/

      Reply
      • 11. gflint  |  November 10, 2017 at 12:20 pm

        I missed that. I will give it a try. Free rules.

        Reply
      • 12. cmcwerner  |  November 12, 2017 at 11:08 am

        I’ve played with LiveCode just a bit (an hour or two). I’m really bothered by the marketing. Even the “free” open source version constantly hits me with “upgrade” options and the Community Edition is better with auto complete (which I presume I would have to upgrade to get). I even get emails trying to sell me stuff.

        It also seems really complex. The tutorial was cute but it left me with questions and as soon as I try to dive in I’m overwhelmed with options. To use an analogy I’ve heard before, I felt like I was in the cockpit of a 747 when I wanted to be in the Piper Cub.

        Reply
    • 13. shriramkrishnamurthi  |  November 10, 2017 at 3:07 pm

      While Mark has pointed to a free version, I’d like to respond to two things here.

      1. I think many people would disagree with the assertion that the language you teach with is “pretty much irrelevant”. Language strongly shapes thought, and we’re definitely in the business of teaching models of thought (different kinds of “computational thinking”).

      2. As for why one should pay, in the abstract, it’s so that people who put a ton of effort into something can be rewarded for it and continue to focus on it to make it better, rather than doing it on the side as a hobby. After all, nothing is really “free”; it’s all supported *somehow*. There’s something to be said for beneficiaries directly supporting providers. Otherwise we end up in the mess of a world we have right now, with “free” Google and Facebook and Co. selling us to advertisers…

      Reply
      • 14. Mike Zamansky  |  November 10, 2017 at 3:21 pm

        Of course there’s should pay, may want to pay but there’s also the question of has the ability to pay.

        The other question relates to buy once or an annual fee. I understand if you’re paying another site for hosting and other services that perpetually run but there are also annual fees and site licensing schemes which amount to buy once, pay forever with no added value over time. Yes, you could say that the recurring fees pay for continued development but maybe the customer is happy with the current version.

        I’m not advocating any particular model but it does become rather muddled.

        Reply
        • 15. shriramkrishnamurthi  |  November 10, 2017 at 8:53 pm

          Mike, everything I’ve put out has had a free option. I believe even you’ve used some of it (DrScheme). I grew up in India where we saved for months to buy a single Western book, so I know all about “(in)ability to pay”, maybe better than most people who grew up in the West. But I think it is still reasonable for people who labor over something to hope for compensation for it, and expecting everything to be “free” is simply unfair to those who put in that labor. (Heck, I’d like a free ice cream cone every day, too…) I’m simply referring to that remark, and the attitude, “Why would a school bother with something that is not free, no matter how good it is?”

          Reply
          • 16. Mike Zamansky  |  November 10, 2017 at 9:02 pm

            Shriram – I agree 100% – just pointing out that it, as everything else is a complex issue.

            When I was a kid, there was no way I could afford something like $1000 for the Microsoft C compiler and would have used an “acquired” copy if I could have. On the other hand the Mark Williams “Lets C” compiler was something like $25 which for a kid was a fair price. Borland as well a couple of years later.

            When kids used Sublime Text in my class I’d insist after a time (trial period) that if they wanted to continue to use it in my class they would have to show proof of purchase (given the affluence of the kids in question, the free alternatives, and the fact that they were using it far past a trial period).

            To me the issue more comes up with the annual license where there isn’t necessarily continued added value. Just as the creator deserves to be paid for their work, they don’t deserve to be paid in perpetuity for past work without continued value added.

            Reply
  • 17. Anders S  |  November 11, 2017 at 1:53 am

    Mark, do you know if there’s ever been an effort to nudge the language community around, say, Python towards becoming a better educational programming language?

    I’m not saying it would be easy. But trying to get people to adopt a language like LiveCode for teaching when there isn’t a large community of practice seems like an extremely difficult lift — especially when you have to simultaneously convince them to teach a language that’s easier to teach but almost nobody codes in.

    Reply
    • 18. Mark Guzdial  |  November 11, 2017 at 7:54 am

      Yet, Scratch did it. Nobody codes in it professionally. When it started, no curriculum or community. How did they make it?

      Reply
    • 19. Anders S  |  November 11, 2017 at 8:11 am

      Doh! Good point. It’d be interesting to figure out why Scratch was able to build a community and what lessons LiveCode could learn from Scratch’s experience.

      It’s also interesting that my subconscious didn’t categorize Scratch as an “educational programming language” but as a “fun kid’s language”…

      Reply
      • 20. markdeloura  |  November 13, 2017 at 9:58 pm

        But Scratch is for very young students, when long-term applicability is much less of a concern. I worry about teaching an older student a language that they may love and then suddenly find useless. Is it better to engage and then pivot, or start with a language that has more success out in the wild but is perhaps harder to teach?

        Reply
        • 21. Anders S  |  November 14, 2017 at 6:37 am

          Wouldn’t it depend on the context? Most of my teaching has been w adults who aren’t in college who are already highly motivated, so teaching them in a language that immediately use & put on their resume makes more sense.

          But in an college intro to programming for non-CS majors? So long as you’re clear with folks why you’re doing what you’re doing, I would think starting w a fun, much easier experience could be a better way to go. Especially since if they decide they want to do coding for real, it’s very useful to have experience in more than one coding language. You could even provide the best of both worlds: most of the class in LiveCode/Scratch, plus 1-2 sessions at the end where you explore how to translate into Python some of the concepts you’ve learned & discuss the experience.

          Reply
  • 22. gflint  |  November 11, 2017 at 8:24 pm

    This is a great conversation. Really too bad we cannot sit in a room and discuss these ideas. I have been teaching programming/CS/coding for a little over 30 years and I am absolutely convinced that the language used to teach with is totally irrelevant. But that statement is to be taken in context. There is grade level, ability and goal to take into account. The individual teacher has to look at what they need for these factors and their own abilities as to what they use to teach with. After a quick look I would say something like LiveCode would be a pretty good tool. I also believe that teaching coding is merely a side show to what teaching programming and CS is all about. My goal is to teach kids how to solve problems and how to learn. With those tools they can lean the language that is the flavor of the month. For beginners I use beginner tools to solve problems; Scratch, micro:bit, Small Basic App Inventor or what ever might interest the particular students I am working with. My more advanced kids look at Python, Visual Basic, C#, Unity and some odds and ends. My students do not come out of high school being high speed, ready for industry programmers. In fact I would say they are pretty rough on any particular language. But they can learn a language fast. They understand the concepts of programming and coding.

    For many years I have been talking to instructors at the university level and tech businesses that hire programmers. One thing has been true 100% of the time, they do not want to skilled coders, they want skilled problem solvers and students/employees that can learn. In that sense industry does dictate how I teach. But as to the language to use? Silly. There are too many languages used by industry. If it was left to industry we would still be teaching COBOL and FORTRAN!

    Reply
    • 23. shriramkrishnamurthi  |  November 11, 2017 at 9:25 pm

      They can learn a new language fast? How fast? A week?

      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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

Trackback this post  |  Subscribe to the comments via RSS Feed


Recent Posts

November 2017
M T W T F S S
« Oct    
 12345
6789101112
13141516171819
20212223242526
27282930  

Feeds

Blog Stats

  • 1,452,053 hits

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

Join 5,177 other followers

CS Teaching Tips


%d bloggers like this: