Translate

Search This Blog

Total Pageviews

Java, OO, Design, Open-Free books, lectures, handouts, tutorials

Here are some links to free literature to help you learn Java.





  • Lectures

  •  Course Description:

        This course assumes prior programming experience in Java (or C) and is designed to sharpen students' programming skills and expand their knowledge of basic data structures. The course extends object-oriented programming techniques to cover Java's API and data structures, such as hash tables, linked lists, stacks, queues, and binary trees and an introduction to the analysis of algorithms that operate on those structures.

       
    Course Objectives:

        Further develop the knowledge of object-based and event-driven programming
        Gain an understanding (design, analysis, and implementation) of basic data structures.
        Provide an introduction to algorithm efficiency and complexity in terms of running time and space.





  • Beginners books

    • OO related
    • See 7 sample chapters from An Introduction to Object-Oriented Programming by Timothy A Budd

    • Object-Oriented Programming used Java 2006 by David J. Eck, et al (based on Timothy A Budd's textbook) School of Computer Science University of KwaZulu-Natal
    • This book takes a full-immersion approach to object-oriented programming. Proper object-oriented design practices are emphasized throughout the book. Students learn how to use the standard classes first, then learn to design their own classes.

      It uses a gentler approach to teaching students how to design their own classes, separating the coverage into two chapters. GUI coverage is also located independently in the back of the book and can be covered if desired.
    • OOP - Learn Object Oriented Thinking & Programming 2013 by Rudolf Pecinovsky
    • ...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...
    • Object-oriented Programming in JavaTM Textbook by Richard L. Halterman 2008
    • It is aimed at students with little or no programming experience, and it uses DrJava as a vehicle for student experimentation object-oriented programming concepts.
    • Object Oriented Programming using Java 2009 by Simon Kendal
    • This book will explain the Object Oriented approach to programming and through the use of small exercises, for which feedback is provided, develop some practical skills as well. At the end of the book one larger case study will be used to illustrate the application of the techniques. This will culminate in the development of a complete Java program which can be downloaded with this book. Topics covered include : Abstraction, Inheritance, Polymorphism, Object Oriented Software Analysis and Design, The Unified Modelling Language (UML) , Agile Programming and Test Driven Development. ...

      ...This text is designed not as a theoretical textbook but as a learning tool to aid in understanding theoretical concepts and learning the practical skills required to implement these. To this end each chapter will incorporate small exercises with solutions and feedback provided....
    • Building Skills in Object-Oriented Design (in Java and Python) 2009 by Steven F. Lott
    • This book has 49 chapters that will help you build OO design skills through the creation of a moderately complex family of application programs. This is a step-by-step guide to OO design and implementation.

      This book uses Objects First Approach. Students learn to design with objects from the start. In more traditional approaches, students first learn "programming basics in the context of procedural programming in the small." Since this frame of reference is essentially useless when attacking large-scale problems, students must later "re-learn how to approach problems. Instructors can present material from a point of view that will "make sense" throughout the curriculum. Presentation and justification of programming principles and good techniques is easier.

      The intent of this book is to help the beginning designer by giving them a sequence of interesting and moderately complex exercises in OO design. This book can also help managers develop a level of comfort with the process of OO software development. The applications we will build are a step above trivial, and will require some careful thought and design. Further, because the applications are largely recreational in nature, they are interesting and engaging. This book allows the reader to explore the processes and artifacts of OO design before project deadlines make good design seem impossible.
    • Introduction to Java and Object Oriented Programming for Web Applications 2009 pdf by Alvin J. Alexander
    • Start building Java based web applications now, even if you're a complete newcomer to Java. Comprehensive and example driven, This book is all you need to develop dynamic Java-based web applications using JSP, connect to databases with JSF, and put them into action using the world's most popular open source Java web server, Apache Tomcat.

      Java
    • Introduction to Programming Using Java, Version 7.0, August 2014 by David J. Eck
    • despite other most renowned textbooks use good programming habits/practices since the start and introduces design. Is complete with exercises (exist also the version 8 -in beta final but perfectly usable- based on Java 8, summer 2018 )
      ...textbook on introductory programming, which uses Java as the language of instruction. This book is directed mainly towards beginning programmers, although it might also be useful for experienced programmers who want to learn something about Java. It is certainly not meant to provide complete coverage of the Java language...
    • Java, Java, Java: Object-Oriented Problem Solving 2012 by R. Morelli and R. Walde
    • Functional and flexible, this guide takes an objects-first approach to Java programming and problem using games and puzzles.

      We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the "objects first" approach to programming and problem solving that was characteristic of the first two editions. Throughout the text we emphasize careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.
    • Introduction to Computer Science by Robert Sedgewick and Kevin Wayne
    • Our book is an interdisciplinary approach to the traditional CS1 curriculum. We teach all of the classic elements of programming, using an "objects-in-the-middle" approach that emphasizes data abstraction. The book is organized around four areas of computer science: programming, machine architecture, theory, and systems.
    • Java Lecture Notes (HTML) by Elliotte Rusty Harold 2006
    • These are the lecture notes I use in my course, Introduction to Java Programming, taught most semesters at Polytechnic University in Brooklyn. This class is being taught at the senior undergraduate and introductory graduate level for computer science majors, and is split into 13, two hour fifteen minute classes plus a final exam
    • Bruce Eckel's Thinking in Java 4th Edition(Covers Java 5/6) in various formats








    • Design books

      • Object-Oriented Reengineering Patterns
      • 2003 by Serge Demeyer, Stéphane Ducasse, Oscar Nierstrasz
        Object-Oriented Reengineering Patterns collects and distills successful techniques in planning a reengineering project, reverse-engineering, problem detection, migration strategies and software redesign.

        Based on the authors' industrial experiences, this book is a guide on how to reverse engineer legacy systems to understand their problems, and then reengineer those systems to meet new demands. Patterns are used to clarify and explain the process of understanding large code bases, hence transforming them to meet new requirements. The key insight is that the right design and organization of your system is not something that can be evident from the initial requirements alone, but rather as a consequence of understanding how these requirements evolve.
      • Seamless Object-Oriented Software Architecture: Analysis and Design of Reliable Systems
      • 1995 by Kim Walden and Jean-Marc Nerson
        This book shows how a consistent set of object-oriented abstractions can be applied throughout the process, based on three major ideas: seamlessness, reversibility, and contracting.

        This book focuses on Business Object Notation(BON) approach and includes case studies, exercises and comprehensive appendices.

        The book is intended for software professionals as well as for students at the graduate and undergraduate levels. We believe it can be read by anyone who has acquired a general understanding of the problems of software engineering, and who has some inclination for abstract thinking.
      • A Functional Pattern System for Object-Oriented Design 1999 by Thomas Kuhne
      • Design patterns inspired by functional programming concepts can advance object-oriented design. This thesis promotes the idea that concepts from the world of functional programming can be captured with design pattern descriptions. These can then be used to benefit from functional programming concepts with ordinary object-oriented languages. The functional patterns are evaluated for their impact on language design and a new approach to a dual-paradigm language is presented.
      • Working With Objects - The OOram Software Engineering Method 1996 byTrygve Reenskaug, P. Wold, O.A. Lehne
      • The main theme of this book is to describe complex phenomena as structures of interacting objects. The goal is to provide a comprehensive description of the object paradigm and its applications, and to show how it supports a number of different views on the same model.

        The object-oriented methodology OOram is new and different from all others on the market, and has been in use and development in Norway for over 12 years. This book is the authoritative account of the OOram methodology for software analysis, design, development, maintenance, and reuse.
      • Object-Oriented Software Composition 1995 by Oscar Nierstrasz and Dennis Tsichritzis
      • Over the part ten years, object-oriented technology has started to have a significant impact in industry. Despite its many positive aspects, there have been some problems in successfully applying the technology to large projects, and in achieving adequate levels of flexibilitly and software reuse.

        Based on the research of the Object Systems Group in Geneva, this book looks at a range of issues, from programming languages and systems through to tools, frameworks and methods.

        KEY FEATURES: Chapters are self-contained, with the development of ideas moving from programming language design issues to environments and applications. Aware of recent trends, the book examines the development of multimedia systems as an application domain. Up-to-date information on the activities of the Object Systems Group. The authors can be found on the World Wide Web.
      • How to Design Classes 2011 by Matthias Felleisen, et al.

      • Touch of Class: Learning to Program Well with Objects and Contracts 2009 by Bertrand Meyer (some pages)
      • Is this really a book about Eiffel? Perhaps in some senses it is not. It is a book about exactly what the subtitle indicates: Learning to Program Well with Objects and Contracts. (Primary emphasis should fall on the word "Well".) ...
      • Software Innovation: Eight work-style heuristics for creative system developers
      • 2010 by Jeremy Rose
        Innovation is the forgotten key to modern systems development - the element that defines the enterprising engineer, the thriving software firm and the cutting edge software application. Traditional forms of technical education pay little attention to creativity – often encouraging overly rationalistic ways of thinking which stifle the ability to innovate. Professional software developers are often drowned in commercial drudgery and overwhelmed by work pressure and deadlines. The topic that will both ensure success in the market and revitalize their work lives is never addressed. This book sets out the new field of software innovation. It organizes the existing scientific research into eight simple heuristics - guiding principles for organizing a system developer's work-life so that it focuses on innovation.
      • Pride and Paradev: a collection of agile software testing contradictions 2015 by Alister Scott
      • What's a paradev?

        A paradev is anyone on a software team that doesn't just do programming.

        Who's this book for?

        This book is for paradevs who do, or would like to do, software testing on an agile team.

        Why contradictions?

        "The test of a first rate intelligence is the ability to hold two opposed ideas in the mind at the same time, and still retain the ability to function."~ F. Scott Fitzgerald
      • The Architecture of Open Source Applications - Elegance, Evolution, and a Few Fearless Hacks 2011 by Amy Brown and Greg Wilson
      • Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes.

        This book's goal is to change that. In it, the authors of twenty-five open source applications explain how their software is structured, and why. What are each program's major components? How do they interact? And what did their builders learn during their development? In answering these questions, the contributors to this book provide unique insights into how they think....















    • Tutorials









    • On JavaRanch we have our Camp Fire Stories where you can learn some Java concepts in a lighter vein: http://www.javaranch.com/campfire.jsp






    • And the JavaRanch Journal contains articles covering all aspects of Java from elementary to advanced: http://www.javaranch.com/journal/






    • You can learn all about Swing from the book Swing, including the full text of the first edition
    • A number of books are available for free from TheServerSide: Mastering EJB 3.0, Jakarta Struts Live, The J2EE Architect's Handbook, Servlets and JSP: The J2EE Technology Web Tier, Java Testing and Design, EJB Design Patterns






    • Bruce Perens Open Source Series of books makes the full text of tech books available 6 months after publication, e.g. "Apache Jakarta Commons: Reusable Java Components" and "Java Application Development on Linux"






    • Textbook classics by Niklaus Wirth: Algorithms and Data Structures and Compiler Construction






    • The 2nd edition of Volume 1 of Core Servlets and JSP is available as PDF for free.






    • The JNI book Java Native Interface: Programmer's Guide and Specification is available for free.






    • A collection of examples from Java Examples - Learn Java Programming by Examples










    • A huge list of freely available programming books for every taste and level, warmly recommended
    • No comments:

      Post a Comment

      Note: Only a member of this blog may post a comment.