We will all code, but few will be professional software engineers: Disagree with Quartz

I disagree with the claim below “In the future, everyone is going to be a software engineer, but only a few will learn how to code,” but we need a better definition of what it means to “code” and to “program” (as discussed with respect to recent ITICSE 2016 papers).  If you’re using tools like Hypercard (“low-code” platforms), isn’t that still programming?  It’s certainly more than the no loops, conditionals, or variables that’s often seen in elementary school students’ use of Scratch. Those tools are not software engineering tools. Just because you’re developing software doesn’t mean that you’re doing software engineering.

We need a range of tools from no-code to low-code to software engineering support. It’s an insult to those who carefully engineer software to say that anyone who assembles software is an engineer.

A new industry is emerging to serve the Morts of the world by designing and selling what are called no-code or low-code platforms. Companies like Caspio, QuickBase, Appian, and Mendix are creating visual interfaces that enable people to essentially snap together blocks of software, and bypass the actual lines of code underlying those blocks (skilled developers can also dive into the code). With basic training, a non-technical employee can rapidly assemble software tools that solve business problems ranging from simple database queries to applications lashing together multiple legacy enterprise applications.

Forrester reports the sector earned $1.7 billion in 2015 and is on track to bring in $15 billion by 2020 as the majority of large companies adopt “Citizen Development” policies similar to the bring-your-own-device rules. Employees will be empowered to choose tools, and even partially assemble software, to solve their own business problems without IT approval.

Source: In the future, everyone is going to be a software engineer, but only a few will learn how to code. — Quartz

November 14, 2016 at 7:35 am 4 comments

The role of higher education in reducing inequity: Using tuition, drop-out rates, and opportunity hoarding

This blog post isn’t about computing education.  You might want to simply delete this email, or skip over this post.  I’m using blog author’s prerogative to talk about things that fascinate me, even if they’re not in the title of the blog.

As frequent readers know, I increasingly read and think about economics, particularly with respect to higher education.  I’m going to collect in one blog post here (so that I don’t stray too far from the focus of the blog) some of the ideas and articles that have more interested me recently.

From Gladwell’s Revisionist History, we know that diverting tuition from the rich kids to the poor kids is common in schools that aim to bring in more lower-SES students and address issues of social inequity.  Unfortunately, this isn’t always possible. Here in Georgia, we’re forbidden by law to use tuition revenue to offer scholarships to less-advantaged children.  Puts us in a rough place when competing with schools that can.

Simply put, scholarship aid is not keeping pace with the rising price of college. While half of all families use a scholarship of some type to pay for college, much of that money is coming in the form of “discounts” off the tuition bill. Tuition discounts grew from $30 billion in 2007 to more than $50 billion in 2015, according to the College Board.While tuition discounts are marketed as scholarships in a student’s financial-aid package, they are not really scholarships. It’s not like a donor gave money to support a needy student with academic or musical talent. Rather, the scholarship money was diverted from another student’s tuition check. Last year, the average tuition discount for first-year students reached a staggering 47 percent — that’s nearly half off the published sticker price of tuition, up from about 40 percent just seven years ago.

Source: As College Tuitions Rise, Scholarships Fail to Keep Pace | Jeff Selingo | Pulse | LinkedIn

Without a doubt, one of saddest features of US higher education economics today: many of the kids saddled with higher education debt don’t even graduate! This is the awful perfect storm of increasing student debt and declining completion rates. Now, these students have massive debt, but don’t have the degree to get them a better paying job.

The author of the article linked below, Michael Crow, President of Arizona State University and author of Designing the New American University, visited at Georgia Tech this week, the day after Donald Trump became President-Elect of the US.  ASU has programs explicitly targeting those students, to help them get a degree that gives them entree to a better paying job that can help them to pay down their debt.  Crow said that the anger in this population is enormous — when they get saddled with debt, and higher ed fails them, they want to just blow up the system.  They’re through with how the existing system works.  Crow suggests that voices like that were what swept Trump to his surprising triumph.

Think about it: Tens of millions of people in the US are saddled with student debt and have no degree to help pay it off. They won’t get the substantial return on their investment—graduates with a bachelor’s degree earn about $1 million more in additional income over their lifetime than those with only a high school diploma—and they typically have not developed the adaptive learning skills that will help them prosper in a rapidly changing economy.In too many cases, they may never recover, leaving them feeling frustrated and bitter, disenfranchised and unable to find a way to better jobs and greater opportunity. Too many, saddled with debt and lacking a degree, feel trapped.

According to US Department of Education data, the ability to repay college loans depends more on whether a student graduated than on how much debt they are carrying. The research also found that students who don’t graduate are three times more likely to default on their loans than those who do.

Source: The Biggest Crisis in Higher Ed Isn’t Student Debt, It’s Students Who Don’t Graduate | Michael Crow | Pulse | LinkedIn

