skip to navigation skip to content
Instructor-led course

Provided by: University Information Services


This course is not scheduled to run.


[ Show past events ]



Register interest
Register your interest - if you would be interested in additional dates being scheduled.


Events available

Program Design: How to Help Programs Debug Themselves
Prerequisites


Description

This course is part of the Scientific Computing series.

This course is intended for serious programmers who need to develop large or complex codes, or to write applications that will be used and worked on by other people or over a long time (years). It will describe some of the design and coding techniques that can make debugging easier (sometimes even semi-automatic), and reduce the overall development and maintenance effort by spending a bit more time during design and coding.

It is applicable to any conventional language, from Python to Fortran to Java to C++ and even assembler, and will describe the techniques in generic terms. It should be regarded as part of the practical end of software engineering - everything covered will be something that the speaker has found to be useful in practice.

Prerequisites

Significant experience with a conventional language; it is assumed that the audience has written at least a 1,000 line program or done comparable modifications to an existing program, and is working or planning to work on a bigger one. Users with less experience may benefit from the course, or they may get confused.

Topics covered
  • The development cycle, as practiced in academia and research.
  • Some relevant experience from the IT industry.
  • Documentation as a debugging technique.
  • Designing interfaces for debuggability.
  • Writing checks to help code detect its own errors.
  • How and when to write and use validation primitives.
  • Efficient and comprehensible tracing of control and data flow.
  • Using the above together with debugging tools.
  • Use with test suites and regression testing.
Format

A presentation, with questions at any point.

Duration

One half day session

Themes

Events available

Override user: