Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial.

Slides:



Advertisements
Similar presentations
Toward Better Research: Cross-Threads Nick Feamster, Alex Gray, Charles Isbell College of Computing Georgia Tech.
Advertisements

How can I use this in my class? Java for MS in IT students. Wrap GUI around doing some cool picture manipulations, to engage the students. After AP exam,
Why don’t we ask users to learn?
Providing a Context to Motivate Non- Majors Into Computing Mark Guzdial College of Computing/GVU Georgia Institute of Technology.
Tracking an Innovation in Introductory CS Education from a Research University to a Two-Year College Allison Elliott Tew and Mark Guzdial Georgia Institute.
Innovative Practices in Computer Science Barbara Ericson Georgia Institute of Technology CCLI Conference Aug 2008.
Impact of Alternative Introductory Courses on Programming Concept Understanding Allison Elliott Tew W. Michael McCracken Mark Guzdial College of Computing.
CS 1 with Robots CS1301 – Where it Fits Institute for Personal Robots in Education (IPRE)‏
Meeting Everyone’s Need for Computing Mark Guzdial School of Interactive Computing.
Using Multimedia, Animation, and Robotics to Increase the Number of Students and Teachers in Computing Barbara Ericson ICE, College of Computing Georgia.
Problem Solving with Data Structures using Java: A Multimedia Approach Chapter 1: Objects for Modeling a World.
Encouraging Innovation in Computing Across Disciplines Mark Guzdial School of Interactive Computing.
1 ENG236: Introduction (1) Rocky K. C. Chang THE HONG KONG POLYTECHNIC UNIVERSITY.
The Institute For Personal Robots In Education (IPRE) Tucker Balch Associate Professor College of Computing at Georgia Tech Stewart Tansley Program Manager.
Microsoft Research Faculty Summit Mark Guzdial Professor Georgia Institute of Technology (Georgia Tech)
Introduction to digiCOACH Empowering Instructional Leaders Common Core Edition.
Meeting Computing Needs Across Campus Mark Guzdial, School of Interactive Computing.
Meeting Computing Needs Across Campus Mark Guzdial, School of Interactive Computing.
Computer Science Curricula Computer Science Major Computer Systems Concentration (CSC) Software Engineering Concentration (SEC) –New for Fall 2005.
Imagineering Inauthentic Legitimate Peripheral Participation Mark Guzdial and Allison Tew.
Introduction to Media Computation: Inventing a new approach to computing education at Georgia Tech Mark Guzdial Associate Professor College of Computing/GVU.
CS 0.5: A Better Approach to Introductory Computer Science for Majors Bob Sloan, Pat Troy University of Illinois at Chicago SIGCSE 2008.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Constructing Media as a Context for Teaching Computing and Motivating Women and Non-Majors: Inventing a new approach to computing education at Georgia.
Georgia Tech’s Three CS1’s CS1321: Introduction to Computing Based on How to Design Programs and the TeachScheme Project Was the only CS1 course, on a.
CSC 212 – Data Structures Prof. Matthew Hertz WTC 207D /
Media Computing Instructor Byung Kim Olsen 231 Office hours – MWF 9:00-10:00 AM or by appointment.
Computing for Everyone: Improving Global Competitiveness and Understanding of Our World Mark Guzdial (School of) Interactive and Intelligent Computing.
Towards Collaborative Dynabooks In Alan Kay’s vision, the computer’s greatest purpose is to facilitate learning through creation and exploration of multimedia.
Meeting Everyone’s Need for Computing Mark Guzdial School of Interactive Computing.
Introduction to Modeling CS1316: Representing Structure and Behavior.
Contrasting Women’s Experience in CS at Different Institutions Mark Guzdial College of Computing/GVU Georgia Tech Our Goal: Ubiquitous Computing Education.
A CS1 Course Designed to Address Interests of Women Lauren Rich¹*, Heather Perry, and Mark Guzdial* College of Computing/GVU Georgia Tech *Presenting¹Now,
Contexts in Computer Science Education Mark Guzdial School of Interactive Computing.
Collaborative Dynabooks: A research agenda on building systems to support learning through media Mark Guzdial Collaborative Software Lab
Broadening Computing Education Mark Guzdial, School of Interactive Computing.
Constructing Media as a Context for Teaching Computing and Motivating Women and Non-Majors: Inventing a new approach to computing education at Georgia.
Introduction to Modeling CS1316: Representing Structure and Behavior.
Improving CS Education with ICE Winter 2005 Tech Prep Conference Barbara Ericson Georgia Tech.
Improving CS Education with ICE Barbara Ericson Georgia Tech.
Design Process for a Non- Majors Computing Course Mark Guzdial & Andrea Forte College of Computing/GVU Georgia Institute of Technology With thanks for.
Contextualized Computing Education Mark Guzdial School of Interactive Computing.
Meeting Everyone’s Need for Computing Mark Guzdial School of Interactive Computing.
Meeting Computing Needs Across Campus Mark Guzdial, School of Interactive Computing.
Constructing Media as a Context for Teaching Computing and Motivating Women and Non-Majors: Inventing a new approach to computing education at Georgia.
Great Principles of Computing: Computing for Everyone Mark Guzdial College of Computing/GVU Georgia Institute of Technology.
Introduction to Media Computation: Inventing a new approach to computing education at Georgia Tech Mark Guzdial Associate Professor College of Computing/GVU.
“But it looks right”: Bugs in non-majors media programs Mark Guzdial College of Computing/GVU Georgia Institute of Technology.
CS 0.5 A New Approach to Introductory Computer Science for Majors Supported by NSF Grant DUE
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Mark Guzdial College of Computing Georgia Institute of Technology
Examples from Georgia Tech’s CS 1315: Introduction to Media Computation Class examples and student work.
Media Computation: Introducing Computing Contextualized in Video and Audio Processing Mark Guzdial and Barbara Ericson.
Institute for Computing Education (ICE) at Georgia Tech Fall 2004 BIT Conference.
CS1315: Introduction to Media Computation Introduction to Course & Administrivia.
Barbara Ericson Promising Practices in CS1 Media Computation for CS1 Barbara Ericson Georgia Institute of Technology.
Media computation as a context for learning computing Mark Guzdial College of Computing/GVU Georgia Institute of Technology.
Improving Undergraduate Computing Education NSF Site Visit, December 5, 2008.
Introduction to Media Computation: A new CS1 approach that addresses women’s interests Mark Guzdial College of Computing/GVU Georgia Institute of Technology.
The Current Crisis in Computing: What are the Real Issues? Mark Guzdial School of Interactive Computing Georgia Tech Story: –1 st Order Economics, 2 nd.
CS 1 with Robots CS1301 – Where it Fits Institute for Personal Robots in Education (IPRE)‏
Media as a Context for Learning Computation
Media as a Context for Learning Computation
CS1315 Introduction to Media Computation
Media as a Context for Learning Computation
Mark Guzdial College of Computing/GVU Georgia Tech
CS1301 – Where it Fits Institute for Personal Robots in Education
CS1301 – Where it Fits Institute for Personal Robots in Education
CS1301 – Where it Fits Institute for Personal Robots in Education
Presentation transcript:

