Computer ScienceScience & MathematicsEconomics & FinanceBusiness & ManagementPolitics & GovernmentHistoryPhilosophy

Think Java

How to Think Like a Computer Scientist

by Allen Downey, Chris Mayfield

Think Java

Subscribe to new books via telegram channel

DescriptionTable of ContentsDetailsHashtagsReport an issue

Book Description

Think Java is a hands-on introduction to computer science and programming used by many universities and high schools around the world. Its conciseness, emphasis on vocabulary, and informal tone make it particularly appealing for readers with little or no experience. The book starts with the most basic programming concepts and gradually works its way to advanced object-oriented techniques.

In this fully updated and expanded edition, authors Allen Downey and Chris Mayfield introduce programming as a means for solving interesting problems. Each chapter presents material for one week of a college course and includes exercises to help you practice what you've learned. Along the way, you'll see nearly every topic required for the AP Computer Science A exam and Java SE Programmer I certification.

Discover one concept at a time: tackle complex topics in a series of small steps with multiple examples; Understand how to formulate problems, think creatively about solutions, and develop, test, and debug programs; Learn about input and output, decisions and loops, classes and methods, strings and arrays, recursion and polymorphism; Determine which program development methods work best for you, and practice the important skill of debugging.

This open book is licensed under a Creative Commons License (CC BY-NC-SA). You can download Think Java ebook for free in PDF format (3.0 MB).

Table of Contents

Chapter 1
Computer Programming
Chapter 2
Variables and Operators
Chapter 3
Input and Output
Chapter 4
Methods and Testing
Chapter 5
Conditionals and Logic
Chapter 6
Loops and Strings
Chapter 7
Arrays and References
Chapter 8
Recursive Methods
Chapter 9
Immutable Objects
Chapter 10
Mutable Objects
Chapter 11
Designing Classes
Chapter 12
Arrays of Objects
Chapter 13
Objects of Arrays
Chapter 14
Extending Classes
Chapter 15
Arrays of Arrays
Chapter 16
Reusing Classes
Chapter 17
Advanced Topics
Appendix A
Appendix B
Appendix C
Appendix D
About the Authors

Book Details

Think Java
Computer Science
O'Reilly Media, Green Tea Press
ISBN13 Digital
ISBN10 Digital
PDF Size
3.0 MB

Related Books

Deep Learning with JavaScript
Deep learning has transformed the fields of computer vision, image processing, and natural language applications. Thanks to TensorFlow.js, now JavaScript developers can build deep learning apps without relying on Python or R. Deep Learning with JavaScript shows developers how they can bring DL technology to the web. Written by the main authors of t...
JavaScript: The First 20 Years
How a sidekick scripting language for Java, created at Netscape in a ten-day hack, ships first as a de facto Web standard and eventually becomes the world's most widely used programming language. This paper tells the story of the creation, design, evolution, and standardization of the JavaScript language over the period of 1995-2015. But the s...
Java Everywhere Again with DukeScript
For many years, Java Swing enabled developers to write applications that could run on any operating system. That all came to an end with the arrival of smart phones, tablets, and embedded computers. In the enterprise, the desktop dominated for many years. In the meantime, however, almost every IT project includes plans for a future where the app...
Computational Thinking Education
This book offers a comprehensive guide, covering every important aspect of computational thinking education. It provides an in-depth discussion of computational thinking, including the notion of perceiving computational thinking practices as ways of mapping models from the abstraction of data and process structures to natural phenomena. Further, it...
Programming Persistent Memory
Beginning and experienced programmers will use this comprehensive guide to persistent memory programming. You will understand how persistent memory brings together several new software/hardware requirements, and offers great promise for better performance and faster application startup times - a huge leap forward in byte-addressable capacity compar...
Designing Scalable JavaScript Applications
If you've ever written a non-trivial JavaScript application, you know that creating a code base that's easy to maintain and scales well over time is no small feat. The complexity only grows as the project becomes larger. While it's impossible to plan for every change that could possibly happen over the life of a project, you can help...