Coding for Some, Computer Science for All
Over the past few months, I have heard significant discussion of, and interest in, computer science and coding instruction for K-12 students. School districts in New York City, Chicago, and San Francisco—three of the largest districts in the country—have recently announced initiatives to provide coding and computer science instruction to all students K-12. In his State of the Union address this past January, I was pleased to hear President Obama cite “helping students learn to write code” as one of his goals for this year. The President followed the State of the Union with a multi-year, multi-billion-dollar funding proposal for a new Federal K – 12 education initiative—Computer Science for All.
One thing should be made clear though, coding and computer science are not one and the same. Coding is a sub-set of computer science. Computer science is essential for success in our increasingly digital world, while coding is really a nice-to-have. To that end, we’ve seen increased recognition that there are a set of foundational skills needed to prepare students for learning advanced coding and computer science – especially our youngest students.
The International Society for Technology in Education (ISTE), has recently moved to address this need with proposed additions to their standards. According to ISTE, “advances in computing have expanded our capacity to solve problems at a scale never before imagined…. students will need to learn and practice new skills—computational thinking (CT) skills—to take full advantage of these revolutionary changes brought about by rapid changes in technology”.
So, what are Computational Thinking skills? This questions comes up often in the Learning.com offices. Computational Thinking is a problem-solving process that includes approaches, such as:
- Logically organizing and analyzing data;
- Breaking large problems into smaller sub-problems which can be solved independently, leading to a solution to the larger, more-complicated problem;
- Automating solutions through a series of ordered steps; and
- Formulating problems in a way that enables us to use a computer or other tools to help solve them.
- Learning this way of thinking, and approach to problem-solving, is important for learners not only to help them with coding, but more importantly for future college and career success. Learning these skills can help students develop:
- Confidence in dealing with complexity and ambiguity;
- Persistence in working with difficult problems;
- The ability to deal with open-ended problems; and
- The ability to communicate and work with others to achieve a common goal or solution.
President Obama has said “computer science isn’t an optional skill—it is a basic skill right up there with the three R’s”. I think it is safe to say that not every student will become a coder, but at a basic level, the foundational skills of computer science and computational thinking are relevant and significant to the future of every student, just as reading writing and arithmetic have been for generations. I am excited by the increased emphasis this area of instruction is getting around the country, and look forward to building towards a future where all K-12 students are developing these critical skills.