Animated Problem Solving: An Introduction to Program Design Using Video Game Development

Morazán, Marco T.

  • 出版商: Springer
  • 出版日期: 2023-01-15
  • 售價: $2,570
  • 貴賓價: 9.5$2,442
  • 語言: 英文
  • 頁數: 688
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 3030850935
  • ISBN-13: 9783030850937
  • 相關分類: 程式語言遊戲設計 Game-design
  • 海外代購書籍(需單獨結帳)

商品描述

This textbook is about systematic problem solving and systematic reasoning using type-driven design. There are two problem solving techniques that are emphasized throughout the book: divide and conquer and iterative refinement. Divide and conquer is the process by which a large problem is broken into two or more smaller problems that are easier to solve and then the solutions for the smaller pieces are combined to create an answer to the problem. Iterative refinement is the process by which a solution to a problem is gradually made better-like the drafts of an essay. Mastering these techniques are essential to becoming a good problem solver and programmer.

The book is divided in five parts. Part I focuses on the basics. It starts with how to write expressions and subsequently leads to decision making and functions as the basis for problem solving. Part II then introduces compound data of finite size, while Part III covers compound data of arbitrary size like e.g. lists, intervals, natural numbers, and binary trees. It also introduces structural recursion, a powerful data-processing strategy that uses divide and conquer to process data whose size is not fixed. Next, Part IV delves into abstraction and shows how to eliminate repetitions in solutions to problems. It also introduces generic programming which is abstraction over the type of data processed. This leads to the realization that functions are data and, perhaps more surprising, that data are functions, which in turn naturally leads to object-oriented programming. Part V introduces distributed programming, i.e., using multiple computers to solve a problem.

This book promises that by the end of it readers will have designed and implemented a multiplayer video game that they can play with their friends over the internet. To achieve this, however, there is a lot about problem solving and programming that must be learned first. The game is developed using iterative refinement. The reader learns step-by-step about programming and how to apply new knowledge to develop increasingly better versions of the video game. This way, readers practice modern trends that are likely to be common throughout a professional career and beyond.

商品描述(中文翻譯)

這本教科書介紹了系統性問題解決和系統性推理的方法,並運用了基於類型的設計。全書強調兩種問題解決技巧:「分而治之」和「迭代改進」。分而治之是將一個大問題分解為兩個或更多較容易解決的小問題,然後將這些小問題的解決方案結合起來,得出問題的答案。迭代改進是逐步改進問題的解決方案,就像修改一篇文章的草稿一樣。掌握這些技巧對成為一個優秀的問題解決者和程式設計師至關重要。

這本書分為五個部分。第一部分著重介紹基礎知識。從如何撰寫表達式開始,逐步引導讀者進入決策和函數,作為解決問題的基礎。第二部分介紹了有限大小的複合數據,而第三部分則涵蓋了任意大小的複合數據,例如列表、區間、自然數和二叉樹。它還介紹了結構遞歸,一種使用分而治之處理大小不固定的數據的強大策略。接下來,第四部分深入探討抽象化,展示如何消除解決問題中的重複。它還介紹了泛型編程,即對處理的數據類型進行抽象化。這導致了函數是數據,而數據也是函數的認識,進而自然地引導到面向對象的編程。第五部分介紹了分散式編程,即使用多台計算機來解決問題。

這本書承諾讀者在閱讀結束時將設計並實現一個可以在網絡上與朋友一起玩的多人視頻遊戲。然而,為了實現這一目標,讀者首先需要學習很多關於問題解決和程式設計的知識。遊戲的開發過程使用迭代改進的方法。讀者逐步學習程式設計,並將新知識應用於開發越來越好的遊戲版本。通過這種方式,讀者可以練習現代趨勢,這些趨勢在職業生涯中很可能普遍存在,並且超越職業生涯。