Allen Downey on Teaching Computer Science with Python


July 9th, 2015

37 mins 42 secs

Your Hosts

About this Episode

Find past episodes and more information about the show at iTunes, Stitcher or TuneIn

Give us feedback! (iTunes, Twitter, email, Disqus comments)
You can donate (if you want)
Overview – Interview with Allen Downey, Prolific Author and Professor of Computer Science

Interview with Allen Downey

  • Introductions
  • How did you get introduced to Python? – Chris
    • Wrote a Java book with an open license to allow anyone to make changes
    • Jeff Elkner translated it to Python

  • What attributes of Python make it well suited for use in teaching computer science principles?

    • Syntax is simple, makes a difference for beginners
    • Good error messages
    • Batteries included

  • One of the things I found very compelling about Think Like a Computer Scientist is its use of interactive turtle graphics early on. What makes the turtle continue to be a compelling educational tool and what made you choose it for this book in particular?

    • Everything you do has a visible effect, makes it easier to see what’s happening and debug
    • Used to introduce functional decomposition because of no return value in turtle graphics
    • Great way to explore complex geometric concepts

  • Did the structure of your courses change when you started using Python as the language used in the classroom? Were you able to cover more material as a result?

    • Able to make material more interesting
    • Less time spent fighting with syntax

  • As a professor of computer science, do you attempt to incorporate the realities of software development in a business environment, such as unit testing and working with legacy code, into your lesson plans?

    • Unit tests useful as a teaching tool
    • Version control getting introduced earlier

  • A number of your books are written around the format of ‘Think X’. Can you describe what a reader can expect from this approach and how you came up with it?

    • Learning how to program can be used as a lever to learn everything else
    • You can understand what a thing is by understanding what it does

  • What are some of the more common stumbling blocks students and developers encounter when trying to learn about stastics and modeling, and how can they be overcome?

    • Traditional analytic methods for statistical computation – get in the way and impede understanding
      • P-values are a great example
      • What test should I do? is the wrong question

  • I’ve heard you refer to yourself as a ‘bayesian’. Can you elaborate on what that means and how bayesian statistics fits into the larger landscape of data science?

    • Frustration with frequentist approach to statistics
      • Wasted time over debate of objectivity vs subjectivity

    • Bayesian approach takes modeling ideas and makes them explicit

      • Can directly compare and contrast results of competing models

    • Classical approaches don’t answer the most interesting questions

      *We’re big fans of iPython notebook which you’ve used in at least one of your books already – can you describe some of the ways you have implemented it in an educational context, as well as some of the benefits and drawbacks?

    • Started using about 2 years ago

    • Appreciated usefulness for books and teaching because of synthesis of text, code and results

    • Working on DSP really highlighted the usefulness of IPython notebooks


Keep in Touch

The intro and outro music is from Requiem for a Fish The Freak Fandango Orchestra / CC BY-SA