This last one is one that I saw linked to Emmanuel Schanzer’s wall in Facebook, and is deeply distressing. Rich kids who drop out of high school do as well as poor kids who complete college? Opportunity hoarding makes it difficult to really move the needle in terms of addressing economic inequity.  Crow talked about these kinds of inequalities in his talk, too.  If you’re in the bottom quartile in the US, you have an 8% chance of getting an undergraduate degree.  If you’re in the top quartile, you have an 80% chance — even if you do much worse in academics than the poor kids.

Even poor kids who do everything right don’t do much better than rich kids who do everything wrong. Advantages and disadvantages, in other words, tend to perpetuate themselves. You can see that in the above chart, based on a new paper from Richard Reeves and Isabel Sawhill, presented at the Federal Reserve Bank of Boston’s annual conference, which is underway.

Specifically, rich high school dropouts remain in the top about as much as poor college grads stay stuck in the bottom — 14 versus 16 percent, respectively. Not only that, but these low-income strivers are just as likely to end up in the bottom as these wealthy ne’er-do-wells. Some meritocracy.

What’s going on? Well, it’s all about glass floors and glass ceilings. Rich kids who can go work for the family business — and, in Canada at least, 70 percent of the sons of the top 1 percent do just that — or inherit the family estate don’t need a high school diploma to get ahead. It’s an extreme example of what economists call “opportunity hoarding.” That includes everything from legacy college admissions to unpaid internships that let affluent parents rig the game a little more in their children’s favor.

Source: Poor kids who do everything right don’t do better than rich kids who do everything wrong – The Washington Post

November 11, 2016 at 7:22 am 2 comments

Designing for Wide Walls with Contextualized Computing Education

Nice blog post from Mitchel.  The wide walls metaphor is an argument for contextualized computing education.  Computing is a literacy, and we have to offer a variety of genres and purposes to engage students.

But the most important lesson that I learned from Seymour isn’t captured in the low-floor/high-ceiling metaphor. For a more complete picture, we need to add an extra dimension: wide walls. It’s not enough to provide a single path from low floor to high ceiling; we need to provide wide walls so that kids can explore multiple pathways from floor to ceiling.Why are wide walls important? We know that kids will become most engaged, and learn the most, when they are working on projects that are personally meaningful to them. But no single project will be meaningful to all kids. So if we want to engage all kids—from many different backgrounds, with many different interests—we need to support a wide diversity of pathways and projects.

Source: Mitchel Resnick: Designing for Wide Walls | Design.blog

November 9, 2016 at 7:37 am Leave a comment

Growing Computer Science Education Into a STEM Education Discipline: November CACM

I manage the education column in CACM’s Viewpoints section, and this quarter, Briana Morrison and I wrote the piece.  While CS is now officially “in STEM,” it’s not like mathematics and science classes.  In the November issue, we look at what has to happen to make CS as available as mathematics or science education. ( BTW, Briana defends her dissertation today!)

Computing education is changing. At this year’s CRA Snowbird Conference, there was a plenary talk and three breakout sessions dedicated to CS education and enrollments. In one of the breakout sessions, Tracy Camp showed that much of the growth in CS classes is coming from non-CS majors, who have different goals and needs for computing education than CS majors.a U.S. President Obama in January 2016 announced the CS for All initiative with a goal of making computing education available to all students.

Last year, the U.S. Congress passed the STEM Education Act of 2015, which officially made computer science part of STEM (science, technology, engineering, and mathematics). The federal government offers incentives to grow participation in STEM, such as scholarships to STEM students and to prepare STEM teachers. Declaring CS part of STEM is an important step toward making computing education as available as mathematics or science education.

The declaration is just a first step. Mathematics and science classes are common in schools today. Growing computing education so it is just as common requires recognition that education in computer science is different in important ways from education in STEM. We have to learn to manage those differences.

Source: Growing Computer Science Education Into a STEM Education Discipline | November 2016 | Communications of the ACM

November 7, 2016 at 7:20 am 3 comments

What research will you do for #CSforAll? White House call for commitments

Ruthe Farmer let me know that the White House Office of Science and Technology Policy (OSTP) is explicitly interested in getting research commitments in response to this call:

In less than two months, there will be another opportunity to celebrate, to mark progress, and to grow the coalition working to expand computer science. This Computer Science Education Week (CSEdWeek), taking place from December 5-11, schools, community organizations, families, companies, and government agencies-including the White House and Federal agencies like NASA, the National Science Foundation, the US Patent and Trademark Office, and the Department of Energy-will host events and activities to give students direct access to CS. This will include everything from Family Code Nights that engage parents and students in learning computer science together, to Hour of Code events at schools, in homes, and online worldwide, to events here at the White House highlighting making and computer science, bringing broadband internet access to all Americans, and using open data to drive innovation.

With your help, this upcoming CSEdWeek has the potential to be the largest and most successful to date and we look forward to hearing about your plans. One of the ways your organization can get involved is to commit to expand computer science in your community or nationally, with measurable, specific goals that uniquely utilize what you can do to spread opportunity.

