3 ms·
[Constructive Criticism] 1. Needs More examples - Examples gives a reader different avenues for understanding the problem better. Let's say they didn't unders
by chegra84 15y ago
[Constructive Criticism]
1. Needs More examples - Examples gives a reader different avenues for understanding the problem better. Let's say they didn't understanding Genetic Algorithm on the first go, they would be multiple opportunity to understand it with more examples. Enhancing the chance that they understand the material and recommend it to friends.
2. Give real code - Readers might not exactly get how mathematical symbols turns into code, but I think they will understand real code. You want to lower the barrier of entry to read your material. Many programmers never took Calculus I and II and most start like 12, don't limit your audience by being opaque.
3. Give readers exercise to test their knowledge - Reader should have some sign that they are understanding the material and giving exercise show them gaps in their understanding.
4. Give it a different name - Maybe "Essential AI Algorithms","Genetic Algorithms, Simulated Annealing and others" or "Optimisation Algorithm Bible", so that you wouldn't have to explain what is Metaheuristic
[/Constructive Criticism]
- steve19 15y ago> Give real code Yes! Also if possible provide both imperative, maybe python, and functional, maybe haskell, examples.
- SeanLuke 15y agoAll very smart comments, deserving of response. 1. I think the text really could use a lot more examples. And running demonstrations. Maybe for the next iteration. 2. Real code is nontrivial given the scope of the text -- but it'll please you that about two thirds of the algorithms in the text are implemented in ECJ, an evolutionary computation system I wrote which is fairly widely used. In Java though, not in Haskell. :-) I'm working towards getting everything implemented eventually. I'm surprised about your comment regarding pseudocode: I took a lot of pains to make the pseudocode as easy for laymen and undergrads to understand and I think it's proven pretty good in that aspect. 3. Exercises are not easy to devise in this area due to the stochastic nature of the algorithms. It is a real problem. 4. Yeah, the name took a long time and a lot of thought and not just by me. There are a lot of difficulties with the names you suggested -- in fact one of the early footnotes in the text discusses exactly this issue! It doesn't google well though.