Object-Oriented Programming with Java


The main book

Y.D. Liang., "Introduction to Java Programming", Prentice Hall, 7th Ed., 2009.

Slides for the book

(The slides are available from the campus computers)
  1. Chapter 1: Intoduction to Computers, Programs, and Java
  2. Chapter 2: Elementary Programming
  3. Chapter 3: Selections
  4. Chapter 4: Loops
  5. Chapter 5: Methods
  6. Chapter 6: Arrays
  7. Chapter 7: Classes and Objects
  8. Chapter 8: Strings
  9. Chapter 9: Thinking in Objects
  10. Chapter 10: Inheritance and Polymorphism
  11. Chapter 11:Abstract Classes and Interfaces
  12. Chapter 12: OOD and Patterns
  13. Chapter 13: GUI Basics
  14. Chapter 14: Graphics
  15. Chapter 15: Event-Driven Programming
  16. Chapter 16: Creating User Interface
  17. Chapter 17: Applets and Multimedia
  18. Chapter 18: Exception Handling
  19. Chapter 19: Binary I/O
  20. Chapter 21: Generics
  21. Chapter 22: Java Collections Framework
  22. Chapter 30: Networking
  23. Chapter 33: Containers, Layout Managers, and Borders
  24. Chapter 34: Menus, Toolbars, and Dialogs
  25. Chapter 35: MVC and Swing MVC
  26. Chapter 37: Java Database Programming


Lecture Notes

The Lecture Notes are based on the slides (see above) for the book:
Y.D. Liang, Introduction to Java Programming, Prentice Hall, 7th Ed., 2009.
(The slides are available from the campus computers only)

  1. Lecture 1a:Primitive Data Types and Operations, (Handouts)
  2. Lecture 1b: Methods, (Handouts)
  3. Lecture 2: Arrays, (Handouts).
  4. Lecture 3: Classes and Objects, (Handouts).
  5. Lecture 4: Strings, (Handouts)
  6. Lecture 5: Inheritance and Polymorphism, (Handouts)
  7. Lecture 6a: Packages, (Handouts) -- Updated 24.09.2009
  8. Lecture 6b: Javadoc, (Handouts)
  9. Lecture 7a: Classes and Objects, Internal and Wrapper Classes, (Handouts) -- Updated 24.09.2009

  10. Lecture 7b:Exceptions, (Handouts)
  11. Guest Lecture 8:Jeliot for Java: A program visualization tool, Andres Morena.
  12. Lecture 8: Input/Output, (Handouts)
  13. Lecture 9: Interfaces (Handouts) -- Updated 07.10.2009.
  14. Lecture 10: Getting Started with Graphics, (Handouts) -- Updated 14.10.2009: Shapes drawing is added!

  15. Lecture 11: Handling Action Events, (handouts).
  16. Lecture 12: User Interface, (handouts).
  17. Lecture 13: Mouse and Keyboard Events, (Handouts),
  18. Lecture 14: Java Collections Framework, (Handouts). -- Updated 16.10.2009!
  19. Lecture 15: Applets, URL, Images., (Handouts).

  20. Lecture 16: OOP Development, (Handouts).


Additional Literature:

  1. Eugene Ageenko. Object Oriented Programming with Java. University of Joensuu. 2003: free download
  2. P.Heller, S.Roberts, Complete Java 2 Certifcation Study Guide, 3rd Ed., Sybex, 2002.
  3. K.A. Mughal, R.W. Rasmussen, A Programmer's Guide to Java Certification. Addison-Wesley, 2nd Ed, 2003.
  4. Timothy Budd. An Introduction to Object-Oriented Programming, 2nd ed. 1997 (3rd ed. 2001) Addison Wesley.
  5. Timothy Budd. Understanding Object-Oriented Programming with Java, updated ed.
  6. Clark S. Lindsey, Johnny S. Tolliver, and Thomas Lindblad. JavaTech: Introduction to Scientific and Technical Computing with Java.
  7. Xiaoping Jia. Object-Oriented Software Development using JavaTM, Principles, Practice, and Frameworks, 2nd ed. Addison Wesley. 2003


Java Reading (on Internet):

  1. [Java Language Specification 3.0
  2. [ http://www.cs.utexas.edu/~lavender/courses/tutorial/index.html]
  3. Object-Oriented Programming
    [ http://www.cs.utexas.edu/~lavender/courses/cs371/lectures/index.html]
  4. Interactive Programming in Java
    [http://www.cs101.org/ipij/2
  5. Introduction to Java Programming
    [ http://cs.armstrong.edu/liang/intro5e/intro5estudentsolution.html]

Java with Sun

  1. JavaTM 2 Platform Standard Edition 5.0 API Specification
  2. J.Gosling, B.Joy, G.Steele, G. Bracha, The Java Language Specification, 3rd edition:

  3. Java Tutorial: A practical guide for programmers
    [http://java.sun.com/docs/books/tutorial/index.html]
  4. Getting started (inc. "Your First Cup of Java") - teaches to write, compile and run first program and applet in Java
    [http://java.sun.com/docs/books/tutorial/getStarted/index.html]
  5. Learning the Java Language
  6. Writing applets
    [http://java.sun.com/docs/books/tutorial/applet/index.html]
  7. User Interfaces that Swing: A Quick Start Guide - a good introduction to SWING,
    [http://java.sun.com/docs/books/tutorial/uiswing/mini/index.html]
  8. Creating a User Interface (AWT only): (available only for download)
    [http://java.sun.com/docs/books/tutorial/information/download.html]
  9. Creating a GUI with JFC/Swing - a separate SWING Tutorial
    [http://java.sun.com/docs/books/tutorial/uiswing/index.html]
  10. Essential Java Classes - exceptions, threads, I/O, ...
    [http://java.sun.com/docs/books/tutorial/essential/index.html]
  11. jGURU courses
    [http://developer.java.sun.com/developer/onlineTraining/index.html]

  12. Essentials of the JavaTM Programming Language: A Hands-On Guide - covers basics of various important programming aspects with Java: Swing GUI, Servlets, databases, RMI, sockets, serialization, internationalization, ...


UML Resources:

UML Resource Center and Visual Paradigm Tutorials

UML Class Diagram with ARGO UML Tutorial