Overview: motivations; features and examples of custom computers; summary of development methods and tools. Design: parametrised description of leaf components and composite structures; resource and performance characterisation; high-level design tools. Optimisation: techniques for improving design efficiency such as pipelining, serialisation, transposition and their combinations. Realisation: bit-level designs, data refinement, FPGA-based implementations. System-on-chip: architectures, technology trade-offs, design and optimisation methods. Examples will be selected from a number of application areas, including digital signal processing, computer arithmetic and non-numerical operations.