Media Computation as An Approach to Motivate and Retain Computing Students : Inventing a new approach to computing education at Georgia Tech Mark Guzdial School of Interactive Computing College of Computing Georgia Institute of Technology

Story Where have all the students gone? Teaching Computing for Everyone First course: Introduction to Media Computation It’s about context What students do in it Second course: Representing Structure and Behavior Using Disney’s Wildebeests and Villagers, as a context for learning data structures Beyond the two courses: A path into CS A context in our CS1 Applying contexts more broadly: Threads™

Where have all the students gone? We’re losing students, at an increasing rate. Women and minority percentage of enrollment dropping High failure rates in CS1 (35-50% or more) Fewer applications into CS: “All programming jobs going to Asia.” Research results: “Tedious,” “boring,” “lacking creativity,” “asocial” All of this at a time when we recognize the critical role of IT in our economy, in all jobs

Hypothesis: Economy (1 st order) and Curriculum (2 nd order) Our computing curriculum has never been attractive. It is designed for the sole purpose of producing software engineers. For years, software engineering was a pathway to wealth (not just jobs) People will go through a lot for wealth. Dot-com bust plus off-shoring => it’s not about wealth. Recent uptick: “Google buys YouTube for $2B”

Strategy: Make CS education ubiquitous Motivate students to care about the broad range of what is computing. Create contextualized courses, minors, and non- traditional paths into CS Make it relevant, social, and creative. By doing this, we give CS majors their reasons to be there, and discover new CS majors.

Our Three CS1’s CS1301 Introduction to Computing Traditional CS1 for our CS majors, Science majors (math, physics, psychology, etc.). Trialing this semester: All robotics. CS1371 Computing for Engineers CS1 for Engineers. Same topics as CS1321, but using MATLAB with Engineering problems in homework and examples. CS1315 Introduction to Media Computation

What Georgia Tech Teaches CS1301 Intro to Programming in Python for CS majors CS1331 CS1+2 in Java CS1332 Data Structures and Algorithms in Java CS1315 (Media Computation CS1 in Python) CS1316 (Structure & Behavior— Multimedia data structures in Java) CS1371 (Computing for Engineering in MATLAB (only)) CS2110 (Low-level programming in C) CS2260: Media Device Architectures CS1372 Algorithm Design in C Institute for Computing Education Summer Workshops for High School Teachers: Media Computation CS1 in Java

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

