Teaching Computational Thinking across an Entire University, With Guest Blogger Roland Tormey

April 20, 2018 at 7:00 am 11 comments

During Spring Break, Barbara and I were invited to go to Switzerland.  Sure, when most people go someplace warm for Spring Break, let’s head to the mountains!

Roland Tormey organized a fascinating workshop at EPFL in Lausanne, Switzerland (see workshop page here) to inform a bold and innovative new effort at EPFL. They want to integrate computational thinking across their entire university, from required courses for freshman, to support for graduate students doing Computational X (where X is everything that EPFL does).  The initiative has the highest level of administrative support, with the President and Vice-President of Education for EPFL speaking at the workshop.  The faculty really bought in — the room held 80-some folks, and it was packed most of the day.

Roland got a good videographer who captured both of the keynotes well.  I had the first keynote on “Improving Computing Education with Learning Sciences: Methods for Teaching Computing Across Disciplines.”  I argued that we need different methods to teach computing across the curriculum — we can’t teach CS the same way we teach CS majors as future software developers.  I talk about Media Computation, predictions (and they caught my audio demo with ukulele playing well), subgoal labeling, and Parsons problems.

Shriram Krishnamurthi had the second keynote on “Curriculum Design as an Engineering Problem.”  He talked about the problems of transfer and how Bootstrap works.  I liked how he broke down the problem of transfer — there there are three requirements: Deep structural similarities between the problems, explicit instruction, and a process for performing tasks.  He showed how all other design disciplines have multi-stage processes, use multiple representations in their designs, and look at problems from multiple viewpoints.  Mostly in CS classes, we just code.  I learned about how Bootstrap scaffolds problem-solving, and includes all of those elements.  I recommend the talk.

Barb’s panel on teaching computational thinking wasn’t captured.  She talked about the methods she’s developed for teaching computing, including her great results on Parsons problems.  In a short talk, she gave a lot of pointers to her work and others’ on how to teach CT.

Roland sent me a note with what he took away from the workshop. I thought it was a great list, so with his permission, I’m including it here:

For me, we also had a lot of other valuable take home points from the day:

(1) We need to work on putting Computational thinking (and maybe Math and Physics too) into the context of the students’ own disciplines — at least, though the examples and exercises we choose.

(2) The drive to better develop scientific thinking in disciplines like chemistry and life sciences and the development of CT are entirely consistent, but one shouldn’t eclipse the other. It’s not about replacing existing scientific processes with CT. It’s about augmenting them.

(3) We need to help professors gather data on effective methods of teaching as well as help them become aware of methodologies with demonstrated effectiveness (like the Parsons Problems for example).

(4) The exercises and exercise sessions will be crucial for making the link between CT and disciplines, but this implies giving the doctoral and teaching assistants a clear understanding of the goals and methods of CT. They have to understand what we are trying to achieve.

(5) CT provides an understanding of, a language for, and a toolbox for analysing processes, and these can be applied in a lot of domains. However that is not going to happen unless we explicitly teach CT in ways that promote near and far transfer

(6) We need to make the most of the EPFL initiative by properly evaluating the impact, which implies the need to collect some pre-intervention data now.

Entry filed under: Uncategorized. Tags: , , .

Finding a Home for CS Ed in Schools of Ed: Priming the CS Teacher Pump Report Released Open Letter to Future Students: On the Shortage of Computer Science Faculty