If you have an action you want to undertake to support CS education, submit it here by November 14, 2016. We want to hear about remarkable strides being made in your community and how we can build on them!
https://www.whitehouse.gov/blog/2016/10/27/call-new-csforall-actions-during-computer-science-education-week

The Research+Practice Collaboratory led the ECEP State Teams last week in framing research questions relevant to the President’s CS for All initiative.  Below are some of my pictures from that effort, to prime thinking about the research questions that surround CS for All.  (I have a lot more to tell about last week’s meetings, but first I have to recover and recoup time lost to planning/logistics/travel.)

img_3925 img_3924 img_3928 img_3927

November 2, 2016 at 7:15 am 2 comments

How to Teach Computational Literacy/Thinking: Wolfram’s Language and Code.org’s Response

Stephen Wolfram has published an essay arguing for a programming language as key to teaching computational literacy. He says computational thinking — I think he means the same thing as I do with CL instead of CT. I agree with him, and made a similar argument in my book. He goes on to argue that Wolfram Language (and the Mathematica infrastructure behind it) is particularly good for this.

But how does one “tell a computer” anything? One has to have a language. And the great thing is that today with the Wolfram Language we’re in a position to communicate very directly with computers about things we think about. The Wolfram Language is knowledge based: it knows about things in the world—like cities, or species, or songs, or photos we take—and it knows how to compute with them. And as soon as we have an idea that we can formulate computationally, the point is that the language lets us express it, and then—thanks to 30 years of technology development—lets us as automatically as possible actually execute the idea. The Wolfram Language is a programming language. So when you write in it, you’re doing programming. But it’s a new kind of programming. It’s programming in which one’s as directly as possible expressing computational thinking—rather than just telling the computer step-by-step what low-level operations it should do. It’s programming where humans—including kids—provide the ideas, then it’s up to the computer and the Wolfram Language to handle the details of how they get executed. Programming—and programming education—have traditionally been about telling a computer at a low level what to do. But thanks to all the technology we’ve built in the Wolfram Language, one doesn’t have to do that any more. One can express things at a much higher level—so one can concentrate on computational thinking, not mere programming. Yes, there’s certainly a need for some number of software engineers in the world who can write low-level programs in languages like C++ or Java or JavaScript—and can handle the details of loops and declarations. But that number is tiny compared to the number of people who need to be able to think computationally.

Source: How to Teach Computational Thinking—Stephen Wolfram Blog

He may be right. I don’t know of any studies of the Wolfram Language in any setting. The idea of providing a programming language with such rich knowledge behind it is intriguing and promising — so much there for just about any kind of inquiry, for any kind of context.

Hadi Partovi, CEO of Code.org, wrote an essay in response, where he similarly agreed with Wolfram on the issues of what we’re trying to teach and the importance of a programming language to teach those concepts. I disagree with Hadi on his critique of Wolfram, which is that the Wolfram Language is functional and lacks loops and declarations, and is inappropriate for use with learners. It’s totally true that most professional software engineers use procedural programming. But that doesn’t mean we have to. 

If we’re teaching computational literacy or computational thinking, it’s not clear why the practices of professional software engineers should influence what we teach or how we teach it. That’s not what we are teaching. I argue that we need to take a learner-centered approach, where we recognize that learners are not professionals or experts, and particularly in computing, may not want to become professional software engineers.
What gets used in daily practice by professionals is the result of historical and cultural factors that in no way imply that we made choices optimized what is best for learners. Fortran won over Lisp because (in part) we didn’t know how to compile Lisp efficiently, but we do now and we know how to teach Lisp well. C++ and then Java won over Pascal because of perceptions of what industry wanted, not because of data and not because Pascal was shown to be ineffective for learners. What we know about what is “natural” for learners when they are first thinking about programming strongly implies that Wolfram’s functional structures are easier for learners than loops and declarations. We should strive to make decisions for what we use in classrooms based on evidence, not on what is professional practice, nor what we decide based on social defense mechanisms.

More importantly, there is no “best” platform for teaching computer science. As a functional programming language, the Wolfram Language is fantastic for data analysis and exploration, but it can’t be used to create a traditional “app.” Most professional software engineers use procedural programming, using exactly the same concepts that Wolfram criticizes: loops, conditionals, event-handlers, and such. Without these concepts, none of today’s software would function. The debate about which is better—functional vs procedural programming—has raged for decades without an answer.

Source: The Keys to a Well Rounded Computer Science Education | EdSurge News

October 31, 2016 at 7:18 am 9 comments

Older Posts Newer Posts


Recent Posts

December 2016
M T W T F S S
« Nov    
 1234
567891011
12131415161718
19202122232425
262728293031  

Feeds

Blog Stats

  • 1,291,695 hits

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

Join 4,597 other followers

CS Teaching Tips