Posts tagged ‘computational literacy’

What is programming-as-literacy, what does it look like, and what should we worry about? Alan Kay in Scientific American

Last month, I wrote a blog post about programming as a kind of literacy. I got some pushback.  Really? Literacy?  That programming in C stuff?  Well, no, programming in C is not what I mean by a form of literacy.  I recommended looking at some of what Alan Kay had written in Scientific American.

I decided to do that for myself.

Alan’s first article for Scientific American was in 1977, “Microelectronics and the Personal Computer,”  about the idea of a personal computer and the explorations they were doing at Xerox PARC with Smalltalk. I liked this one a lot because it emphasizes simulations “the central property of computing.”

The second was in 1984, “Computer Software.” Here’s where he defines literacy with the computer. It’s way more than just programming.

Alan_Kay_-_Computer_Software_SciAm_Sept_84

The third was in 1991, “Computers, Networks and Education.” This is the one where Alan really questioned whether things with computing were going in the right direction. For example, he worried about how people thought about “literacy” on the computer.

sci_amer_article-literacy-as-burden

He returned to the importance of simulation.

sci_amer_article-value-of-computing-is-simulation

And he was worried about people being critical of information that they find on the Internet (note that this is 1991, before Web browsers).

sci_amer_article-networked-computers

But in the end, Alan was hopeful, that we might develop a skeptical attitude with computing.

sci_amer_article-simulation

December 17, 2018 at 7:00 am 3 comments

Literature is to Composition, as Computer Science is to Computational Literacy/Thinking

Coding_Literacy___The_MIT_Press

Annette Vee was visiting in Ann Arbor, and looked me up. We had coffee and a great conversation.  Annette is an English Professor who teaches Composition at University of Pittsburgh (see website here). She published a book last year with MIT Press, Coding Literacy: How Computer Programming is Changing Writing. (I’m part way through it and recommend it!) She knew me from this blog and my other writing about computational literacy. I was thrilled to meet someone who makes the argument for code-as-literacy with a real claim to understanding literacy.

One of the themes in our conversation was the distinction between literature and composition.  (I’m going to summarize something we were talking about — Annette is not responsible for me getting things wrong here.) Literature is about doing writing very well, about writing great works that stand the test of time. It’s about understanding and emulating greater writers.  Composition is about writing well for communicationIt’s about letters to Grandma, and office memos, and making your emails effective.  Composition is about writing understandable prose, not great prose as in literature. People in literature sometimes look down on those in composition.

There’s a similar distinction to be made between computer science as it’s taught in Universities and what Annette and I are calling coding/computational literacy (but which might be what Aman Yadav and Shuchi Grover are calling computational thinking).  Computer science aims to prepare people to engineer complex, robust, and secure systems that work effectively for many users. Computational literacy is about people using code to communicate, to express thoughts, and to test ideas. This code doesn’t have to be pretty or robust. It certainly shouldn’t be complex, or nobody will do it. It should be secure, but that security should probably be built into the programming system rather than expecting to teach people about it (as Ben Herold recently talked about).  People in computer science will likely look down on those teaching computational literacy or computational thinking. That’s okay.

Few people will write literature. Everyone will compose.

November 23, 2018 at 7:00 am 41 comments

Governor of Rhode Island explains why we should teach programming to everyone

Gina Raimondo, the governor of Rhode Island, was on Freakonomics Radio a few weeks ago. Stephen Dubner challenged their plans to offer computing education at all grade levels in every district.  She had a strong response. Dubner’s question is good. We still don’t have the empirical evidence for the value of teaching computing to everyone. We should do that research — not to figure out if Raimondo made the right bet, but to tune what we’re doing to make sure that we get the maximum benefit for the investment.

I recommend the whole interview.

DUBNER: So, I hear about this kind of thinking a lot, and I certainly understand the appeal and the resonance. But I do also wonder if there’s a proven upside of having everyone learn computer science or programming. It strikes me a little bit like the equivalent of having every student in America during the boom of the internal combustion engine learn to take apart a carburetor. And then I think, if you look at the history of economics and progress, that one of the main strengths of economic progress is the division of labor and specialization, rather than everybody chasing after the latest trends. So I’m curious what the evidence was that inspired that move of yours.

RAIMONDO: I think of it as access and exposure, and also just providing people with a basic level of essential skills. So, everyone has to take math. They may become a writer, they may become an actor, but they ought to have a certain basic level of math skills. First of all, because it’s an essential skill to function. And by the way, they might like math. I think digital skills are the same thing. No matter what job you have, you have to have some basic familiarity with computer skills and digital skills. And so it is as essential in this economy as any other skill that we teach. But also, we know — and there’s loads of data on this girls, people of color, and low-income folks are less likely to go into I.T. fields, which tend to be higher-paying. However, if they’re exposed to some computer training, they’re much more likely to go into the field and do well at it.

Source: How to Be a Modern Democrat — and Win – Freakonomics

February 16, 2018 at 7:00 am 1 comment

Why should we teach programming (Hint: It’s not to learn problem-solving)

This is a revision of the original post. Several readers pointed out on Twitter that my original post was insensitive. It read like an attack on Brenda, a woman of color, from a senior white guy (me). That was not my intent, and I apologize for that. I am grateful to Joseph P. Wilson who helped me understand how to avoid that impression. I can’t change the post that went out yesterday, but I will be more careful in future blog posts.


At the CS for All Consortium Celebration Tuesday, Brenda Wilkerson gave the closing keynote. The full livestream of the CS for All Summit is available here, and it includes Brenda’s talk. I’m a huge fan of Brenda, and she’s done fabulous work in Chicago. She is a leader in bringing CS to All.

I have not seen Brenda’s talk or any of the livestream. My experience of the Consortium Celebration was through reading the Twitter stream as I found time during the day. Brenda had one slide (which you can see in the tweet linked here) that I disagreed with, and because it’s an important point, I’m going to respond to it here.

It says, “Computer science builds the mental discipline for breaking down problems, and solving them.” There are few studies that test this claim as “computer science,” but there have been lots of studies looking for transfer from teaching programming to general problem-solving skills. Probably the first study investigating this claim is Roy Pea and Midian Kurland’s paper On the cognitive effects of learning computer programming. You can find this claim in a paper by Henry Walker to which I responded in this blog. You can see it in posts all over the Internet, from this blog post to this article from a teacher in England. There is a strong belief out there that learning computer science, and programming called out specifically, leads to new problem-solving and “a new way to think.”

There is simply not evidence in support of these claims. I talk about these in my book, I reference the Palumbo meta-review in this blog post, and NYTimes wrote about it this last spring. Like “learning styles” and “Latin teaches thinking,” this is a persistent myth that learning computing leads to problem-solving skills, and we have no support the claim.

