Archive for March, 2012
Really interesting piece in the NYTimes on the increasing demand to learn about coding. I especially liked this point — people want to learn something, and they want to learn enough to be literate, but not necessarily to be “a good programmer.”
The challenge for Codecademy and others catering to the hunger for technical knowledge is making sure people actually learn something, rather than dabble in a few basic lessons or walk away in frustration.
“We know that we’re not going to turn the 99 percent of people interested in learning to code into the 1 percent who are really good at it,” said Mr. Sims of Codecademy. “There’s a big difference between being code-literate and being a good programmer.”
But I’m really disappointed in the comments to this piece. Why are programmers so defensive about protecting their turf, insisting that only those who are going to be “real programmers” should learn anything about coding? Such a battle going on! I’m on the side of people like this:
What’s with the elitism in these comments? People don’t casually learn software development to become the next John Carmack; they do so because they want to usefully apply it to their lives. Wanting to know how to configure and admin a CMS, or doing cool things with Google Earth, or use shell scripting to automate tasks, is something you could get via CodeAcademy. Writing effective fabric dynamics isn’t.
Cynthia Bailey Lee has built a Media Computation class for Cognitive Science majors at UCSD in MATLAB. She writes:
I couldn’t be happier about how Media Comp has worked in our MATLAB course, and the interesting and challenging things students are
attempting for their final project. This is a 10-week intro programming in MATLAB course for CogSci majors. There are no
prerequisites (in particular, neither programming or CS0 nor linear algebra prerequisites).
She did the class with Peer Instruction and has offered a set of slides with PI questions to use in such a course:
The course was done with peer instruction. Many of the lectures and most of the assignments had something to do with MediaComp. Attached are sample Peer Instruction slides using MediaComp from throughout the quarter.
She’s shared with me some of her students’ work:
“When Cartoons go through Airport Security” by Jessica Hsi and Virginia Sahagun
Also attached are images from an assignment in the 3rd-4th week of the term. We called it the “MakeWarhol” function–it takes an image,
extracts RGB layers, and tiles it to make something inspired by Andy Warhol’s colorful tiled images. I include it both as an example of
earlier assignments, and because you can see how students often creatively reused that code in their final assignment.
Thanks for sharing news about your exciting course, Cynthia!
AERA changed around their website, so the link I gave previously for reviewers for CS Education will fail. Please do volunteer and use this URL: https://www.aera.net/Membership/MyAERA/Login/tabid/11076/Default.aspx?returnurl=%2fdefault.aspx. Thanks!
Postscript: Brian Danielak created a slide set to explain how to sign up to be a reviewer: http://bit.ly/HnMrD7. Thanks, Brian!
I grew up in Detroit. Kids in Detroit used to be told to finish high school so that they can get a good paying job “on the line” in the factories. Andy Ko points out in an intriguing blog post that machining jobs are now programming jobs. Here’s another kind of argument for teaching programming in high school. First, because that’s going to be one of the skills that someone in manufacturing may need. Second, because manufacturers are having a hard time recruiting people into programming, too, so we need to give people the chance to see the real thing early. People are getting through high school deciding that programming (and computer science) jobs are boring, uninteresting, and asocial.
Recently, there have been arguments against college education today in the media: that there are plenty of good enough jobs for people with specialized skills without four years of College. Here’s an important class of just those kinds of specialized jobs, and those manufacturing jobs need programming.
Today, however, machining is less about operating machines, and more about writing code that operates machines (CNC machines, in particular, standing for computer numerically controlled). To learn the CNC programming language, workers typically take an 18-week course before their ready to operate CNC machines, but then they can make a reasonable manufacturing wage without getting their hands dirty or risking injury. This is a classic example of end-user programming, where someone has to write code as a means to an end (a physical object).
What’s even more fascinating is the economic discussion surrounding this jobs. Apparently, the problem isn’t training the machinists, but finding people who want to be trained. The Manufacturing Institute found in a survey that there are as many 600,000 manufacturing jobs going unfilled, the majority of which are jobs that require these kinds of technical computing skills. This is therefore as much a training problem as it is a recruiting problem.
Barb and I were invited to give a talk at Stanford earlier this month. (The week after SIGCSE, and the week before our NSF site visit — March has been crazy.) Scott Klemmer asked a really good question about Barb’s sustainable, effective, and replicable summer camps. “So, what inference should we take from your work? That we should do summer camps? That we should use your curriculum to get these camps? Or that there’s a secret sauce for getting these results?” Barb had a cute answer: “Do summer camps! That’s what’s most important. Please offer summer camps!”
Afterward, Barb and I talked about what the secret sauce is. What leads to the results that Barb and Tom are seeing in the camps? I think that we have a good answer, and it’s one that Scott, as an HCI guy, would like:
- First, build on the research. Kids who come to computing summer camps aren’t interested in lectures. They want hands-on, project-based, discovery-driven learning opportunities.
- Second, use formative evaluation and iterative development. What made Barb’s camps work was the rapid feedback loop between Tom’s formative evaluations and Barb’s redesign of workshop content. Sometimes, Tom got her feedback from one week, and Barb changed the summer camp design or curriculum before the next offering of the same camp. Not everything worked. Some camp leaders lectured too much. Others had a dry sense of humor that turned off some students.
Here’s an example of something that wasn’t working. One of the results that we talked about at our NSF poster session was that we found that girls were sometimes coming away with a greater sense that computing was “too hard.” Tom did some observation studies, and found that that was happening in workshops where female leaders were saying, “Yeah, this is hard…but it’s really fun!” while male leaders only emphasized how fun it was! Just that slight emphasis on “Yeah, it’s hard” interplayed with issues of self-efficacy and fixed mindset, and girls became more discouraged. That’s something that’s hard to figure out, but easily fixed with some improved training of workshop leaders.
I’m hoping that Barb and Tom can write up this “secret sauce” when they do the larger, journal version of the SIGCSE paper. It’s an important story of how they got there, because that’s even more of the “secret sauce” than just using Barb’s models and curricula.
One of the highlights of SIGCSE 2012 was meeting Mike Richards and learning about the new introductory computing course at the Open University, My Digital Life. It’s an interesting contrast to the Stanford on-line CS courses.
I met Mike at a BOF (Birds of a Feather) meeting on digital books for CS. There were three major themes that I heard at the BOF: What standards are there going to be for electronic books, what features should there be, and what should authoring look like. The answer to the first question was clearly, “Who knows?” It’s too early. There were book authors in the audience who were pretty upset with the answer, insisting, “I need to know what to write in now, and I don’t want to have to change later!” That’s not going to happen yet. The answer to the second question had a disappointing amount of posturing — lots of “Well, I think…” with no data, no evidence, no arguments. Just claims of having the superior vision. The third one was pretty intriguing, with some really important ideas. Cay Horstmann had an interesting take on the value of XML, in any form. Mike described what their authoring process was like.
Mike said that it cost $3M USD to build “My Digital Life.” It consists of a set of books, some really great videos (including one of Alan Kay that he showed in his session), and a terrific computing platform and a modified form of Scratch. The interesting thing was that the majority of that $3M budget went to “proofreaders, testers, and editors.” They hire people to try the lesson, and then they watch where it doesn’t work. Iterative development with formative evaluation — what a great idea!
On Saturday morning, Mike presented his paper with Marian Petre on the SenseBoard that they use in “My Digital Life.” The course is currently 2/3 through its first offering. They have 4,500 students with no pre-requisites. It’s 1/3 female. 2/3 have no previous background knowledge. They have a wait list of 900 people for the next offering. Historically, the Open U gets very high student satisfaction ratings, and over 50% completion rates.
They decided to emphasize that their students don’t want to just observe computation, they want to make things. They decided to focus on ubiquitous computing, because that’s the future of computing from their students’ perspectives. They created the Senseboard, an Arduino-based device with microphone, IR sensor, push buttons, sliders, servo motor connections, stepper motor connections, and sensors for temperature, motion, and light. The board is included as part of the course (for which students pay around $800 USD), but should become available separately soon for about $80 USD. They have created a version of Scratch for programming the Senseboard. They extended Scratch with primitives for string and file handling, sensor handling, networking, and improved debugging.
I loved the way that they designed the curriculum. One of their design mantras are “No blank screens.” Each project comes with parts that already work, with descriptions and background images. The clear descriptions go step-by-step (checked by testers), and “jump aheads” (“If you already know Booleans, skip to this page”). All projects are provided with full solutions, so nobody ever gets stuck or can’t play with the result because they couldn’t figure it out. What an interesting notion — that the point of the programming assignments is to give students something that they want. Grading is not based on the assignments. Grading is based on seven marked-up assessments with a tutor, and one big final.
The projects looked great: Burglar alarms, a tank game with remote other players, a “tea ready” alarm, a BBC news feed (pull off your favorite articles and stuff them in string boxes), a network seismograph (showing the amount of traffic in your part of the network), live opinion polling, and games that the students found pretty addictive. Mike had a great quote from a student saying that he wanted to learn to make a “ghost detector” by the end of the course.
Mike says that the Stanford and MIT open learning initiatives are forcing the Open U to make some of “My Digital Life” available on their open learning site. But the Open U is worried about that. Stanford and MIT are putting up material that faculty built for free, with no or little testing. The Open U. spent $3M building this course. How do you recoup your investment if you give it away for free? There’s a flip side to that question. The Open U spends the majority of its development cost on guaranteeing quality, in the sense that the assignments are do-able by students (see previous discussion on reasonable effort). What guarantees can you make about free courses? Does course quality matter?
Hal Abelson gave the Friday keynote at SIGCSE, as the 2012 winner of the Outstanding Contributions to CS Education award. He spoke on computational thinking, and how it drives computational values, and should lead us to appropriate actions. His talk slides are available, as is a transcript of his talk. LisaK in her interdisciplinary computing blog and Nick Falkner in his blog have both written nice pieces summarizing his talk. It was a great talk, and one that really got me thinking. But I didn’t agree with the whole chain of reasoning.
One of Hal’s claims in his talk was that “computational thinking” leads to “computational values.” He describes computational values like this:
It’s having the values not only that these are cool ideas but that these ideas should be empowering and that people should be able to exercise these great things in thinking about their world and having an impact on the world.
He gave some intriguing examples about “generative platforms,” systems that let you play with ideas and build new ideas in them. He also gave several examples that he considered contrary to computational values, like closed app stores. He explained that that’s why he did App Inventor — so that students could build things for their own cell phones, outside of these “walled gardens.”
This was the first part of the talk that I had trouble with. Computational thinking doesn’t necessarily lead to computational values, in the sense of free and open access. Despite the beliefs of Steven Levy’s “Hackers,” it is not the case that information wants to be free. Information doesn’t want anything. The people who built the “walled gardens” know a lot about computation — they have computational thinking, but they don’t necessarily share Hal’s values. People like Steve Jobs and Bill Gates led to the creation of wonderful software, but that doesn’t mean that they will or even want to share it or make it open source. There is value to “walled gardens.” Isn’t that how civilization and cities began, by putting up some defenses and setting up rules of behavior? No, it’s no longer as wild and free, but you can be wild and free outside the walled garden. The walled gardens have their purpose.
Hal talked a lot about these values and how they are related to academic freedom. He talked about how important it is that great universities share research work:
We’ve got a policy that says it’s our values, it’s our values as a faculty that we think our work should be disseminated as widely and as openly as possible. The MIT policy says that if you come to MIT, you have granted MIT a nonexclusive license to distribute your works for purposes of open access.
That policy feels like the opposite of academic freedom, to me. If I’m a professor at MIT, my work will be made public for me by my institution? What if my work leads to a book that I’d like to publish? Does this mean that the professor no longer has control and copyright over his own book? What if I want to start a company? Does this mean that MIT takes away from me the ability to control access to my inventions? No, it’s not a company profiting from my work, but it’s the University deciding who gets access and how to my work.
I thought about Rousseau’s Emile, for which I named my dissertation environment. The book Emile, or On Education isn’t really about education — it’s about the tension between the rights of the individual and the rights of the society. I completely buy all of Hal’s examples, about how ridiculous it has become that a few publishers control access to so much important research. But a policy of enforced open access just replaces one bully for another. Does the professor as an individual own any of his or her own work? Can the professor choose any of how its used or who publishes or develops it?
Hal is well-deserving of his award, having done wonderful things for CS education. I greatly admire the work he does for open learning and open access. I found his talk thought-provoking. I just don’t agree with all his answers.