Closing the gaps is the real challenge in computing education (CIRCL Meet Mark Guzdial)

October 1, 2018 at 8:00 am 11 comments

Meet_Mark_Guzdial_–_CIRCLThe Center for Innovative Research in CyberLearning (CIRCL) did a Perspectives interview with me (thanks, Quinn Burke!) that appears here.

I got to talk about the range of things I’ve done, what I’ve been surprised by and not surprised by, and what I think the big challenges to come in K-12 CS education.

In hindsight, it’s not a surprise that we’re having trouble closing the gaps.  There are increasingly more teachers who can teach CS, and there are governors and the Tech industry pushing for more CS Ed.  But in between, there are principals that don’t buy it, and the classes in the schools are few and tiny.  Most Schools of Education are still not players in promoting CS education. I predict over 85% of kids in Georgia (at least) are not getting a single experience with CS.  The percentage of schools having CS is getting higher, but real experience with CS is low.

As you might imagine, I focus on the need for more research and for reducing inequities. We have made a lot of progress on computing education, and we can make more progress still.

N.B. as Shriram points out in the comments, our claim for FCS1 about “language independent” is really about “multi-lingual.” I’ve asked CIRCL to update the piece, and I’ll try to be more careful about what I claim for FCS1 and SCS1.


Entry filed under: Uncategorized. Tags: , , .

Preparing students for a research career: Gregory Abowd’s 30 PhD Graduates ECEP has a new home at The University of Texas at Austin: First meeting this week at CSforAll

