Posts tagged ‘MediaComp’

Manipulating NASA Astronomy Data with Pencil Code: A Media Computation Hour of Code Project #CSedWeek

HCC-Google-NASA

I got this email from Matthew Dawson at Google, and was delighted and amazed.  Check out the image before.  They’re using Pencil Code to walk the pixels of an image, with optical, IR, and X-Ray data.  The loop maps the IR and X-Ray data into colors in order to create a visualization.  What a terrifically cool MediaComp Hour of Code project!  I’m sharing this email with his permission:

I wanted to share a media computation type Hour of Code project that I helped create. I’m a big fan of everything you’ve done to advance the use of media in computer science, and thought that you might like to see this application.

It was created by myself, David Bau a Googler who created Pencil Code (an IDE that can transition between blocks and text), and astronomers at NASA and the ASA. In it, students get to create image mashups by tinkering with the R,G,B values of two images. They then get to apply those concepts to recolor real supernova images of various wavelengths to generate colorful astronomical images. Kim Arcand, who voices the last three videos, is the Visualization Lead for NASA’s Chandra X-Ray telescope, and this application of CS very closely matches the types of things she does each day.

This activity was created by volunteers August Muench, astronomer for the American Astronomical Society, Kim Arcand, visualization lead for NASA’s Chandra X-ray Observatory, and Sydney Pickens and Matthew Dawson, both computer science educators with Google CS First

December 11, 2014 at 1:08 pm Leave a comment

Talk at Rutgers on Dec 9: Creative Expression to Motivate Interest in Computing

If you’re in the New Jersey area on Tuesday December 9:

Library & Information Science Department Guest Lecture, open to the Rutgers Community….

Dr. Mark Guzdial and Barbara Ericson

Scholarly Communication Center at Alexander Library (4th Floor lecture hall)

Tuesday, 12/9/2014, 12-1:30pm

Title: Creative Expression to Motivate Interest in Computing

Abstract:  Efforts in the US to promote learning about computer science and computational thinking emphasize the vocational benefits.  Research on end-user programming suggests that for every professional software developer in the United States, there are four more professionals who program as part of doing their job.  Efforts in other countries (UK, Denmark, New Zealand) instead emphasize the value of computing as a rigorous discipline providing insight into our world.  We offer a third motivation: computing as a powerful medium for creative expression.  We have used computational media to motivate children to study computing, to go beyond thinking about “geeks” in computing.  We use media computation to encourage teachers and introductory students at college. The approach draws in a different audience than we normally get in computer science The BS in Computational Media at Georgia Tech is the most gender-balanced, ABET-accredited undergraduate computing degree in the United States.  We use these examples to paint a picture of  using creative expression to motivate interest in computing.

Bios:

  • Mark Guzdial is a Professor in the School of Interactive Computing at Georgia Tech. He is a learning scientist who focuses on computing education research. He invented the Media Computation approach to teaching introductory computing. He serves on the ACM’s Education Council, and is on the editorial boards of the “Journal of the Learning Sciences,” “ACM Transactions on Computing Education,” and “Communications of the ACM.” With his wife and colleague, Barbara Ericson, he received the 2010 ACM Karlstrom Outstanding Educator award.  He was also the recipient of the 2012 IEEE Computer Society Undergraduate Teaching Award.
  • Barbara Ericson is the Director of Computing Outreach and a Senior Research Scientist for the College of Computing at Georgia Tech.  She has worked at Georgia Tech to increase the quantity and quality of secondary computing teachers and the quantity and diversity of computing students since 2004. She is currently also pursuing a Human-Centered Computing PhD at Georgia Tech. She has co-authored four books on Media Computation.  She was the winner of the 2012 A. Richard Newton Educator Award.  She has served on the CSTA’s Board of Directors, the Advanced Placement Computer Science Development Committee, and the NCWIT executive committee for the K-12 Alliance.

December 3, 2014 at 8:11 am 4 comments

JES 5 Now Released: New Jython, Faster, Updated Watcher, with Jython Music

