Attendee preparations

For the TDD training days (first two days), students only need a computer with a web browser, and internet access. For the optional Legacy Code Workshop days, students need a local development environment on their machines. We can discuss the options during the first day of the TDD training. It will be even better if you setup your test environment before the training begins, but at least by the start of the workshop.

Prerequisites for courses taught in C

You will be creating new C functions in the TDD training class. We find that some programmers are rusty on creating new functions. If that is you, please practice creating some new functions. This would include adding a function declarations to header files, and adding definitions to the source files. Here is a reference for C functions. You may also want to brush up on your C scoping rules.

Prerequisites for courses taught in C++

If you are new to C++, or a little rusty, please spend some time before class refreshing your C++. Here is a link to a C++ reference. Attendees should be familiar with that page as well as these topics. They are linked toward the bottom of the page.

  • Class member functions
  • Class access modifiers
  • Constructor & destructor
  • Pointer to C++ objects
  • References to C++ objects

  • There is a lot more to C++ than just those topics, but that is enough to get started. Don't worry if you are not an expert. We do exercises in pairs, so you can learn from each other.

    Legacy Code Workshop Days

    Embedded C and C++ Off-Target Development Environment Options

  • Linux - GCC (sudo apt-get install build-essential)
  • Mac - XCode (GCC)
  • Windows - cygwin (Default install + 'Devel' package)
  • Windows - mingw
  • Windows - Visual C++ V6, Visual Studio 2008, Visual Studio 2010

  • Non-Embedded C/C++Workshops

  • Likely that no special build tools are needed
  • Install the test harness of your choice and get a simple example test running
  • You will need to disconnect your code from execution environement dependencies

  • Android Workshops

  • Install native Java build environment
  • Install junit

  • In addition to a compilation environment, attendees will need:

  • Access to the production source code version control system.
  • Access to the target environment header files.
  • An editing environment.
  • Access to any existing unit test environment.
  • Why do I need different development tools for the legacy code days?

    Building your code so that much of it can be tested off your target environment is likely to have many advantages for you. Developer's production build environments often slow them down. In this training we'll start to remove the target hardware bottleneck from your daily work.

    Course Hours

    We plan a 7.5 hour day including time for lunch and breaks. It is an intense day at 7.5 hours, though if people want to continue on exercises longer, or have more discussion, we can go over the scheduled time as needed. It is best if your organization prepared for you to work on training activities without interruption during the core hours.