𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

Classic Computer Science Problems in Java

✍ Scribed by David Kopec


Publisher
Manning
Year
2020
Tongue
English
Leaves
264
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Table of Contents


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


πŸ“œ SIMILAR VOLUMES


Classic Computer Science Problems in Jav
✍ David Kopec πŸ“‚ Library πŸ“… 2021 πŸ› Manning 🌐 English

<b>Sharpen your coding skills by exploring established computer science problems! <i>Classic Computer Science Problems in Java</i> challenges you with time-tested scenarios and algorithms.</b> <b>Summary</b> Sharpen your coding skills by exploring established computer science problems! <i>Class

Classic Computer Science Problems in Pyt
✍ David Kopec πŸ“‚ Library πŸ“… 2019 πŸ› Manning Publications 🌐 English

Classic Computer Science Problems in Python deepens your knowledge of problem-solving techniques from the realm of computer science by challenging you with time-tested scenarios, exercises, and algorithms. As you work through examples in search, clustering, graphs, and more, you'll remember importan

Classic Computer Science Problems in Pyt
✍ David Kopec πŸ“‚ Library πŸ“… 2019 πŸ› Manning Pubns Co 🌐 English

<div><p><b>Summary</b></p><p><i>Classic Computer Science Problems in Python</i> deepens your knowledge of problem-solving techniques from the realm of computer science by challenging you with time-tested scenarios, exercises, and algorithms. As you work through examples in search, clustering, graphs

Classic Computer Science Problems in Pyt
✍ Kopec, David πŸ“‚ Library πŸ“… 2019 πŸ› Manning Publications Co 🌐 English

Classic Computer Science Problems in Python deepens your knowledge of problem-solving techniques from the realm of computer science by challenging you with time-tested scenarios, exercises, and algorithms. As you work through examples in search, clustering, graphs, and more, you'll remember importan

Classic computer science problems in Pyt
✍ Kopec, David πŸ“‚ Library πŸ“… 2019 πŸ› Manning Publications Co 🌐 English

<b>”Highly recommended to everyone interested in deepening their understanding of Python and practical computer science.” β€”Daniel Kenney-Jung, MD, University of Minnesota</b><br /><br /><b>Key Features</b><br /><br /><br /><br /><br />Master formal techniques taught in college computer science class