Posts tagged ‘teachers’

Where are the Python 3 Libraries for Media Computation

My Blog@CACM post for this month is on JES, the Jython Environment for Students, which at 14 years old and over 10,000 downloads, is probably one of the oldest, most used, and (by some definition) most successful pedagogical Python IDE’s.

The SIGCSE Members list recently had a discussion about moving from Python 2 to Python 3. Here’s a description of differences. Some writers asked about MediaComp. With respect to the Media Computation libraries, one wrote:

I’m sad about this one, because we use and like this textbook, but I think it’s time to move to Python 3.  Is there a compatible library providing the API used in the text?

Short answer: No. There are no compatible Media Computation libraries for CPython 2 or 3.

We keep trying. The latest attempt to build Media Computation libraries in CPython is here: It doesn’t work on all platforms yet, e.g., I can’t get it to load on MacOS.

We have yet to find a set of libraries in Python that work cross-platform identically for sample-level manipulations of sounds. For example, PyGame’s mixer object doesn’t work exactly the same on all platforms (e.g., sampling rates aren’t handled the same on all platforms, so the same code plays different speed output on different platforms). I can do pixel-level manipulations using PIL. We have not yet tried to find libraries from frame manipulations of video (as individual images). I have just downloaded the relevant libraries for Python 3 and plan to explore in the future, but since we can’t make it work yet in Python 2 (which has more mature libraries), I doubt it will work in Python 3.

I complained about this problem in my blog in 2011 (see post here). The situation is better in other languages, but not yet in Python.

  • I have been building Media Computation examples in GP, a blocks-based language (see post here).
  • Jeff Gray’s group at U. Alabama has built Blockly-like languages Pixly and Tunely for pixel and sample level manipulations.
  • Cynthia Lee at Stanford has been doing Media Computation in her classes in MATLAB and in C++
  • The Calico project supports Media Computation in IronPython (based on Python 3) and many other languages, because it builds on .NET/MONO which has good multimedia support.
  • We’re able to more and more in JavaScript-based Python implementations (like Pythy and Runestone), because JavaScript has excellent cross-platform multimedia support.

When we did the 4th edition of our Python Media Computation textbook, I looked into what we’d have to change in the book to move to Python 3. There really wasn’t much. We would have to introduce print as a function. We do very little integer division, so we’d have to explain that. The focus in our course (non-technical majors, first course) is at a higher level than the differences between Python 2 and 3. I am confident that, at the end of our course, the majority of our students would understand the differences between Python 2 and 3. As we move more to browser-based IDE’s, I can support either Python 2 or 3 syntax and semantics. Preparing students for industry jobs using exactly CPython 3 is simply not a priority in our course.

August 19, 2016 at 7:46 am Leave a comment

Does pre-service CS education reduce the costs and make more effective in-service PD? Paths to #CS4All

What we’re trying to achieve in CS education in the United States is rarely done (successfully) and hasn’t been done in several decades (see previous post on this).  We’re changing the education canon, what everyone is taught in schools.  It’s a huge effort, involving standards and frameworks, convincing principals and legislators, and developing teachers and curricula.

Right now, we’re mostly developing the teachers we need with in-service education — which is expensive.  We’re shipping around trainers, people providing professional development to existing teachers.  We’re paying travel costs (sometimes) to teachers, and stipends (sometimes) for their time.

I have argued previously that we have to move to a pre-service model, where new teachers are prepared to be CS teachers from undergraduate education.  It’s the only way to have a sustainable flow of CS teachers into the education system.  NYC is working on developing per-service programs now, because it’s a necessity for their CS education mandate.  No reform takes root in US schools without being in schools of education.

At a meeting of the Georgia CS Task Force, where talking about the high costs of in-service CS teacher education, we started wondering if the costs might be cheaper in the long-run by growing pre-service education, rather than scaling in-service.  Of course, we have to build a critical mass cohort of in-service teachers (e.g., to provide mentors for student teachers) — in many states, we’ve already done that.

