Thursday 18 April 2013

Computer Science as a great target for Science Careers

Nice interview with Ed Lazowska of U-W in Science about the state of computer science education and research. The below section is getting picked up elsewhere as an argument for CS as a great choice for students interested in a career in science.

I would have to say “about right.” Ph.D. production in computer science is far lower than in fields with far fewer employment opportunities. And Ph.D.s in computer science have a broad range of employment opportunities that take full advantage of their training. In most other STEM [science, technology, engineering, and mathematics] fields, the vast majority of graduates at all levels take jobs unrelated to their field of study. In computer science, the opposite is true: The vast majority of graduates at all levels take jobs that are in their “sweet spot.” Google hires roughly the same number of graduate students as undergraduate students from the University of Washington. Microsoft also hires a large number of our best Ph.D. students, both for Microsoft Research [MSR] and for the development organization.I do think we need to be cautious. We need to avoid the overproduction—and, honestly, exploitation—that characterizes other fields. Hopefully we’ll be smart enough to learn from their behavior.

Deepa Singh
Business Developer
Email Id:-deepa.singh@soarlogic.com

Tuesday 16 April 2013

Congratulations to Eric Roberts on the 2012 ACM Karl V. Karlstrom Outstanding Educator Award!

2012 Karl V. Karlstrom Outstanding Educator Award: Eric Roberts, Stanford University
For his outstanding contributions to computing education over decades, through international leadership and intellectual contributions in developing effective computing curriculaEric Roberts has been a truly outstanding educator for decades, starting as the first computer scientist at Wellesley College in 1980. He has personally taught thousands of computer scientists, and reached many more through his textbooks and curriculum development. His textbooks are exemplary; the first, Thinking Recursively, was named in a 1998 CACM survey article as one of the core texts that every computer science educator should know. He built an organization of professional lecturers at Stanford that has become a model for effective teaching of computer science at universities across the country.

Eric has shown exceptional leadership in computing education, made all the more effective because of the obvious priority he placed on being an outstanding educator. He devotes enormous time and energy to drawing attention to and addressing problems in our community, such as underrepresentation of women in computing and the need to devote more resources to computing education during times of enrollment surge. His principles and values have made him a respected voice in the computing education community.Eric s leadership is international in scope. He co-chaired the ACM Education Board for several years, and was one of the founding co-chairs of the ACM Education Council. From 1999 to 2005, he worked to develop a computing curriculum for public high schools in Bermuda. This program was the first national computing curriculum to be certified by an international standard board.

Eric s work on Computing Curriculum 2001 exemplifies his leadership. He drew together diverse constituencies and stakeholders in a multi-year process. He was the principal author of the final report. The report is a significant intellectual achievement that has served educators around the world as they consider what every computing student needs to learn.

Deepa Singh
Business Developer
Email Id:-deepa.singh@soarlogic.com

Thursday 11 April 2013

Guided Computer Science Inquiry in Data Structures Class

Inquiry-based learning is the best practice for science education. Education activities focus on a driving question that is personally meaningful for students, like “Why is the sky blue?” or “Why is the stream by our school so acidic (or basic)?” or “What’s involved in building a house powered entirely by solar power?” Answering those questions leads to deeper learning about science. Learning sciences results support the value of this approach. It’s hard for us to apply this idea from science education and teach an introductory computing course via inquiry, because students may not have many questions that relate to computer science when they first get started. Questions like “How do I make an app to do X?” or “How do I use Snap on my laptop?” are design and task oriented, not inquiry oriented. Answering them may not lead to deeper understanding of computer science. Our everyday experience of computing, through (hopefully) well-designed interfaces, hides away the underlying computing. We only really start to think about computing at moments of breakdown (whatHeidigger called “present-at-hand”). ”Why can’t I get to YouTube, even though the cable modem light is on?” and “How does a virus get on my computer, and how can it pop up windows on my screen?” It’s an interesting research project to explore what questions students have about computing when they enter our classes.

