Posts tagged ‘image of computing’
I got beat up a bit after my talk at TTU Tapestry a couple weeks ago. Two teachers from the same school stopped me at lunch, after my keynote, and complained about how we at Georgia Tech run our CS1 for Engineers in MATLAB. “How can you expect students to be able to succeed in a programming course, with no high school CS? Why don’t you offer some starter course with no programming first?” I tried to explain that students do succeed in all three of our CS1’s with no previous programming experience, and our data suggest that students learn and succeed (e.g., relatively small percentage drop-out or fail) in these courses. (This is in sharp contrast to the Peter Norvig piece about learning Java in 21 days.)
As the teachers went on with their complaints about me and Georgia Tech, more of the story came out. Some of their students had gone to Georgia Tech in Engineering, had floundered in the CS for Engineers course, and were calling these high school teachers regularly for help. “They spend a huge amount of hours working in labs! More than others in their class, because they didn’t get the chance to take CS in high school. Some kids have band or cheerleading, and they can’t fit CS in. That shouldn’t mean that they have to spend so much extra time in lab to catch up!”
It’s that last argument that I had the most trouble with. Their students didn’t have the background knowledge in CS. It seems clear to me that those students should have to work harder than those that have the background knowledge. That the teachers thought that the extra work was unusual or extreme surprised me. There was an implicit assumption that, because these students didn’t get the background classes due to band and cheerleading, we at Georgia Tech should provide remedial classes. To be clear, it’s not that the CS wasn’t offered at their high school. Their school has two CS teachers. It’s just that cheerleading and band took priority over preparing for the Engineering program at Georgia Tech, which requires computer science.
What is the expectation of high school teachers for the workload in CS1? What is the expectation of high school teachers for what College CS classes will demand? Is it reasonable to expect Colleges to provide the introductory classes that others get in high school? Maybe it is reasonable for Colleges to provide more high school level classes, especially if we want to grow enrollment. But I do worry about the perspective that says that it’s reasonable to skip the intellectual background classes because of non-academic activities. I have nothing against non-academic activities like band and cheerleading. However, the non-academic activities are not an excuse for a lack of background knowledge for higher-education — and if you do miss the background classes, you should expect to have to work harder when you get to College.
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.