Creating pre-service programs at state universities creates opportunities for in-service education that are cheaper and maybe more effective than what we’re creating today. Pre-service programs would require CS Education faculty (and likely, graduate students) at state universities.  These people are then resources.

  • First, those faculty are now offering pre-service PD, which is necessary for sustainability.
  • Regional high school and elementary school teachers could then go to the local university for in-service programs — which can be run more cheaply at the university, than at a downtown hotel or conference center with presenters shipped in from elsewhere.
  • The CS Ed faculty are there as a resource for regional high school teachers for follow-up, and the follow-up is a critical part of actually instituting new curricula.
  • Many education schools offer resources (e.g., curriculum libraries, help with teacher questions) that would be useful to CS teachers and are available locally with people who can answer questions.

Pre-service programs require more up-front costs (e.g., paying for faculty, setting up programs).  But those costs likely amortize over the lifetime of the faculty and the program.  Each individual professional development session offered by local faculty (either pre-service or in-service) is cheaper than each in-service  session created by non-local presenters/developers.  Over many years, it is likely cheaper to pay the higher up-front costs for pre-service than the long, expensive burn of in-service.

I don’t know how to figure out the cost trade-off, but it might be worthwhile for providers like and PLTW to play out the scenarios.

July 20, 2016 at 7:54 am 4 comments

Herbert Simon: When CS was interdisciplinary and multi-cultural

I’m teaching our introductory course in Human-Centered Computing for new PhD students this Fall. I have a huge reading list to review, including Latour, Geertz, Russell & Norvig, Goffman, Tufte, and so on.

I got to re-read Herbert Simon’s Sciences of the Artificial. I was struck by this quote at the end of Chapter 5.

Those of us who have lived close to the development of the modern computer through gestation and infancy have been drawn from a wide variety of professional fields, music being one of them. We have noticed the growing communication among intellectual disciplines that takes place around the computer. We have welcomed it, because it has brought us into contact with new worlds of knowledge—has helped us combat our own multiple-cultures isolation. This breakdown of old disciplinary boundaries has been much commented upon, and its connection with computers and the information sciences often noted.

Simon, Herbert A. (1996-09-26). The Sciences of the Artificial (MIT Press) (p. 137). The MIT Press.

I believe that the early days of computing were interdisciplinary and multi-cultural. Those interdisciplinary and multi-cultural forces created computer science, but once created, new cultures formed without continuing interdisciplinary and multi-cultural influences. What Simon did not foresee was the development of unique technology-centric culture(s), such as the Reddit culture and Silicon Valley Culture (as described in Forbes and New Yorker). Valuing multiculturalism and diverse perspectives in the early days of computing is in sharp contrast to today’s computing world. (Think Gamergate.)

Note who is considered a computer scientist today. In the early days of computer science as a discipline, faculty in the computer science department would have degrees from mathematics, electrical engineering, philosophy, and psychology. Today, you rarely find a computer science faculty member without a computer science degree. When I first started my PhD in Education and Computer Science at the University of Michigan, one of the CS graduate advisors tried to talk me out of it. “No CS department is going to hire you with an Education degree!” Fortunately for me, he was wrong, but not far wrong. There are few CS faculty in the US today who have a credential in education — that’s not a successful add-on for a CS academic. That’s a far cry from the world described in Simon’s quote.

July 18, 2016 at 7:13 am 3 comments

Why Professors Resist Inclusive Teaching by Annie Murphy Paul: Especially important in CS

Annie Murphy Paul is talking about inclusive teaching here, but she could just as well be talking about active learning.  The stages are similar (recall the responses to my proposal to build active learning methods into hiring, promotion, and tenure packages). These are particularly critical for computing where we have so little diversity and CS teachers are typically poor at teaching for diverse audiences.

Stages of Inclusive Teaching Acceptance

Denial: “I treat all my students the same.  I don’t see race/ethnicity/gender/sexual orientation/nationality/disability. They are just people.”

