Accessibility statement

Software Design - ELE00055I

« Back to module search

  • Department: Electronic Engineering
  • Module co-ordinator: Dr. Stuart Porter
  • Credit value: 20 credits
  • Credit level: I
  • Academic year of delivery: 2024-25
    • See module specification for other years: 2023-24

Module summary

The module gives students the basic skills in Java programming and how to use those within software engineering to produce a significant application, such as simulating swarming in autonomous robotic systems. It addresses software design and implementation and provides a grounding in the theory and applications of data structures and algorithms.

Module will run

Occurrence Teaching period
A Semester 2 2024-25

Module aims

Subject content aims:

  • To introduce “object ­oriented”computer programming and the key concepts of software engineering in a practical context

  • To develop students' understanding of and expertise in software design and implementation by providing grounding in the theory and applications of data structures and algorithms

Graduate skills aims:

  • To develop skills in summarising and showing understanding of information from reliable sources and technical writing

Module learning outcomes

Subject content learning outcomes

After successful completion of this module, students will:

  • Be able to explain the software engineering lifecycle

  • Have experience of developing a significant piece of software utilising the software engineering methodologies

  • Have experience of the use of software engineering support tools such as documentation tools and debugging

  • Be able to design programs in an object oriented programming language

  • Be able to demonstrate skills in Java programming and associated design, coding and testing regimes

  • Understand the role of algorithm and data structure design in software, and be able to appraise and articulate design choices in terms of algorithm efficiency as well as correctness, reliability and maintainability

Graduate skills learning outcomes

After successful completion of this module, students will:

  • Be able to summarise and show understanding in technical reports based on information selected from a variety of reliable sources, to a specified audience

  • Be able to explain commonly­ encountered technical concepts concisely and accurately

Module content

Topics include:

  • Java language syntax

  • Use of IDE for programming/debugging/testing

  • Object oriented concepts including classes, objects, encapsulation, inheritance, polymorphism

  • Important data structures and algorithms


Task Length % of module mark
Individual Report
N/A 35
Project Code
N/A 65

Special assessment rules



Task Length % of module mark
Individual Report
N/A 35
Project Code
N/A 65

Module feedback

'Feedback’ at a university level can be understood as any part of the learning process which is designed to guide your progress through your degree programme. We aim to help you reflect on your own learning and help you feel more clear about your progress through clarifying what is expected of you in both formative and summative assessments. A comprehensive guide to feedback and to forms of feedback is available in the Guide to Assessment Standards, Marking and Feedback.

The School of PET aims to provide some form of feedback on all formative and summative assessments that are carried out during the degree programme. In general, feedback on any written work/assignments undertaken will be sufficient so as to indicate the nature of the changes needed in order to improve the work. The School will endeavour to return all exam feedback within the timescale set out in the University's Policy on Assessment Feedback Turnaround Time. The School would normally expect to adhere to the times given, however, it is possible that exceptional circumstances may delay feedback. The School will endeavour to keep such delays to a minimum. Please note that any marks released are subject to ratification by the Board of Examiners and Senate. Meetings at the start/end of each term provide you with an opportunity to discuss and reflect with your supervisor on your overall performance to date.

Indicative reading

Java How to Program, Early Objects, Global Edition, Deitel and Deitel, Pearson Education; 11th edition (2017), ISBN 978-1292223858

Learning Java: An Introduction to Real-World Programming with Java, Loy, Niemeyer and Leuck, O'Reilly Media; 5th edition (2020), ISBN 978-1492056270

Clean Code: A Handbook of Agile Software Craftsmanship, Martin, Prentice Hall; 1st edition (2008), ISBN 978-0132350884

Effective Java: Second Edition, Bloch, Addison-Wesley; 3rd edition (2017), ISBN 978-0134685991

The information on this page is indicative of the module that is currently on offer. The University is constantly exploring ways to enhance and improve its degree programmes and therefore reserves the right to make variations to the content and method of delivery of modules, and to discontinue modules, if such action is reasonably considered to be necessary by the University. Where appropriate, the University will notify and consult with affected students in advance about any changes that are required in line with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.