Animated Problem Solving: An Introduction to Program Design Using Video Game Development
暫譯: 動畫問題解決:透過遊戲開發介紹程式設計

Morazán, Marco T.

  • 出版商: Springer
  • 出版日期: 2023-01-15
  • 售價: $2,610
  • 貴賓價: 9.5$2,480
  • 語言: 英文
  • 頁數: 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.

商品描述(中文翻譯)

這本教科書探討了使用類型驅動設計的系統性問題解決和系統性推理。全書強調了兩種問題解決技術:分而治之迭代精煉。分而治之是將一個大型問題拆分為兩個或更多較小的問題,這些小問題更容易解決,然後將這些小問題的解決方案結合起來以形成對原問題的答案。迭代精煉是逐步改善問題解決方案的過程——就像一篇文章的草稿一樣。掌握這些技術對於成為一名優秀的問題解決者和程式設計師至關重要。

本書分為五個部分。第一部分專注於基礎知識。它從如何編寫表達式開始,隨後引導到決策和函數,作為問題解決的基礎。第二部分介紹了有限大小的複合數據,而第三部分則涵蓋了任意大小的複合數據,例如列表、區間、自然數和二元樹。它還介紹了結構性遞歸,這是一種強大的數據處理策略,利用分而治之來處理大小不固定的數據。接下來,第四部分深入探討抽象,展示如何消除問題解決方案中的重複。它還介紹了泛型程式設計,這是對所處理數據類型的抽象。這導致了對函數是數據的認識,或許更令人驚訝的是,數據也是函數,這自然引導到物件導向程式設計。第五部分介紹了分散式程式設計,即使用多台計算機來解決問題。

本書承諾,讀者在結束時將設計並實現一個可以與朋友在互聯網上遊玩的多人視頻遊戲。然而,為了實現這一目標,讀者必須首先學習許多有關問題解決和程式設計的知識。這個遊戲是通過迭代精煉開發的。讀者將逐步學習程式設計以及如何應用新知識來開發越來越好的視頻遊戲版本。這樣,讀者可以練習在專業生涯及以後可能會普遍存在的現代趨勢。