Matthew Frazier is an undergraduate at North Carolina State University who contacted me this last Spring.  He was going to be in Atlanta for a couple of months and was looking for a research opportunity.  Barbara and I had just been talking about how JES needed to be updated.  I checked his references and hired him without ever meeting him.  Wow, did that work great!
JES 5 (the Jython Environment for Students) has just been released at: https://github.com/gatech-csl/jes/releases/tag/5.010.  Matthew did a great job updating our workhorse for Media Computation Python (which was originally developed in Summer 2002 and is still used daily).  JES includes a full implementation of Jython, plus support for media manipulation — libraries, help functions, and explorers for looking at individual pixels and samples. Here’s a one-screen overview of JES (click on it to make it bigger):
introJES
JES window to left with program area and command area (REPL), Watcher button for debugger, two image explorers, and one sound explorer.  Help is under JES Functions menu and Help menu.
Some of the things he did for JES 5 include:
  • First, we’re on github!  Come join us in stomping out bugs and making JES even better!
  • Upgrading the Jython interpreter to version 2.5, making available new language features and speeding up many user programs.  I have been working on the 4th edition of the Python MediaComp book this summer, and have introduced the time library so that users can actually time their algorithms (one of those CS Principles ideas), so I had ready-made programs to run in both JES4.3 and JES5.0.  The speed doubled.
  • Adding code to JES and the installers to support double-clicking .py files to open them in JES, on all supported platforms.
  • Bundling JMusic and the Jython Music libraries, allowing JES to be used with the text “Making Music with Computers” by Bill Manaris and Andrew Brown.  This is super exciting to me.  All of their examples (like these) work as-is in JES 5 — plus you can do sampled sound manipulations using the MediaComp libraries.  The combination makes for a powerful and fun platform for exploring computation and sound.  My thanks to Bill who worked with us in making everything work in JES.
  • Adding a plugin system that allows developers to easily bundle libraries for use with JES.
  • Fixing the Watcher, so that user programs can be executed at arbitrary speeds.  This has been broken for a long time, and it’s great to have it back.  When you’re looking for a bug in a program that loops over tens of thousands of pixels or sound samples, the last thing you want is a breakpoint.
  • Adding new color schemes for the Command Window, which allow users to visually see the difference between return values and print output.  This was a suggestion from my colleague Bill Leahy.  Students when first learning return can’t see how it does something different from printing.  Now, we can use color to make the result of each more distinctive.  Thanks to Richard Ladner at ACCESS Computing who helped us identify color palettes to use for colorblind students, so we can offer this distinction in multiple color sets.

returnedPrinted

  • Fixing numerous bugs, especially threading issues.  When we first wrote JES, threading just wasn’t a big deal.  Today it is, and Matthew stomped on lots of threading problems in JES 5.  We got lots of suggestions and bug reports from Susan Schwartz, Brian Dorn, and others which we’re grateful for.

Thanks to Matthew for pulling this all together!  Matthew’s effort was supported by NSF REU funding.

September 18, 2014 at 8:49 am 1 comment

A kind of worked examples for large classrooms

I passed on to the MediaComp-Teach list something I’m trying to do in my class this semester.  I had several suggestions to share it with others. It’s based on worked examples and peer instruction.

I’m teaching Python MediaComp, first time in 8 years on campus.  We have just shy of 300 students, and I have 155 in my lecture.  While I’m a big fan of worked examples, the way I’ve used them in small classes of 30-40 won’t work with 155.

Here’s what I’m doing this semester.  Every Thursday, I distribute a PDF with a bunch of code in sets, like this:

worked-examples-pic1

The students are getting 12-20 little programs every Thursday.  Most students type them ALL in before lecture Friday morning at 10 am.

Then on Friday, I put up PI-like questions like this:

Exercises4-5_pptxb

and

 

Exercises4-5_pptx

Students are required to work on these in groups.  I walk around the lecture hall and insist that nobody sit alone.  I get lots of questions in the five minutes when everybody’s working away.