I tweeted in response to Brenda’s slide, and several CS teachers asked me, “So why teach programming or computing at all?”  That’s a great question!  Here are some of my top reasons:

  1. To understand our world. The argument that Simon Peyton Jones made in England for their computer science curriculum is that Computer Science is a science like all the others. We teach Chemistry to students because they live in a world with chemical interactions. We teach Biology because they live in a world full of living things. We teach Physics because they live in a physical world. We should teach Computer Science because they live in a digital world.
  2. To study and understand processes. Alan Perlis (first ACM Turing Award laureate) argued in 1961 that everyone on every campus should learn to program. He said that computer science is the study of process, and many disciplines need people to know about process, from managers who work on logistics, to scientists who try to understand molecular or biological processes. Programming automates process, which creates opportunities to simulate, model, and test theories about processes at scale. Perlis was prescient in predicting computational science and engineering.
  3. To be able to ask questions about the influences on their lives. C.P. Snow also argued for everyone to learn computing in 1961, but with more foreboding. He correctly predicted that computers and computing algorithms were going to control important aspects of our lives. If we don’t know anything about computing, we don’t even know how to ask about those algorithms. It shouldn’t be magic.  Even if you’re not building these algorithms, simply knowing about them gives you power. C.P. Snow argues that you need that power.
  4. To use an important new form of literacy. Alan Kay made the argument in the 1970’s that computing is a whole new medium. In fact, it’s human’s first meta-medium — it can be all other media, and it includes interactivity so that the medium can respond to the reader/user/viewer. Computing gives us a new way to express ideas, to communicate to others, and to explore ideas.  Everyone should have access to this new medium.
  5. To have a new way to learn science and mathematics. Mathematics places a critical role in understanding our world, mostly in science. Our notation for mathematics has mostly been static equations. But code is different and gives us new insights. This is what Andy diSessa has been saying for many years. Bruce Sherin, Idit Harel, Yasmin Kafai, Uri Wilensky, and others have shown us how code gives us a powerful new way to learn science and mathematics. Bootstrap explicitly teaches mathematics with computing.  Everyone who learns mathematics should also learn computing, explicitly with programming.
  6. As a job skill. The most common argument for teaching computer science in the United States is as a job skill.  The original Code.org video argued that everyone should learn programming because we have a shortage of programmers. That’s just a terrible reason to make every school child learn to program. That’s what Larry Cuban was arguing this last summer. Tax payers should not be funding a Silicon Valley jobs program. Not everyone is going to become a software developer, and it doesn’t make any sense to train everyone for a job that only some will do. But, there’s some great evidence from Chris Scaffidi (that I learned about from Amy Ko’s terrific VL/HCC summary) showing that workers (not software developers) who program make higher wages than those comparable workers who do not. Learning to program gives students new skills that have value in the economy. It’s a social justice issue if we do not make this economic opportunity available to everyone.
  7. To use computers better. This one is a possibility, but we need research to support it. Everyone uses computers all the time these days. Does knowing how the computer works lead to more effective use of the computer?  Are you less likely to make mistakes? Are you more resilient in bouncing back from errors? Can you solve computing problems (those that happen in applications or with hardware, even without programming) more easily?  I bet the answer is yes, but I don’t know the research results that support that argument.
  8. As a medium in which to learn problem-solving. Finally, computer programming is an effective medium in which we can teach problem-solving. Just learning to program doesn’t teach problem-solving skills, but you can use programming if you want to teach problem-solving. Sharon Carver showed this many years ago. She wanted students to learn debugging skills, like being able to take a map and a set of instructions, then figure out where the instructions are wrong. She taught those debugging skills by having students debug Logo programs. Students successfully transferred those debugging skills to the map task. That’s super cool from a cognitive and learning sciences perspective. But her students didn’t learn much programming — she didn’t need much programming to teach that problem solving skill.But here’s the big caveat: They did not learn enough programming for any of the other reasons on this list!  The evidence we have says that you can teach problem-solving with programming, but students won’t gain more than that particular skill. That is a disservice to students.

Certainly there are more reasons than these, and I’ve seen several in the response to this blog post, and some in the comments below.

This was just one slide in Brenda’s talk. Her overall point was much more broader and more significant. I strongly agree with Brenda’s key point: CS for All is a social justice issue. Learning computing is so important that it is unjust to keep it from some students. Currently, CS is disproportionately unavailable to poorer students, to females, and to minority ethnic groups. We need CS for All.

October 18, 2017 at 12:30 pm 29 comments

Teaching Computer Science Is Great, But It’s Not Enough: Calls for Functional Computer Science Literacy

The article quoted below by Florence R. Sullivan & Jill Denner calls for us to go beyond “simply giving more students access.” We need to give them “functional computer science literacy.”  By that phrase, they mean that we need to have students consider ethical and social issues.  That’s not what Andy DiSessa meant when he defined computational literacy, who talked more about using computing to understand the world.  But there may be a more mundane, critical form of literacy than either of these definitions.

Computing classes that emphasize coding over traditional technology literacy (e.g., how to use the computer) are not attracting students in the UK.  The BBC said it frankly, “Computing in schools – alarm bells over England’s classes.” In the UK, even where there is access to computing education, but students aren’t flocking to the classes.  It’s not just a matter of “time, funding, and qualified teachers.” Traditional Information and Communications Technologies classes are more attractive to English students than Computing classes, based on number of students taking GCSE’s.

Massachusetts merged their digital literacy standards into their new computer science standards.  That’s likely going to be the most successful path. We can use digital literacy as a context to introduce some CS, to draw students into CS classes. CS may not be the draw. Literacy is.

There is still much work to do, however. In an ongoing, multiyear study on computer science education conducted by Google and Gallup, researchers found that although students, parents, teachers, and school administrators value computer science, it is still not offered in many schools. This is because of a lack of time, funding, and qualified teachers. Only 25 percent of schools nationwide reported offering a computer science class in 2014-15, and while that number rose to 40 percent in 2015-16, we are still years away from providing sufficient computer science education in all schools.

As educational researchers focused on computer science learning, we welcome the push by more districts to teach the discipline to students. But we believe that our nation’s current conception of computer science education does not go far enough. It is not sufficient to simply give more students access. As computer science continues to expand, we advocate for educators to teach functional computer science literacy, just as the field of science education has spent decades refining an approach to teaching socio-scientific reasoning (which integrates learning science content in the context of real-world issues).

Source: Education Week

August 14, 2017 at 7:00 am Leave a comment

What Science Literacy Really Means: Concepts, Contexts, and Consequences

I’ve only just started reading this new report from National Academies Press, but am finding it useful and interesting.  What do we mean when we say that we want people to be scientifically literate?  It’s an important question to ask when considering the goal of computational literacy.

Science is a way of knowing about the world. At once a process, a product, and an institution, science enables people to both engage in the construction of new knowledge as well as use information to achieve desired ends. Access to science—whether using knowledge or creating it—necessitates some level of familiarity with the enterprise and practice of science: we refer to this as science literacy.

Science literacy is desirable not only for individuals, but also for the health and well-being of communities and society. More than just basic knowledge of science facts, contemporary definitions of science literacy have expanded to include understandings of scientific processes and practices, familiarity with how science and scientists work, a capacity to weigh and evaluate the products of science, and an ability to engage in civic decisions about the value of science. Although science literacy has traditionally been seen as the responsibility of individuals, individuals are nested within communities that are nested within societies—and, as a result, individual science literacy is limited or enhanced by the circumstances of that nesting.

Science Literacy studies the role of science literacy in public support of science. This report synthesizes the available research literature on science literacy, makes recommendations on the need to improve the understanding of science and scientific research in the United States, and considers the relationship between scientific literacy and support for and use of science and research.

Source: Science Literacy: Concepts, Contexts, and Consequences | The National Academies Press

October 14, 2016 at 7:42 am 1 comment

How to choose programming languages for learners: Reviewing JavaScript and Ready

My Blog@CACM post for June is Five Principles for Programming Languages for Learners. The five principles I identify are:

  1. Connect to what learners know
  2. Keep cognitive load low
  3. Be honest
  4. Be generative and productive
  5. Test, don’t trust

I wrote the essay in response to Idit Harel’s influential essay American schools are teaching our kids how to code all wrong. There were many responses to Idit’s essay, on social media and in other blogs. Much of the discussion focused on text programming languages vs. drag-and-drop, blocks-based languages, which I don’t think is the most critical distinction.

In this post, I respond to two of the suggestions that came up in some of these discussions. I use the five principles to review the suggestions in a kind of heuristic evaluation.

JavaScript

If we were going to teach a professional language to students, JavaScript is attractive. It’s free and ubiquitous, available in every Web browser. There are many jobs for JavaScript programmers. Because so much is built on top of it, it’s likely to remain around for many years in a compatible form. I argue in the Blog@CACM post that there are many dimensions to “real” when it comes to programming languages. “Use by professionals” is not the most important one when we talk about learners.

I recommend considering each of these five principles before choosing a programming language like JavaScript for learners.

  1. Connect to what learners know – You could teach JavaScript as a connection to what children already know. The notation of JavaScript doesn’t look like anything that children are likely to have seen before, in contrast to Logo’s emphasis on words and sentences, Squeak eToys’ “Drive the Car,” Boxer’s simple UI boxes (what diSessa calls naive realism), and Racket/Bootstrap’s connections between algebra and S-expressions.  However, JavaScript is the language of the Web today, so one could probably relate the programming activities to Web pages. Most learners are familiar with parts of a Web page, animations in a Web page, and other Web features that JavaScript can control. That might serve as a connection point for children.
  2. Keep cognitive load low – JavaScript has a high cognitive load. I’m a JavaScript learner and am just meeting some of its weirder features. I was shocked when I first read that = is assignment, == is type-insensitive equality, and === is type sensitive equality/equivalence. So, "5"==5 is true, but "5"===5 is false. Counting the number of = and remembering what 1 vs 2 vs. 3 means is an excellent example of extraneous cognitive load. My bet is that JavaScript overwhelms children and is probably inefficient for adult learners. This means that learners are spending so much time making sense of the syntax, it takes them longer and more effort to get to the concepts (and they may lose interest before they get to the good stuff).
  3. Be honest – JavaScript is authentic, it’s real for most senses of the term.
  4. Be generative and productive – I don’t know if JavaScript would be generative and productive for students. I don’t know anyone teaching JavaScript as a way to teach significant ideas in CS or other STEM disciplines. My worry is that the cognitive load would be so overwhelming that you couldn’t get to the interdisciplinary or complex ideas. Students would spend too much effort counting = and fighting for loops.
  5. Test, don’t trustThe only study that I know comparing JavaScript to a blocks-based language had JavaScript losing. JavaScript conditionals and loop structures were far harder for students than the equivalent block-based structures.

We should experiment more with JavaScript, but I suspect that students would do better (struggle less with syntax, learn more, connect to other disciplines more) with a different syntax. If I were trying to get the advantages of JavaScript without the syntax cost, I’d try something like ClojureScript — freely available, as fast as JavaScript, as ubiquitous as JavaScript, used professionally, can be used to control Web pages like JavaScript (so connectable for learners), and with the syntactic similarities to mathematics that Racket enjoys.

Ready

Baker Franke of Code.org is promoting the essay Coding snobs are not helping our children prepare for the future as a response to Idit’s essay. The essay is about the application-building tool, Ready. Media theorist Dough Rushkoff has also been promoting Ready, What happens when anyone can code? We’re about to find out.

I disagree with Rushkoff’s description of Ready, even in the title. As the first essay by David Bennahum (a “Ready Maker and Venture Partner) points out, it’s explicitly not about using a programming language.

Our efforts at Ready, a platform that enables kids to make games, apps, whatever they want, without knowing a computer language, are designed to offer a new approach to broadening access to code literacy.

Bennahum’s essay means to be provocative — and even insulting, especially to all the teachers, developers, and researchers who have been creating successful contextualized computing education:

In this new world, learning coding is about moving away from computer languages, syntax, and academic exercises towards real world connections: game design and building projects that tie into other subjects like science and social studies… This is the inverse of how computer science has been taught, as an impersonal, disconnected, abstracted, mathematical exercise.

I can see how Rushkoff could be confused. These two quotes from the Ready team seem contradictory. It’s not clear how Ready can be both about “learning coding” and “code literacy” while also allowing kids to make “without knowing a computer language.” There is no programming language in Ready.  What is coding then? Is it just making stuff?  I agree with Rushkoff’s concerns about Ready.

True, if people don’t have to code, they may never find out how this stuff really works. They will be limited to the programming possibilities offered by the makers of the platforms, through which they assemble ready-made components into applications and other digital experiences.

Let’s consider Ready against the five principles I propose.

  1. Connect to what learners know – the components of Ready are the icons and sliders and text areas of any app or game. That part is probably recognizable to children.
  2. Keep cognitive load low – Ready is all about dragging and dropping pieces to put them together. My guess is that the cognitive load is low.
  3. Be honest – Ready is not “real” in most sense of authenticity. Yes, students build things that look like apps or games, but that’s not what motivates all students. More of Betsy DiSalvo’s “Glitch” students preferred Python over Alice (see blog post). Alice looked better (which appealed to students interested in media), but students knew that Python was closer to how professional programmers worked. Authenticity in terms of practice matters to students. No professional programmer solely drags and drops components. Programmers use programming languages.
  4. Be generative and productive – Ready completely fails this goal. There is no language, no notation. There is no tool to think with. It’s an app/game builder without any affordances for thinking about mathematics, science, economics, ecology, or any other STEM discipline. There’s a physics engine, but it’s a black box (see Hmelo and Guzdial on black box vs glass box scaffolding) — you can’t see inside it, you can’t learn from it. They build “models” with Ready (see this neurobiology example), but I have a hard time seeing the science and mathematics in what they’re building.
  5. Test, don’t trust – Ready offers us promises and quotes from experts, but no data, no results from use with students.

Ready is likely successful at helping students to make apps and games. It’s likely a bad choice for learners. I don’t see affordances in Ready for computational literacy.

June 20, 2016 at 7:46 am 23 comments

Treating computing as a real literacy: If learning to code were like learning to write…

I like what Amy Ko is doing in this blog post. She imagines if computing literacy were integrated into our daily lives, how would we introduce computing to children, how would we talk about it to our children?

I don’t buy the focus in this post on tokenizing and textual languages.  I would hope that children would talk about feedback, and iteration, and how to build conditionals that tested what you wanted (e.g., “How would you know if that was true?” — which might lead to some great discussions about truth and experiments and science, all by itself!).  The point of a piece like Amy’s is to have these discussions, to talk about what we’d integrate and where.

I’m reminded of Mike Horn’s work on computational sticker books (see link here).  Mike asks the question, “If computational literacy were integrated into our daily lives, how would parent and child do computation while reading a book at bedtime?”  Mike’s answer is computational sticker books. Doesn’t matter whether you agree with Mike about sticker books, the point is to wonder what a future world of computational integration might be like.

If learning to code were like learning to write, we’d next teach children how to read short books, giving them programs to read, exposing them to all of the computational possibilities of the language they were learning. “Madison, what did you choose for your book project this month? Oh, an Instagram post indexing algorithm, interesting! Are you liking it? What’s your favorite idiom?”

If learning to code were like learning to write, we’d ask children to start writing sentences, creating simple statements that accomplish small tasks. “Daniel, we keep forgetting to turn the light off in the garage. Can you log into the IoT portal and write a rule that turns it off every night at 9 pm?”

Source: If learning to code were like learning to write… | Bits and Behavior

April 11, 2016 at 7:38 am 5 comments

Interaction between Literacy and Content Learning: The Inconvenient Truth About Assessment

The page linked below has a nice set of important issues in assessment.  Another one that I considered highlighting was that most students seek to avoid failure rather than achieve success.  Many educational designs emphasize opportunities for student learning, when the reality is that many students are only seeking to get by.

As we think about computing as a literacy, the below point becomes more critical.  For example, how do separate the students’ understanding of computer science from what they are are able to present in their program code?  Programming is still a hard task which requires content knowledge, but also creates a lot of cognitive load about stupid things like semicolons and order of parameters in a function call.  The issue is particularly important for me, since I’m interested in supporting non-CS majors use programming for learning about other content, where all my interest is in the content and I want to minimize the programming.

Literacy (reading and writing ability) can obscure content knowledge. Further, language development, lexical knowledge (VL), and listening ability are all related to mathematical and reading ability (Flanagan 2006). This can mean that it’s often easier to assess something other than an academic standard than it is knowledge of the standard itself. It may not tell you what you want it to, but it’s telling you something.

Source: The Inconvenient Truth About Assessment

January 4, 2016 at 8:07 am Leave a comment

Why Ed Tech Is Not Transforming How Teachers Teach: Another cost of too little computing literacy

I believe the result described in the article below, that a critical limitation of teacher’s ability to use technology is too little understanding of technology.  In a sense, this is another example of the productivity costs of a lack of ubiquitous computing literacy (see my call for a study of the productivity costs).  We spend a lot on technology in schools.  If teachers learned more about computing, they could use it more effectively.

In 2010, for example, researchers Peggy A. Ertmer of Purdue University, in West Lafayette, Ind., and Anne T. Ottenbreit-Leftwich of Indiana University, in Bloomington, took a comprehensive look at how teachers’ knowledge, confidence, and belief systems interact with school culture to shape the ways in which teachers integrate technology into their classrooms.
One big issue: Many teachers lack an understanding of how educational technology works.
But the greater challenge, the researchers wrote, is in expanding teachers’ knowledge of new instructional practices that will allow them to select and use the right technology, in the right way, with the right students, for the right purpose.

via Why Ed Tech Is Not Transforming How Teachers Teach – Education Week.

July 22, 2015 at 7:25 am 8 comments

Coding Is the New Writing for Developing Self-Expression, Communication, Imagination and Solving Hard Problems

A really nice article by Dr. Idit Harel Caperton on why to learn to code.  She really captures well the insight that computing is a medium, and the value of developing literacy in this medium.

To summarize, kids and adults too learn best by teaching, explaining, inventing and representing information to others. Coding is the new writing tool for young minds to do just that and especially well when integrated into a harder problem and a larger purpose, than learning coding for the sake of learning coding.

via Coding Is the New Writing for Developing Self-Expression, Communication, Imagination and Solving Hard Problems | Dr. Idit Harel Caperton.

October 2, 2014 at 8:36 am 1 comment

Is Coding the New Literacy? What does learning to code buy you?

