That is changing. At some point down the road a computer or robot will need only a basic set of instructions and will have the ability to expand on those as needed. They'll be able to create newer more optimized versions of themselves and repair and reprogram themselves. This isn't too far off in the future.
I disagree. You can instruct a computer to do a lot of things... but a computer cannot dream and think. All it can do is crunch data and come up with likely solutions. Watson on jeopordy is a prime example. It took the question, scanned it's databases for likely answers, did it faster than the humans, and won. Take that database away and watson is just another fast computer. How did that database get put in? Why humans of course.
Computers cannot think and dream. Put a computer sans database, watson for example, put it out side and let it watch the clouds. Can it add to it's database and come up with and find something in a cloud that is has never seen before? Nope. All it can do it store the cloud images it has observed.
The best computer is the human mind. Always has been, always will be.