Java, Android and .NET
“Cost-effective bespoke training at your offices with an
experienced and enthusiastic instructor”
0118 966 4994
mailbox@javaconsult.co.uk
www.javaconsult.co.uk
Java
This course includes the latest features of the Java Standard and Enterprise Editions. Following
the fundamentals, a test driven development approach is used to assemble database-connected
web and rich client applications. The Hibernate object-relational mapping framework is used to
implement the data layer, with JavaServer Faces and JavaFX for the presentation layers. Build
automation with Gradle and revision control with Git are also employed. Other topics include
the collections classes, lambda expressions and concurrent programming. Design principles and
patterns are discussed in the context of the various topics.
CORE
Platform overview
The JDK and JRE
Using the Eclipse or IntelliJ development environments
Language syntax
Classes, fields, methods, constructors and overloading
Operators and precedence; conversion, casting and autoboxing
Strings and immutable types; mutable types and the String Builder class
Arrays; conditionals and loops; catching and throwing exceptions;
enumerated types
Class Design
UML class diagrams and sequence diagrams; packages and encapsulation
Inheritancecomparedwithcomposition;invokingaspecificbaseclassconstructor
Method overriding and polymorphism; abstract classes and interfaces
DATA
Collections
Sets, Lists, and Maps; functional interfaces, anonymous inner classes
and lambda expressions
Streams
Building Byte Streams and Character Streams with the java.io and java.
nio packages; serializing objects to a file
Databases and SQL
Using JDBC to connect to a MySQL database and execute SQL expressions
Writing try-with-resources blocks to ensure connections are closed
Object mapping with Hibernate or JPA
Using the Hibernate object-relational mapping library to store and
retrieve objects
Mapping associated classes to related tables with the Java Persistence API
WEB
Web Applications
Java EE7 containers and the application servers; deploying a Servlet
The Java Server Faces framework, facelets and expression language;
CDI backing beans and scopes
Web Services
Deploying a JAX-RS service; producing and consuming JSON in
response to HTTP GET and POST requests
Enterprise Beans
Deploying stateless and stateful session beans; using dependency
injection to invoke enterprise beans
DESKTOP
Desktop applications
Building a user interface with JavaFX and handling events
UnderstandingJavaFXpropertiesandestablishingbindingsbetweenproperties
Connecting a Table View component to the data layer built previously
Concurrency
Building multi-threaded code with Executors and the Callable and
Future interfaces
Using thread safe collections and the Atomic Integer class
Parallel processing with lambda expressions
Building asynchronous computations with chained Completion Stages
Running test methods in parallel with the tempus-fugit library
Updating JavaFX components from a worker thread
OTHER TOOLS
Test Driven Development
Writing unit tests with “arrange, act, assert” phases; the “Red, Green,
Refactor” development cycle
Parameterized tests with the JUnitParams library
Interactions testing with spies and stubs using the Mockito library
Writing integration tests and including these in the Gradle build
Build automation with Gradle or Maven
The standard directory structure; build lifecycle, plugins and tasks;
dependency management
Distributed Revision Control with Git
Initializing a repository and cloning an existing repository; indexing and
committing changes
Viewing the commit history and comparing versions of a file; creating
and merging branches
Pushing a branch to a remote server
Create a bespoke course by ticking the required sections. We’d recommend 5 days to cover all
these sections, depending on the attendees’ background in programming. The fee for on-site
training is £975 per day, regardless of the numbers attending, including all expenses and the use
of laptops.
Public and on-site training
As well as delivering a competitively priced bespoke course at
your offices, public courses in central London and individual
tuition are also available; for dates and prices, please refer to our
website, www.javaconsult.co.uk
“Tell me, and I will forget. Show me, and I may remember.
Involve me, and I will understand.” With a nod to Confucius,
our training involves assembling applications to reinforce
the theory, following object-oriented principles and patterns
including MVC.
Course Instructor
Originally a Civil Engineer with a BSc from London University
the course instructor, Simon Dineen, has 15 years’ experience in
object-oriented training and development including Java, .NET
and more recently Android.
Clients
Over the past 15 years, our clients have included freelancers and small businesses as well as
universities and blue chip companies. A few of the larger organisations that we have provided
training for include the BBC, General Electric, Motorola, Barclays, BP, BAA, NHS, Dassault
Systemes, NATO, EDF, Environment Agency, HSBC, Logica, Ministry of Defence, Pearson,
Rackspace, Reuters, Rightmove, Siemens, T-Mobile, Toyota, XL Insurance, Virgin, TNT, and the
Universities of Durham, London, Oxford and Southampton.
Feedback
Our business revolves around clients, so your opinion is valued and is acted upon to develop
training that aligns with your requirements. A small, representative selection follows. More
client feedback is available on request.
“An excellent course that covers an enormous amount of content, presented in a relaxed manner in a pleasant environment.” Carl V.
“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.” Philip L.
“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.” Chandra S.
“Trainer approachable and knowledgeable. I appreciated the time and patience given to me as I was the slowest on the course.” Jan S.
“Fast paced. Sometimes a little too fast. Simon was able and eager to help.” Emma H.
“Absolutely excellent, fast paced but that’s what I was hoping for. Good selection of topics. Perhaps a little more coding as opposed to
copying from notes/projects would have been beneficial but I’m aware time may be an issue.” Simon O.
“My Java knowledge is very limited, but the course was well-presented and easy to follow, covering the basics in a good introduction.”
Donovan R.
“Very thorough and went through the specified content well.” Tim C.
“I liked the course content and how we built one main application across the week, covering lots of subjects as we went.” Nick B.
“Well presented, all areas explained in detail. A pleasure to attend this course.” Suman K.
.NET	
This practical course is aimed at developers who rapidly need to gain the skills to develop robust
commercial applications, using the latest features of the .NET framework. Database-connected
web and rich client applications are assembled, using the Entity Framework to implement
the data layer with ASP.NET MVC and WPF for the presentation layers. Other topics include
the collections classes, LINQ, test driven development, dependency injection, concurrent
programming and distributed revision control. Design principles and patterns are discussed in
the context of the various topics.
Create a bespoke course by ticking the required sections. We’d recommend 5 days to cover all
these sections, depending on the attendees’ existing knowledge. The fee for on-site training is
£975 per day, regardless of the numbers attending, including all expenses and the use of laptops.
Fundamentals
Overview of the Common Language Runtime and the framework’s
class libraries
Defining a class comprising variables, properties and methods and
understanding encapsulation
Class instantiation, constructors and method overloading
Language basics including built-in data types, structs, enumerations,
operators, conversion, casting and autoboxing
Class Design and Inheritance
Unified Modelling Language (UML) class diagrams
Building derived classes, overriding methods and comparing reference
equality with value equality
Understandingpolymorphismandinterfacesandwhentouseabstractclasses
Handling Exceptions and writing methods that throw exceptions
CORE
Collections and LINQ
Using Lists, Sets and Dictionaries
Defining predicates and projections with LINQ, using method syntax
and query syntax
Understanding delegates, anonymous methods and extension methods
SQL and databases
Using SQL to create tables and insert, update and delete data
SQL functions, groups, joins, views and stored procedures
Reading from and writing to a database using an ADO.NET data provider
Garbage collection, finalizers and using blocks
Pessimistic concurrency control
The Entity Framework
Mapping classes to database tables with the Entity Framework, using
code first development
Conventions and configuration of the entity data model
Writing methods to retrieve, insert, update and delete entities
Optimistic concurrency control
Streams and Serialisation
Connecting files to decorator and adapter streams
Reading and writing characters to a stream; compressing bytes with a
Deflate Stream; persisting objects as XML
DATA
ASP.NET MVC
Controllers, actions and routing; defining views using the Razor view engine
Scaffolding, forms, HTML helpers and model binding; partial page
updates with AJAX and jQuery
State management and the Global class
Building an ecommerce type application, connecting to the Entity
Framework data model built previously
Web application security; deploying a web application
Web Services
Deploying a REST service using the Web API that responds to GET,
POST, UPDATE and DELETE HTTP methods
Testing the service with an HTTP debugging application; connecting a
client application to the service
WEB
Windows Presentation Foundation (WPF)
Overview of desktop applications, XAML controls and layout managers
Building a user interface using XAML mark-up and handling events in a
code-behind class
Building composite components and formatting components using
resources and styles
Binding a data source to a WPF control
Reading from an XML feed into a Flow document
Deploying a WPF application
Concurrent and Asynchronous Programming
Compute bound and I/O bound operations; starting a new thread; tasks
and the thread pool
Using an a waiter to avoid blocking a thread; declaring and invoking
asynchronous methods
DESKTOP
Test-driven development
Writing unit tests with “arrange, act, assert” phases; the “Red, Green,
Refactor” development cycle
Interactions testing with the Moq library; integration testing
Distributed revision control with Git
Initializing a repository and cloning an existing repository; indexing and
committing changes
Viewing the commit history and comparing versions of a file; creating
and merging branches
Pushing a branch to a remote server
OTHER TOOLS
Android
This course covers application development for Android devices. The first day provides an
introduction to object-oriented programming in Java, concentrating on topics that are relevant to
Android. Next, a number of Android applications are assembled, combining theory with practical
exercises, deploying monitoring and debugging the applications on real and virtual devices. By
the end of the course, we expect students to be able to build and deploy their own Android apps.
Create a bespoke course by ticking the required sections. We’d recommend 3 to 4 days if you’re
already familiar with Java, or 4 to 5 days to include an introduction to Java programming. The
fee for on-site training is £975 per day, regardless of the numbers attending, including all expens-
es and the use of laptops
Java Programming for Android
Introduction to the IntelliJ development environment
Classes and objects, including fields, methods and constructors
Inheritance, method overriding and polymorphism
Exception handling including throwing and catching exceptions
Interfaces, generics and the collections framework
JAVA FOR ANDROID DEVELOPERS
Introduction to Android
Versions, devices and architecture; using Android Developer Tools
and configuring an Android Virtual Device
Anatomy of an Android application; overview of application
components, resources and the manifest
Activities
Understanding the life cycle of an activity
Overriding callback methods and using the Log class
The back stack and saving instance state
Intents
Using an explicit Intent to start an activity
Understanding implicit intents and declaring intent filters
Starting built in activities including contacts, web browser and phone dialler
User Interfaces
Views and View Groups
Using XML layouts to define the visual structure for a user interface
Handling events
Using an Adapter to bind data to a List View
Handling selections in a List View
Resources
Externalising application resources such as strings, layouts and images
Accessing resources from code and XML
Providing alternative resources for specific device configurations
Assembling and inflating a menu
Defining and applying Styles and Themes
Services
Building and controlling a service that performs a background task
Comparing the Service and Intent Service classes
Broadcast Receivers
Broadcasting an Intent object
Building an app that receives the above broadcast
Receiving system broadcasts
Sending and receiving SMS messages
CORE ANDROID
File streams
Using Shared Preferences to store user data
Reading and writing from Internal Storage and using raw resources
Using external storage and setting permissions
Using a database
Setting up a SQLITE database
Writing methods to interact with the database
Displaying a result set as a list
Writing an app that enables users to insert, update and delete records
Content Providers
Content Provider basics; building an app that retrieves contact details
from the Contacts Provider
Creating a Content Provider, using the database configured in the
previous section
Building an app that connects to the above content provider
Networking and web services
Streaming files from a web server; connecting to a network in a
background thread; interacting with a web service using JSON
DATA
Using Microsoft Visual Studio to build a REST service, connected to
a SQLServer database, which responds to GET, POST, UPDATE and
DELETE HTTP requests
SERVER-SIDE PROGRAMMING
Fragments
Overview of Fragments and their life cycle
Declaring a fragment in an activity’s layout file
Adding and removing fragments at runtime
Building a fragment based app, customised for both smart phones and tablets
Graphics
Drawing shapes, images and text onto a custom View
Building the graphical part of a chess app
Responding to touch events, enabling moving pieces on the board
Java, Android and .NET
Flexible, modular training
Software development
0118 966 4994
mailbox@javaconsult.co.uk
www.javaconsult.co.uk

