Posts tagged ‘Media Computation’

How Can We Include Students with Disabilities in Computing Courses?: DO-IT Video

AccessComputing and DO-IT does terrific work.  I get the question in the title a lot with MediaComp, since it’s a curriculum that lends itself towards producing just visual or just audio products, while exploring the same computing concepts.

With the increasing demand for computing professionals, it’s important that students with disabilities are included in computing courses. This video includes profiles of successful computing students and professionals who happen to have disabilities. Learn how accommodations, assistive technology, and universal design strategies can make computing courses accessible to students with disabilities.

Year: 2015

Runtime: 10:24 minutes

via How Can We Include Students with Disabilities in Computing Courses?: DO-IT Video.

September 4, 2015 at 7:30 am Leave a comment

JES 5.02 Now Released, and Media Computation 4th Edition Slides Available

JES 5.02 is now released at  I have links to all the main downloads at .

This is a maintenance release.  Thanks to Nina Koch’s student, Henry, we have fixes for colorizing and some other problems.  Henry has also written code to allow for capture of keystrokes and mouse movement in a picture window, so that you could build some simple games.  I’ll save that for JES 5.10.
I don’t do JES releases that often, so in-between, I forget how painful cross-platform development is. JES is all written in Java and Jython, which means we “write once, test everywhere.”  I developed mostly on Mac OS X, but makensis (for Windows Installers) doesn’t work on Mac OS X.  So I ran Ubuntu in VirtualBox to build the Windows installer and test the Linux version.  But I still had to test on Windows (e.g., to make sure that the Sound Explorer was fixed).  It’s all details —  ls here vs. dir/w there, can’t install Oracle Java from Ubuntu installer, remembering sudo apt-get, Lenovo toolkit updater interrupting installations…
From Github:
 Fixes in JES 5.02 (with many thanks to HenryStevens and sportsracer48 for fixes):
  • Fixes a problem if you quit during raw_input that you can’t do another raw_input
  • Makes the Sound explorer fully functional again
  • Fixes colorizing
  • Makes autosave work again
  • Fixes a threading error if you hit return too rapidly in the Command Area
  • Unicode characters in input file get flagged. (Jython can’t execute a line with unicode characters on it.)

In addition,

You can find all the fourth edition Powerpoint slides (including a 68Mb zip of all of them) at I’ve put some of the Peer Instruction question slides into the chapter PPT slide decks, but you can find more at the instructors-only website (see the Media Computation website for more on the teacher website).

Most of the changes are in the early chapters. Chapter 3 on text and language manipulation is all new. The latter chapter PPT slide decks have a few new slides in each deck, including:

  • Creating state-preserving versions of picture manipulation functions in Chapter 16 on Functional Programming
  • Subclassing Picture and Sound to move functions into methods in Chapter 17 on Object-oriented Programming
  • Recursive turtle patterns, which are possible with an improved Turtle class in JES 5 in Chapter 17

May 15, 2015 at 7:59 am Leave a comment

Showing Google Maps in JES from Susan Elliott Sim

Cool example of using JES to access external data!

I’ve been teaching CCT 374: Technologies for Knowledge Media course this term. It seemed a natural fit to use a Media Computation approach to teach Python programming. The students have a term project where they had to design an application that uses City of Toronto Open Data. Just about every team decided to make something that involved displaying something on a map. So, I had to figure out how to display arbitrary maps programmatically, as simply as possible. Using the Google Maps API would have been beyond most of the students. Then I found a blog post with a Python program to retrieve static images from Google Maps.

I have adapted the code from the blog post to work within JES (Java Environment for Students) using the Media Computation libraries. I’ve made the code available on a gist.

via Showing Google Maps in JES | Susan Elliott Sim.

April 24, 2015 at 8:29 am Leave a comment

Sorting Is Boring: Computing Education Needs to Join the Real World, like MediaComp and worked examples 

Agree that we get it backwards in computing education.  We ought to do more with worked examples (a form of “word problems”) — see the argument here.  The point of Media Computation has always been to focus on relevance — what the students think that a computer is good for, not what the CS teacher thinks is interesting (see that argument here).

