Introduction to Java Programming

Course description
This is an introductory three-day course aimed at newcomers to Java and who need to become familiar with the fundamentals.

It is delivered online using video conferencing and remote desktop software, enabling the instructor to view your code and assist with exercises remotely.

The pace can be adjusted to suit your requirements and the content is modular: additional topics can be added from the advanced course, such as building a user interface or connecting to a database.

The course can be provided to a team or as individual tuition for a fee of £1200+VAT for 3 days. To discuss this course further, or to make a booking, please telephone 0118 966 4994 or email
What you will learn
  • Introducing Java
  • Core Language Features
  • Loops and Logic
  • Arrays and Strings
  • Defining Classes
  • Extending classes and Inheritance
  • Abstract classes and Interfaces
  • Generics and the Collections Framework
  • Input and Output
  • Threads

No existing programming experience is assumed.

Related courses

Our Advanced Java Course is intended for developers who are already familiar with object-oriented programming, either in Java or a similar language such as C# or C++

Course instructor

Originally a Civil Engineer with a BSc from London University the course instructor, Simon Dineen, has 15 years' experience in Java training and development.

  • Great course - coming from a manual testing background, I learned a lot of Java programming concepts and how it works with different frameworks etc. There’s a lot to take in and practice. One comment- course develops quickly and goes on to very advanced topics. However, Simon tried his best to explain everything in detail. Overall I am pleased and would recommend.

  • Loved the class size. The material was the right level. Learnt a lot; time to practice now. Simon is very knowledgeable and quite reachable to ask any questions. Glad to have found this course at short notice and glad to have attended.

  • I am very pleased with the content, delivery and level of professionalism. Would highly recommend the course. One negative for me as a beginner in Java; I felt an extra day or two would have been very beneficial. Overall, Excellent.

  • Very good training. All felt confident and comfortable getting trained in Java by Simon. Very good patience. Good knowledge to support all levels of developers.

  • Absolutely excellent, fast-paced but that’s what I was hoping for. Good selection of topics.

  • Trainer was approachable and very knowledgeable. I appreciated the time and patience given to me as I was the slowest on the course.

  • I enjoyed the fast pace of the course. It’s given me the concepts which I now need to improve through practice.

  • Really enjoyable. Would recommend. Thanks

  • Fantastic introduction; so much information covered in one week.

  • It was highly intensive but easy to follow

  • Just wanted to say thanks for the course last week. I got a huge amount out of it. I really liked the way you built up the different components/apps over the week.

Course outline

1. Introducing Java

  • Features and uses of the language
  • Overview of the Java Development Kit and the Java Runtime Environment
  • Using the Eclipse Integrated Development Environment
  • Building, compiling and running a simple command line application

2. Core Language Features

  • Data and variables
  • Integer and floating point data types
  • Arithmetic calculations
  • Enumerations
  • Operator precedence

3. Loops and Logic

  • Making decisions
  • Logical operators
  • The switch statement
  • For and while loops
  • Nested loops with break and continue statements
  • Assertions

4. Arrays and Strings

  • Defining and using arrays of primitives and of Strings
  • Operations on Strings
  • Mutable Strings and the StringBuilder class

5. Defining Classes

  • Declaring a class
  • Comparing local and instance variables
  • Defining methods
  • Creating an object
  • The default constructor and overloading constructors
  • Understanding packages
  • Controlling access to class members

6. Extending classes and Inheritance

  • Creating a derived class
  • Overriding methods
  • The Object class
  • Casting objects

7. Abstract classes and Interfaces

  • Defining abstract classes
  • Understanding interfaces and comparing them with abstract classes
  • Using polymorphism

8. Generics and the Collections Framework

  • Defining and instantiating a Generic class type
  • Using Sets, Lists and Maps
  • Overriding the equals and hashCode methods

9. Input and Output

  • Understanding streams
  • Accessing files with the Path class
  • Using input and output streams to read and write bytes
  • Using character streams to read and write text

10. Threads

  • Understanding threads
  • Implementing the Runnable interface
  • Synchronizing threads
  • Using an executor to execute a Callable task