Muutke küpsiste eelistusi
  • Formaat - EPUB+DRM
  • Hind: 43,42 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

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. You&;ll 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 you&;re 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. You&;ll 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
Acknowledgments xiii
About This Book xv
About The Author xvi
About The Cover Illustration xvii
Introduction 1(6)
0.1 Who should read this book
2(1)
0.2 How this book is organized: A roadmap
3(1)
0.3 About the code
4(1)
0.4 Other online resources
5(2)
1 Small Problems
7(20)
1.1 The Fibonacci sequence
7(6)
A first recursive attempt
7(2)
Utilizing base cases
9(1)
Memoization to the rescue
10(2)
Keep it simple, Fibonacci
12(1)
Generating Fibonacci numbers with a stream
13(1)
1.2 Trivial compression
13(5)
1.3 Unbreakable encryption
18(3)
Getting the data in order
18(1)
Encrypting and decrypting
19(2)
1.4 Calculating pi
21(1)
1.5 The Towers of Hanoi
22(3)
Modeling the towers
23(1)
Solving The Towers of Hanoi
23(2)
1.6 Real-world applications
25(1)
1.7 Exercises
26(1)
2 Search Problems
27(32)
2.1 DNA search
27(8)
Storing DNA
27(3)
Linear search
30(1)
Binary search
31(2)
A generic example
33(2)
2.2 Maze solving
35(17)
Generating a random maze
37(1)
Miscellaneous maze minutiae
38(1)
Depth-first search
39(5)
Breadth-first search
44(3)
A* search
47(5)
2.3 Missionaries and cannibals
52(6)
Representing the problem
53(2)
Solving
55(3)
2.4 Real-world applications
58(1)
2.5 Exercises
58(1)
3 Constraint-Satisfaction Problems
59(21)
3.1 Building a constraint-satisfaction problem framework
60(4)
3.2 The Australian map-coloring problem
64(3)
3.3 The eight queens problem
67(3)
3.4 Word search
70(6)
3.5 SEND+MORE=MONEY
76(1)
3.6 Circuit board layout
77(1)
3.7 Real-world applications
78(1)
3.8 Exercises
79(1)
4 Graph Problems
80(27)
4.1 A map as a graph
80(3)
4.2 Building a graph framework
83(6)
Working with Edge and Unweighted Graph
88(1)
4.3 Finding the shortest path
89(2)
Revisiting breadth-first search (BFS)
89(2)
4.4 Minimizing the cost of building the network
91(9)
Working with weights
91(4)
Finding the minimum spanning tree
95(5)
4.5 Finding shortest paths in a weighted graph
100(5)
Dijkstra's algorithm
100(5)
4.6 Real-world applications
105(1)
4.7 Exercises
106(1)
5 Genetic Algorithms
107(21)
5.1 Biological background
107(1)
5.2 A generic genetic algorithm
108(8)
5.3 A naive test
116(2)
5.4 SEND+MORE=MONEY revisited
118(4)
5.5 Optimizing list compression
122(3)
5.6 Challenges for genetic algorithms
125(1)
5.7 Real-world applications
126(1)
5.8 Exercises
127(1)
6 K-Means Clustering
128(18)
6.1 Preliminaries
129(2)
6.2 The k-means clustering algorithm
131(7)
6.3 Clustering governors by age and longitude
138(4)
6.4 Clustering Michael Jackson albums by length
142(2)
6.5 K-means clustering problems and extensions
144(1)
6.6 Real-world applications
145(1)
6.7 Exercises
145(1)
7 Fairly Simple Neural Networks
146(30)
7.1 Biological basis?
147(1)
7.2 Artificial neural networks
148(6)
Neurons
148(1)
Layers
149(1)
Backpropagation
150(4)
The big picture
154(1)
7.3 Preliminaries
154(2)
Dot product
154(1)
The activation function
155(1)
7.4 Building the network
156(7)
Implementing neurons
157(1)
Implementing layers
158(2)
Implementing the network
160(3)
7.5 Classification problems
163(9)
Normalizing data
164(1)
The classic iris data set
165(4)
Classifying wine
169(3)
7.6 Speeding up neural networks
172(1)
7.7 Neural network problems and extensions
173(1)
7.8 Real-world applications
174(1)
7.9 Exercises
175(1)
8 Adversarial Search
176(25)
8.1 Basic board game components
176(2)
8.2 Tic-tac-toe
178(11)
Managing tic-tac-toe state
178(4)
Minimax
182(3)
Testing minimax with tic-tac-toe
185(2)
Developing a tic-tac-toe AI
187(2)
8.3 Connect Four
189(9)
Connect Four game machinery
189(6)
A Connect Four AI
195(2)
Improving minimax with alpha-beta pruning
197(1)
8.4 Minimax improvements beyond alpha-beta pruning
198(1)
8.5 Real-world applications
199(1)
8.6 Exercises
200(1)
9 Miscellaneous Problems
201(17)
9.1 The knapsack problem
201(5)
9.2 The Traveling Salesman Problem
206(7)
The naive approach
207(6)
Taking it to the next level
213(1)
9.3 Phone number mnemonics
213(3)
9.4 Real-world applications
216(1)
9.5 Exercises
216(2)
10 Interview With Brian Goetz
218(14)
Appendix A Glossary 232(6)
Appendix B More resources 238(3)
Index 241
David Kopec is an assistant professor of computer science and innovation at Champlain College in Burlington, Vermont. He is the author of Dart for Absolute Beginners (Apress, 2014), Classic Computer Science Problems in Swift (Manning, 2018), and Classic Computer Science Problems in Python (Manning, 2019).