Course AND102
Introduction to Java Programming for Android Developers
Course Outline
Introduction to Java Programming for Android Developers
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 be able to understand how to program using the Android development framework in particular, but, also, Java programming in general, e.g. as a stepping stone to going on to study Java programming topics such as Java Servlets, Java Beans, JBoss, J2EE.
Prerequisites
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 interaction
The Eclipse Java IDE (Integrated Development Environment)
- creating Java 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 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
- 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
