What is next for Computer Science education in the next 10-20 years? originally appeared on Quora - the knowledge sharing network where compelling questions are answered by people with unique insights.
Well, in 20 years, I'll be 87. That is two years younger than my 2nd great grandfather, James Louis Carson. He was at Enon College when he died two years later in 1896. So did the school. So I hope that isn't a prophecy.
Now assuming that a host of circumstances do not require me to withdraw from life early, I'm hopeful that all of you kids, 65 and younger, take care to make this world a place where there is opportunity, respect, forbearance, patience, justice, mercy, prudence, tolerance, kindness, consideration, thoughtfulness, commitment, engagement, curiosity, enlightenment, and discovery, with ample abundance for all.
You don't have to accomplish that before I'm 100. Life is about direction, not destination. I'm just recommending paths loaded with these virtues. Choose fertile ground and love to grow.
However, do not discount challenges and hardship. It is only through engaging hardship that virtue takes form and root. It is only by engaging challenges that opportunity grows. Simply settle for the hardships and challenges that come your way. Avoid be their author.
Now to the point.
Algorithms, data structures, and their notation are essential elements for expressing rational thought. Hopefully, in the next two decades, we will wake up to the need for being literate. Yes, we need to be skilled at using the tools of the Information Age. But, far more, we need to better understand the world we live in, the world we have the responsibility to care for. I'm not limiting this to "nature". I'm talking about your neighbor, your neighbor's neighbor, and so forth. And "so forth" is simply not sufficient for expressing structure or processes in the coming decades.
So what will happen to Computer Science? The body of work will stand and expand. The more formal and rigorous, the longer the useful life. I teach Architecture and the Theory of Computation. Many of the basic principles of computer science were known only by a few of us some 50 years ago. Now they are the substance of much of what you perceive, especially in CyberSpace. (Hey, Hal Bergel, I'm still using the term.)
OK, so we are now 8 hours into my answering these questions. Did you know that I have read Quora since it first came out? Do you know why I submitted an answer? Well I had a recurrence of pneumonia. I couldn't sleep. And, I took the plunge. Heady folks, with whom I am delighted be associated, found me out. So sometimes a little good comes out of hardship. Of course, for some of you, I imagine reading this is hardship compounded. Now back to computer science education.
Back in the 1980's when we were still discussing the name for the discipline, nobody liked the term "computer science" or "computer engineering". However, the language had taken root. Even as the names and curricula change, there will certainly be folks who are computer scientists, computer engineers, and software engineers.
There may be more kinds of engineers. They love to differentiate. (That is a pun.) Regardless, the core of the CS core will remain and will be introduced at earlier levels of education. The outer core will evolve with the needs of industry and society.
What will stay in the core? Computation theory, programming, data structures, and algorithms, and, hopefully, primitive machine architecture. What will evolve most rapidly? Design, in all its glory, and effective ways to manage the design of services.
The great challenges we face will have a significant imprint on our discipline.
That is good news. That means that the CS core knowledge will be that much more valuable. And, it will mean that you will evolve, provided that you bought into the idea of developing a love for a lifetime of learning. That is what college is about.
Discrete transportation is too expensive, intrusive, and dangerous in all but a diminishing number of cases. We must evolve systems of transportation that are rooted in modern technology.
We have to come to grips with the production of food, goods, and people. Computer science is making a huge impact here with the exception of population growth. However, as people become enlightened and engaged, birthrate drops. This beats the heck out of war, pestilence, and famine.
We must come to grips with beliefs that injure others. God is good. We can be good too. But, that will not happen by accident. Life is about choice.
We must deal with the ravages of disease and aging. Computer science is essential here. We need to help figure out how we fit into life locally, on the planet, and in our universe. We may be tiny, but we are not insignificant. Let's live in grace.
We need to learn how to deal with success and the distribution of wealth. As the Information Age and the Industrial Age merge, we need to figure out a better way to live than in a disparate automated production economy.
Yes, the soviet economy was among the most recent casualties. However, our world of incentives and barriers does not compute. It is far too cruel and exclusive. We need to figure out how to be productive and good, together.
Have I meddled enough? Let's see, politics, religion, economics, education. Yes, I've hit all of the hot spots. Wow, my mom would be serving ice cream now. She always did that when conversation got intense at home. Ice cream is a panacea. Can you tell that I've been writing for 10 hours? Pitiful.
So, in closing, here is the good news. Everything that I mentioned are problems. There is no problem shortage for problem solvers. There are only financial and trust barriers to solve some of them. There are plenty that you can solve in your lifetime.
Can you go outside, look around, and be thankful that you are alive? Problem solved.
If you see some creature minding its business can you be thankful that the creature is alive? Problem solved.
Can you feel the life that you cannot see or hear? Problem solved.
If there is a small problem, maybe a piece of garbage on the street, can you solve that problem for your world? Can you join worlds with others? Can you be a good citizen and a good person? Problems solved.
You can do this. Just make sure you get a little help from your friends.
BillThis question originally appeared on Quora. - the knowledge sharing network where compelling questions are answered by people with unique insights. You can follow Quora on Twitter, Facebook, and Google+. More questions:
- Competitive Programming: Why do teams from some universities in some countries tend to dominate the ICPC?
- Computer Programming: What is the very best training strategy for the ACM ICPC that you've ever encountered?
- Massive Open Online Courses: How do you think MooCs like those offered from Coursera are impacting CS education?