On Computer Science For All …
Overall, I am a supporter of the Computer Science For All initiative. I think Computer Science is an important answer to the question President Obama articulated, “How can we make sure everyone has a fair shot at success in this new economy?”
Absolutely, there will be hurdles implementing it. One counter argument to this initiative is that we already have plenty of problems to solve in K-12 education. If we can’t teach our kids the basic skills, reading, writing, and math, how are we supposed to add something else to the mix? Yes, there are problems in public education that need to be addressed, but that does not necessitate that this is not important and worth pursuing. I do think some computing and programming needs to be taught to every student. Whether or not this should be a longer-term goal with some in between steps I am not sure.
This all raises the question, who is going to teach programming? One might argue it may be best to start with just allowing the option for computer sciences in schools; make it so that computer science credits count towards graduation in all 50 states, not just 3/5 of them. Then build up the teaching base and develop a pipeline for computer science education leading to teaching. However, I am not convinced that a conservative, gradual approach is best. Although a well-planned approach is needed, I think the longer we wait to teach computer science to everyone in schools, the wider the gap will become between tech-competent members of society and those who are not tech-competent, as well as the gap in the demographics of those who enter tech-related fields.
Do I think everyone needs to be a computer science major? No. But I think in K-12 education, Computer Science is just as important as Math, Science, History, Literature, etc. Why study science, for example? It encourages young minds to be creative and solve problems. What good are the three R’s if you can’t learn to adapt and apply those skills in different ways? K-12 education is the basis from which we grow as members in society, and when chunks are missing from that platform, we suffer. Computer Science in this way is a kind of new literacy. Not in the same way that learning another language is starting to be, but the sense that it is morphing into an essential part of being able understand and communicate in society.
One of the more ridiculous counter arguments I have read is that there is no need to learn to code, because soon technology will be self-sustaining and will be such an integrated part of our life that we won’t need to think twice about it. Jason Bradbury claims, “My kids won’t need to code because soon computers will just code for them.” (*see link below for reference) I don’t think this is a counter argument against CS4All, but I just wanted to bring it to attention, because I think it is important to note that complete ignorance in an area such as this would be terrible for our society. I think fear takes root in ignorance, and fear leads to irrationality and conflict. If I could choose between a society in which all members had a basic understanding of how technology works and a society where technology is an undisputed, unchecked part of life, I would choose the former every time.
Finally, everyone can learn to program, and should. Not everyone is going to be a natural, but much like math, it can be taught and a basic understanding can be reached. Not everyone needs to pursue programming after high school, but an introduction is important. Programming is important not just so you could create your own website or something of that nature, but the skills not inherent in programming are just as important. The analytical reasoning and problem solving skills that are developed while learning to code are equally important. Check out this Ted Talk: https://www.ted.com/talks/reshma_saujani_teach_girls_bravery_not_perfection?language=en
Reshma Sujani, the founder of Girls Who Code, discusses the importance of teaching young women to take risks. She argues that coding encourages young girls to be willing to try things; to attack problems, fail, and try again. This is a crucial skill in the world we live in today, and it will apply to any area. Everyone can learn to program, and I think society as a whole, whether explicitly or not, is asking for it. A local example is the South Bend Code School, where the motto is “Breaking the barrier between People and Technology”. (Check out this link: https://www.f6s.com/southbendcodeschool) Alex Sejdinaj recognized this need in the community of South Bend and founded this code school to help educate members of the community, with the overall goal of bridging the gap of the up and rising tech side of South Bend with the members that live here. Over the summer, he taught a camp at the Robinson Center with which I was lucky enough to be involved. A group of middle to early high school students from the area came in every day, learned about computing, and worked in groups to develop websites that were creative ways of addressing the issue of violence in their community. It was an extremely neat experience, and witnessing the confidence these kids obtained by doing things that stereotypically only really smart or educated people do. It taught them that they could be active members in their society and they could tackle problems they at first did not know how to approach or thought was too big. This is a perfect real life example of why I think this initiative is so important and why Computer Science for all students, not just those honors students that have the interest and opportunity to take these classes.