We are now living in an era of digital revolution. On the horizon, many emerging digital technologies, such as IoT (Internet of Things), AI (Artificial Intelligence), Cyber Security, Blockchain, and more are being developed at breathtaking speed. Whether we like it or not, whether we are ready or not, these digital technologies are going to penetrate deeper and deeper into every aspect of our lives. This is going to fundamentally change how we live, how we work, and how we socialize. Java, as a modern high-level programming language, is an excellent tool for helping us to learn these digital technologies, as well as to develop digital applications.
The aim of this book is to use Java as a tool to help readers to learn these new digital technologies, to demystify these digital technologies, and to be better prepared for the future.
This book is divided into three parts. Part I provides a basic introduction of Java programming language and gets readers started with Java programming. The chapters in Part II provide Java examples of conventional programming topics like console applications, Windows applications, network applications, and mobile applications. All of that is preparation for Part III. These chapters are the core of the book, providing an easy to read guide for the latest digital technologies (IoT, AI, Cyber Security, Blockchain, and Big Data), illustrated with Java programming examples.
All the example source code is available on the website that accompanies this book.
This book is intended for university/college students, as well as software and electronic hobbyists, researchers, developers, and R&D engineers. It assumes that readers have a basic understanding of computers and a computer's main components such as CPU, RAM, hard drive, network interfaces, and so on. Readers should be able to use a computer competently, performing basic tasks such as switching on and off the computer, logging in and out, running some programs, and copying/moving/deleting files. It also assumes that readers have some basic programming experience, ideally in Java, but optionally also in other languages such as C/C++, Fortran, MatLAB, C#, BASIC, or Python, and that they know the basic syntax, the different types of variables, standard inputs and outputs, the conditional selections, and structures like loops and subroutines. Finally, it assumes that readers have a basic concept of computer networks and the Internet, and can use some of the most commonly used Internet services such as the World Wide Web, email, file download/upload, and online banking/shopping. This book can be used as a core textbook as well as a supplemental textbook.
This book is not for readers just want to learn Java programming language; there are already a lot of good Java programming books on the market. However, in order to make the information here accessible to as many programmers as possible, the first three chapters provide a basic introduction to Java and show how to get started with Java programming; so even if you have never programmed Java before, you can still use the book. If you want to learn all technical details of Java, please refer to the following suggested prerequisite reading list and to Appendix A for more books and resources.
The following sources will be helpful if you need more background to get up to speed on any of the topics covered in this book.
Absolute Beginner's Guide to Computer Basics, 5th Edition, Michael Miller, QUE, 2009.
Computers for Beginners (Wikibooks)
Head First Java, 2nd Edition, Kathy Sierra, Bert Bates, O'Reilly Media; 2005.
Effective Java, 3rd Edition, Joshua Bloch, Addison-Wesley Professional, 2017
Java: A Beginner's Guide, 6th Edition, Herbert Schildt, McGraw-Hill Education; 2014
Java: The Complete Reference, 9th Edition, Herbert Schildt, McGraw-Hill Education; 2014.
Java Programming (Wikibooks)
Computing Fundamentals: Digital Literacy Edition, Faithe Wempen with Rosemary Hattersley, Richard Millett, Kate Shoup, ISBN: 978-1-118-97474-2, 2014.
Understanding Data Communications: From Fundamentals to Networking, 3rd Edition, Gilbert Held, ISBN: 978-0-471-62745-6, 2000.
Communication Networks (Wikibooks)
Raspberry Pi For Dummies (For Dummies (Computers)), 3rd Edition, Sean McManus and Mike Cook, John Wiley & Sons, 2017.
To work through the examples in this book, you will need the following:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
)https://www.raspberrypi.org/
) (optional)