Sunday, March 29, 2015

Every Educated Person Should Learn the Grand Ideas of Computer Science

We take for granted that educated people should understand the grand ideas of science.  For example, the Big Bang theory, the theory of evolution, the atomic theory of matter -- these ideas are major human achievements.  They are also fun and beautiful ideas that are essential to understanding the world around us, and to participating in our increasingly technical society.  Every high school student learns these ideas -- you don't have to earn an undergraduate degree in biology to learn the theory of evolution. 

Unfortunately, high school students do not learn the grand ideas of computer science.  I believe that most non-computer scientists do not know any of the grand ideas of computer science, nor could they enumerate the subfields of computer science.  Most people equate computer science with programming, which is a bit like equating physics with electronics design.  Computer science and physics are the sciences behind the technologies. 

I posit that all high school students should learn the major results of computer science at a basic level: ideas such as computer networks, operating systems, development of programming languages and databases, artificial intelligence, computational complexity theory, and computer graphics.  I believe that the major results from these subfields could be explained at the high school level in a month.  I also believe they could be explained without teaching students how to code, and that the recent emphasis on teaching coding is a distraction from the bigger and more important notion of teaching the grand ideas of computer science to every member of our society.

No comments:

Post a Comment