Anger: “This is all just social science nonsense! Why won’t everyone just get over this PC stuff? When I went to grad school, we never worried about diversity.”

Bargaining: “If I make one change in my syllabus, will you leave me alone?”

Depression: “Maybe I’m not cut out to teach undergraduates. They’re so different now. Maybe I just don’t understand.”

Overwhelmed: “There is so much I didn’t know about teaching, learning, and diversity. How can I possibly accommodate for every kind of student?”

Acceptance: “I realize that who my students are and who I am influences how we interact with STEM. I can make changes that will help students learn better and make them want to be part of our community.”

Source: Why Professors Resist Inclusive Teaching « Annie Murphy Paul


July 6, 2016 at 7:27 am Leave a comment

The Connected Learner: The Teaching Research Taboo

The Connected Learner is an interesting project led by Mary Lou Maher at the University of North Carolina Charlotte. Her blog post quoted below points to one of the difficulties in talking about teaching among CS faculty.

It seems relatively uncommon for research-track CS faculty to discuss their teaching at conferences and research meetings (no, I’m not saying it never happens, but it is rarely the focus, except at CS education conferences like SIGCSE and ICER). So, while we are likely aware of our colleagues’ research projects, we may not realize that our colleagues are experimenting with innovative teaching methods, trying out new learning technologies or adapting some best practices related to active learning. Because we don’t talk about it, we may think it’s not happening and this can lead to us not wanting to talk about our own innovations. We think our colleagues only value core research, so that is what we focus our own discussions on.

Source: The Connected Learner: The Teaching Research Taboo

July 1, 2016 at 8:03 am Leave a comment

Growing Computing Education Research to Critical Mass at UNO and UCSD

I recently posted a piece about my personal plans for the future, and I talked about how great it would be to be at a place where there were three or more CS Ed faculty — a critical mass. Kevin rightly called me out on that in the comments, suggesting that it would be hard to get more than a couple Computing Education researchers in a US CS department. (Outside the US, there are multiple institutions with critical mass CER communities, including U. Kent at Canterbury and U. Adelaide.)

With this year’s hires, there are now two US campuses with that kind of depth! In both cases, they’re avoiding the problem Kevin describes by spreading across multiple departments, not just in CS.

University of Nebraska at Omaha: I knew that my PhD student, Briana Morrison (dissertation proposal is described here, and her award-winning ICER paper is described here) was joining (my former student) Brian Dorn (here’s a post on his dissertation) in the CS department at UNO. Then I learned that Michelle Friend (whose work with middle school girls in CS was presented at ICER 2013 and mentioned in this post) just finished her PhD at Stanford is also joining UNO in teacher education.  They are well-situated to become a (the?) major player in research on CS teacher professional development.

University of California – San Diego: Leo Porter (winner of many SIGCSE and ICER best paper awards, including work described in this post) is in CS, Christine Alvarado (who was key to the growth of women in computing at Harvey Mudd), Scott Klemmer (who gave the keynote at ICER 2012) is in the Design Lab, and Beth Simon (whom still probably has the most ICER publications of anyone) has just returned to UCSD (from Coursera) to join Education. And now, Philip Guo just announced that he’s joining UCSD in Cognitive Science. Philip built the Python Tutor that we use in our ebooks, blogs frequently on CS Ed issues, and has been publishing a ton recently (including four papers at VL/HCC last year) on issues related to learning programming.

While I’m jealous that I’m not part of a critical mass CER group, it’s a great thing for the field — more students, more CS teachers, more development and evaluation of interventions and curricula, more answers for the growing demand for computing education research, and more attention to the issues of computing education.

June 3, 2016 at 7:04 am 3 comments

Older Posts

Recent Posts

August 2016
« Jul    


Blog Stats

  • 1,256,914 hits

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

Join 4,244 other followers

CS Teaching Tips


Get every new post delivered to your Inbox.

Join 4,244 other followers