Preface


The main goal of this book is to present the basic concepts and techniques for object-oriented modeling and object-oriented programming principles. Because solution design is a creative activity, this book attempts to exploit the creative and critical thinking capacity of students in finding solutions to problems and implementing the solutions applying high-level, object-oriented programming principles.

The fundamental principles of problem solving techniques and illustrations of these principles are introduced with simple problems and their solutions, which are initially described mainly in pseudo-code. In the first few chapters, emphasis is on modeling and design. The principles of object-oriented modeling and programming are gradually introduced in solving problems. From a modeling point of view, objects are introduced early and represented in UML diagrams.

This book avoids stressing the syntax of the programming language from the beginning. This helps students in dealing with the difficulty of understanding the underlying concepts in problem solution and later programming.

The main conceptual tools used are modeling diagrams, pseudo-code, and some flowcharts that are applied to simplify the understanding of the design structures. The overall goal is to provide an easier way to understand problem solving by developing solutions in pseudo-code and implementing them as working programs. This also enhances the learning process as the approach allows one to isolate the problem solving and programming principle aspects from the programming language (Java) to be used for final implementation of the problem solution.

When implementing problem solutions, students can construct working programs using the Kennesaw Java Preprocessor (KJP) programming language, and then convert to Java with the KJP translator. Compilation and execution of Java programs is carried out with the standard SDK Java software from Sun Microsystems. All Java classes can be used with KJP. This helps the students in their transition from object-oriented modeling and design to implementation with Java.

Standard pseudo-code constructs are explained and applied to the solution design of various case studies. General descriptions of the data structures needed in problem solutions are also discussed. The KJP language is introduced, which is a slightly enhanced pseudo-code notation. The KJP translator tool is used to convert (translate) a problem solution described in pseudo-code into Java. The assumption here is that, even after they learn Java, students will always use pseudo-code in the design phase of software development.

KJP is a high-level, programming language that facilitates the teaching and learning of the programming principles in an object-oriented context. The notation includes conventional pseudo-code syntax and is much easier to read, understand, and maintain than standard object-oriented programming languages.

The KJP translator tool carries out syntax checking and automatically generates an equivalent Java program. The KJP language has the same semantics as Java, so the transition from KJP to Java is, hopefully, very smooth and straightforward. The main motivation for designing the KJP language and developing the KJP translator was the quest for a higher-level language to teach programming principles, and at the same time, to take advantage of the Java programming language for all the functionality and capabilities offered.

The overall goal is to help students reason about the problem at hand, design the possible solutions to the problem, and write programs that are:

  • Easy to write

  • Easy to read

  • Easy to understand

  • Easy to modify

For most of the topics discussed, one or more complete case studies are presented and explained with the corresponding case study in pseudocode. The KJP software tool used for converting a problem solution to Java is applied in the lab exercises. Appendix A explains the usage of the KJP translator and the jGRASP development environment (Auburn University); Appendix B briefly lists the contents of the included CD-ROM. The most recent version of the KJP software and the various case studies are available from the following Web page:

  • http://science.kennesaw.edu/~jgarrido/kjp.html

The important features of the book that readers can expect are:

  • The emphasis on starting with modeling and design of problem solution and not programming with Java. The syntax details are not initially emphasized.

  • The use of pseudo-code to describe problem solution, KJP as the high-level programming language, and Java as the ultimate implementation language. Java is chosen as the implementation language because it is one of the most important programming language today.

  • When used as a teaching tool, the facilitation of understanding large and complex problems and their solutions, and gives the gives guidance on how to approach the implementation to these problems.

  • The practical use of object-oriented concepts to model and solve real problems.

  • A good practical source of material to understand the complexities of problem solving and programming, and their applications.

Instead of presenting examples in a cookbook manner that students blindly follow, this book attempts to stimulate and challenge the reasoning capacity and imagination of the students. Some of the problems presented at the end of the chapters make it necessary for students to look for possible solution(s) elsewhere. It also prepares students to become good programmers with the Java programming language.

I benefitted from the long discussions with my colleagues who are involved directly or indirectly in teaching the various sections of CSIS 2301 (Programming Principles I), CSIS 2302 (Programming Principles II), and related courses in the Department of Computer Science and Information Systems at Kennesaw State University. I am thankful to Mushtaq Ahmed, Ray Cobb, Richard Gayler, Hisham Haddad, Ben Setzer, Chong-Wei Xu, and Richard Schlesinger.

I am especially thankful to Mushtaq Ahmed for his help with the chapter on recursion, and to Chong-Wei Xu for his help with the chapter on threads. I am also thankful to the students in the pilot section of CSIS 2300 (Introduction to Computing) who have used the first six chapters of the book. The graduate students in the course IS 8020 (Object-Oriented Software Development) applied and reviewed most of the material in the book. I want to thank David Pallai and Bryan Davidson of Charles River Media for their help in producing the book.

J. M. Garrido
Kennesaw, GA




Object-Oriented Programming(c) From Problem Solving to Java
Object-Oriented Programming (From Problem Solving to JAVA) (Charles River Media Programming)
ISBN: 1584502878
EAN: 2147483647
Year: 2005
Pages: 184

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net