We don’t have clickers, but I’ve given every student four colored index cards.  When I call for votes, everybody holds up the right colored card.

Here’s the interesting part — they TALK about the programs.  Here’s a question in Piazza with a student’s answer:

CS_1315__4_unread_

 

The other instructor in the class is also using these, and he says that the students are using them after the Friday lecture as examples to study from and to use in building homework.  I’ve had lots of comments about these from students, in office hours and via email.  They find them valuable to study.

My worked examples aren’t giving them much process.  I am getting them to look at lots of programs, type them in, get them running, and think about them.  I’m pretty excited about it.  Given that I haven’t been in this class in the last 8 years, the class isn’t really “mine” anymore.  I’m trying to be sensitive to how much I change about a huge machine (14 TA’s, two instructors…) that I’m only visiting in.  But everyone seems into this, and it’s fitting in pretty easily.

I have been uploading all of the PDF’s, PPTs, and PY’s  at http://home.cc.gatech.edu/mediaComp/95, if you’re interested.  (There are some weeks missing because Atlanta actually had some Winter this year.)

 

March 21, 2014 at 1:51 am 14 comments

Seeking advice on Python Media Computation, Fourth edition (for Q1 2015)

Pearson has asked me to update our Python Media Computation book, “Introduction to Computing and Programming: A Multimedia Approach.”  This will be the fourth edition.  I plan to address the errata (as well as the ones I haven’t yet posted to the website), add new assignments, and change out the pictures (a lot of those pictures are 12 years old now).  I think I’m going to give up on trying to do screen-scraping off a live website — they keep changing too fast.  Instead, I might add something about how to parse CSV files, which are common and useful.

I have a couple of bigger ideas for changes, and I’d appreciate feedback from readers. (And I’m certainly interested in other advice you might give me.)

(1) CPython cross-platform libraries have come a long way since the 3rd edition was written. It’s likely that we could write a media library for CPython that works much like media library in JES. A CPython version of Media Computation would likely be faster. We probably would not re-create JES in CPython. It will take some time to develop a CPython version, so a Jython/JES-based 4th edition could be available in early 2015 (aiming to be out before SIGCSE 2015), but a CPython version would probably be mid-2015.

  • (a) Is a CPython version something that you would find interesting and worth adopting?
  • (b) Would you have a preference for one or the other? Or would you see value in having both versions?

(2) At Georgia Tech, we have started teaching the book with a brief excursion into strings and lists before introducing pictures. We talk about the medium as being language or text, and we manipulate characters in the strings using algorithms like those we later use with pixels in a picture or samples in a sound. For example, we can “mirror” words as we later mirror sounds or pictures. The advantage is that students can see all the characters in the string, and print out every step of the loop — where neither of those is reasonable to do with pictures or sounds.

We’re considering adding an OPTIONAL chapter at the beginning of the book in the 4th edition. We wouldn’t remove the introduction to loops in Chapter 3. We would move some of the string processing from Chapter 10 into this new Chapter 2.5, but leave methods and file I/O for Chapter 10. You would be able to use the book as-is, but if you want to start with characters and words as a text medium first, we would support that path, too.

  • Does that seem like a chapter that you would find useful? Or would you rather just keep the book with the chapters as they are now?

Thanks for any advice you would like to give me on producing the 4th edition of the book!

 

March 8, 2014 at 1:30 am 1 comment

Thoughts from Toronto on teaching code to librarians

The blog post linked below felt close to home, though I measure it differently than lines of code.  The base point is that we tend to start introductory programming courses assuming way more knowledge than is already there.  My experience this semester is that we tend to expect students to gain more knowledge more quickly than they do (and maybe, than they can).

I’m teaching Python Media Computation this semester, on campus (for the first time in 7 years).  As readers know, I’ve become fascinated with worked examples as a way of learning programming, so I’m using a lot of those in this class.  In Ray Lister terms, I’m teaching program reading more than program writing.  In Bloom’s taxonomy terms, I’m teaching comprehension before synthesis.

