4 ms·
At first glance your idea seems to compelling. But then I realised that with chess, as with any other game, the desired outcome and the rules are fixed. In th
by CyberFonic 15y ago
At first glance your idea seems to compelling. But then I realised that with chess, as with any other game, the desired outcome and the rules are fixed. In the case of a computer program the outcome is the correct implementation of the specification (requirements). Since that is different for every application, there is no series of steps that will lead to the "correct" solution.
Therein lies one of the core challenges of software engineering education. Teaching programming languages is easy. Teaching the skills required for analysis and design for real-world sized problems is difficult.
- jinfiesto 15y agoThis is true. Chess, as opposed to Computer programming is well understood. I traveled this line of thought also. I came to a different conclusion though. Music for instance, is as abstract as Programming is, but it's possible to create small "quanta" of improvement all the same. I refuse to believe that programming is such a unique endeavor that it can't be subjected to a similar approach. Also, I don't think your analogy stands up totally well. Teaching the rules of chess is easy. Really good analysis requires years of practice. All the same, the state of chess pedagogy is fairly impressive. I wouldn't be surprised if someone out there has reached a low master class simply by studying tactics, openings, end games and strategy out of books (while playing very few games.)
- CyberFonic 15y agoI'm a lousy chess player, so I'll stick to your comment about "small quanta". What you suggest is one of the features of Agile Programming and the art of refactoring. Taking your music theme further, many applications are like a symphony or even an opera; large, complex, lots of performers, large complext score, need for a conductor, etc. Your chess inspired idea of programming is more like a jazz group - being clued in, playing off one another's riffs, improvising, etc without a score or conductor. Speaking of which, you might want to check out Live Coding (http://en.wikipedia.org/wiki/Live_coding http://en.wikipedia.org/wiki/Live_coding).