Javaconsult courses

  • 1.
    Java, Android and.NET “Cost-effective bespoke training at your offices with an experienced and enthusiastic instructor” 0118 966 4994 mailbox@javaconsult.co.uk www.javaconsult.co.uk
  • 2.
    Java This course includesthe latest features of the Java Standard and Enterprise Editions. Following the fundamentals, a test driven development approach is used to assemble database-connected web and rich client applications. The Hibernate object-relational mapping framework is used to implement the data layer, with JavaServer Faces and JavaFX for the presentation layers. Build automation with Gradle and revision control with Git are also employed. Other topics include the collections classes, lambda expressions and concurrent programming. Design principles and patterns are discussed in the context of the various topics. CORE Platform overview The JDK and JRE Using the Eclipse or IntelliJ development environments Language syntax Classes, fields, methods, constructors and overloading Operators and precedence; conversion, casting and autoboxing Strings and immutable types; mutable types and the String Builder class Arrays; conditionals and loops; catching and throwing exceptions; enumerated types Class Design UML class diagrams and sequence diagrams; packages and encapsulation Inheritancecomparedwithcomposition;invokingaspecificbaseclassconstructor Method overriding and polymorphism; abstract classes and interfaces DATA Collections Sets, Lists, and Maps; functional interfaces, anonymous inner classes and lambda expressions Streams Building Byte Streams and Character Streams with the java.io and java. nio packages; serializing objects to a file Databases and SQL Using JDBC to connect to a MySQL database and execute SQL expressions Writing try-with-resources blocks to ensure connections are closed Object mapping with Hibernate or JPA Using the Hibernate object-relational mapping library to store and retrieve objects Mapping associated classes to related tables with the Java Persistence API WEB Web Applications Java EE7 containers and the application servers; deploying a Servlet The Java Server Faces framework, facelets and expression language; CDI backing beans and scopes Web Services Deploying a JAX-RS service; producing and consuming JSON in response to HTTP GET and POST requests Enterprise Beans Deploying stateless and stateful session beans; using dependency injection to invoke enterprise beans DESKTOP Desktop applications Building a user interface with JavaFX and handling events UnderstandingJavaFXpropertiesandestablishingbindingsbetweenproperties Connecting a Table View component to the data layer built previously Concurrency Building multi-threaded code with Executors and the Callable and Future interfaces Using thread safe collections and the Atomic Integer class Parallel processing with lambda expressions Building asynchronous computations with chained Completion Stages Running test methods in parallel with the tempus-fugit library Updating JavaFX components from a worker thread OTHER TOOLS Test Driven Development Writing unit tests with “arrange, act, assert” phases; the “Red, Green, Refactor” development cycle Parameterized tests with the JUnitParams library Interactions testing with spies and stubs using the Mockito library Writing integration tests and including these in the Gradle build Build automation with Gradle or Maven The standard directory structure; build lifecycle, plugins and tasks; dependency management Distributed Revision Control with Git Initializing a repository and cloning an existing repository; indexing and committing changes Viewing the commit history and comparing versions of a file; creating and merging branches Pushing a branch to a remote server Create a bespoke course by ticking the required sections. We’d recommend 5 days to cover all these sections, depending on the attendees’ background in programming. The fee for on-site training is £975 per day, regardless of the numbers attending, including all expenses and the use of laptops. Public and on-site training As well as delivering a competitively priced bespoke course at your offices, public courses in central London and individual tuition are also available; for dates and prices, please refer to our website, www.javaconsult.co.uk “Tell me, and I will forget. Show me, and I may remember. Involve me, and I will understand.” With a nod to Confucius, our training involves assembling applications to reinforce the theory, following object-oriented principles and patterns including MVC. Course Instructor Originally a Civil Engineer with a BSc from London University the course instructor, Simon Dineen, has 15 years’ experience in object-oriented training and development including Java, .NET and more recently Android. Clients Over the past 15 years, our clients have included freelancers and small businesses as well as universities and blue chip companies. A few of the larger organisations that we have provided training for include the BBC, General Electric, Motorola, Barclays, BP, BAA, NHS, Dassault Systemes, NATO, EDF, Environment Agency, HSBC, Logica, Ministry of Defence, Pearson, Rackspace, Reuters, Rightmove, Siemens, T-Mobile, Toyota, XL Insurance, Virgin, TNT, and the Universities of Durham, London, Oxford and Southampton. Feedback Our business revolves around clients, so your opinion is valued and is acted upon to develop training that aligns with your requirements. A small, representative selection follows. More client feedback is available on request. “An excellent course that covers an enormous amount of content, presented in a relaxed manner in a pleasant environment.” Carl V. “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.” Philip L. “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.” Chandra S. “Trainer approachable and knowledgeable. I appreciated the time and patience given to me as I was the slowest on the course.” Jan S. “Fast paced. Sometimes a little too fast. Simon was able and eager to help.” Emma H. “Absolutely excellent, fast paced but that’s what I was hoping for. Good selection of topics. Perhaps a little more coding as opposed to copying from notes/projects would have been beneficial but I’m aware time may be an issue.” Simon O. “My Java knowledge is very limited, but the course was well-presented and easy to follow, covering the basics in a good introduction.” Donovan R. “Very thorough and went through the specified content well.” Tim C. “I liked the course content and how we built one main application across the week, covering lots of subjects as we went.” Nick B. “Well presented, all areas explained in detail. A pleasure to attend this course.” Suman K.
  • 3.
    .NET This practical courseis aimed at developers who rapidly need to gain the skills to develop robust commercial applications, using the latest features of the .NET framework. Database-connected web and rich client applications are assembled, using the Entity Framework to implement the data layer with ASP.NET MVC and WPF for the presentation layers. Other topics include the collections classes, LINQ, test driven development, dependency injection, concurrent programming and distributed revision control. Design principles and patterns are discussed in the context of the various topics. Create a bespoke course by ticking the required sections. We’d recommend 5 days to cover all these sections, depending on the attendees’ existing knowledge. The fee for on-site training is £975 per day, regardless of the numbers attending, including all expenses and the use of laptops. Fundamentals Overview of the Common Language Runtime and the framework’s class libraries Defining a class comprising variables, properties and methods and understanding encapsulation Class instantiation, constructors and method overloading Language basics including built-in data types, structs, enumerations, operators, conversion, casting and autoboxing Class Design and Inheritance Unified Modelling Language (UML) class diagrams Building derived classes, overriding methods and comparing reference equality with value equality Understandingpolymorphismandinterfacesandwhentouseabstractclasses Handling Exceptions and writing methods that throw exceptions CORE Collections and LINQ Using Lists, Sets and Dictionaries Defining predicates and projections with LINQ, using method syntax and query syntax Understanding delegates, anonymous methods and extension methods SQL and databases Using SQL to create tables and insert, update and delete data SQL functions, groups, joins, views and stored procedures Reading from and writing to a database using an ADO.NET data provider Garbage collection, finalizers and using blocks Pessimistic concurrency control The Entity Framework Mapping classes to database tables with the Entity Framework, using code first development Conventions and configuration of the entity data model Writing methods to retrieve, insert, update and delete entities Optimistic concurrency control Streams and Serialisation Connecting files to decorator and adapter streams Reading and writing characters to a stream; compressing bytes with a Deflate Stream; persisting objects as XML DATA ASP.NET MVC Controllers, actions and routing; defining views using the Razor view engine Scaffolding, forms, HTML helpers and model binding; partial page updates with AJAX and jQuery State management and the Global class Building an ecommerce type application, connecting to the Entity Framework data model built previously Web application security; deploying a web application Web Services Deploying a REST service using the Web API that responds to GET, POST, UPDATE and DELETE HTTP methods Testing the service with an HTTP debugging application; connecting a client application to the service WEB Windows Presentation Foundation (WPF) Overview of desktop applications, XAML controls and layout managers Building a user interface using XAML mark-up and handling events in a code-behind class Building composite components and formatting components using resources and styles Binding a data source to a WPF control Reading from an XML feed into a Flow document Deploying a WPF application Concurrent and Asynchronous Programming Compute bound and I/O bound operations; starting a new thread; tasks and the thread pool Using an a waiter to avoid blocking a thread; declaring and invoking asynchronous methods DESKTOP Test-driven development Writing unit tests with “arrange, act, assert” phases; the “Red, Green, Refactor” development cycle Interactions testing with the Moq library; integration testing Distributed revision control with Git Initializing a repository and cloning an existing repository; indexing and committing changes Viewing the commit history and comparing versions of a file; creating and merging branches Pushing a branch to a remote server OTHER TOOLS Android This course covers application development for Android devices. The first day provides an introduction to object-oriented programming in Java, concentrating on topics that are relevant to Android. Next, a number of Android applications are assembled, combining theory with practical exercises, deploying monitoring and debugging the applications on real and virtual devices. By the end of the course, we expect students to be able to build and deploy their own Android apps. Create a bespoke course by ticking the required sections. We’d recommend 3 to 4 days if you’re already familiar with Java, or 4 to 5 days to include an introduction to Java programming. The fee for on-site training is £975 per day, regardless of the numbers attending, including all expens- es and the use of laptops Java Programming for Android Introduction to the IntelliJ development environment Classes and objects, including fields, methods and constructors Inheritance, method overriding and polymorphism Exception handling including throwing and catching exceptions Interfaces, generics and the collections framework JAVA FOR ANDROID DEVELOPERS Introduction to Android Versions, devices and architecture; using Android Developer Tools and configuring an Android Virtual Device Anatomy of an Android application; overview of application components, resources and the manifest Activities Understanding the life cycle of an activity Overriding callback methods and using the Log class The back stack and saving instance state Intents Using an explicit Intent to start an activity Understanding implicit intents and declaring intent filters Starting built in activities including contacts, web browser and phone dialler User Interfaces Views and View Groups Using XML layouts to define the visual structure for a user interface Handling events Using an Adapter to bind data to a List View Handling selections in a List View Resources Externalising application resources such as strings, layouts and images Accessing resources from code and XML Providing alternative resources for specific device configurations Assembling and inflating a menu Defining and applying Styles and Themes Services Building and controlling a service that performs a background task Comparing the Service and Intent Service classes Broadcast Receivers Broadcasting an Intent object Building an app that receives the above broadcast Receiving system broadcasts Sending and receiving SMS messages CORE ANDROID File streams Using Shared Preferences to store user data Reading and writing from Internal Storage and using raw resources Using external storage and setting permissions Using a database Setting up a SQLITE database Writing methods to interact with the database Displaying a result set as a list Writing an app that enables users to insert, update and delete records Content Providers Content Provider basics; building an app that retrieves contact details from the Contacts Provider Creating a Content Provider, using the database configured in the previous section Building an app that connects to the above content provider Networking and web services Streaming files from a web server; connecting to a network in a background thread; interacting with a web service using JSON DATA Using Microsoft Visual Studio to build a REST service, connected to a SQLServer database, which responds to GET, POST, UPDATE and DELETE HTTP requests SERVER-SIDE PROGRAMMING Fragments Overview of Fragments and their life cycle Declaring a fragment in an activity’s layout file Adding and removing fragments at runtime Building a fragment based app, customised for both smart phones and tablets Graphics Drawing shapes, images and text onto a custom View Building the graphical part of a chess app Responding to touch events, enabling moving pieces on the board
  • 4.
    Java, Android and.NET Flexible, modular training Software development 0118 966 4994 mailbox@javaconsult.co.uk www.javaconsult.co.uk