I realized this semester that I could prompt students to define questions for inquiry-based learning in a second computer science class, a data structures course. I’m teaching our Media Computation Data Structures course this semester. These students have seen under the covers and know that computing technology is programmed. I can use that to prompt them about how new things work. What I particularly like about this approach is how it gets me out of the “Tour of the Code” lecturing style.Here’s an example. We had already created music using linked lists of MIDI phrases. I then showed them code for creating a linked list of images, then presented this output.


I asked students, “What do you want to know about how this worked?” This was the gamble for me — would they come up with questions? They did, and they were great questions. ”Why are the images lined up along the bottom?” “Why can we see the background image?”I formed the students into small groups, and assigned them one of the questions that the students had generated. I gave them 10 minutes to find the answers, and then report back. The discussion around the room was on-topic and had the students exploring the code in depth. We then went through each group to get their answers. Not every answer was great, but I could take the answer and expand upon it to reach the issues that I wanted to make sure that we highlighted. It was great — way better and more interactive than me paging through umpteen Powerpoint slides of code. Then I showed them this output from another linked list of images.


Again, the questions that the students generated were terrific. ”What data are stored in each instance such that some have positions and some are just stacked up on the bottom?” and “Why are there gaps along the bottom?” Still later in the course, I showed them an animation, rendered from a scene graph, and I showed them the code that created the scene graph and generated the animation. Now, I asked them about both the animation code and the class hierarchy that the scene graph nodes was drawing upon. Their questions were both about the code, and about the engineering of the code — why was it decomposed in just this way?


(We didn’t finish answering these questions in a single class period, so I took pictures of the questions so that I could display them and we could return to them in the next class.) I have really enjoyed these class sessions. I’m not lecturing about data structures — they’re learning about data structures. The students are really engaged in trying to figure out, “How does that work like that?” I’m busy in class suggesting where they should look in the code to get their questions answered. We jointly try to make sense of their questions and their answers. Frankly, I hope to never again have to show sequences of Power point slides of code ever again.

Deepa Singh
Business Developer
Email Id:-deepa.singh@soarlogic.com

Six Reasons Why Computer Science Education is Failing Students

Interesting arguments from the CEO of Live Code. These two points are particularly interesting. The first is: What sits between Scratch, or Alice, or App Inventor, and professional-class languages like JavaScript or C++? I would put Python in there, but I still see that the Scratch->Python gap is a big one. The second paragraph is really striking, and I’d like to see more evidence. Does Israel’s great CS ed system lead to the strong start up culture, or is it because Israelis value technology that they have both a great start up culture and a great CS Ed system? Up to about age 13 there are some excellent tools in widespread use, most notable among them being the free and popular Scratch from MIT and MIT App Investor However students outgrow Scratch by around age 13 and schools often don’t make a good choice of language for the next phase in a child’s education. Many traditional programming languages such as JavaScript or C++ are completely inappropriate for this age group. Students struggle to understand what they are learning and often spend their lessons searching for a missing symbol. The current generation of students use smartphones and so selecting a tool that allows them to create their own apps is another great opportunity to make learning directly relevant to them. Our own Live Code platform provides a handy solution to these issues by allowing students to create their own mobile apps using a programming language that is close to English.

I firmly believe that a strengthening computer science education program has to be one of the most obvious and cost effective things we can do to ensure future economic prosperity. Israel has the highest rate of start up per ca pita anywhere and that in part stems from its strong computer science education program. Estonia, another country with both a strong tech sector and economy, recently announced a plan to expand teaching of computer science to all primary school children. Do we want to be left in the dust by these countries, or left unable to compete with the growing economies of India and China? What is it going to take to get computer science education moved up the agenda in the USA and here in the UK?

Deepa Singh
Business Developer
Email Id:-deepa.singh@soarlogic.com

Opening a Gateway for Girls to Enter the Computer Field – NYTimes.com

All these efforts to draw in more girls to computing are great, but the last sentence is a big deal. How do we keep them? How do we help girls to survive the thousand paper cuts? Girls Who Code is among the recent crop of programs aiming to close the gender gap in tech by intervening early, when young women are deciding what they want to study. With names like Hackbright Academy, Girl Develop It, Black Girls Code and Girls Teaching Girls to Code, these groups try to present a more exciting image of computer science. The dearth of women in the tech industry has been well documented. Even though women represent more than half the overall work force, they hold less than a quarter of computing and technical jobs, according to the National Center for Women and Information Technology based at the University of Colorado, Boulder. At the executive and founder levels, women are even scarcer.

Deepa Singh
Business Developer
Email Id:-deepa.singh@soarlogic.com

Requiring Computing Education: An Impractical Path to Computing Literacy

My thinking on computing education has been significantly influenced by a podcast about hand-washing and financial illiteracy. I suspect that education is an ineffective strategy for achieving the goal of Computing Literacy for Everyone. I have a greater appreciation for work like Alan Kay’s on STEPS, Andy Ko’s work on tools for end-user programming, and the work on Racket.On Hand-Washing and Financial Illiteracy. I have been listening to Freakonomics podcasts on long drives. Last month, I listened to “What do hand-washing and financial illiteracy have in common?” I listened to it again over the next few days, and started digging into the literature they cited. At hospitals, hand-washing is far less common than our knowledge of germ theory says it ought to be. What’s most surprising is that doctors, the ones with the most education in the hospital, are the least likely to wash their hands often enough. The podcast describes how one hospital was able to improve their hand-washing rates through other behavioral methods, like shaming those who didn’t wash their hands and providing evidence that their hands were likely to be filled with bacteria. More education doesn’t necessarily lead to behavioral change.

Much more important was the segment on financial illiteracy. First, they present the work of Annamuria Lusardia who has directly measured the amazing financial illiteracy in our country. There is evidence that much of the Great Recession was caused by poor financial decisions by individuals. Less than a third of the over-50-year-old Americans that Lusardia studied could correctly answer the question, “If you put $100 in a savings account with 2% annual interest, at the end of five years you will have (a) less than $102, (b) exactly $102, or (c) more than $102?” More mathematics background did lead to more success on her questions, but she calls for a much more concerted effort in financial education. Her arguments are supported by some pretty influential officials, like Fed Reserve Chair Ben Bernanke and former Secretary of the Treasury Paul O’Neill. It makes sense: If people lack knowledge, we should teach them.Lauren Willis strongly disagrees, and she’s got the data to back up her argument. She has a 2008 paper with the shocking title, Against Financial Literacy Educationthat I highly recommend. She presents evidence that financial literacy education has not worked — not that it couldn’t work, but it isn’t working. She cited several studies that showed negative effects of financial education. For example, high school students who participated in the Jump$start program become much more confident about their ability to make financial decisions, and yet made worsedecisions than those students who did not participate in the program.

The problem is that financial decisions are just too complicated, and education (especially universal education) is expensive to do well (though Willis doesn’t offer an estimated cost). Educational curricula (even if tested successful) is not always implemented well. The gap between education in teen years and making decisions in your 40′s and 50′s is huge. Instead of education, we should try to prevent damage from ignorance. Willis suggests that we should create a cadre professional of financial advisors and make them available to everyone (for some “pro bono”), and that we should increase regulation of financial markets so that there are fewer riskier investments for the general public. It costs the entire society enormously when large numbers of people make poor financial decisions, and it’seven more expensive to provide enough education to prevent the cost of all that ignorance.This was a radical idea for me. Education is not free, and sometimes it’s cheaper to prevent the damage of ignorance than correcting the ignorance.Implications for Computing Literacy Education. I share the vision of Andy DiSessa and others of computing as a kind of literacy, and a goal of “Computing for All” where everyone has the knowledge and facility to build programs (for modeling, simulations, data analyses, etc.) for their needs. Let’s call that a goal of “Universal Computing Literacy,” and we can consider the costs of using education to reach that goal, e.g., “Universal Computing Education to achieve Universal Computing Literacy.”

The challenge of computing literacy may be even greater than the challenge of financial literacy. People know even less about computing than they do about finance. We don’t know the costs of that ignorance, but we do know that it has been difficult and expensive to provide enough education to correct that ignorance. Computing may be even more complicated than finance. Willis talks about the myriad terms that people need to know to make good financial decisions (like “adjustable rate mortgages”), but they are at least compounds of English words! I attended a student talk this week, where terms like “D3” and “GreaseMonkey” were bandied about like they were common knowledge. We invent so much language all the time. What could we possibly teach today in high school that will be useful in even five or ten years, when those students are in their careers, to be able to build something that they could use? “We’ll teach conceptual knowledge so that they can pick up any tools or languages they need.” We have no idea how to achieve this goal in computer science. It takes an enormous effort to develop transferable knowledge, and progress in computing changes the target task all the time. I have a PhD in Computer Science, and it takes me way too much effort to pick up JavaScript libraries that I might want to use — far more effort than a non-technical person will be willing to put in.

The problem is that education is often inefficient and ineffective. Jeremy Roschelle pointed out that education improvements rarely impact economic outputs. Greg Wilson shared a great paper with me in response to some tweets I sent about these ideas. Americans have always turned to education to solve a wide variety of ills, but surprisingly, without much evidence of efficacy. We can teach kids all about healthy eating, but we still have a lot of obesity. Smokers often know lots of details about how bad smoking is for them. Education does not guarantee a change of behavior. This doesn’t mean that education could not be made more effective and more efficient. But it might be even more expensive to fix education than to deal with ignorance. Universal education is always going to be expensive, and some things are worth it. Text illiteracy and innumeracy are very expensive for our society. We need to address those, and we’re not doing a great job at that yet. Computing education to achieve real literacy is just not as important. I am no longer convinced that providing computing education to everyone is going to be effective to reach the goal of making everyone computing literate, and I am quite convinced that it will be very expensive. Requiring computing education for STEM professionals at undergraduate level may still be cost-effective, because those are the professionals most likely to see the value of computing in their careers, which reduces the costs and makes the education more likely to be effective.

Barb sees a benefit in Universal Computing Education, but not to achieve Universal Computing Literacy. We need to make computing education available everywherefor broadening participation in computing. To get computing into every school, Barb argues that we have to make it required for everyone. Without the requirement, schools won’t go to the effort of including it. Without a requirement, female and URM students who might not see themselves in computing, would never even give it a chance. In response to my argument about cost, she argues that the computing education for everyone doesn’t have to be effective. We don’t have to achieve lifelong literacy for everyone. Merely, it has to give everyone exposure, to give everyone the opportunity to discover a love for computing. Those that find that love will educate themselves and/or will pursue more educational opportunities later. I heard Mike Eisenberg give a talk once many years ago, where he said something that still sticks with me: that the point of school is to give everyone the opportunity to find out what they’re passionate about. For that reason, we have to give everyone the chance to discover computing, and requiring it may be the only way to reach that goal. It’s always possible that we’ll figure out to educate more effectively at lower cost. For example, integrating computing literacy education into mathematics and science classes may be cheaper — students will be using it in context, teachers in STEM are better prepared to learn and teach computing, and we may improve mathematics and science teaching along the way. My argument about being too expensive is based on what we know now how to do. Economic arguments are often changed by improved science (see Malthus).

As Willis suggests for financial literacy, we in computing literacy are probably going to be more successful for less cost by focusing on the demand side of the equation. We need to make computing easier, and make tools and languages that are more accessible, as Alan Kay, Andy Ko, and the Racket folks are doing. We have to figure out how to change computing so that it’s possible to learn and use it over an entire career, without a PhD in Computer Science. We have to figure out how to get these tools into use so that students see use of such tools as authenticand not a “toy.” “Computing for All” is an important goal. “Access to Computing Education for All” is critical. “Universal Computing Education to achieve Universal Computing Literacy” is likely to be ineffective and will be very expensive. On the other hand, requiring computing education may be the only way to broaden participation in computing.

Deepa Singh
Business Developer
Email Id:-deepa.singh@soarlogic.com

No Dynabook Yet: An Interview with Computing Pioneer Alan Kay

