Practical Software Development @ EPCC

3305 (EPCC)



The University of Edinburgh James Clerk Maxwell Building Mayfield Road Edinburgh EH9 3JZ

ARCHER, the UK's national supercomputing service, offers training in software development and high-performance computing to scientists and researchers across the UK. As part of our training service we will be running a 2 day ‘Practical Software Development’ training session.

Writing code is just part of developing effective software - how do you get the best from working with others as part of a software team, incorporating existing work into your own, contributing back and producing code and software suites for others?


Software development comprises a range of activities including writing code, requirements analysis, testing and product evaluation. This course introduces how software development projects can be approached to achieve high-quality software products. Introducing important ideas for both academic and industrial development such software sustainability, testing, adapting processes and communications. The course will introduce practical skills important for use in developing software for research and industrial purposes.


Day 1:

  • Structured Development: Process, Teams and Communications
  • Design Issues and Requirements
  • Planning and Risks
  • Prototyping and Usability

Day 2:

  • Testing
  • Code Work: Analysis and Re-engineering
  • Looking back and Learning
  • Issues affecting Software Development

This course is free to all academics.

Intended learning outcomes

On completion of this course students should be able to:

  • Assess and articulate issues with design and code
  • Evaluate and propose risk management for a project
  • Estimate and justify a schedule for a project
  • Create a testing process and articulate the reasoning for the types of tests
  • Evaluate and critique a software project


The course will be delivered over two days in person. The course will interleave practical exercises, including teamwork, with short lectures and discussions.


There are no strict pre-requisites for this course, though familiarity with a programming language and concepts will be beneficial.


  • Tuesday, 24 November
    • 09:00 10:30
      Process, Teams and Comms
    • 10:30 10:45
    • 10:45 13:00
      Design Issues, Requirements Capture
    • 13:00 14:00
    • 14:00 15:15
      Planning and Risks
    • 15:15 15:30
    • 15:30 17:00
      Prototyping and Usability
  • Wednesday, 25 November
    • 09:00 10:30
    • 10:30 10:45
    • 10:45 13:00
      Code Work
    • 13:00 14:00
    • 14:00 15:15
      Code Work continued
    • 15:15 15:30
    • 15:30 16:30
      Looking back and learning (Projects)
    • 16:30 17:00
      A few issues in SD