The article posted below is a carefully-considered (not a “Rah! Rah! Let’s Code!”) and intriguing consideration of the role of coding in modern notion of literacy.  I particularly liked the idea below.  Is Annettee Vee right?  Does knowing about coding inform your ability to think about things to code?  I suspect that’s true, but it’s an empirical question.  It’s much nearer transfer, and is not as much of a stretch as looking for evidence of general problem-solving skills from programming (which is very rare) or applying a computational framework for understanding the world (i.e., computational thinking).

The happy truth is, if you get the fundamentals about how computers think, and how humans can talk to them in a language the machines understand, you can imagine a project that a computer could do, and discuss it in a way that will make sense to an actual programmer. Because as programmers will tell you, the building part is often not the hardest part: It’s figuring out what to build. “Unless you can think about the ways computers can solve problems, you can’t even know how to ask the questions that need to be answered,” says Annette Vee, a University of Pittsburgh professor who studies the spread of computer science literacy.

via Is Coding the New Literacy? | Mother Jones.

June 22, 2014 at 9:32 am 11 comments

ScratchJr: Coding for Young Kids — Kickstarter Campaign

I got to see a build of ScratchJr at the NSF CE21 PI’s meeting in January — it’s really fun.  Attractive, responsive, and well thought through, as one would expect with this team.

Coding (or computer programming) is a new type of literacy. Just as writing helps you organize your thinking and express your ideas, the same is true for coding. In the past, coding was seen as too difficult for most people. But we think coding should be for everyone, just like writing.

As young children code with ScratchJr, they learn how to create and express themselves with the computer, not just interact with it. In the process, children develop design and problem-solving skills that are foundational for later academic success, and they use math and language in a meaningful and motivating context, supporting the development of early-childhood numeracy and literacy.

With ScratchJr, children aren’t just learning to code, they are coding to learn.

via ScratchJr: Coding for Young Kids by Mitchel Resnick — Kickstarter.

March 24, 2014 at 1:29 am 2 comments

Strong vision drives growth in CS course at Princeton

The course at Princeton does sound really cool, but I’m not convinced that the course content/curriculum is driving the growth.  As we found with MediaComp, the curriculum seems to have little to do with enrollment in a course.  I wonder what comparable courses (say, at Harvard or Yale) look like in terms of enrollment.

I strongly agree with the argument that they’re making below for the importance of computational literacy.

Sedgewick said he is pleased that the course leads many students to a greater interest in computer science, but he feels strongly that computers are so integral to modern society that a basic understanding of the field should be a part of any education. In the introduction to their textbook, “Introduction to Programming in Java,” Sedgewick and Wayne say that in the modern world computer science cannot be left to specialists.

“The basis for education in the last millennium was reading, writing and arithmetic; now it is reading, writing and computing,” they write.

via story-04 – Princeton Engineering.

November 4, 2013 at 1:44 am Leave a comment

Meet Wikipedia, the Encyclopedia Anyone Can Code

It sounds like you can only use Lua for encyclopedia-like functions (e.g., handling citations), but what a wonderful step toward having a tool for building simulations and data processing & visualizations into the encyclopedia.  It’s a nice new motivation for “Computing for Everyone.”

It began as the encyclopedia anyone can edit. And now it’s also the encyclopedia anyone can program.

As of this weekend, anyone on Earth can use Lua — a 20-year-old programming language already championed by the likes of Angry Birds and World of Warcraft — to build material on Wikipedia and its many sister sites, such as Wikiquote and Wiktionary. Wikipedia has long offered simple tools that let tens of thousands of volunteer editors reuse little bits of text across its encyclopedia pages, but this is something different.

“We wanted to provide editors with a real programming language,” says Rob Lanphier, the director of platform engineering at the Wikimedia Foundation, the not-for-profit that oversees the online encyclopedia. “This will make things easier for editors, but it will also be significantly faster.”

via Meet Wikipedia, the Encyclopedia Anyone Can Code | Wired Enterprise | Wired.com.

March 27, 2013 at 1:33 am 2 comments

Older Posts


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

Join 10,185 other subscribers

Feeds

Recent Posts

Blog Stats

  • 2,060,428 hits
June 2023
M T W T F S S
 1234
567891011
12131415161718
19202122232425
2627282930  

CS Teaching Tips