Nice interview with Alan Kay, with nice links to Enlargeable and Knowledge Navigator videos. Here’s the segment where Alan describes why the iPad is not a Dyna book. The interesting thing about this question is that it is quite clear from the several early papers that it was an ancillary point for the Dyna book to be able to simulate all existing media in an editable/author able form in a highly portable networked (including wireless) form. The main point was for it to be able to qualitatively extend the notions of “reading, writing, sharing, publishing, etc. of ideas” literacy to include the “computer reading, writing, sharing, publishing of ideas” that is the computer’s special province.

For all media, the original intent was “symmetric authoring and consuming”. Isn't it crystal clear that this last and most important service is quite lacking in today’s computing for the general public? Apple with the iPad and iPhone goes even further and does not allow children to download an E toy made by another child somewhere in the world. This could not be farther from the original intentions of the entire ARPA-IPTO/PARC community in the ’60s and ’70s.

Deepa Singh
Business Developer
Email Id:-deepa.singh@soarlogic.com

Monday 1 April 2013

Beware of the High Cost of ‘Free’ Online Courses – NYTimes.com

It nice to see someone with a background in management making this argument, that the costs of MOOCs may be greater than the benefits. Give-away pricing in education, Mr. Cusumano warns, may well be a comparable misstep. The damage would occur, he writes in the article, “if increasing numbers of universities and colleges joined the free online education movement and set a new threshold price for the industry — zero — which becomes commonly accepted and difficult to undo.”

In our conversation, I offered the obvious counterargument. Why should education necessarily be immune from this digital, Darwinian wave, when other industries are not? Isn’t this just further evidence of the march of disruptive progress that ultimately benefits society?Mr. Cusumano has heard this reasoning before, and he is unconvinced. In the article, he explains, “I am mostly concerned about second- and third-tier universities and colleges, and community colleges, many of which play critical roles for education and economic development in their local regions and communities.” “In education,” Mr. Cusumano adds, “‘free’ in the long run may actually reduce variety and opportunities for learning as well as lessen our stocks of knowledge.”

Deepa Singh
Business Developer
Email Id:-deepa.singh@soarlogic.com

Addressing Computer Science Student Misconceptions with Contrasts

I have wanted to figure out how to use in my class the interesting findings about the use of video to address science misconceptions. The idea is that you want to use real student misunderstandings and contrast them with better, more powerful ways of understanding something. The challenge for me has been how to get those misunderstandings in class. I don’t want to call on someone that I know has a misconception and have him lay out his explanation — just to pounce on it to say, “And that’s wrong!” Then I realized my chance this last week. I was grading the second midterm, and saw all these surprising misconceptions made evident in the students answers. Normally, the class time after a midterm is about going over the midterm answers. I decided instead to make it about the misconceptions.

I built a Powerpoint slide deck filled with these contrasting bits of code (like the contrasting explanations in the science videos) and with alternative code for answering the same problem. I tried to disguise the code so as not to embarrass any particular student. For example, I changed variable names — and since students expect that changing variable names should make plagiarized code impossible to detect, that should be enough, right? I formed students into pairs, and then put up the slides and asked for them to respond or to answer a question in their pair. For example, I noticed that several students seemed to confuse IF and WHEN. So I put up this slide.

I asked students to punch into their clickers what they thought “A” would print out. And yes, about 20% of the students guessed something other than “1.” I executed “A” as a way of checking the answer. I then had students answer for “B.” I could hear lots of discussion suggesting that students were seeing the difference between IF and WHILE. I put code up like this:

I had each group discuss what would be the output of this code, then took suggestions of the output from around the room. I wrote them on the board, and then had pairs vote on which answer they most agreed with. By the time we voted, everyone got it right — just generating the options, and hearing the discussion as each option went up, they figured out what the best answer was. I really liked hearing students “discovering” invariants as they talked, e.g., “The loop can never end, because you never change node1a in the loop!” I have no real evidence of learning here — we’ll see how things go in the class. I do have a sense that this was a more fruitful activity for a most-midterm discussion than just me giving the answers and telling them why the wrong answers were wrong. That recitation of sins usually just results in students coming up to me with, “You only give me 5 points for this, but based on the discussion, I think I deserved 7.” This way, the discussion was punctuated more often with “Ohhhh — now I get it!”

Deepa Singh
Business Developer
Email Id:-deepa.singh@soarlogic.com