11 Comments Add your own

  • 1. shriramkrishnamurthi  |  October 1, 2018 at 9:31 am

    It’s a nice piece. Thanks for sharing. However, it’s disappointing that you keep repeating the scientifically indefensible claim that FCS1 is “language independent”. You’re a leader; your words matter.

  • 2. Mark Guzdial  |  October 1, 2018 at 9:34 am

    I didn’t say that FCS1 is language independent in this interview. I’ve heard your critique. I said FCS1 was “designed to be language independent.” That’s true, it was designed for that purpose. What it actually achieved is more complicated, and I couldn’t say it in one sentence.

    • 3. shriramkrishnamurthi  |  October 1, 2018 at 1:52 pm

      Come on; that’s just parsing a distinction nobody will notice. Unless you also said “and it failed to meet that design criterion” (and if they left that part out, of course that’s not on you), people will assume it’s true (or else why would you say it?).

      • 4. Mark Guzdial  |  October 1, 2018 at 4:30 pm

        Nope, I disagree. Allison accomplished something that nobody else had before: developed an assessment in pseudocode that worked across MATLAB, Python, and Java. That’s remarkable. For many people (e.g., 80% of all CS1 instructors?), that is as “language independent” as they want or need.

        You have pointed out (correctly) that that is not language independent across the whole range of possible languages, and not even all languages that we would want to consider (either as researchers or as teachers of introductory computing) — greater breadth in modality, in paradigm, in variations in semantics. It’s not clear that language independent in this broader sense is even possible.

        But the more I think about what Allison showed with FCS1 in terms of mental models of notional machines, the more I wonder what was really going on there. Did we choose just the subset of those three languages that matched closely to our pseudocode language? I think that’s likely, except for two exceptions. (1) The semantics weren’t 1:1, and we explain that to students on an intro cheat-sheet, and those are things that (predictably) led to the most errors, and (2) the correlation between CS1-language and pseudocode language was strongest for the top-scoring students (on the course final exam) and weakest for the bottom-scoring students. That latter statement has always intrigued me. Does having a more-correct mental model of the notional machine also imply a more *flexible* mental model that maps better to new notional machines? It’s certainly predicted by the transfer literature — if you know X well, you can map X->Y better. But why? We might be able to ask that question more exactly than other disciplines because X and Y are programming languages for us and well-defined, even if we can’t well define students’ mental models of how X and Y work.

        So there’s the longer form. FCS1 was designed to be language independent, and achieved a practical definition of language independence in the sense that it crossed MATLAB, Python, and Java. It’s insufficient for all our purposes, and it still leaves completely open the question of whether a truly language independent assessment is even possible. At a deep level (cognitive level, learning sciences level), language independence is a form of transfer, which is not yet well understood in computer science.

        So, nope, I’m not going to call FCS1 a failure, nor even that it failed at “that design criterion.” It succeeded as we understood the design criterion then, which still works for some purposes, but understanding changes and opens new research questions to explore. (I see Science and Truth as moving targets.)

        • 5. shriramkrishnamurthi  |  October 1, 2018 at 9:07 pm

          “language independent” is a matter of mathematical truth, not a matter of voting or personal convenience. If you want to use loaded mathematical terms like “independent”, you need to accept that; or else use other words that you can then interpret as you wish.

          You know, there are papers where people think they’ve proven a theorem. Later the proof is found to be flawed, and they don’t supply an alternate proof. They don’t get to _keep calling it a theorem_. They have to accept its new state as the current, valid one. (That can of course flip. Just as, it may turn out administering FCS1 to a bunch of Haskell programmers may produce a useful result, forcing me to mute my complaints.) You don’t get to keep using the old term in light of new, and valid, objections.

          To further pick at your words, you didn’t DESIGN it to be l.i., you INTENDED it to be. That’s an important difference. You DESIGNED it to be multi-lingual. That’s also an important difference.

          (And I want to be clear that I’m not giving you no credit at all, as your defensive reply suggests. Alison did something neat. But she did something else than the original words suggested, and pointing that out is not taking away *all* credit from her and you.)

          It’s very, very rare that I think of your influence in CS ed as a negative one, but it is in this setting. You keep repeating this phrase (with tortured justification, even), but nobody else knows your nuanced reading. My experience in papers, proposals, reviews, talks, and conversations is people take it as a settled matter that FCS1 “language independent”. If that is indeed your position, today, with everything you know…that’s unfortunate. But if it’s not, you’ve got to stop doubling down on it. These other questions are indeed very interesting. But discussing them is deflecting from the real problem the terminology causes.

          • 6. Mark Guzdial  |  October 2, 2018 at 9:30 am

            I like “multi-lingual.” That’s a better and more accurate term than “language independent.” I’ve asked the CIRCL folks to update the interview, and I’ve put a note in this blog post with the correction. Thank you — I didn’t have a better term for what I meant, and I’ll aim to use that instead.

            “Programming languages” and “programming language independence” have precise meanings for you. I don’t think it’s the same for everyone.

            There was a senior Systems guy at Georgia Tech who hated Lisp. When the last Lisp-using faculty left, and the undergrad curriculum got rid of teaching Lisp (and Smalltalk, which I talked about here), he was pleased that now we only taught undergraduates “real languages.” I hear from undergraduates that their high school teachers are telling them that “real programming languages” have curly braces, and all those that don’t are just “scripting languages.”

            For many people who teach CS, C, Java, and C++ are the only “real” programming languages. Definitions of programming languages and programming language independence that go beyond that are only theoretical constructs for them. Of course, the mathematically-correct definitions matter. And if we want to change practice, so do the social/cultural definitions — if only because we’d like to find a way to improve them.

            • 7. shriramkrishnamurthi  |  October 2, 2018 at 10:41 am

              Appreciate the correction. Glad we’ve arrived at a happy medium. I DO think there was a linguistic contribution (in addition to other contributions) there, and this term seems to capture it.

              Pity about your colleague. Not like I haven’t heard every form of hate-speech directed at Lispy languages, mind you. And yet the ideas endure (as do those of Smalltalk, etc.). Probably the same sort of person who also taught MapReduce with no sense of irony.

              Not sure what all those brace-loving people are doing in the era of Python. Is indentation-respecting another mark of “reality”? Great, because Haskell is also indentation-respecting. Or is it the use of colons instead of braces? Great, because that’s what Pyret does too. Must be so frustrating for them!

  • 8. Barbara Boucher Owens  |  October 2, 2018 at 7:29 pm

    Mark and Shriram,
    I loved your dialogue. I would love to see you two in intentional discussion settings.

    • 9. shriramkrishnamurthi  |  October 2, 2018 at 8:13 pm

      Hi Barb. We could sell tickets and popcorn for ringside seats. (-:

      • 10. Mark Guzdial  |  October 3, 2018 at 7:30 am

        Maybe more a standup or nightclub vibe. Intentional discussion as a jazz performance.

        • 11. shriramkrishnamurthi  |  October 3, 2018 at 7:45 am

          Mark will bring the music, I’ll bring the dissonance.


Leave a Reply

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

You are commenting using your 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 )

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,184 other subscribers


Recent Posts

Blog Stats

  • 2,049,107 hits
October 2018

CS Teaching Tips

%d bloggers like this: