Posts tagged ‘image of computing’
Spending too much time in airports lately, I’ve been catching up on some of my TED video watching — the ones that everyone says I have to watch, but I didn’t have time until now. One of those that I watched recently was Stephen Wolfram’s on A New Kind of Science and Wolfram-Alpha. I realized that he’s really making a computing education argument. He explicitly is saying that computing is necessary for understanding the natural world, and all scientists need to learn about computation in order to make the next round of discoveries about how our universe works.
Thanks to Sarita Yardi for these. Talk about CS Unplugged!
The below announcement was posted by Dr. Chris Stephenson, Executive Director of the Computer Science Teachers Association (CSTA), on the SIGCSE-Members list. This is really important — the whole Running on Empty report came from a comparison of state curricula to the current model curriculum.
I am glad that the draft is available for comment and encourage everyone to review it. I’ve read through it once, and don’t quite understand it. Why is it part of computational thinking that all high schools know how to convert between decimal, binary, octal, and hexadecimal (page 23 and 60)? Is it really necessary for all students to learn how to program mobile devices and write client- and server-side scripts (page 23)? I like the bullet about representation and trade-offs on digital information, but I would have liked some specifics on what students will learn, like the kinds of error that occur. The current draft seems tied to current technology and not to big ideas or principles. (Are most K-12 standards like this? The AAAS standards aren’t, but maybe they are the anomaly.)
I’m planning to re-read it, because I might not have got the big picture. I strongly encourage all of you to read and comment on it.
Since it was first released in 2003, the ACM/CSTA Model Curriculum for K-12 Computer Science has served as the national standards for pre-college computer science education. This year, CSTA formed a committee of specialists (co-chaired by Allen Tucker and Deborah Seehorn) from all educational levels to review and revise these standards.
Based on the following definition of computer science:
Computer science is the study of computers and algorithmic processes, including their principles, their hardware and software designs, their applications, and their impact on society and includes the following elements:
• hardware design,
• databases and information retrieval,
• computer security,
• software design,
• programming languages,
• programming paradigms,
• translation between levels of abstraction,
• artificial intelligence,
• the limits of computation (what computers can’t do),
• applications in information technology and information systems, and
• social issues (Internet security, privacy, intellectual property, etc.).
The K-12 Computer Science Standards provide learning outcomes for students in grade K through 12. These learning outcomes are divided into three levels:
· Level 1 (grades K–6) Computer Science and Me
· Level 2 (grades 6–9) Computer Science and Community
· Level 3 (grades 9–12) Applying concepts and creating real-world solutions
o Level 3A: (grades 9 or 10) Computer Science in the Modern World
o Level 3B: (grades 10 or 11) Computer Science Principles
o Level 3C: (grades 11 or 12) Topics in Computer Science
The learning outcomes within each level are organized into the following strands:
· Computational Thinking
· Computing Practice
· Computers and Communications Devices
· Community, Global, and Ethical Impacts
CSTA invites you to review and submit comments on the review draft of the new CSTA K-12 Computer Science Learning Standards: Revised 2011. A copy of the document is available for download at:
This site also provides access to an online form that will be used to collect all reader comments and suggestions. The review process will be open until June 15, 2011.
Chairs, CSTA Standards Task Force
I suspect that this is a bigger issue in computer science (and computing, broadly) than in other parts of academia, since our work is so easily commoditized. It’s certainly the case that in my School, creating companies is highly valued and faculty are often encouraged to be entrepreneurs (e.g., see the article our new Dean sent to the whole faculty Saturday.)
Q: Academic research has always cost money to produce, and led to products that made money for others. How is the “commodification” of research different today than in past periods?
A: Commodification means that all kinds of activities and their results are predominantly interpreted and assessed on the basis of economic criteria. In this sense, recent academic research is far more commodified than it was in the past. In general terms, one can say that the relation between “money” and specific academic activity has become much more direct. Consider the following examples: first, the amount of external funding acquired is often used as a measure of individual academic quality; second, specific assessments by individual scientists have a direct impact on departmental budgets; for instance, if I now pass this doctoral dissertation, my department receives a substantial sum of money; if not, it ends up with a budget deficit; third, the growing practice of patenting the results of academic research is explicitly aimed at acquiring commercial monopolies. Related to these financial issues are important and substantial changes of academic culture. Universities are increasingly being run as big corporations. They have a top-down command structure and an academic culture in which individual university scientists are forced to behave like mini-capitalists in order to survive, guided by an entrepreneurial ethos aimed at maximizing the capitalization of their knowledge.
I just discovered TileStack, which is HyperCard on the Web. Very cool, but the first comment on the introductory stack is something I heard a good bit these last few weeks at my workshops:
Python, for instance, is very easy to pick up. You might make the argument that it’s much easier to learn Speak [the HyperCard-like language in TileStack], but even if it takes twice as long to learn Python to do the equivalent of making a Stack with Speak, you can at least apply what you learned in many other places other than tilestack.com. Just seems pointless for people to waste their time learning something that only applies to a single website when they could learn something that they could use for many other applications.
Based on my experience, most computer science teachers (much more at the undergraduate faculty level than at the high school level!) believe that they only things worth learning in computer science are those that can be used to make applications.
- As soon as I started teaching about JES and Jython, a set of faculty in every workshop I taught this summer (five workshops, all pretty much full!) asked me, “But how do I build applications?” or “How can I run this outside of JES?” I explained that this was all possible, but that we don’t teach in the first semester how to build standalone applications. Several faculty insisted that I show them how to run Jython with our media libraries separate from JES, and were frankly not interested in listening to anything more I had to say unless they could be convinced that what I was showing them could lead to building standalone applications.
- Several faculty asked me, “But this isn’t Python 3.0, is it? When will you be covering Python 3.0?” That one particularly got my goat. I started responding, “I’m barely covering Python 1.0 in here! I’m trying to teach computer science with the minimum language features, much less whatever special features are in the latest version of a language!” That response seemed to carry some weight.
I was really surprised about that. I hear people regularly decrying the fact that computer science in most states is classified under vocational education. But it’s certainly the case that many university faculty buy into that model! I regularly was told by faculty at these workshops that computer science is only worth learning if it leads to job skills and application-building capabilities. CS education is purely utilitarian, in this model.
Why do we teach people the difference between mitosis and meiosis, or about evolution, or that planets orbit the sun? None of those are job skills, and they certainly won’t lead to building marketable products. Isn’t knowing about computer science and one’s virtual world at least as important as understanding this level of detail about the natural world? I’m going to bet that, if someone were to do a survey, most university faculty don’t really believe in computational thinking, that knowing about computing at some beyond-applications level is important for everyone.
I’m writing from Chicago where I’m attending the International Conference of the Learning Sciences 2010. It’s pretty exciting for me to be back here. I helped co-chair the 1998 ICLS in Atlanta, but I haven’t been at this conference since 2002, when my focus shifted from general educational technology to specifically computing education. The theme this week is “Learning in the Disciplines.” I’m here at the invitation of Tom Moher to be part of a panel on Friday morning on computing education, with Yasmin Kafai, Ulrich Hoppe, and Sally Fincher. The questions for the panel are:
- What specific type of knowledge is characteristic of computer science? Is there a specific epistemology?
- Are there unique challenges or characteristics of learning in and teaching about computer science?
- What does learning about computing look like for different audiences: young children, high school, undergraduate, and beyond (e.g., professional scientists, or professionals from non-computing disciplines)? In the case of “non-computing professionals,” what do they learn, and how do they learn it (e.g.,what information ecologies do they draw upon, and how do they find useful information)?
- How do we support (broadly) learning about computer science?
In a couple weeks, I’m giving the keynote talk at the first AAI-10: The First Symposium on Educational Advances in Artificial Intelligence. I’m no AI person, but this conference has a strong computing education focus. I’m planning to use this as an opportunity to identifying challenges in computing education where I think AI researchers have a particularly strong lever for making things better. Not much travel for that one — I get to stay in Atlanta for a whole week!
In getting ready for my talk Friday, I’ve been trying to use themes from learning sciences to think about learning computing. For example, physics educators (BTW, Carl Weiman is here for the opening keynote tonight) have identified which physics concepts are particularly hard to understand. The challenge to learning those concepts is due in part to misconceptions that students have developed from years of trying to understand the physical world in their daily lives. I’ve realized that I don’t know about computing education research that’s looked at what’s hard about learning concepts in computing, rather than skills. We have lots of studies that have explored how students do (not?) learn how to program, such as in Mike McCracken’s, Ray Lister’s, and Allison Tew’s studies. But how about how well students learn concepts like:
- “All information in a computer is made up of bytes, so any single byte could be anything from the red channel of a pixel in a picture, to an instruction to the processor.” Or
- “All Internet traffic is made up of packets. So while it may seem like you have a continuous closed connection to your grandmother via Skype, you really don’t.”
Does anybody have any pointers to studies that have explored students learning conceptual (not skill-based) knowledge about computing?
I know that there is an argument says, “Computing is different from Physics because students have probably never seen low-level computer science before entering our classes, so they have few relevant preconceptions.” I believed that until I saw Mike Hewner’s data from his study of high school students in our Georgia Computes! mentoring program this last year. These are high school students who are being trained to be mentors in our younger student (e.g., middle school kids, Girl Scouts) workshops. They’re getting to see a lot of cool tools and learning a bunch about computer science. Mike found that they had persistent misconceptions about what computer science is, such as “Someone who is really great at Photoshop is a great computer scientist.” While that’s not a misconception about bytes or packets, that’s a misconception that influences what they think is relevant. The concept about bytes might seem relevant if students think that CS is all about great graphics design, but the packet concept interferes with their perception of Skype and doesn’t help with Photoshop — students might ignore or dismiss that, just as physics students say to themselves, “Yeah, in class and on exams, gravity pulls the projectile down, but I know that it’s really about air pressing down on the projectile.” So students’ misconceptions about what’s important about computing might be influencing what they pay attention to, even if they still know nothing about computer science.
I just finished reading James Gleick’s book Faster: The Acceleration of Just About Everything. It’s a 10 year old book now, but the story is still valid today. I didn’t enjoy it as much as his books Chaos or Genius. However, the points of Faster are particularly relevant for computing education.
One of Gleick’s anecdotes was on how AT&T sold Touch Tone dialing in 1964 as saving an average of ten seconds per seven-digit number dialed. Now, we have speed dialing.
In the post-Touch Tone generation, you probably have speed-dial buttons on your telephone. Investing a half-hour in learning to program them is like advancing a hundred dollars to buy a year’s supply of light at a penny discount…To save time, you must invest time.
Do some students and end-user programmers invest time in learning to program to “advance a hundred dollars to buy a year’s supply of light at a penny discount”? Are they looking to program in order to save time, to do things faster and more efficiently? Do they give up on learning to program when they realize that it doesn’t work that way?
The problem is that I don’t think that ever really happens for the individual writing code for him or herself. It’s hard to program. The time cost of programming amortizes over users. The development cost of Microsoft Office, amortized over millions of users, results in a profit for Microsoft. A few hours of a programmer’s time on some feature of Excel enables many hours of use of that feature by many users. But for any individual writing code for him or herself? Takes a lot more than 30 minutes of programming software to get the same usefulness of 30 minutes of programming speed-deal buttons.
So why program? In the Media Computation Python CS1 class, we tell students that they should program in order to create a replicable process (if you need something to be done the same way, maybe by others, many times), to create a process that many people can use (like when commercial software is created), or to communicate a process (like when trying to explain a theory of how something dynamic happens, like DNA transcription or evolution). Paul Graham tells us that hackers write software to create beauty. But few people successfully program in order to save time for themselves — you’d have to do something many times to make the benefits of use outweigh the cost of development.
Maybe it shouldn’t be that way. Maybe software development should be easier. I wonder if you could make it easier, and still keep all the fun, all the communicative power of programing languages, all the “Passion, Beauty, Joy, and Awe“?
The overall story of Faster may be relevant for understanding the decline in interest in computer science. Gleick claims that “boredom” is actually a modern word and concept. “To bore meant, at first, something another person could do to you, specifically by speaking too long, too rudely, and too irrelevantly.” Today, we are bored by simple silence — by not enough challenges, not enough multi-tasking, by too many choices. We have so many options for entertainment that we choose many at once, so that we drive, while listening to the radio, and talking on the cell phone (not texting or doing email, of course). Gleick (naturally, as an author) bemoans the death of the book, because readers are too easily bored to pay attention to a whole book, and always have the options of magazines or blogs or just 140 character “tweets.” Why would anyone make a career choice like “computer science” when there are so many other choices that are less boring, take less concentrated focus, take less time?
Gleick provides an afterword for the electronic version of the book (I read it on my Kindle), where he speaks to some of these concerns:
I believed when I began Faster, and believe now more than ever, that we are reckless in closing our eyes to the acceleration of our world. We think we know this stuff, and we fail to see connections. We struggle to perceive the process of change even as we ourselves are changing.
Powered by Qumana