LEADER 04612nam 22005775 450 001 996490359703316 005 20230810175202.0 010 $a9783031043178$b(electronic bk.) 010 $z9783031043161 024 7 $a10.1007/978-3-031-04317-8 035 $a(MiAaPQ)EBC7099615 035 $a(Au-PeEL)EBL7099615 035 $a(CKB)24882712400041 035 $a(DE-He213)978-3-031-04317-8 035 $a(PPN)269129251 035 $a(EXLCZ)9924882712400041 100 $a20220923d2022 u| 0 101 0 $aeng 135 $aurcnu|||||||| 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 10$aAnimated Program Design$b[electronic resource] $eIntermediate Program Design Using Video Game Development /$fby Marco T. Morazán 205 $a1st ed. 2022. 210 1$aCham :$cSpringer International Publishing :$cImprint: Springer,$d2022. 215 $a1 online resource (515 pages) 225 1 $aTexts in Computer Science,$x1868-095X 311 08$aPrint version: Morazán, Marco T. Animated Program Design Cham : Springer International Publishing AG,c2022 9783031043161 327 $aPart I: Basic Problem Solving and Program Design -- 1. The Science of Problem Solving -- 2. The N-Puzzle Problem -- 3. Randomness -- Part II: Generative Recursion -- 4. Introduction to Generative Recursion -- 5. Sorting -- 6. Searching -- 7. N-Puzzle Version 2 -- 8. N-Puzzle Version 3 -- Part III: Accumulative Recursion -- 9. Accumulators -- 10. N-Puzzle Versions 4 and 5 -- 11. Iteration -- 12. N-Puzzle Version 6 -- 13. Continuation-Passing Style -- Part IV: Mutation -- 14. Sharing Values -- 15. Mutation Sequencing -- 16. Vectors -- 17. In-Place Operations -- 18. The Chicken and the Egg Paradox -- Part V: Epilogue -- 19. Where to go from here. 330 $aThis textbook presents a systematic methodology for program development by using design recipes, i.e. a series of steps, each with a specific outcome, that takes a problem solver from a problem statement to a working and tested programmed solution. It introduces the reader to generative recursion, heuristic searching, accumulative recursion, tail recursion, iteration, mutation, loops, program correctness, and vectors. It uses video game development to make the content fun while at the same time teaching problem-solving techniques. The book is divided into four parts. Part I presents introductory material on basic problem solving and program design. It starts by reviewing the basic steps of a design recipe using structural recursion on a list. It then proceeds to review code refactoring?a common technique used to refine programs when a better or more elegant way is found to solve a problem?and introduces the reader to randomness. Next, Part II explores a new type of recursion called generative recursion. It navigates the reader through examples involving fractal image generation, efficient sorting, and efficient searching techniques such as binary, depth-first, and breadth-first search. Part III then explores a new type of recursion called accumulative (or accumulator) recursion. Examples used include finding a path in a graph, improving insertion sorting, and list-folding operations. Finally, Part IV explores mutation. To aid the reader in properly sequencing mutations it presents Hoare Logic and program correctness. In addition, it introduces vectors, vector processing, in-place operations, and circular data. Throughout the whole book complexity analysis and empirical experimentation is used to evaluate solutions. This textbook targets undergraduates at all levels as well as graduate students wishing to learn about program design. It details advanced types of recursion, a disciplined approach to the use of mutation, and illustrates the design process by developing a video game exploiting iterative refinement. 410 0$aTexts in Computer Science,$x1868-095X 606 $aSoftware engineering 606 $aComputer programming 606 $aComputer games$xProgramming 606 $aSoftware Engineering 606 $aProgramming Techniques 606 $aGame Development 615 0$aSoftware engineering. 615 0$aComputer programming. 615 0$aComputer games$xProgramming. 615 14$aSoftware Engineering. 615 24$aProgramming Techniques. 615 24$aGame Development. 676 $a794.81526 700 $aMoraza?n$b Marco T.$01078509 801 0$bMiAaPQ 801 1$bMiAaPQ 801 2$bMiAaPQ 912 $a996490359703316 996 $aAnimated Program Design$92915936 997 $aUNISA