Examples of Student Work Soup- Audio Collage Canon- LinkedList of (MIDI) Music

Overall Results Average CS1 success pre-MediaComp: Average 72.8% In MediaComp (51% female): Average 84% (as high as 90%) Similar results at Gainesville, U.Ill-Chicago (76% => 91%), ANU Specific majors more dramatic: Management majors’s success rate 49% => 88% Students are excited, and becoming CS majors, CS minors, CS teachers, and Computational Media majors (nearly 200, 25% female) MediComp students succeed in traditional CS classes.

Student voices Intro CS student (female): “I just wish I had more time to play around with that and make neat effects. But JES [IDE for class] will be on my computer forever, so… that’s the nice thing about this class is that you could go as deep into the homework as you wanted. So, I’d turn it in and then me and my roommate would do more after to see what we could do with it.” High School teacher: “This was the best (non- college credit) workshop I have ever taken.” Students in multimedia data structures: “Data structures is an important step. Use of media! It makes it fun.”

CS1315 Introduction to Media Computation Average 400/term 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 calculation

def negative(picture): for px in getPixels(picture): red=getRed(px) green=getGreen(px) blue=getBlue(px) negColor=makeColor(255-red,255-green,255-blue) setColor(px,negColor) def clearRed(picture): for pixel in getPixels(picture): setRed(pixel,0) def greyscale(picture): for p in getPixels(picture): redness=getRed(p) greenness=getGreen(p) blueness=getBlue(p) luminance=(redness+blueness+greenness)/3 setColor(p, makeColor(luminance,luminance,luminance))

Rough overview of Syllabus for CS1315 (CS1) 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 Trees, hash tables Movies Then, Computer Science topics (last 1/3 class)

Computer science 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

Computer science topics as solutions to their problems “Why is PhotoShop so much faster?” Compiling vs. interpreting Machine language and how the computer works “Movie-manipulating programs take a long time to execute. Why? How fast/slow can programs be?” Algorithmic complexity “Writing programs is hard! Are there ways to make it easier? Or at least shorter?” Object-oriented programming Functional programming and recursion “What do other languages look like?” JavaScript introduction

Success Rates for Specific Majors Success rates in traditional CS1 for students in various majors average Fall ’99 to Fall ’02, compared to Spring ’03 to Fall ’05 in Media Computation.

