Why are you are putting SuperSOLVRS together?
I’m concerned about our kids getting prepared for the upcoming technological onslaught — including, of course, robotics. The world is getting much more technical and the so-called knowledge workers will prevail. Just being able to regurgitate facts will not be enough. So how to prepare? To that end, I asked several educators, researchers, and business folks — and I got the same answer. “We need folks who can think logically and have good problem-solving skills”.
Even the robotics professionals agreed. How about computer programming?, I asked. Turns out to be a secondary concern. “If you can think clearly, and can problem solve, that’s enough. I can teach you whatever computer language we’ll be using. Just learn a general purpose textual language, C, Python, Java, etc.”
But aren’t our schools taking care of all that?
In a word, no. The world is rapidly getting more technical. I don’t believe that the schools will be able to keep up. I appreciate what the schools are doing, but they are functioning under so many budgetary and regulatory constraints. The technology is running away from them.
Consider the annual, “Hour of Code” that has been going on for a few years. It has some 200,000 plus events scheduled worldwide this year. Impressive, but coding (the actual process of programming a computer) is a very small part of building any real-world application. The rest is design, debugging, maintenance, updating, etc. Those parts aren’t even mentioned. For sure, that hour gets kids interested but fails to lay out a path for really learning any language or how it should be professionally implemented. They make it attractive and seem easy, but miss many important items. Frankly, it’s misleading.
Look, a computer (or several) will be involved with almost any device, I think it’s important for kids to understand the basic mechanics and to implant in their brain that it is a machine and devoid of intelligence. Someone has to tell it exactly what to do. If you miss even one step the program fails. Not so bad when it’s some game or application that moves icons around a screen. But, what if the error happens to a program running a robot that is driving a bolt into a socket and somehow “chooses” your head instead?
The folks that teach at schools (Grade, High, and College) are stars but are usually not experienced professionals in their fields. They are educators first and foremost, but they’ve never built systems that other folks use (and paid for) — or lived with the maintenance issues once users start to use a product. It’s not just “Hey, fix this!”, but “Gee, can’t you add this feature?” So common in the real world. How to design the software and any interfaces so that it is easy to fix and update. Takes skill and experience. Not easy — important to understand that importance and get a solid foundation early on.
What makes you qualified for this?
Most of my working life has centered around projects that involved computers. I grew up with the whole computer revolution. In the late 50’s I started with the ILLIAC I, at the U of Illinois, one of the first digital computers. No windows, just machine language, with punched paper tape input and output. Hard to believe it was possible to do meaningful work with such a crude device.
A few years later while collecting a Ph.D. in physics at Berkeley, I spent years designing and building unique analysis computer programs. Since then I switched careers, became an economic-finance associate professor at Northwestern’s MBA school, and founded three firms that used computers extensively. During that time I became familiar with some 20+ programming languages and spent considerable time teaching others. We made very elaborate programs for clients. We invented and used many standard approaches that are common industry practice now.
I also ran a similar course to this one with my grandkids last summer. They learned the fundamentals of programming, design, etc. Now, they are familiar with good design and programming principles. All of that can be taught at the beginning.
What will your classes be like?
They should be interesting and fun. The only way to learn anything technical is to solve lots of problems. It’s not a spectator sport. They’ll learn by doing — not the usual lecture, take notes, take-a-test approach. We’ll have a multiple project approach. It works like this: at the beginning, I describe a problem and show the solution, then pose a more complex or difficult problem and let the students “have at it”. Then, at the next class solve that problem, present some new material and pose another problem/project. This will continue over and over, throughout the year.
All of this will be available online, using Google Hangouts (at least at first). The proper term is “Synchronous eLearning” Much of it will resemble an online “office hour”. I will also emphasize team work. I’m counting on the current experience that most kids have playing multi-player games on the internet with remote team mates to help. That teammate may be in another city.
Any final thoughts?
Learning to think logically and set up problems so a computer can help is important now and will be even more so in the future. Why not start right? The principles are well known — start correctly — be better prepared for the future. Remembering facts is important — but learning how to break down complex problems, devising a solution plan, and implementing it can’t be overemphasized. Learning those skills is like learning to play a musical instrument. Few will master it, but anyone can get very good over time — it’s important to start properly — develop good habits.
My goal is to help kids start right. we can all become SuperSOLVRS.