Imagineering Inauthentic Legitimate Peripheral Participation Mark Guzdial and Allison Tew Abstract When computer science educators are asked to teach non-CS majors, we are often placed in the position of teaching in alignment with a community of practice that does not (or does not yet) exist. In that sense, our teaching is inauthentic. We use the example of two classes at Georgia Tech that seem successful by several measures, yet suffer this inauthenticity. We propose that a useful tool for understanding how these classes work is the Disney Corporation’s imagineering: Their process of story-telling in three-dimensions. Legitimate Peripheral Participation A general theory of learning (Lave & Wenger, 1991) Views learning as becoming more connected to a community of practice. Students move from peripheral participation that is still legitimate (useful, important) to more central roles. – Examples: West African tailors, midwives, Alcoholics Anonymous Teaching “aligned” with CoP We’ll call teaching that students perceive as leading to a Community of Practice that they want to belong to as “aligned” teaching Teaching that is aligned CoP is perceived as more relevant to students (Joseph & Nacu) Is Authenticity the same as Alignment? Shaffer and Resnick claim that there are four kinds of authenticity: – – – – Activities aligned with outside world Assessment aligned with instruction Topics aligned with what learners want to know Methods of inquiry aligned with discipline 1, 3, and 4 seem to be about alignment with CoP’s that students recognize Hypothesis (Assumption here) If educational activities are not authentic, relevant, aligned, students won’t learn. – Notice that this is about student perception. – Some students may imagine an alignment that even the teacher doesn’t see. Claim Students learn computer science in CS1315 Introduction to Media Computation and CS1316 Representation of Structure and Behavior (the two “Media Computation” classes) because they perceive it to be aligned. But it’s not. It’s inauthentic. The issue isn’t that we lied to the students, It’s “How did we get away with it?”. Media Computation: Teaching in a Relevant Context Presenting CS topics with media projects and examples – Iteration as creating negative and grayscale images – Indexing in a range as removing redeye – Algorithms for blending both images and sounds – Linked lists as song fragments woven to make music – Information encodings as sound visualizations CS1315 Introduction to Media Computation Goal: Make computing relevant, social, and creative Averaging 300 students/term since Spring 2003 – Overall, CS1315 has been 51% female – Required in Architecture, Management, Ivan Allen College of Liberal Arts, and Biology Focus: Learning programming and CS concepts within the context of media manipulation and creation – Converting images to grayscale and negatives, splicing and reversing sounds, writing programs to generate HTML, creating movies out of Web-accessed content. – Computing for communications, not calculations Selecting Python as the programming language Significant issue: Non-CS faculty, who don’t program, but should choose for their students. Check Google: General opinion counts. Looks like other programming languages – Potential for transfer Use in commercial contexts authenticates the choice – IL&M, Google, Nextel, etc. Rough overview of Syllabus Defining and executing functions Pictures – Psychophysics, data structures, defining functions, for loops, if conditionals – Bitmap vs. vector notations Sounds – Psychophysics, data structures, defining functions, for loops, if conditionals – Sampled sounds vs. synthesized, MP3 vs. MIDI Text – Converting between media, generating HTML, database, and networking – A little trees (directories) and hash tables (database) Movies Then, Computer Science topics (last 1/3 class) Some Computer Science Topics inter-mixed We talk about algorithms across media – Sampling a picture (to scale it) is the same algorithm as sampling a sound (to shift frequency) – Blending two pictures (fading one into the other) and two sounds is the same algorithm. We talk about representations and mappings (Goedel) – From samples to numbers (and into Excel), through a mapping to pixel colors We talk about design and debugging – But they mostly don’t hear us Computer Science Topics as solutions to their problems “Why is PhotoShop so much faster?” – Compiling vs. interpreting – Machine language and how the computer works “Writing programs is hard! Are there ways to make it easier? Or at least shorter?” – Object-oriented programming – Functional programming and recursion “Movie-manipulating programs take a long time to execute. Why? How fast/slow can programs be?” – Algorithmic complexity Examples of Student Work SoupAudio Collage CanonLinkedList of (MIDI) Music Does the class work? Enrollment Success Rate Georgia Tech’s CS 1 2000 - 2002 930 71.2% Spring 2003 120 90.0% Fall 2003 303 86.5% Spring 2004 395 86.9% Summer 2004 120 73.3% Fall 2004 366 80.3% Spring 2005 317 84.5% (average) Media Computation Since Spring 2004, the developers aren’t the teachers. We are getting transfers into the CS major. For traditional CS1, Sp2005 had 95 students, 70.0% success rate. – Engineering CS1 Spring 2005: 833 students, 76% success rate. WDF Rates by Major Follow-up Survey: Did it have a lasting impact? In Spring 2004, conducted an email survey with students from Spring 2003 (n=120) and Fall 2003 (n=303) students. 59 responses – 11 (19%) had written a Python program on their own since the class had ended. – 27% had edited media that they hadn’t previously. “Did the class change how you interact with computers?” 20% said no. 80% said yes, but it was also more about changing how they thought about computers. – “Definitely makes me think of what is going on behind the scenes of such programs like Photoshop and Illustrator.” – 'I understand technological concepts more easily now; I am more willing and able to experience new things with computers now’ – 'I have learned more about the big picture behind computer science and programming. This has helped me to figure out how to use programs that I've never used before, troubleshoot problems on my own computer, use programs that I was already familiar with in a more sophisticated way, and given me more confidence to try to problem solve, explore, and fix my computer.’ CS1316 Representing Structure and Behavior Driving question: “How did the wildebeests stampede in The Lion King?” Spring 2005: 31 students, 75% female, 91% success rate. Syllabus Introduction to Java and Media Computation – Manipulating turtles, images, MIDI, sampled sounds. – Insertion and deletion (with shifting) of sampled sounds (arrays). Structuring Music – Goal: A structure for flexible music composition – Put MIDI phrases into linked list nodes. Use Weave and Repeat to create repeating motifs as found in Western Music At very end, create a two-branched list to start on trees. Swan Bells Canon Fur Elise Syllabus (Continued) Structuring Images – Using linearity in linked list to represent ordering (e.g., left to right) – Using linearity in linked list to represent layering (as in PowerPoint) – Mixing positioned and layered in one structure, using abstract super classes. – Structuring a scene in terms of branches—introducing a scene graph (first tree) Syllabus (Cont’d) Structuring Sound – Collecting sampled sounds into linked lists and trees, as with images. But all traversals are recursive. – Use different traversals of same tree to generate different sounds. – Replace a sound inplace Generalizing lists and trees – Create an abstract class “Linked List Node” (LLNode) on top of the sound and image class hierarchies Make all image and sound examples work the same Syllabus (Cont’d)JFrame GUIs as trees – We introduce construction of a JPanel Swing frame as construction of a tree. – Different layout JLabel “This is panel1!” managers are then different renderers of the same tree. JPanel JButton “Make a picture” JButton “Make a sound” Syllabus (cont’d) Lists that Loop – Introduce circular linked lists as a way of create Mario-Brothers’ style cel animations. – Introduce trees that loop as a way of introducing graphs. gal1rightface.jpg gal1right2.jpg gal1rightface.jpg gal1right1.jpg Syllabus (cont’d) Introducing Simulations – Introduce continuous and discrete event simulations, and Normal and uniform probability distributions – We do wolves and deer, disease propagation, political influence. – Create a set of classes for simulation, then re-write our simulations for those classes. – Writing results to a file for later analysis Finally, Making the Wildebeests and Villagers – Mapping from positions of our turtles to an animation frame. – Creating an animation from a simulation. Syllabus (cont’d) Introduction to Discrete Event Simulations – Create a discrete event simulation of trucks, factories, salespeople, and markets. – Use turtles to create an animated display. – Now, the real focus is the simulation, and the animation is just a mapping from the simulation. Animation becomes yet another medium in which we can review results, like data in an Excel spreadsheet, music, or sound. Student Comments on CS1316 (Early on.) “I am most looking forward to learning some Java, so I can at least understand some of what my CS major friends are saying.” “the collage is about the same amount of difficulty in java as it was in python.” “What I like about CS1316 so far is that it's an appropriate difficulty level. It's a good follow-up to 1315, because I'm never entirely lost and eventually get all of it, but it's still a challenge at times. Usually a course is too easy or too hard, but this one seems good to me! :)” “I like the pacing of this class. It's a little slow sometimes, but that's good for people like me who are computer-impared. The CS 1321 class tried to cover too much in too little time and expected a level of computer knowledge I felt was too high for begineer programming. This class is great” Student comment on languages ““I've used both Python(well, Jython, Close enough) and MATLAB. I would put Java in the middle. Java is better than MATLAB in my opinion(especially since MATLAB rarely points out mistakes in detail like Java/Python. It just tells you there is a mistake to fix) and Java is more versitile than MATLAB. However, I'm having more problems programming in Java than I ever had in Python. I don't know if its the Java classes or how Java requires more to install/run(It took me at least 2 hours to set up, and I'm still having problems), but I actually like Python a little better. Plus, some error messages in Java don't make any sense to a beginner programmer like students. I got one that said something about version 48.0 instead of 49.0, and I have no idea what that's about. But, I would say Java is in the middle, just a bit below Python and way ahead of MATLAB.” Posted on my Facebook “Wall” last night Does it prepare students for a regular CS course? But it’s not authentic Nobody in the real world processes media at the level of pixels and samples in Python. – Almost nobody writes programs to manipulate media at all! Applications dominate. People in the real world who make animations don’t use Java. How did we get away with the lie? How did we get away with it? It’s not instructional design – Traditional instruction design ignores context It’s not marketing – We’re not talking about pricing or distribution or promotion. – It’s not about a single concept (Coke “Real,” Avis “We try harder.”) It’s storytelling, but over a 15 week semester. – How do we do that? Imagineering: Telling a Story in a Theme Park 1. Start from the Story 2. Start from where the expectations are 3. Pay attention to Details 4. Where necessary, change reality 5. Pay attention to Transitions 6. Make the Cast part of the Story Using these in CS1315 and CS1316 We’re not building a theme park. But we are telling a story in threedimensions over 15 weeks. 1. Start from the Story Everything at Disney theme parks starts with a story. Even changes to vendor booths start from a story. Examples: – Tomorrowland – Big Thunder Railroad – Splash Mountain – Emporium 1. Start from the Story In CS1315, we tell a consistent story – All media are going digital – Digital media are manipulated in software – Knowing how to program is an advantage in a profession that manipulates media. In CS1316, it’s all about the wildebeests (and the villagers) 2. Start from where the expectations are 2. Start from where the expectations are Partially, this is about peripheral participation These students have been peripherally participating in media manipulation culture – All collect media – Many use Photoshop – Some work with MIDI and sound (“Acid”) We start with the media and manipulations they know. 3. Pay Attention to Details 3. Pay Attention to Details The lectures match the book which matches the assignments (which are about media manipulation) which match the Galleries in the CoWeb. The story is told consistently and are selfsupporting pieces of evidence. – “Of course people manipulate media with Python! Go look at all the great things in the CoWeb Galleries!” 4. Where necessary, change reality Three story buildings in Disney World aren’t really three stories. Another Example: Cinderella’s Castle -The View -The Tunnel 4. Where necessary, change reality Python does not support media manipulation. – So we wrote a set of libraries and tools. – We embedded them into the programming environment so that students never even see the media libraries being imported. – Now, obviously, Python supports media manipulation. Java’s media support is complicated. – We never teach it. – We teach Picture, Sound, Pixel, and SoundSamples. 5. Pay Attention to Transitions 5. Pay Attention to Transitions At each new topic, we relate the transition to the story. – We don’t start teaching string processing, we start teaching HTML. – We don’t teach linked lists, we teach how to dynamically and creatively insert and remove media elements. 6. Make the Cast Part of the Story 6. Make the Cast part of the Story “This is a great collage on the Gallery this week. Who did it? You? How’d you do it? How’d you get this great effect?” TA’s get sucked in. – Some of the best media on the Gallery pages are by the TA’s (“as examples”) Conclusion: Getting the Story Wrong There’s evidence that students in CS1315 don’t buy the story. – They don’t buy that learning to hack media is useful for their career/profession. – But instead, they think it’s part of being a media consumer. Suggestive evidence #1: Re-read those follow-up survey comments. – That’s not about work. That’s about life. Suggestive Evidence #2 Homework was not perceived as particularly “relevant” – 39.2% - Georgia Tech – 31.2% - Gainesville But majority of students at both institutions perceived skills would be useful later in life – 59.9% - Georgia Tech – 56.2% - Gainesville Georgia Tech students saw greater relevance of course material for career – 45.5% - Georgia Tech – 37.5% - Gainesville