As is common in our large courses at Georgia Tech (I’m teaching in a lecture of 155 students, and there’s another parallel section of just over 100), the course is run by a group of undergraduate TA’s.  Our head TA took the course, and has been TA-ing it for six semesters.  The TA’s create all homeworks and quizzes.  I get to critique (which I do), and they do respond reasonably.  I realize that all the TA’s expect that the first thing to measure in programming is writing code.  All the homeworks are programming from a blank sheet of paper.  Even the first quiz is “Write a function to…”.  The TA’s aren’t trying to be difficult.  They’re doing as they were taught.

One of the big focal research areas in the new NSF STEM-C solicitation is “learning progressions.”  Where can we reasonably expect students to start in learning computer science?  How fast can we reasonably expect them to learn?  What is a reasonable order of topics and events?  We clearly need to learn a lot more about these to construct effective CS education.

I’m not going to articulate the next few orders of magnitude, both because they are not relevant to beginner or intermediate programmers, and because I’m climbing the 1K → 10K transition myself, so I’m not able to articulate it well. But they have to do with elegance, abstraction, performance, scalability, collaboration, best practices, code as craft.

The 3am realization is that many, many “introduction” to programming materials start at the 1 → 10 transition. But learners start at the 0 → 1 transition — and a 10-line program has the approachability of Everest at that point.

via thoughts from Toronto on teaching code to librarians.

January 29, 2014 at 1:49 am 26 comments

CAS’ latest SwitchedOn Newsletter includes Media Computation and Pixel Spreadsheet

The Computing At Schools effort has a regular newsletter, SwitchedOn.  It’s packed full of useful information for computer science teachers, and is high-quality (in both content and design).  The latest issue is on Computational Thinking and includes mentions of Media Computation and Pixel Spreadsheet, which was really exciting for me.

Download the latest issue of our newsletter here. The newsletter is produced once a term and is packed with articles and ideas for teaching computer science in the classroom.

This issue takes a look at the idea of Computational Thinking. Computational thinking is something children do, not computers. Indeed, many activities that develop computational thought dont need a computer at all. This influential term helps stress the educational processes we are engaged in. Developing learning and thinking skills lies behind our view that all children need exposure to such ideas.There is something of interest to all CAS members and the wider teaching community. Resources and ideas shared by teachers, both primary and secondary. There is also a section on the Network of Excellence for those new to CAS who aren’t familiar with current developments.

via Computing At School :: Computing for the Next Generation ….

January 14, 2014 at 1:18 am Leave a comment

To get Interest: Catch and Hold Attention

I’ve been thinking about this question a lot.  It’s informing my next round of research proposals.

We know more about how to retain students these days, the “hold” part of Dewey’s challenge mentioned below — consider the UCSD results and the MediaComp results.  But how do we “catch” attention?  We are particularly bad at “catching” the attention of women and minority students.  Our enrollment numbers are rising, but the percentage of women and under-represented minorities is not rising.  Betsy DiSalvo has demonstrated a successful “catch” and “hold” design with Glitch.  Can we do this reliably?  What are the participatory design processes that will help us create programs that “catch”?

So what can parents, teachers and leaders do to promote interest? The great educator John Dewey wrote that interest operates by a process of “catch” and “hold”—first the individual’s interest must be captured, and then it must be maintained. The approach required to catch a person’s interest is different from the one that’s necessary to hold a person’s interest: catching is all about seizing the attention and stimulating the imagination. Parents and educators can do this by exposing students to a wide variety of topics. It is true that different people find different things interesting—one reason to provide learners with a range of subject matter, in the hope that something will resonate.

via The Power Of Interest « Annie Murphy Paul.

December 18, 2013 at 1:04 am 3 comments

CS Teacher Repositories: CS OER Portal, Ensemble, CSTA, CAS, and…

I just received this via email:

