You can find a whole range of programming textbooks intended for complete beginners. However, this one is exceptional to certain extent. The whole textbook is designed as a record of the dialogue of the author with his daughter who wants to learn programming. The author endeavors not to explain the Java programming language to the readers, but to teach them real programming. To teach them how to think and design the program as the experienced programmers do. Entire matter is explained in a very illustrative way which means even a current secondary school student can understand it quite simply.
The book comes out of the author's long-term experience with teaching children, university students as well as professional programmers. The author teaches programming according to the Architecture First methodology which reacts at the companies' complaints that the school graduates are usually good in coding, but bad in software architecture. Coding itself is gradually taken over by various code-generators, but the work of the architect will stay irreplaceable for a long time. The author pursues the pedagogical principle saying that those items considered as the most important should be presented as soon as possible. Therefore he leads the readers to apply the proper design of the architecture of the created program and to avoid common mistakes since the very beginning.
For designing the programs, the development environment BlueJ is used, which is proposed specially for the beginners and which enables explaining, demonstrating and programming a number of basic architectonic constructs without leaving the architectonic level and degrading to the code level. The book is divided into three parts. The first one deals with the explanation of basic constructs of the object oriented programming and all proposed programs are created by the code-generator incorporated in BlueJ. The second part repeats the explained constructs and the readers can learn how to code the proposed program similarly as was done by the generator in the first part. The third part presents constructs which are beyond the bounds of abilities of the used code-generator, and therefore the readers have to program them themselves. Despite that, the explanation core keeps in the level of architecture.
The book is determined above all for complete beginners. However, the experience proved that even the intermediate programmers can find a lot of interesting and informative in it.
This open book is licensed under a Open Publication License (OPL). You can download OOP - Learn Object Oriented Thinking and Programming ebook for free in PDF format (6.7 MB).
Table of Contents
The OOP - Get Acquainted
We Are Sending First Messages
The Test Class
The Messages Requiring a Value
The Messages Requiring an Object
The Messages with Parameters
The Object Type Parameters
The Expedition into the Interior of Instances
The Interface Continued
The Introduction into Design Patterns
The Inheritance of Interface Types
Mediator and Listener
Basics of Creating OO Programs
The First Code
The First Constructor
The Fields and the Methods
Implementation of an interface
Using of this
The Local Variables
Methods Returning a Value
Strings and How to Work with Them
A Bit of Logic
Class Methods and Fields
Refactoring of the Code
Static Constructor - Class Constructor
Creating of an Standalone Application
Advanced Creating of OO Programs
Linking of Instances
Teaching Cars to Turn
Controlling from Keyboard
Containers and Maps
Further Programming Constructions
The Factory Method Second Time
Lists and Their Ordering