First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

AND102 - Introduction to Java Programming for Android Developers (5 days)

Course Outline

This course is for those who have relatively little programming experience and who would like to be able to develop Android applications. This course aims to provide a sound introduction to Java programming that will equip those completing the course with the necessary skills to develop Android applications and to understand how to program using the Android development framework. The Java programming skills learned on this course will also be applicable to studying Java programming for Java enterprise application development.


Attendees are expected to have some programming experience such as might have been learned by writing PHP programs or Javascript programs in the context of web application development, or possibly shell programming. An awareness of object oriented programming would be helpful.

Course Contents

Programming Languages - An overview

  • Interpreted vs. compiled programming languages
  • Procedural, declarative and object oriented languages

The essential building blocks of any programming language - and associated Java syntax

  • Data types
  • Functions and procedures
    • Passing arguments to functions - by reference or by value
  • Sequence
  • Choice
    • if .. else, switch
  • Iteration
    • while and do .. while loops
    • for loops

The essential aspects of object oriented programming

  • Classes and objects
  • Creating objects and calling methods
  • Inheritance
  • Polymorphism
  • Accessibility - private, public and protected
  • State
  • Object interactions

The Android Studio and IntelliJ IDEs (Integrated Development Environment)

  • Creating Java and Java Android projects
  • Editing and compiling Java code
  • Running applications
  • Java Archive (JAR) files
  • The importance of testing
  • The importance of version control

Basic Data Types

  • Numeric types - character and integer types, floating point number types
  • Arrays
  • References

Basic Terminal Input and Output

  • Keyboard input
  • Output to the screen

Java classes

  • Java application class
  • Using Java classes within an application
  • Instance variables
  • Creating and using instances of classes
  • String class
  • Method overloading
  • Arrays

Simple Introduction to UML

  • Overview of UML notation
  • Class diagrams
  • Interaction diagrams
  • Sequence diagrams
  • Use case diagrams

More advanced classes and programming

  • Subclassing and inheritance
  • Overriding methods
  • Static methods
  • Final methods
  • Exceptions and exception handling
  • Casting
  • Superclass constructors
  • Abstract methods and interfaces
  • Packages and compilation units
  • Access modifiers
  • Inner classes
  • Inner classes within methods
  • Scope and scoping

An introduction to collections

  • Motivation and underlying concepts
  • Creating and using collections
  • Different collection types - arrays, lists, sets and maps

An introduction to Java threads

  • Concept of threads
  • Java threads vs. operating system threads
  • Creating and using threads
  • Communication between threads
  • Thread synchronisation

Basics of GUI programming

  • Event driven programming
  • Android User Interface (UI) elements - buttons (radio, check, popup) , dialogs - modal and non-modal, canvases, menus
  • Layout
  • Describing user interfaces in XML in Android
  • Overview of the Java Swing GUI API
  • Comparing the Android GUI API with the Java Swing GUI API