How to Teach Computer Science with Media Computation
May 13, 2015 at 8:09 am 5 comments
In the Preface to the new 4th ed book, I wrote a bit about what we know about how to teach computer science using Media Computation. These are probably useful in most CS classes, even without Media Computation:
Over the last 10 years, we have learned some of the approaches that work best for teaching Media Computation.
- Let the students be creative. The most successful Media Computation classes use open-ended assignments that let the students choose what media they use. For example, a collage assignment might specify the use of particular filters and com- positions, but allow for the student to choose exactly what pictures are used. These assignments often lead to the students putting in a lot more time to get just the look that they wanted, and that extra time can lead to improved learning.
- Let the students share what they produce. Students can produce some beautiful pictures, sounds, and movies using Media Computation. Those products are more motivating for the students when they get to share them with others. Some schools provide online spaces where students can post and share their products. Other schools have even printed student work and held an art gallery.
- Code live in front of the class. The best part of the teacher actually typing in code in front of the class is that nobody can code for long in front of an audience and not make a mistake. When the teacher makes a mistake and fixes it, the students see (a) that errors are expected and (b) there is a process for fixing them. Coding live when you are producing images and sounds is fun, and can lead to unexpected results and the opportunity to explore, “How did that happen?”
- Pair programming leads to better learning and retention. The research results on pair programming are tremendous. Classes that use pair programming have better retention results, and the students learn more.
- Peer instruction is great. Not only does peer instruction lead to better learning and retention outcomes, but it also gives the teacher better feedback on what the students are learning and what they are struggling with. We strongly encourage the use of peer instruction in computing classes.
- Worked examples help with learning creativity. Most computer science classes do not provide anywhere near enough worked-out examples for students to learn from. Students like to learn from examples. One of the benefits of Media Computation is that we provide a lot of examples (we’ve never tried to count the number of for and if statements in the book!), and it’s easy to produce more of them. In class, we do an activity where we hand out example programs, then show a particular effect. We ask pairs or groups of students to figure out which program generated that effect. The students talk about code, and study a bunch of examples.
Entry filed under: Uncategorized. Tags: computing education, live coding, MediaComp, teachers.
1.
Checking on my pedagogy | Gas station without pumps | May 13, 2015 at 11:40 am
[…] Guzdial just posted some of his pedagogical advice for teaching beginning programmers in How to Teach Computer Science with Media Computation | Computing Education Blog. I decided to check how much of this I follow in my applied electronics course, which is aimed at […]
2.
Peter Donaldson | May 14, 2015 at 7:25 am
Hi Mark,
some really good advice that should improve interest, motivation and learning for any teacher following it. I haven’t purchase a copy of your Media Computation book but it’s definitely in the queue of useful CS books to buy.
Just to expand on the Peer Instruction I think that one of the key benefits is that it provides a structured approach that supports and encourages both formative testing and self-explanation by the student. Both of these techniques have a fairly large body of evidence that they increase rates of learning in novices so a technique that incorporates both is fantastic.
Through our work on the PLAN C project, we’ve found that PI questions with distractor’s that are based on common misconceptions really increases the level of discussion within groups of both teachers and students.
In questions that I create I now have one answer that helps to indicated they don’t have any idea (not properly prepared or just really confused) and another couple that are answers that someone would be likely to give if they had a common misconception.
It’s really satisfying as a teacher to be able to precisely identify particular mental blocks so that I can try to do something about them. All too often I feel we can end up just following tradition or “accepted wisdom” (whether it’s effective or ineffective) rather like medieval quacks (doctors).
I notice in your new E-Book for teachers that you highlight common misconceptions so teachers who were using it could also take that information to help them craft their own PI questions. There’s also a large and growing collection of already created PI questions at http://www.peerinstruction4cs.org/ that people may find useful.
3.
ITiCSE 2016 – Almost here! | Katrina Falkner | April 7, 2016 at 10:26 pm
[…] to the MOOC context, where we describe our experiences, and the specific challenges, of taking Media Computation along with elements of Collaborative Learning, into our introductory programming MOOC, Think Create […]
4.
Dagstuhl! Assessing Learning in Introductory Computer Science | Katrina Falkner | May 20, 2016 at 2:37 am
[…] third poster looks at our work in Media Computation. We started exploring Media Computation when we revised our first year curriculum several years ago. While we were happy with the results […]
5.
Nine ideas for teaching Computing at School from the 2017 CAS conference #CASConf17 | O'Really? | June 23, 2017 at 4:05 am
[…] that can be put to use immediately. I’ll also be trying the Live Coding (with Sonic Pi) and Media Computation he demonstrated […]