Software Design - ELE00055I
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 and implementing a significant piece of software utilising the software engineering methodologies
- Have experience of applying of software engineering support tools such as documentation tools and debugging
- Be able to design programs in an object oriented programming language
- Demonstrate skills in Java programming and associated design, coding and testing regimes
- Examine 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
- 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
Indicative assessment
Task | % of module mark |
---|---|
Essay/coursework | 35 |
Essay/coursework | 65 |
Special assessment rules
None
Indicative reassessment
Task | % of module mark |
---|---|
Essay/coursework | 35 |
Essay/coursework | 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