Classic Computer Science Problems in Java 🔍
David Kopec
Manning Publications Company, 1, 2020
英语 [en] · PDF · 7.6MB · 2020 · 📘 非小说类图书 · 🚀/lgli/lgrs/nexusstc/zlib · Save
描述
Sharpen your coding skills by exploring established computer science problems! Classic Computer Science Problems in Java challenges you with time-tested scenarios and algorithms.
Summary
Sharpen your coding skills by exploring established computer science problems! Classic Computer Science Problems in Java challenges you with time-tested scenarios and algorithms. Youll work through a series of exercises based in computer science fundamentals that are designed to improve your software development abilities, improve your understanding of artificial intelligence, and even prepare you to ace an interview. As you work through examples in search, clustering, graphs, and more, you'll remember important things you've forgotten and discover classic solutions to your "new" problems!
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the technology
Whatever software development problem youre facing, odds are someone has already uncovered a solution. This book collects the most useful solutions devised, guiding you through a variety of challenges and tried-and-true problem-solving techniques. The principles and algorithms presented here are guaranteed to save you countless hours in project after project.
About the book
Classic Computer Science Problems in Java is a master class in computer programming designed around 55 exercises that have been used in computer science classrooms for years. Youll work through hands-on examples as you explore core algorithms, constraint problems, AI applications, and much more.
What's inside
Recursion, memoization, and bit manipulation
Search, graph, and genetic algorithms
Constraint-satisfaction problems
K-means clustering, neural networks, and adversarial search
About the reader
For intermediate Java programmers.
About the author
David Kopec is an assistant professor of Computer Science and Innovation at Champlain College in Burlington, Vermont.
Table of Contents
1 Small problems
2 Search problems
3 Constraint-satisfaction problems
4 Graph problems
5 Genetic algorithms
6 K-means clustering
7 Fairly simple neural networks
8 Adversarial search
9 Miscellaneous problems
10 Interview with Brian Goetz
Summary
Sharpen your coding skills by exploring established computer science problems! Classic Computer Science Problems in Java challenges you with time-tested scenarios and algorithms. Youll work through a series of exercises based in computer science fundamentals that are designed to improve your software development abilities, improve your understanding of artificial intelligence, and even prepare you to ace an interview. As you work through examples in search, clustering, graphs, and more, you'll remember important things you've forgotten and discover classic solutions to your "new" problems!
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.
About the technology
Whatever software development problem youre facing, odds are someone has already uncovered a solution. This book collects the most useful solutions devised, guiding you through a variety of challenges and tried-and-true problem-solving techniques. The principles and algorithms presented here are guaranteed to save you countless hours in project after project.
About the book
Classic Computer Science Problems in Java is a master class in computer programming designed around 55 exercises that have been used in computer science classrooms for years. Youll work through hands-on examples as you explore core algorithms, constraint problems, AI applications, and much more.
What's inside
Recursion, memoization, and bit manipulation
Search, graph, and genetic algorithms
Constraint-satisfaction problems
K-means clustering, neural networks, and adversarial search
About the reader
For intermediate Java programmers.
About the author
David Kopec is an assistant professor of Computer Science and Innovation at Champlain College in Burlington, Vermont.
Table of Contents
1 Small problems
2 Search problems
3 Constraint-satisfaction problems
4 Graph problems
5 Genetic algorithms
6 K-means clustering
7 Fairly simple neural networks
8 Adversarial search
9 Miscellaneous problems
10 Interview with Brian Goetz
备用文件名
nexusstc/Classic Computer Science Problems in Java/cf9c8afa92f2c825ecf63f0783291e86.pdf
备用文件名
lgrsnf/1617297607.pdf
备用文件名
zlib/Computers/Programming/David Kopec/Classic Computer Science Problems in Java_11064954.pdf
备选标题
Классические задачи Computer Science на языке Java: 16+
备选作者
Дэвид Копец; [перевел с английского А. Павлов]
备选作者
Kopec, David
备选作者
Копец, Дэвид
备用出版商
Manning Publications Co. LLC
备用出版商
Питер
备用版本
Серия "Библиотека программиста", Санкт-Петербург [и др.], Russia, 2022
备用版本
United States, United States of America
备用版本
Simon & Schuster, Shelter Island, 2020
备用版本
Shelter Island, NY, 2020
备用版本
New York, 2021
备用版本
PS, 2021
元数据中的注释
lg2891789
元数据中的注释
{"isbns":["1617297607","9781617297601"],"last_page":264,"publisher":"Manning"}
元数据中的注释
Фактическая дата выхода в свет - 2021
Библиогр.: с. 284-287
Пер.: Kopec, David Classic computer science problems in Java Shelter Island : Manning, 2020 978-1617297601
Библиогр.: с. 284-287
Пер.: Kopec, David Classic computer science problems in Java Shelter Island : Manning, 2020 978-1617297601
元数据中的注释
РГБ
元数据中的注释
Russian State Library [rgb] MARC:
=001 010913589
=005 20211213165009.0
=008 211202s2022\\\\ru\\\\\\\\\\\\000\|\rus|d
=017 \\ $a КН-П-21-085171 $b RuMoRKP
=020 \\ $a 978-5-4461-3911-8 $c 1000 экз.
=040 \\ $a RuMoRKP $b rus $e rcr $d RuMoRGB
=041 1\ $a rus $h eng
=044 \\ $a ru
=080 \\ $a 004.438 $2 4
=084 \\ $a З973.26-018.19Java,07 $2 rubbk
=100 1\ $a Копец, Дэвид
=245 00 $a Классические задачи Computer Science на языке Java : $b 16+ $c Дэвид Копец ; [перевел с английского А. Павлов]
=260 \\ $a Санкт-Петербург [и др.] $b Питер $c 2022
=300 \\ $a 287 с. $b ил. $c 23 см
=336 \\ $a Текст (визуальный)
=337 \\ $a непосредственный
=490 0\ $a Серия "Библиотека программиста"
=500 \\ $a Фактическая дата выхода в свет - 2021
=504 \\ $a Библиогр.: с. 284-287
=520 \\ $a Столкнулись с неразрешимой проблемой при разработке программного обеспечения? Скорее всего, кто-то уже справился с этой задачей, и вы можете не ломать голову. Дэвид Копец собрал наиболее полезные готовые решения, принципы и алгоритмы. - это мастер-класс по программированию, содержащий 55 практических примеров, затрагивающих самые актуальные темы: базовые алгоритмы, ограничения, искусственный интеллект и многое другое
=534 \\ $p Пер.: $a Kopec, David $t Classic computer science problems in Java $c Shelter Island : Manning, 2020 $z 978-1617297601
=650 \7 $a Программирования языки объектно-ориентированные $2 RuMoRKP
=650 \7 $a Техника. Технические науки -- Энергетика. Радиоэлектроника -- Радиоэлектроника -- Вычислительная техника -- Вычислительные машины электронные цифровые -- Персональные компьютеры -- Программирование -- Языки программирования -- Java -- Пособие для специалистов
=653 \\ $a Java
=852 \\ $a РГБ $b FB $j 2 21-66/282 $x 90
=852 7\ $a РГБ $b CZ2 $h З973.2-018/К65 $x 83
=001 010913589
=005 20211213165009.0
=008 211202s2022\\\\ru\\\\\\\\\\\\000\|\rus|d
=017 \\ $a КН-П-21-085171 $b RuMoRKP
=020 \\ $a 978-5-4461-3911-8 $c 1000 экз.
=040 \\ $a RuMoRKP $b rus $e rcr $d RuMoRGB
=041 1\ $a rus $h eng
=044 \\ $a ru
=080 \\ $a 004.438 $2 4
=084 \\ $a З973.26-018.19Java,07 $2 rubbk
=100 1\ $a Копец, Дэвид
=245 00 $a Классические задачи Computer Science на языке Java : $b 16+ $c Дэвид Копец ; [перевел с английского А. Павлов]
=260 \\ $a Санкт-Петербург [и др.] $b Питер $c 2022
=300 \\ $a 287 с. $b ил. $c 23 см
=336 \\ $a Текст (визуальный)
=337 \\ $a непосредственный
=490 0\ $a Серия "Библиотека программиста"
=500 \\ $a Фактическая дата выхода в свет - 2021
=504 \\ $a Библиогр.: с. 284-287
=520 \\ $a Столкнулись с неразрешимой проблемой при разработке программного обеспечения? Скорее всего, кто-то уже справился с этой задачей, и вы можете не ломать голову. Дэвид Копец собрал наиболее полезные готовые решения, принципы и алгоритмы. - это мастер-класс по программированию, содержащий 55 практических примеров, затрагивающих самые актуальные темы: базовые алгоритмы, ограничения, искусственный интеллект и многое другое
=534 \\ $p Пер.: $a Kopec, David $t Classic computer science problems in Java $c Shelter Island : Manning, 2020 $z 978-1617297601
=650 \7 $a Программирования языки объектно-ориентированные $2 RuMoRKP
=650 \7 $a Техника. Технические науки -- Энергетика. Радиоэлектроника -- Радиоэлектроника -- Вычислительная техника -- Вычислительные машины электронные цифровые -- Персональные компьютеры -- Программирование -- Языки программирования -- Java -- Пособие для специалистов
=653 \\ $a Java
=852 \\ $a РГБ $b FB $j 2 21-66/282 $x 90
=852 7\ $a РГБ $b CZ2 $h З973.2-018/К65 $x 83
备用描述
Classic Computer Science Problems in Java
brief contents
contents
acknowledgments
about this book
liveBook discussion forum
about the author
about the cover illustration
Introduction
Who should read this book
How this book is organized: A roadmap
About the code
Other online resources
1 Small problems
1.1 The Fibonacci sequence
1.1.1 A first recursive attempt
1.1.2 Utilizing base cases
1.1.3 Memoization to the rescue
1.1.4 Keep it simple, Fibonacci
1.1.5 Generating Fibonacci numbers with a stream
1.2 Trivial compression
1.3 Unbreakable encryption
1.3.1 Getting the data in order
1.3.2 Encrypting and decrypting
1.4 Calculating pi
1.5 The Towers of Hanoi
1.5.1 Modeling the towers
1.5.2 Solving The Towers of Hanoi
1.6 Real-world applications
1.7 Exercises
2 Search problems
2.1 DNA search
2.1.1 Storing DNA
2.1.2 Linear search
2.1.3 Binary search
2.1.4 A generic example
2.2 Maze solving
2.2.1 Generating a random maze
2.2.2 Miscellaneous maze minutiae
2.2.3 Depth-first search
2.2.4 Breadth-first search
2.2.5 A* search
2.3 Missionaries and cannibals
2.3.1 Representing the problem
2.3.2 Solving
2.4 Real-world applications
2.5 Exercises
3 Constraint-satisfaction problems
3.1 Building a constraint-satisfaction problem framework
3.2 The Australian map-coloring problem
3.3 The eight queens problem
3.4 Word search
3.5 SEND+MORE=MONEY
3.6 Circuit board layout
3.7 Real-world applications
3.8 Exercises
4 Graph problems
4.1 A map as a graph
4.2 Building a graph framework
4.2.1 Working with Edge and UnweightedGraph
4.3 Finding the shortest path
4.3.1 Revisiting breadth-first search (BFS)
4.4 Minimizing the cost of building the network
4.4.1 Working with weights
4.4.2 Finding the minimum spanning tree
4.5 Finding shortest paths in a weighted graph
4.5.1 Dijkstra’s algorithm
4.6 Real-world applications
4.7 Exercises
5 Genetic algorithms
5.1 Biological background
5.2 A generic genetic algorithm
5.3 A naive test
5.4 SEND+MORE=MONEY revisited
5.5 Optimizing list compression
5.6 Challenges for genetic algorithms
5.7 Real-world applications
5.8 Exercises
6 K-means clustering
6.1 Preliminaries
6.2 The k-means clustering algorithm
6.3 Clustering governors by age and longitude
6.4 Clustering Michael Jackson albums by length
6.5 K-means clustering problems and extensions
6.6 Real-world applications
6.7 Exercises
7 Fairly simple neural networks
7.1 Biological basis?
7.2 Artificial neural networks
7.2.1 Neurons
7.2.2 Layers
7.2.3 Backpropagation
7.2.4 The big picture
7.3 Preliminaries
7.3.1 Dot product
7.3.2 The activation function
7.4 Building the network
7.4.1 Implementing neurons
7.4.2 Implementing layers
7.4.3 Implementing the network
7.5 Classification problems
7.5.1 Normalizing data
7.5.2 The classic iris data set
7.5.3 Classifying wine
7.6 Speeding up neural networks
7.7 Neural network problems and extensions
7.8 Real-world applications
7.9 Exercises
8 Adversarial search
8.1 Basic board game components
8.2 Tic-tac-toe
8.2.1 Managing tic-tac-toe state
8.2.2 Minimax
8.2.3 Testing minimax with tic-tac-toe
8.2.4 Developing a tic-tac-toe AI
8.3 Connect Four
8.3.1 Connect Four game machinery
8.3.2 A Connect Four AI
8.3.3 Improving minimax with alpha-beta pruning
8.4 Minimax improvements beyond alpha-beta pruning
8.5 Real-world applications
8.6 Exercises
9 Miscellaneous problems
9.1 The knapsack problem
9.2 The Traveling Salesman Problem
9.2.1 The naive approach
9.2.2 Taking it to the next level
9.3 Phone number mnemonics
9.4 Real-world applications
9.5 Exercises
10 Interview with Brian Goetz
Appendix A—Glossary
Appendix B—More resources
Java
Data structures and algorithms
Artificial intelligence
Functional programming
index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z
brief contents
contents
acknowledgments
about this book
liveBook discussion forum
about the author
about the cover illustration
Introduction
Who should read this book
How this book is organized: A roadmap
About the code
Other online resources
1 Small problems
1.1 The Fibonacci sequence
1.1.1 A first recursive attempt
1.1.2 Utilizing base cases
1.1.3 Memoization to the rescue
1.1.4 Keep it simple, Fibonacci
1.1.5 Generating Fibonacci numbers with a stream
1.2 Trivial compression
1.3 Unbreakable encryption
1.3.1 Getting the data in order
1.3.2 Encrypting and decrypting
1.4 Calculating pi
1.5 The Towers of Hanoi
1.5.1 Modeling the towers
1.5.2 Solving The Towers of Hanoi
1.6 Real-world applications
1.7 Exercises
2 Search problems
2.1 DNA search
2.1.1 Storing DNA
2.1.2 Linear search
2.1.3 Binary search
2.1.4 A generic example
2.2 Maze solving
2.2.1 Generating a random maze
2.2.2 Miscellaneous maze minutiae
2.2.3 Depth-first search
2.2.4 Breadth-first search
2.2.5 A* search
2.3 Missionaries and cannibals
2.3.1 Representing the problem
2.3.2 Solving
2.4 Real-world applications
2.5 Exercises
3 Constraint-satisfaction problems
3.1 Building a constraint-satisfaction problem framework
3.2 The Australian map-coloring problem
3.3 The eight queens problem
3.4 Word search
3.5 SEND+MORE=MONEY
3.6 Circuit board layout
3.7 Real-world applications
3.8 Exercises
4 Graph problems
4.1 A map as a graph
4.2 Building a graph framework
4.2.1 Working with Edge and UnweightedGraph
4.3 Finding the shortest path
4.3.1 Revisiting breadth-first search (BFS)
4.4 Minimizing the cost of building the network
4.4.1 Working with weights
4.4.2 Finding the minimum spanning tree
4.5 Finding shortest paths in a weighted graph
4.5.1 Dijkstra’s algorithm
4.6 Real-world applications
4.7 Exercises
5 Genetic algorithms
5.1 Biological background
5.2 A generic genetic algorithm
5.3 A naive test
5.4 SEND+MORE=MONEY revisited
5.5 Optimizing list compression
5.6 Challenges for genetic algorithms
5.7 Real-world applications
5.8 Exercises
6 K-means clustering
6.1 Preliminaries
6.2 The k-means clustering algorithm
6.3 Clustering governors by age and longitude
6.4 Clustering Michael Jackson albums by length
6.5 K-means clustering problems and extensions
6.6 Real-world applications
6.7 Exercises
7 Fairly simple neural networks
7.1 Biological basis?
7.2 Artificial neural networks
7.2.1 Neurons
7.2.2 Layers
7.2.3 Backpropagation
7.2.4 The big picture
7.3 Preliminaries
7.3.1 Dot product
7.3.2 The activation function
7.4 Building the network
7.4.1 Implementing neurons
7.4.2 Implementing layers
7.4.3 Implementing the network
7.5 Classification problems
7.5.1 Normalizing data
7.5.2 The classic iris data set
7.5.3 Classifying wine
7.6 Speeding up neural networks
7.7 Neural network problems and extensions
7.8 Real-world applications
7.9 Exercises
8 Adversarial search
8.1 Basic board game components
8.2 Tic-tac-toe
8.2.1 Managing tic-tac-toe state
8.2.2 Minimax
8.2.3 Testing minimax with tic-tac-toe
8.2.4 Developing a tic-tac-toe AI
8.3 Connect Four
8.3.1 Connect Four game machinery
8.3.2 A Connect Four AI
8.3.3 Improving minimax with alpha-beta pruning
8.4 Minimax improvements beyond alpha-beta pruning
8.5 Real-world applications
8.6 Exercises
9 Miscellaneous problems
9.1 The knapsack problem
9.2 The Traveling Salesman Problem
9.2.1 The naive approach
9.2.2 Taking it to the next level
9.3 Phone number mnemonics
9.4 Real-world applications
9.5 Exercises
10 Interview with Brian Goetz
Appendix A—Glossary
Appendix B—More resources
Java
Data structures and algorithms
Artificial intelligence
Functional programming
index
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z
备用描述
**Sharpen your coding skills by exploring established computer science problems! __Classic Computer Science Problems in Java__ challenges you with time-tested scenarios and algorithms.****Summary**__Classic Computer Science Problems in Java__**About the technology****About the book**__Classic Computer Science Problems in Java__**What's inside****About the reader****About the author****David Kopec****Table of Contents**
备用描述
Столкнулись с неразрешимой проблемой при разработке программного обеспечения? Скорее всего, кто-то уже справился с этой задачей, и вы можете не ломать голову. Дэвид Копец собрал наиболее полезные готовые решения, принципы и алгоритмы. - это мастер-класс по программированию, содержащий 55 практических примеров, затрагивающих самые актуальные темы: базовые алгоритмы, ограничения, искусственный интеллект и многое другое
备用描述
This book is a master class in computer programming designed around 55 exercises that have been used in computer science classrooms for years. Youll work through hands-on examples as you explore core algorithms, constraint problems, AI applications, and much more. -- Edited summary from book
开源日期
2020-12-23
🚀 快速下载
成为会员以支持书籍、论文等的长期保存。为了感谢您对我们的支持,您将获得高速下载权益。❤️
🐢 低速下载
由可信的合作方提供。 更多信息请参见常见问题解答。 (可能需要验证浏览器——无限次下载!)
- 低速服务器(合作方提供) #1 (稍快但需要排队)
- 低速服务器(合作方提供) #2 (稍快但需要排队)
- 低速服务器(合作方提供) #3 (稍快但需要排队)
- 低速服务器(合作方提供) #4 (稍快但需要排队)
- 低速服务器(合作方提供) #5 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #6 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #7 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #8 (无需排队,但可能非常慢)
- 低速服务器(合作方提供) #9 (无需排队,但可能非常慢)
- 下载后: 在我们的查看器中打开
所有选项下载的文件都相同,应该可以安全使用。即使这样,从互联网下载文件时始终要小心。例如,确保您的设备更新及时。
外部下载
-
对于大文件,我们建议使用下载管理器以防止中断。
推荐的下载管理器:JDownloader -
您将需要一个电子书或 PDF 阅读器来打开文件,具体取决于文件格式。
推荐的电子书阅读器:Anna的档案在线查看器、ReadEra和Calibre -
使用在线工具进行格式转换。
推荐的转换工具:CloudConvert和PrintFriendly -
您可以将 PDF 和 EPUB 文件发送到您的 Kindle 或 Kobo 电子阅读器。
推荐的工具:亚马逊的“发送到 Kindle”和djazz 的“发送到 Kobo/Kindle” -
支持作者和图书馆
✍️ 如果您喜欢这个并且能够负担得起,请考虑购买原版,或直接支持作者。
📚 如果您当地的图书馆有这本书,请考虑在那里免费借阅。
下面的文字仅以英文继续。
总下载量:
“文件的MD5”是根据文件内容计算出的哈希值,并且基于该内容具有相当的唯一性。我们这里索引的所有影子图书馆都主要使用MD5来标识文件。
一个文件可能会出现在多个影子图书馆中。有关我们编译的各种数据集的信息,请参见数据集页面。
有关此文件的详细信息,请查看其JSON 文件。 Live/debug JSON version. Live/debug page.