Course name: BDD with Cucumber-JVM

Content: Behaviour driven development is an evolution of Test Driven Development, Domain Driven Design and many other lean and agile practices. The most used aspect of BDD is the automated acceptance tests (aka. specifications) that help you create the right code and understand when you are done.

This 1 day tutorial you will given a strong foundation in Cucumber JVM, a rewrite of Cuke4Duke, the tool many Java developers use for writing and running BDD style acceptance tests. The main focus of this course will be how to write automated acceptance tests for BDD scenarios, though there will be an introduction to BDD given for people not familiar with it.

Topics covered:

  • BDD basics
  • Automating scenarios by writing Java glue code for Cucumber-JVM
  • How to run automated Scenarios using JUnit or Maven
  • Grouping scenarios and selecting what gets run with Tags
  • Writing common set-up and tear down code for automated scenario's using hooks (@Before and @After)

(Typically after time allocated to breaks and lunch we find there is about 5 and half hours of teaching time available in a day. This would be broken down into the following:

  • 1 hour for the introduction to BDD and Cucumber.
  • 30 minutes focused on setting up projects and runing automated scenarios with Cucumber-JVM using Maven and JUnit.
  • 4 Hours Writing glue code for automating the scenarios. This would include hands on practicals with attendees)

 

Instructor: Alan Parkinson


Course name: Android Development Kick Start

Content: Bring your laptop and Android phone with its USB cable and join us for an intense one-day kick-starter course in Android App development. Step by step you will create an Android app during the day and have the ability to publish it on Google Play Android Store.

You will learn about:

  • The Android platform
  • Setting up your development environment
  • UI widgets and XML layouts
  • Events
  • Background threads
  • Communication with internet servers
  • Preparing an app for release, such as X.509 signing
  • Publishing an app at Google Play
  • Overview of technical topics of Android development
  • Where to go from here

Instructor: Jens Riboe.
Jens Riboe is a professional trainer and consultant that has been passionate about software development for a quarter of a century. Besides of programming and lecturing about Android, he is leading a startup team developing a Groovy/Grails SaaS system, giving training courses in C++, Java, Groovy, Grails, Erlang, Introscope and much more.


Course name: Fastest Track To Scala

Content: This one-day course, designed by Martin Odersky, the creator of the Scala programming language, and Heiko Seeberger, a recognized Scala expert, will give you an excellent grounding in Scala.

It is intended to enable developers or development managers, who are experienced programmers in Java or other production languages like C++, C# or Ruby, to confidently start programming in Scala. 

No previous knowledge of Scala is assumed. Although intense, the course ensures you will have a solid understanding of the fundamentals of the language, the tooling and the development process as well as a good appreciation of the more advanced features.

After having participated in this course you should 

# be a competent user of Scala constructs in application code

# know and be able to apply the functional programming style in Scala

# know how to use the fundamental Scala tools

# be confident to start using Scala in production applications

The presentation will frequently be mixed with hands-on exercises that give you a good opportunity to try what you have learnt and a chance to clarify your understanding. 

Therefore it is necessary that you bring your notebook with Java 6 installed.

Instructor: Fredrik Ekholdt. Fredrik is a trainer and consultant at Typesafe. Since he was introduced to Scala back in 2009, he has spent all of his free time working with it. At Typesafe Fredrik is mainly teaching Scala and Play courses and helping customers to adopt these technologies. He has also contributed to course materials on Scala and created the course material for Play. Beside of these, Fredrik spends his time building SpendChart.no and Groosker.com using Scala, sbt and ScalaQuery


Course name:  Java 8 Crash course

Content: Java 8 will be released in less than a year. It will bring several new features that will change how Java developers program today.

This course will teach you how to make use of the coming up Java 8 features so you are ready to benefit from them. In this course you will get lectures covering hot Java 8 topics, play with a preview version of jdk8 and try several in-class exercises to get hands-on practice.

The content of the course is structured as follows:

Introduction

  • Serial vs Parallel?
  • Functional Programming: what is it?
  • Other languages: Scala, Clojure, Groovy
  • Let's get jdk8 set up on your laptop!

Lambdas

  • Functional Interfaces
  • Anonymous Inner Classes
  • Lambda Expressions
  • Type Inference
  • Method References
  • Updated Collection API
  • JVM implementation

Virtual Extension Methods

  • Library Evolution
  • Multiple Inheritance

Type Annotations

  • Pluggable type checker
  • Checker Framework

Other Features/Libraries

  • Repeated Annotations
  • Date & Time
  • Fork/Join

You are required to bring your laptop to get set up with an early access prototype of jdk8.

Instructor: Raoul-Gabriel Urma.
Raoul-Gabriel is a PhD at the University of Cambridge. His research focuses on programming language evolution through program analysis and automated refactoring. He holds a MEng in Computer Science from Imperial College London and graduated with first class honours having won several prizes for technical innovation. He is also a frequent speaker at developer conferences such as Devoxx, Fosdem and Jazoon.

Raoul-Gabriel has worked for several leading companies including Oracle, eBay and Goldman Sachs. In addition, he runs an IT consultancy providing Java training and product development services.


Course name: Becoming a Scrum Master

Content: TBD

Instructor: TBD