11 Comments Add your own

  • 1. alanone1  |  April 20, 2018 at 7:14 am

    A short note this time (because it is rather like the previous one where I asked for a definition of “computing” that is as independent of politics and fads etc as possible and as true to the core of the field as possible).

    Of course, the question here is “just what is ‘computational thinking’ ?”

    If there is a reasonable definition (I’d love to see it) and if so, who are the practitioners?

    Surely not most computer people …

    • 2. Mark Guzdial  |  April 20, 2018 at 9:37 am

      That question got asked a lot during the workshop. Several answers were floated, with some disagreements about them. Computer science is definitely involved in answering the question at EPFL — the head of the CS department and several CS faculty were there all day. I was most interested in the basic Science faculty who were there and trying to understand how to integrate computing into the education they provide to their undergraduates and graduate students. I don’t think they have one definition, but they’re working on it.

      • 3. alanone1  |  April 20, 2018 at 10:23 am

        This seems like a banner of the times these days — kind of Murray Gell-Mann’s today’s education as being taken to a great restaurant and being forced to just eat the words on the menu.

        Or perhaps “designer jeans”? They have stated that they are going to teach “it” to everyone, but can’t say what “it” might be — they can only come up with a label.

        Won’t they later say — as so many “CS” departments have said about “CS” over the years — that “it” is defined by what they are teaching? By what they do?

        This seems quite nutty to me.

    • 4. gasstationwithoutpumps  |  April 20, 2018 at 4:25 pm

      I don’t know of a good definition of computational thinking. I made a stab at one in https://gasstationwithoutpumps.wordpress.com/2010/08/12/algorithmic-vs-computational-thinking/
      and I commented on Jeannette Wing’s definition at

      It is interesting that 9–10 years later, there is still apparently no consensus on what the term means, which suggests that it is not a particularly useful term for clear communication. (Ideal for contentless buzzword usage, though!)

      • 5. alanone1  |  April 21, 2018 at 1:58 am

        Your last sentence is the key here I think. Without some form of consensus it would be reasonable to request people to cease arguing for or against a mere term that is not defined (especially people who claim that their profession aids clear thinking!)


  • […] university to make computational thinking compulsory for all students, I got a notification from Mark Guzdial’s blog about a top European university with a very similar […]

  • 7. alanone1  |  April 21, 2018 at 3:51 am

    The distinction that gasstationswithoutpumps made between “Algorithmic Thinking” and “Computational Thinking” highlights part of the problem here.

    I’ll add another related comment. Consider “systems” — e.g. the Internet. This perspective on computing is hardly found in most attempts to say what “computational thinking” is all about. But I think it is closer to the point.

    With two rulers 1st graders can make an “addition computer” for fractional numbers that will allow them to outperform 5th graders. They can extend this idea by inscribing the rulers with more ways to divide unity. They can make these really big (they can use their entire school yard!)

    We can think of a “computer” as any mechanism (system) where the informational part is the main goal.

    We can think of “computing” as using (perhaps making) a mechanism (system) to do something with information.

    (Notes: (a) I’m equating “mechanisms” and “systems”, (b) the “mechanisms” don’t have to be physical.)

    This gets us closer to the essence I think. When someone asks me about “computing” I start with a lot of simple examples like the addition ruler, including what counting and quantity are really about, that when you make a lever you are also making a multiplication and division machine, and so forth.

    A really important idea here is that whereas why a car works only has the tiniest overlap in learning to drive one, all forms of computation including the simplest ones contain strong elements of the kind of thinking that all require. And some of the elements, especially with simple mechanisms/systems are much more accessible not just to children but to most adults also.

    • 8. chaikens  |  April 22, 2018 at 6:12 pm

      How a car works (internally) has the tiniest overlap with learning to drive one, agreed. But there is a kind of thinking that is necessary for learning to drive. That thinking is about spatial location, motion, obstacles, pathways, changing direction and speed, and perception of these mainly by vision. We all know _why_ a car works: to provide convenient desired transportation. Skilful, safe and effective driving requires a great deal of development of specific modes of thinking by means of training and practice. Same for programming!

      The difference with computation is that the most foundational kind of thinking for driving starts and develops instinctively. But most people have no idea of _why_ a computer works other than to be an often one-stop resource to provide whatever entertainment, communication, information retrieval and/or storage, and all other benefits of the applications the person is familiar with or anticipates. I would guess that learning to drive is easier than learning to program because out built-in foundational kinds of thinking and knowledge of why we do it are much more directly applied in the case of driving than in the case of programming.

      The above comments suggest elements of what the foundational kinds of computational thinking are that underlie specific kinds of advanced computational thinking in a sense similar to how our instincts and common sense underlie driving. I would add (to tools that do math) the human capabilities of planning that includes anticipation of multiple possible outcomes of one’s actions and plans to react to them.

  • 9. Dorian Love  |  April 22, 2018 at 9:43 am

    Reblogged this on The DigiTeacher.

  • […] that I wrote about in 2011 (see blog post here). I recommend the practice often in my keynotes (see the video of me talking about predictions at EPFL from March […]

  • 11. RES701 Week 8 – Credibility – InformationTechnologyLearning  |  September 10, 2018 at 5:38 pm

    […] When it was written/created/recorded/published – April 20, 2018 at 7:00 am […]


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 )

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,054,519 hits
April 2018

CS Teaching Tips

%d bloggers like this: