Computer Science in High School is Critical for the 21st Century Student

It is an amazing world isn't it? We have so much technology that exceed our science fiction fantasies. The question is, who is and will be making this stuff? Will it be your students? There has been an exponential boom in the demand for electronics, and unless we are talking about your basic appliances, those electronics require programming.

More and more, there is a need for our students to be literate in Computer Programming. Every field in science and mathematics requires an understanding of how computers work and those who speak the language of computers will be ahead of the game. My mother who has been a Nurse for over 30 years has seen the face of the medical field change dramatically in the last few years. In fact her department now has a need for a Bioinformatician, who is a person qualified in both nursing and computer science.

One of the most important articles I have ever read was published in June of 2008 entitled The End of Theory (accompanying diagram) and it described how we are collecting information about our Universe and ourselves so quickly that we do not have time or enough resources to interpret it so it can be used. This is why distributed computing platforms have been so successful, as they allow millions to share in the work of the scientists (e.g. BOINCFold It). Google has made billions in searching data quickly. Facebook and MySpace have likewise connected data in ways never before and in doing so connected people from around the World.

Computer science is a mystery to most. Very few K-12 schools offer it and those who do not major in STEM (science, technology, engineering, or mathematics) will not likely take it. This means that the majority of our population is and will remain completely illiterate in that which is truly our most universal language. It will be those who can program who will, according to Marc Prensky, truly have the upper hand.

Computer Science majors are on the rise so there will be someone to do the job. Will it be your students?

How does one get interested in Computer Science? For me, it started with my Dad and I sitting around and learning how to program our Apple IIc in BASIC. Then I learned C++ from my Mom's friend. I taught myself how to program the TI Graphing Calculator in High School (much to my benefit), and I was brought to love Pascal and Python from my teacher and friend, Michel Paul.  The point is that in all of this, I was encouraged to learn programming by others. Some of them knew how to program well, some of them were learning along with me, but they were all excited to teach and/or learn. Since the opportunities to learn how to program are very few (currently), we must be creative and innovative in getting this to our students.

I hope I have your attention. You have the potential to give your students one of the most valuable skills they will ever have (next to reading and writing). Yet your next thought might be one of doubt:

  • My students wouldn't be interested
  • There is no time with my already full schedule to teach this
  • I don't know how to program
For all of these doubts, I ask you to trust me. Many of your fellow educators around the world are already using programming in their math, science, and humanities (???) classroom. Those I have helped, were able to begin right away. As with anything your students will be only as motivated as you are and what their assignments are (link to relevant article). I have students who are interpreting genetic data, creating scientific video games, art, and going deeper in understanding of math and science every day and you can too.

In the next couple of posts, I will show you give you some tutorials and examples that I have used in the classroom. Once we have a few items, I will compile all of this together so it is easy to find and share. 

There are many different programming languages out there and they all have their advantages. In my classroom, and therefore my examples, we will be using Python. The reason for this is:
  • 100% free and open source
  • it is a very popular language used by Google, Blender, NASA, and many others so your students will have a directly transferable skill.
  • for its ease and succinct syntax
  • Python was designed from the ground up to be used in the classroom (link to the DARPA Proposal)
If you would like to begin looking through some great resources on learning Python before the next post here are my recommendations:

Python - I would strongly encourage you to download version 2.7 instead of 3.0 as it is more compatible.
How to Think Like a Computer Scientist with Python - How I learned Python basics, and still the best tutorial  for beginners I have found.
EDU-SIG - The mailing list for those who discuss Python and education. It can be overwhelming at times but it is always inspiring.
Mathematics for the Digital Age and Programming in Python - An excellent textbook already used by many teachers to integrate programming into their STEM Classroom.

*If you are a Humanities teacher and would like to inspire your students with programming as well, I have seen it done very well using a program called Alice. It was designed by Randy Pausch (of The Last Lecture fame) and others at Carnegie Mellon University, and has been an exciting opportunity for students at middle school and older to create stories while learning how to program. This software is also free and there are many great examples and tutorials available on the Alice website.

I look forward to bringing you into this exciting world that will help you and your students go deeper in understanding and enjoyment of science and mathematics. Stay tuned for the tutorials and examples.