We’re talking technology, here, i.e., computer programming, logic, problem-solving, and computational thinking. Sounds pretty cut and dried. Remember, “Turn to the back of the chapter and we will now solve problem number 25 — and pay attention, it may be on the test!” Snore!
First of all, problems that you’ll run into tend to be poorly defined. A big part of deciding how to “solve it” and to figure out what part a computer can play is always a challenge. There is seldom a straightforward solution. A critical part is figuring out how to better define the problem and understand what is possible to “solve”.
That process involves abstraction. Usually, there is way too much information available. You have to decide what data is relevant (meaning, useful!). Often you’ll be dealing with data from different kinds of sensors. For example, the “problem” may be that someone wants to get information to better control or monitor a machine’s output. They may just ask to gather some information and display it so that they can “see what’s happening”. Sounds pretty simple. Maybe just keep tabs on an average value and some measure of spread. Might want to compute hourly or daily changes and even print out a warning, or ring a bell, if some values exceed tolerance. Lots of possibilities.
I guarantee that your first solution will be unsatisfactory, even if your system is working perfectly. Once folks start to use any system, you get complaints and “suggestions” for improvements. It’s a never ending process.
In both the original building process and the “fixing”, there are so many ways to go. It all comes down to expertise and choices. One of most common is, “Do I adapt previous routines (that work!) or build new ones?” If you have lots of experience and have a large “inventory” of routines, those choices will be better. Inspiration and creativity come into play here, big time. Good implementation skills are a plus.
Here’s an analogy (and a pretty good one): I’m a professional Jazz piano player. When I play I do a lot of improvising — mostly variations of tunes from the Great American Songbook. Folks ask me things like, “Do you just instantly come up with those notes? Is it instant composing?” Sure, just like Mozart! ? No, not really. What happens is that over time you develop little phrases that you like and commit them to memory. So you have a few hundred that you can draw upon and at any given time you choose one or more to play. It’s almost like, “play #45, then #52. hey, that worked ok. Maybe sneak in #67 on the next chorus.” The more experience you have and the more work you do increasing your inventory, the more creative and inspired a player you become. (BTW, the greats have an inventory that is HUGE — from my view, infinite.)
Even in applications that appear mundane, (e.g., a banking system), inspiration and creativity come into play. Breaking down the problems, figuring out a good way to solve them and then doing it. Ah, that’s the ticket!
A big part of the “Super” in SuperSOLVRS is emphasizing inspiration and creativity.