There are people who love math for math’s sake and devote themselves to proving 1 + 1 = 2. There are more people, however, who enjoy using math to prescribe medication and build skyscrapers. In elementary school, we use word problems to show why it’s useful to add fractions (ever want to split that blueberry pie?) or find the perimeter of a square. We wait until college, when math majors choose to devote four years towards pure math, to finally set aside the word problems and focus on theory. We do so because math is a valuable skill that is used in so many different professions and contexts, and we don’t want kids to give up on math because they don’t think it’s useful.

So, why does computer science start with theory and end with word problems?

via Sorting Is Boring: Computer Science Education Needs to Join the Real World | Jessie Duan.

March 7, 2015 at 8:29 am 30 comments

EarSketch Workshop at SIGCSE 2015

I’m an advisor on the EarSketch project, and it’s really cool. Recommended.

Next month, the EarSketch team will be offering a workshop at SIGCSE in Kansas City. This is a great opportunity to learn more about EarSketch, get hands on experience with the curriculum and environment, and learn how to use EarSketch in your classroom. This year’s workshop will also offer advice on integrating EarSketch into Computer Science Principles courses, though the workshop is of relevance to anyone teaching an introductory computing course.

For more information about SIGCSE, visit
To register for the workshop, please visit
Please contact Jason Freeman ( with any questions.

Workshop #20: Computer Science Principles with EarSketch
Saturday, March 7th, 2015
3 pm – 6 pm

Jason Freeman, Georgia Institute of Technology
Brian Magerko, Georgia Institute of Technology
Regis Verdin, Georgia Institute of Technology

EarSketch ( is an integrated curriculum, software toolset, audio loop library, and social sharing site that teaches computing principles through digital music composition and remixing. Attendees will learn to code in Python and/or JavaScript to place audio clips, create rhythms, and add and control effects within a multi-track digital audio workstation (DAW) environment while learning computing concepts such as variables, iteration, conditionals, strings, lists, functions, and recursion. Participants write code to make music, with a focus on popular genres such as hip hop. The agenda outlines the pedagogy of connecting musical expression to computation to broaden participation and engagement in computing; the underlying concept of thickly authentic STEAM that drives this approach; the alignment of the curriculum and learning environment with CS Principles; and basic musical concepts underlying EarSketch. The intended audience for this workshop is secondary and early post secondary CS educators. The course is of particular relevance to CS Principles teachers but also applicable to any introductory programming or computing course. No prior musical knowledge or experience is expected and no prior programming experience with Python or JavaScript is required.

February 14, 2015 at 8:18 am Leave a comment

Fourth edition of Python Media Computation released today: Teacher resources and desirable difficulties


According to Amazon, the Fourth Edition of the Python Media Computation book is released today (see page here). That’s the new cover above. I’ve been working on the 4th edition for most of the summer. Some of the bigger changes are:

  • Before we manipulate pictures, we manipulate letters, words, and language, e.g., build “MadLib” and “koan” generators, and encoding and decoding keyword ciphers. Language is a medium, too, and it’s easier to get started (for some folks) with the smaller-iteration loops of text before getting to the thousands-of-iterations loops of pixels in a picture. It’s an optional chapter — everything introduced there gets introduced again later.
  • Since the new version of JES fixed a round-off error in the Turtle class, we can do recursive turtle manipulations now (which tended to get messed up in earlier forms of JES).
  • I juggled content around so that we do more with conditionals and querying the pixel for its position, before we introduce nested loops. Nested loops are really hard for students, and I learned (from seeing the code that my students wrote) that they can do far more than I’d guessed with single loops — even with multiple pictures. I included more of that.
  • I have tried (for the last two editions) to provide screen-scraping examples, e.g., writing code to pull weather, news, or friends’ information from websites.  It’s getting harder and harder to write that kind of code.  Instead, I decided to provide more code that parses CSV files, as can be found at Open Data Journalism sites (like at The Guardian) and sources like the US Census.  The examples are still about parsing out useful information, but it’s a lot easier to parse CSV and encouraged at these sites.
  • There are more end of chapter problems, and new pictures.  And trying to catch all the errors in the Third Edition that master teachers like Susan Schwartz (at West Point) found.

We’re working on teacher resources now. Currently in development (aiming to have ready in the next couple months) the Powerpoint slides for each chapter of the book, a collection of all the code in the book for teachers, and a solutions manual for every end of chapter problem. These are surprisingly controversial. There are lots (mostly University) teachers who think that I shouldn’t provide any of these resources — teachers should be able to develop all of those themselves. Most of the high school and community college teachers I know appreciate having them.

In searching for the Fourth Edition on Amazon, I read the comments on the Third Edition (see here). Authors probably shouldn’t read the reviews of the book — they’re painful. But I did, and even worse, I actually responded.

Here is a quote from one, titled “False Advertising.”

Its biggest problem: false advertising. This is NOT a book on Python, it’s about JYTHON – A Java based imitation of Python.
Why? Well, there’s some pretty software, available to download, which uses the the JRE. The author chose to stick with this “easy learning environment” and basically cripple anyone wanting to write Python code for Blender, Maya, Android etc.

You may learn to program from this text, but don’t expect a trouble-free life when you get exposed to the real language.

Here was my response:

Everything in this book is useful when wanting to write Python code for Blender, Maya, Android, etc. This is an introductory book on data, loops, conditionals, and objects. Those parts of Python are identical in this book and in the Python that you’ll use in Blender, Maya, and Android. For introductory Python programming, Jython and CPython are exactly the same.

I was surprised to see the original commenter responded. His point was that some kinds of friction, in dealing with the “real world” is desirable:

As an introductory book, I would expect a section on how to install and configure Python. Written covering Windows, Linux, and the Mac OSX. There is no such section; the whole point of Jython is to “hide” this technical level. Which is fine for learning loops etc. but leaves a student lost when encountering Python out in the real world.

It’s an interesting perspective, kind of a “rugged individualism” approach. I do agree with the notion of desirable difficulties in learning (see more here),  but don’t agree that installing Python is one of those.  Do most Python programmers install Python themselves, or is it already installed on the servers, computers, etc. that they will be programming? Is it a critical part of learning a language? Is it significantly different than installing JES (try that here)? Are you “lost” and unable to program if you don’t install it yourself first?

A sad addendum to this story: Our Media Computation data structures book (see the Amazon page here) has gone out of print. The publisher didn’t notify us. Someone approached us about using the book, and was told that it was out of print. When I queried Pearson, they admitted it. More, because it’s not out of print everywhere (I guess it’s available in some non-US markets), Pearson won’t let us post the content anywhere. It’s a dead book now.

January 26, 2015 at 8:28 am 10 comments

STEM is incredibly valuable, but STEAM makes it better

I am sympathetic to this argument for the value of STEAM (STEM+Art), rather than just STEM.  I strongly believe in the value of creative expression in learning STEM subjects.  That’s core to our goals for Media Computation.  I believe that the STEAM perspective is why MediaComp has measurably improved motivation, engagement, and retention.

As a researcher, it’s challenging to measure the value of including art in learning STEM. I’m particularly concerned about the argument below.  Singapore and Japan are less creative because they have less art in school?  If we include more art in our schools, our students will be more innovative?  If we’re already more innovative, and we have too little art classes, why should we believe that adding more art will increase our innovation?

But STEM leaves out a big part of the picture. “It misses the fact that having multiple perspectives are an invaluable aspect of how we learn to become agile, curious human beings,” Maeda said. “The STEM ‘bundle’ is suitable for building a Vulcan civilization, but misses wonderful irrationalities inherent to living life as a human being and in relation to other human beings.” A foundation in STEM education is exceptional at making us more efficient or increasing speed all within set processes, but it’s not so good at growing our curiosity or imagination. Its focus is poor at sparking our creativity. It doesn’t teach us empathy or what it means to relate to others on a deep emotional level. Singapore and Japan are two great examples. “[They] are looked to as exemplar STEM nations, but as nations they suffer the ability to be perceived as creative on a global scale.” Maeda said. Is the United States completely misinformed and heading down the wrong track? Not entirely. Science, technology, engineering and math are great things to teach and focus on, but they can’t do the job alone. In order to prepare our students to lead the world in innovation, we need to focus on the creative thought that gives individuals that innovative edge.

via STEM is incredibly valuable, but if we want the best innovators we must teach the arts – The Washington Post.

December 15, 2014 at 8:22 am 14 comments

Older Posts

Recent Posts

October 2015
« Sep    


Blog Stats

  • 1,130,721 hits

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

Join 3,651 other followers

CS Teaching Tips


Get every new post delivered to your Inbox.

Join 3,651 other followers