Example Collage Code def hw3(): venice1=makePicture(getMediaPath("venice.jpg")) print venice1 venice2=makePicture(getMediaPath("venice.jpg")) print venice2 venice3=makePicture(getMediaPath("venice.jpg")) print venice3 venice4=makePicture(getMediaPath("venice.jpg")) print venice4 venice5=makePicture(getMediaPath("venice.jpg")) print venice5 venice6=makePicture(getMediaPath("venice.jpg")) print venice6 canvas=makeEmptyPicture(640,480) print canvas IncreaseRed(venice1) targetX=1 for sourceX in range(1,getWidth(venice1),3): targetY=1 for sourceY in range(1, getHeight(venice1),3): px=getPixel (venice1, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 IncreaseBlue(venice2) targetX=128 for sourceX in range(1, getWidth(venice2),3): targetY=96 for sourceY in range(1, getHeight(venice2),3): px=getPixel (venice2, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 negative(venice3) targetX=1 for sourceX in range(1, getWidth(venice3),3): targetY=192 for sourceY in range(1, getHeight(venice3),3): px=getPixel (venice3, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 greyScaleNew(venice4) targetX=128 for sourceX in range(1, getWidth(venice4),3): targetY=288 for sourceY in range(1, getHeight(venice4),3): px=getPixel (venice4, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 IncreaseGreen(venice5) targetX=1 for sourceX in range(1, getWidth(venice5),3): targetY=384 for sourceY in range(1, getHeight(venice5),3): px=getPixel (venice5, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 targetX=256 for sourceX in range(1, getWidth(venice6),3): targetY=192 for sourceY in range(1, getHeight(venice6),3): px=getPixel (venice6, sourceX, sourceY) cx=getPixel (canvas, targetX, targetY) setColor(cx,getColor(px)) targetY=targetY +1 targetX=targetX +1 mirrorVertical(canvas) show(canvas) return(canvas) def IncreaseRed (venice1): for pixel in getPixels(venice1): myred = getRed(pixel) setRed (pixel, myred * 1.5) def IncreaseBlue(venice2): for pixel in getPixels(venice2): myblue = getBlue(pixel) setBlue (pixel, myblue * 1.5) def IncreaseGreen(venice5): for pixel in getPixels(venice5): mygreen = getGreen(pixel) setGreen (pixel, mygreen * 1.5) def greyScaleNew(venice4): for px in getPixels(venice4): newRed = getRed(px) * newGreen = getGreen(px) * newBlue = getBlue(px) * luminance = newRed+newGreen+newBlue setColor(px,makeColor(luminance,luminance,luminance)) …

Follow-up Survey: Did it have a lasting impact? In Spring 2004, conducted an 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.’

Second course: CS1316 “Representing structure and behavior” Driving question: “How did the wildebeests stampede in The Lion King?” 31 students, 75% female, 91% success rate.

Connecting to the Wildebeests It’s all about data structures

Rough Syllabus for CS1316 Weeks 1-4: Recreate media computation in Java (Images, sounds, turtles, MIDI). Linked lists of MIDI. Goal: Creating flexible structures for design Linked lists and trees of images. Scene graph as first tree. Linked lists and trees of sampled sounds. Recursive traversals. Canon Swan Bells Fur Elise

Syllabus (continued) Generalized lists and trees. Graphical User Interfaces as trees Layout managers as renderers Continuous Simulations Predator-prey, disease propagation UML (design notation) and reuse Mapping Simulations to Animation Finally! The wildebeests and villagers Discrete Event Simulation Stacks and queues are natural here gal1- rightface.jpg gal1- right2.jpg gal1- right1.jpg gal1- rightface.jpg

HW2: Create a collage, but must use turtles

Steve Frederick Georgia Institute of Technology

Priya Harshini Georgia Institute of Technology

Steve Frederick Georgia Institute of Technology

Do the two semesters prepare students for a regular CS course? - CS1322 was our previous CS2 for CS majors. SuccessFail TOTAL # From 1321 (CS1 for CS) 78.1%21.9% 333 From 1371 (From Engineering) 72.7%27.3% 681 From 1316 (From CS1315) 60.0%40.0% 20

An alternative path, a minor, and a new degree The two courses (Introduction to Media Computation and Representing Structure and Behavior) are now accepted as a valid path for CS students. Margolis and Fisher’s “alternative path” Defined a CS minor Created new BS in Computational Media Joint with School of Literature, Communications, and Culture 58 majors in first year, 24% female Nearly 200 majors today, still about ¼ female

A Context for CS1 for CS majors: Robotics Microsoft Research has funded the Institute for Personal Robotics in Education Tucker Balch, Directing Monica Sweat developing GT’s CS1 Joint between Bryn Mawr and Georgia Tech Goal is to develop a CS1 and CS2 with robotics as the context. HW2: Recursively follow a light CS2: Add a camera

Developing Threads™: Carrying Context to the Degree Level A new conceptualization for an undergraduate degree. We defined 8 “Threads” which together define Computing: Computing and Media, People, Platforms, Computational Modeling, Information Internetworking, Intelligence, Embodiment, and Foundations The courses within each are “core” CS (some), advanced/new CS, and some non-CS (e.g., Psychology in People Thread)

Threads™ as a Degree Our BS in Computer Science is defined as any two Threads. 28 possible paths to a degree now. Advantages: Clearly says what CS is. It isn’t just programming. Clear differentiator for students. It’s not just India’s or China’s CS Explains why students take any particular course Consider the possibilities if all degrees were Threaded. Interdisciplinary degrees became easier and more interesting.

Summary It is time to fix the curriculum of Computer Science. CS for everyone is a useful goal. Media Computation is a powerful context to motivate student retention and learning. Our two courses having an impact on recruitment and retention. Bottom line: Context is a win. Media is a great context. We’re trying robotics next. Could be biology/bioinformatics, Facebook graphs, etc.

Acknowledgements Faculty Collaborators: Barbara Ericson, Charles Fowler (Gainesville) Course Materials Development: Adam Wilson, Jason Ergle, Claire Bailey, David Raines, Joshua Sklare, Mark Richman, Matt Wallace, Alisa Bandlow, Ellie Harmon, Yu Cheung Ho, Keith McDermott, Eric Mickley, Larry Olson, Lauren Biddle Assessment: Andrea Forte, Allison Tew, Rachel Fithian, Lauren Rich, Heather Perry, Ellie Harmon, Bob Amar, Rachel Knickmeyer, Allison Tew, Lana Yarosh Thanks to Bob McMath and the Al West Fund, to GVU and CoC, to the students who participated in our evaluation, and to the National Science Foundation

Thank you! Mark Guzdial For more on MediaComp approach (including papers, software, and slides): plan Media Computation Teachers’ Site: teach