MS78: Teaching Computational inking and Practice...students completed all the lessons in the 2 days,...

25
SIAM Conference on Computational Science and Engineering MS78: Teaching Computational inking and Practice Prof. Lorena A. Barba Mechanical and Aerospace Engineering e George Washington University Twitter: @LorenaABarba http://meetings.siam.org/sess/dsp_programsess.cfm?SESSIONCODE=20332 Room: 355 The term "computational thinking" became quite popular some years ago with a viewpoint piece at the CACM by Wang (2006), but the term goes back to Papert 10 years before. Wang explained it as the ability to think algorithmically and apply problem-solving computation in other fields. We've been talking about teaching computational thinking ever since. With an interest in reforming how we teach computing to engineering students, I came up with an extension of this idea that defines the pedagogical value of computation. With modern tools for interactive computing (e.g. IPython Notebooks), it becomes possible to learn by computing, to actually create knowledge—similar to what we do in scientific computing to make discoveries, but in education. I will describe how this thinking has been inspiring several educational initiatives aiming at making computing a core pedagogical instrument.

Transcript of MS78: Teaching Computational inking and Practice...students completed all the lessons in the 2 days,...

  • SIAM Conference on Computational Science and Engineering

    MS78:Teaching Computational !inking and Practice

    Prof. Lorena A. BarbaMechanical and Aerospace Engineering

    !e George Washington University

    Twitter: @LorenaABarba

    http://meetings.siam.org/sess/dsp_programsess.cfm?SESSIONCODE=20332

    Room: 355The term "computational thinking" became quite popular some years ago with a viewpoint piece at the CACM by Wang (2006), but the term goes back to Papert 10 years before. Wang explained it as the ability to think algorithmically and apply problem-solving computation in other fields. We've been talking about teaching computational thinking ever since. With an interest in reforming how we teach computing to engineering students, I came up with an extension of this idea that defines the pedagogical value of computation. With modern tools for interactive computing (e.g. IPython Notebooks), it becomes possible to learn by computing, to actually create knowledge—similar to what we do in scientific computing to make discoveries, but in education. I will describe how this thinking has been inspiring several educational initiatives aiming at making computing a core pedagogical instrument.

  • Seymour Papert first used the term in “An exploration in the Space of Mathematics Educations” (1996)

    The phrase “Computatinal Thinking” was first used by the MIT mathematician and computer scientist Seymour Papert (a pioner in artificial intelligence and creator of the Logo programming language) in "An Exploration in the Space of Mathematics Educations," Int. J. Computers for Mathematical Learning (1996)

    But in 2006, Jeannette Wing (computer science professor at Carneggie Mellon) published a short Viewpoint paper on the Communications of the ACM that brought the idea to the forefront of many conversations in the computer science community.

    Jeannette Wing was Assistant Director of the CISE Directorate at NSF during 2007–2010 and she led large investments in computational science research. 

  • 1,422

    The Viewpoint paper got a tremendous amount of attention, and many ciatations... (checked March 1, 2015)

    She suggested that computational thinking is a fundamental skill for everyone, just like reading, writing and arithmetic. In her talks, she usually makes reference to computational biology as an example of a field that experienced siginificant advances by cross-disciplinary interaction with computing, and she mentions machine learning as one computational method that has influenced a variety of fields, and our daily lives with recommenation engines and e-commerce.

  • From computational thinking to computational learning

  • My Teaching

  • 2009 to 2012February 2012 --- The Boston University iTunesU channel was dominated by my “one-woman-show” of shared course materials. On this screenshot, 9 of the top downloads shown are mine, and the three top collections are from my courses.

  • Flipped classroom — on Google Trends

    July 2011 July 2014

    While doing preparatory research for the NSF CAREER proposal, I was looking for interactive teaching techniques, and came into the “flipped classroom” idea. After reading about it, I decided it was just what I was looking for. My proposal was submitted in July 2011—nobody was talking about flipped classrooms at that time, but the idea took off since, as you can see in this Google Trends graph.

  • !e key of the flipped classroom

    ‣ How you do the flip

    8

    home work class work

    watch video tutorial inquiry-based activityapply knowledge

    The idea of the flipped classroom is simple: move the initial exposure to new content to the pre-class prep (instead of presenting the new material in the class time), and use class meetings for assimilation of the new concepts via problem-solving or active-learning techniques.

    The timing can be reversed:Do students watch video first ... or ... allow students to form ideas in their own via class activities?This is the pedagogy, and is up to the teacher.

  • Added views > 300,000http://www.youtube.com/playlist?list=PL30F4C5ABCE62CB61

    I started experimenting with screencasts several years ago, using a variety of technology and dissemination platforms. In 2010, I taught a Computationa Fluid Dynamics class in the traditional lecture format, but used a graphic tablet to annotate minimalistic slides, while recording the screen.

    These CFD screencasts then were available to me the next year to try for the first time the flipped classroom. As a bonus, they are viewed by self-learners around the world, having ammassed a large number of views!

  • https://github.com/barbagroup/CFDPythonWe first created a set of IPython Notebooks based on a practical module used in the classroom in my Computational Fluid Dynamics (CFD) class, taught at BU from 2010 to 2013. The module is called “12 steps to Navier-Stokes” (in a tongue-in-cheek allusion to behavioral recovery programs), and was inspired by the ideas of my postdoc Rio Yokota---who joined my group in 2009.

    At first, we used these exercises with almost no instructions (just a bunch of equations) as a sort of “bootcamp” for new students joining the group. Then I enriched them with content and used them as the first programming exercise in my hands-on CFD class.

    Over three years of classroom testing, the lessons were increasingly polished. They brought students with practically no programming experience to developing a solution to the 2D Navier-Stokes equations, from scratch.

    In July 2013, I was invited to teach a mini-course in the Latin-American School in High-Performance Computing, in Argentina.For that event, we wrote the IPython Notebooks based on the CFD course module, to use as instructional scaffolding in the 2-full-days of minicourse. There were 20 students that worked through the notebooks, while I went from desk to desk asking and answering questions. About 4 of the students completed all the lessons in the 2 days, a bulk of them achived up to about Step 8, and 3 or 4 lagged behind in Steps 4 or 5 in the end. For those who completed the module, they had achieved in 2 days what my students in the classroom normally took 5 weeks to do.

  • Why Python?

    http://lorenabarba.com/blog/why-i-push-for-python/

    The idea of the flipped classroom is simple: move the initial exposure to new content to the pre-class prep (instead of presenting the new material in the class time), and use class meetings for assimilation of the new concepts via problem-solving or active-learning techniques.

    The timing can be reversed:Do students watch video first ... or ... allow students to form ideas in their own via class activities?This is the pedagogy, and is up to the teacher.

  • “!e first language is critical, since it can open or close your mind forever…”

    “A good teaching language should be unobtrusive, enabling students to devote their efforts to learning concepts,” not syntax.

    Bertrand Meyer (2003)

    Bertrand Meyer (1993), “Toward an object-oriented curriculum.” In Proceedings of the 11th International TOOLS Conference, pp. 585–594, Prentice Hall.

  • Language choice for beginners

    Mannila & de Raadt (2006): criteria for a teaching language

    ‣ it was designed with teaching in mind (simple syntax, natural semantics)

    ‣ �it can be used to apply physical analogies (provides multi-media capabilities)

    ‣ it offers a general framework (serving as a basis for learning other languages later)

    ‣ it promotes a new approach for teaching (augmented by principles, tools and libraries)

    Linda Mannila, Michael de Raadt (2006), “ An objective comparison of languages for teaching introductory programming.” In Proceedings of the 6th Baltic Sea Conference on Computing Education Research: Koli Calling 2006. ACM, New York.

  • http://lorenabarba.com/blog/announcing-aeropython/

    In Spring 2014, I was tasked to teach a classical aerodynamics course. Having experienced before the “flipped classroom,” I did not want to use the lecture format, but I also did not have the materials at hand (nor the time) to record a set of videos to cover the content, leaving class time open for problem-solving and assimilation practice.

    With the experience of the previous Summer using the CFD-Python notebooks in Argentina, I decided this was the solution. But what should they cover?

    I asked myself: what is the one thing that I would want students to get from a classical Aerodynamics course? The answer was: the use of potential-flow theory for aerodynamic analysis, via the panel method.

    With the help my bright student Olivier, we set out to develop a set of lessons that would start from the simplest concept in potential flow, and take students, step-by-step, to the point of having a 2D panel-method code for lifting bodies.

    The students were guided to read through the notebooks, work out on paper any mathematical derivations, and write their own version of the code, typing on an open, fresh notebook or IPython session. In class, I walked desk to desk asking questions, challenging the students to explain what they were doing and why (and often sending them to read the Python documentation).

  • One day, a student was working on lesson 6, “Lift on a cylinder,” experimenting, as instructed, with different values for the relevant parameters. The classical solution of flow around a cylinder is obtained from a fundamental solution called a ‘doublet’ with a freestream (that’s in Lesson 3). If you add a point vortex, the flow is no longer symmetric, and you get lift.

  • � = 10

    � = 5

    ( Anecdote of student trying different values of circulation )

    Why does it matter? Compare with how a typical engineering student might be exposed to this material … professor lectures, draws three pictures on the board and student draws similar sketches on her notebook >> there is no interaction

  • In Fall, I organized and taught a MOOC (“massive open online course”) —independent of any of the MOOC providers— based on IPython Notebooks. All the materials are publicly available under a Creative Commons Attribution license (CC-BY).

  • All materiasl are on GitHub ...

  • Assignments by pull-request on GitHub

  • [ ... ]

    Example screenshots from a notebook.

  • http://nbviewer.ipython.org/github/numerical-mooc/numerical-mooc/blob/master/lessons/01_phugoid/01_02_Phugoid_Oscillation.ipynb

    One of the other features of the course is that, from the beginning, we place emphasis on understanding the approximation errors in numerical methods and studying the convergence.

  • Computing creates knowledge. It is a form of learning.

    This is my main thesis: If computer simulations, computing, creates new knowledge ---and we agree that it does--- then it is a form of learning.

    The reason why we care about Reproducibility in computational science is because computing creates scientific knowledege. We understand this in the context of research -- using computing for scientific discovery. But the implication from the point of view of teaching and learning is that computing has a pedagogical purpose within the science and engineering disciplines ... computing is a form of learning.

  • From computational thinking to computational learning

    The reason why we care about Reproducibility in computational science is because computing creates scientific knowledege. We understand this in the context of research -- using computing for scientific discovery. But the implication from the point of view of teaching and learning is that computing has a pedagogical purpose within the science and engineering disciplines ... computing is a form of learning.