We would like to inform you that we have added recently many new resources to the Computer Science Open Educational Resources Portal (CS OER Portal)  (http://iiscs.wssu.edu/drupal/csoer ). For those of you who have not visited it, the Portal hosts a rich collection of links to open teaching/learning materials targeted specifically the area of Computer Science. It provides multiple ways for locating resources, including search with filtering the results by CS categories, material type, level, media format, etc., as well as browsing by institutional (OpenCourseWare) collections, by CS categories, or by topics as recommended by the ACM/IEEE Computer Science Curriculum. The browsing functionality is supplemented with recommendations for similar courses/resources.

My first thought was, “Is this competition for Ensemble, the big NSF-sponsored digital library of CS curricular materials?”

If we’re specifically thinking just about computing in schools (K-12 in the US), we should also consider the CSTA Source Web Repository and the Resources section of the Computing at Schools website (which is pretty big and growing almost daily).

Specifically for a particular tool or approach, there’s the Greenfoot Greenroom, ScratchEd for Scratch Teachers and other Educators, the Alice teacher’s site, the TeaParty site (for the Alice + MediaComp website), and of course, the Media Computation site.  I’m sure that there are many others — for particular books (like this one introducing Python with Objects), for particular curricular approaches (like Exploring Computer Science and CSUnplugged), and even for particular methods (I reference the Kinesthetic Learning Activities site in my TA preparation class).

It’s really great that there are so many repositories, so many resources to help CS teachers, and so many people developing and sharing resources.  I get concerned when I’m in a meeting where we’re talking about how to help CS teachers, and someone suggests (and it really happens in many of the meetings I attend), “If we only had a repository where teachers could find resources to help them…”  No, I really don’t think that more repositories is going to solve any problems at this point.

November 6, 2013 at 1:30 am 4 comments

A portable graphics library for introductory CS: Cross-platform MediaComp!

I just bumped into this paper looking for something else — how cool!  Eric Roberts and Keith Schwarz have created a cross-platform layer on top of a Java server process, so that their portable graphics library (which includes facilities for doing pixel-level manipulations, as we do in MediaComp) can be accessed from anything!  I often get asked “How can I do MediaComp in C++?”  Here’s a way!

For several decades, instructors who focus on introductory computer science courses have recognized the value of graphical examples. Supporting a graphics library that is appropriate for beginning students has become more difficult over time. This paper describes a new approach to building a graphics library that allows for multiple source languages and a wide range of target architectures and platforms. The key to this approach is using an interprocess pipe to communicate between a platform independent client library and a Java based process to perform the graphical operations specific to each platform.

via A portable graphics library for introductory CS.

August 21, 2013 at 1:04 am 2 comments

Experiences with Media Computation at U. Adelaide

Katrina Falkner has written up an excellent reflection (with gorgeous example student work) on her new MediaComp course at the University of Adelaide.  I loved the artwork she shared, and I was particularly struck by the points she made about the value of “slowness” of the language, the challenges of helping students decontextualize programming after learning MediaComp, and the students complaining about using a curriculum “not invented here.”

The students didn’t really like working with Jython as it was very slow, but this had an unintended consequence, in that they became aware of the efficiency of their algorithms. I don’t think I have ever taught a first year course where students introduced efficiency as a discussion point on their own initiative. However, when working with their own images, which could sometimes be huge, they had to start thinking about whether there was a better way of solving their problems. I think this was a big win.

Creativity and ownership. The last assignment we ran was a group assignment, where the students had to develop a piece of art using and extending the techniques they had learnt in the course. This was fantastic. We had run a similar assignment in previous years where the students developed JavaScript games, and that worked reasonably well, but I think Media Computation produced a better result as the outcomes were more individual, and creative. The students had a lot more fun sharing their results.

via Experiences with Media Computation | Katrina Falkner.

August 14, 2013 at 1:08 am Leave a comment

Newer Posts


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

Join 8,457 other followers

Feeds

Recent Posts

Blog Stats

  • 1,855,269 hits
May 2021
M T W T F S S
 12
3456789
10111213141516
17181920212223
24252627282930
31  

CS Teaching Tips