The ACCU 2009 Pre-conference Tutorial Day (21st April 2009)

In addition to the excellent programme, we are again proud to present the pre-conference tutorial day. Come to the event a day early, and benefit from a full-day tutorial from some of the leading figures in the industry. This year we are proud to present tutorials by Linda Rising, internationally known expert on topics related to patterns, retrospectives, and the change process;
Alisdair Meredith, the UK's leading technical expert on C++0x; and Steve Freeman and Nat Pryce, international authorities on agile development, and the developers of JMock mock objects framework for Java. This is a great
opportunity to expand your technical knowledge, by learning from the
very best.

The pre-conference tutorial day is 21 April 2009, with tutorials running from 10:00 to 17:30.

Fearless Change: Patterns for Introducing New Ideas

presented by Linda Rising

We attend conferences or read books and articles discover new ideas we want to bring into their organizations—but we often struggle when trying to implement those changes. Unfortunately, those introducing change are not always welcomed with open arms. Linda Rising offers proven change management strategies to help you become a more successful agent of change in your organization. Learn how to plant effective seeds of change, and what forces in your organization drive or block change. In addition to using these approaches to change your organization, you can use them to become a more effective person. Come and discuss your organizational and personal change challenges. Linda shows how the lessons from her book, Fearless Change: Patterns for Introducing New Ideas, can help you succeed. Learn how to overcome adversity to change and to celebrate your improvement successes along with your organization's new found practices.

Up and running with C++0x

presented by Alisdair Meredith

This tutorial will break into three packed sessions. The first will take a
look at the new standard memory model, support for concurrent execution and
atomic operations. The second will take a look at designing new interfaces
in code, highlighting rvalue references, variadic templates and lambda
expressions. Examples will focus on how these features drive the new thread
library, rounding out the concurrency support. The final session will take
a deeper look at templates, with a major focus on concepts, introducing the
new containers, iterators and algorithms library to provide examples. By
the end of the day the attendee will be familiar with the major new language
features and a large part of the library.

Prequisites: A good knowledge of existing C++ language and library, a
passing knowledge of TR1 would help.
Compilers will be listed nearer the time (session 2 would use a mix of GCC
4.3 and VS2010 CTP, session 3 requires concept GCC, thread libraray via
Boost or Just Software. Session 1 is mostly theory - but we expect a
broader range of support before conference time)

Description:
The goal of this tutorial is to teach the major new features of the new C++
standard. These are seen to be (i) concurrency support (ii) concepts (iii)
features for better [code] interfaces. This is a lot of material to present
in a day, when you combine language and library, so the vast majority of
examples to teach the language features and design will be pulled directly
from the standard library. For example, the thread library will be
introduced to teach move semantics (locks) and perfect forwarding
(thread/function) - although additional time will taken to provide a solid
grounding in the thread library too. Likewise, iterator categories,
containers and algorithms provide great examples for concepts, and various
approaches to designing concept-enabled libraries, but this also provides an
introduction to the revised library. As far as possible the material will
be supported by publicly available compilers, although there is no single
compiler that covers everything (yet). Specifically all of the planned
second and third sessions can be supported today via ConceptGCC, GCC4.3, or
the VS2010 preview.

Growing Object-Oriented Software, Guided by Tests

presented by Steve Freeman and Nat Pryce

Test-Driven Development (TDD) is a deceptively simple idea: write the tests for your code before writing the code itself. We say "deceptively simple" because this reversal fundamentally changes the role of testing in the development process. The tests are now about helping the team to understand the features that the users need and delivering those features reliably and predictably. When followed to its conclusions, TDD changes the way we develop software and, in our experience, hugely improves the quality of the systems we build.

This advanced tutorial is for developers who have started with Test-Driven Development and are looking for deeper understanding. We will show how TDD fits into the whole development lifecycle, with an extended example started from scratch.

We will cover topics such as:

What's the point of Test-Driven Development

Kick-starting the TDD lifecycle

Growing features test-first

Maintaining the TDD lifecycle

Object-oriented design with Mock Objects

Working with third-party code

Learning to listen to the tests

Testing asynchronous code

The course will use Java 5, JUnit 4, and JMock. Attendees should bring a laptop with a Java IDE.